Refactorization
[fnpeditor.git] / modules / tabsManager.js
index cec88dc..4103887 100644 (file)
@@ -3,7 +3,7 @@ rng.modules.tabsManager = function(sandbox) {
     var $ = sandbox.$;\r
     \r
     var view = $(sandbox.getTemplate('main')());\r
-    \r
+    var currentSlug;\r
     var tabContent = {};\r
     \r
     function selectTab(slug) {\r
@@ -14,16 +14,21 @@ rng.modules.tabsManager = function(sandbox) {
         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
-    \r
     view.on('click', 'li a', function(e) {\r
         selectTab($(e.target).attr('href').substr(1));\r
     });\r
@@ -42,6 +47,9 @@ rng.modules.tabsManager = function(sandbox) {
             view.find('#rng-tabsManager-tabBar').append(sandbox.getTemplate('tabHandle')({title: title, slug: slug}));\r
             if(_.values(tabContent).length === 1)\r
                 selectTab(slug);\r
+        },\r
+        getCurrentSlug: function() {\r
+            return currentSlug;\r
         }\r
     }\r
 \r