Visual editor wip: tabsManager modules uses tabs view
[fnpeditor.git] / modules / tabsManager.js
index a204858..70058a9 100644 (file)
@@ -1,61 +1,33 @@
-define(function() {\r
+define(['views/tabs/tabs'], function(tabsView) {\r
 \r
 return function(sandbox) {\r
-\r
-    var $ = 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
+    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
-    \r
-    view.on('click', '#rng-tabsManager-tabBar li a', function(e) {\r
-        selectTab($(e.target).attr('href').substr(1));\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
 \r
 });
\ No newline at end of file