-rng.modules.tabsManager = function(sandbox) {\r
+define(['views/tabs/tabs'], function(tabsView) {\r
\r
- var $ = sandbox.$;\r
+return function(sandbox) {\r
\r
- var view = $(sandbox.getTemplate('main')());\r
- var currentSlug;\r
- var tabContent = {};\r
- \r
- function selectTab(slug) {\r
- var tabBar = view.find('#rng-tabsManager-tabBar');\r
- \r
- var prevActive = tabBar.find('li.active');\r
- var prevSlug;\r
- if(prevActive.length)\r
- prevSlug = prevActive.find('a').attr('href').substr(1);\r
- \r
- if(prevSlug == slug)\r
- return;\r
- if(prevSlug)\r
- sandbox.publish('leaving', prevSlug);\r
- \r
- tabBar.find('li').removeClass('active');\r
- tabBar.find('a[href=#' + slug + ']').parent().addClass('active');\r
- \r
- if(prevSlug)\r
- tabContent[prevSlug].detach();\r
- tabContent[slug].appendTo(view.find('#rng-tabsManager-content'));\r
- currentSlug = slug;\r
- }\r
- \r
- \r
- view.on('click', 'li a', function(e) {\r
- selectTab($(e.target).attr('href').substr(1));\r
+ var view = new tabsView.View();\r
+ view.on('leaving', function(slug) {\r
+ sandbox.publish('leaving', slug);\r
+ });\r
+ view.on('tabSelected', function(slug) {\r
+ sandbox.publish('showed', slug);\r
});\r
\r
return {\r
start: function() {\r
+ view.render();\r
sandbox.publish('ready');\r
},\r
\r
getView: function() {\r
- return view;\r
+ return view.$el;\r
},\r
\r
addTab: function(title, slug, contentView) {\r
- tabContent[slug] = contentView;\r
- view.find('#rng-tabsManager-tabBar').append(sandbox.getTemplate('tabHandle')({title: title, slug: slug}));\r
- if(_.values(tabContent).length === 1)\r
- selectTab(slug);\r
+ view.addTab(title, slug, contentView);\r
+ \r
},\r
getCurrentSlug: function() {\r
- return currentSlug;\r
+ return view.selectedTab;\r
}\r
}\r
+};\r
\r
-};
\ No newline at end of file
+});
\ No newline at end of file