Logging
[fnpeditor.git] / modules / tabsManager.js
1 rng.modules.tabsManager = function(sandbox) {\r
2 \r
3     var $ = sandbox.$;\r
4     \r
5     var view = $(sandbox.getTemplate('main')());\r
6     \r
7     var tabContent = {};\r
8     \r
9     function selectTab(slug) {\r
10         var tabBar = view.find('#rng-tabsManager-tabBar');\r
11         \r
12         var prevActive = tabBar.find('li.active');\r
13         var prevSlug;\r
14         if(prevActive.length)\r
15             prevSlug = prevActive.find('a').attr('href').substr(1);\r
16         \r
17         tabBar.find('li').removeClass('active');\r
18         tabBar.find('a[href=#' + slug + ']').parent().addClass('active');\r
19         \r
20         if(prevSlug)\r
21             tabContent[prevSlug].detach();\r
22         tabContent[slug].appendTo(view.find('#rng-tabsManager-content'));\r
23     }\r
24        \r
25     \r
26     \r
27     view.on('click', 'li a', function(e) {\r
28         selectTab($(e.target).attr('href').substr(1));\r
29     });\r
30     \r
31     return {\r
32         start: function() {\r
33             sandbox.publish('ready');\r
34         },\r
35         \r
36         getView: function() {\r
37             return view;\r
38         },\r
39         \r
40         addTab: function(title, slug, contentView) {\r
41             tabContent[slug] = contentView;\r
42             view.find('#rng-tabsManager-tabBar').append(sandbox.getTemplate('tabHandle')({title: title, slug: slug}));\r
43             if(_.values(tabContent).length === 1)\r
44                 selectTab(slug);\r
45         }\r
46     }\r
47 \r
48 };