Two tabs working
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 8 Apr 2013 11:57:34 +0000 (13:57 +0200)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Mon, 8 Apr 2013 11:57:34 +0000 (13:57 +0200)
modules/rng.js
modules/sourceEditor.js
modules/tabsManager.js
modules/visualEditor.js

index 0d40c2e..98b4619 100644 (file)
@@ -1,7 +1,7 @@
 rng.modules.rng = function(sandbox) {\r
 \r
-    function addTab(title, view) {\r
-        sandbox.getModule('tabsModule').addTab(title, view);\r
+    function addTab(title, slug, view) {\r
+        sandbox.getModule('tabsManager').addTab(title, slug, view);\r
     }\r
     \r
     /* Events handling */\r
@@ -25,7 +25,13 @@ rng.modules.rng = function(sandbox) {
     \r
     eventHandlers.sourceEditor = {\r
         ready: function() {\r
-            addTab('Source', sandbox.getModule('sourceEditor').getView());\r
+            addTab('Source', 'source',  sandbox.getModule('sourceEditor').getView());\r
+        }\r
+    };\r
+    \r
+    eventHandlers.visualEditor = {\r
+        ready: function() {\r
+            addTab('Visual', 'visual', sandbox.getModule('visualEditor').getView());\r
         }\r
     };\r
     \r
index 59b663e..ea84ee3 100644 (file)
@@ -2,6 +2,10 @@ rng.modules.sourceEditor = function(sandbox) {
 \r
     return {\r
         start: function() {\r
+            sandbox.publish('ready');\r
+        },\r
+        getView: function() {\r
+            return $('<p>source editor</p>');\r
         }\r
     \r
     }\r
index a57a47e..cec88dc 100644 (file)
@@ -6,16 +6,25 @@ rng.modules.tabsManager = function(sandbox) {
     \r
     var tabContent = {};\r
     \r
-    function selectTab(tabCode) {\r
-        var tabBar = $(view, '#rng-main-tabs');\r
-        var prevTabCode = tabBar.find('li.active a').attr('href').substr(1);\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
         tabBar.find('li').removeClass('active');\r
-        tabBar.find('a[href=#' + tabCode + ']').parent().addClass('active');\r
-        $(view, '.rng-tab-content').hide();\r
-        $(view, '#rng-tab-content-' + tabCode).show();\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
     }\r
+       \r
+    \r
     \r
-    $('#rng-main-tabs li a').click(function(e) {\r
+    view.on('click', 'li a', function(e) {\r
         selectTab($(e.target).attr('href').substr(1));\r
     });\r
     \r
@@ -28,8 +37,11 @@ rng.modules.tabsManager = function(sandbox) {
             return view;\r
         },\r
         \r
-        addTab: function(title, view) {\r
-            tabContent[title] = view;\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
         }\r
     }\r
 \r
index 29506a5..e53bfbf 100644 (file)
@@ -2,6 +2,10 @@ rng.modules.visualEditor = function(sandbox) {
 \r
     return {\r
         start: function() {\r
+            sandbox.publish('ready');\r
+        },\r
+        getView: function() {\r
+            return $('<p>visual editor</p>');\r
         }\r
     \r
     }\r