Author: tveronezi
Date: Sat Oct 20 14:11:19 2012
New Revision: 1400456

URL: http://svn.apache.org/viewvc?rev=1400456&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-488
Reload inner panels only when they are active.

Modified:
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-console.handlebars
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/console.js
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/jndi.js
    
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/webservices.js

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-console.handlebars
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-console.handlebars?rev=1400456&r1=1400455&r2=1400456&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-console.handlebars
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/templates/application-tab-console.handlebars
 Sat Oct 20 14:11:19 2012
@@ -4,14 +4,14 @@
     <div class="tomee-code"></div>
     <div class="navbar navbar-inverse bbar">
         <div class="navbar-inner">
-            <div class="btn-group dropup tomee-execute-webservices-group">
+            <div class="btn-group dropup tomee-execute-webservices-group" 
tab-name="webservices">
                 <a class="btn dropdown-toggle tomee-execute-webservices-btn" 
href="#">
                     {{i18n "application.webservices"}}
                     <span class="caret"></span>
                 </a>
                 <div class="dropdown-menu webservices-div"></div>
             </div>
-            <div class="btn-group dropup tomee-execute-jndi-group">
+            <div class="btn-group dropup tomee-execute-jndi-group" 
tab-name="jndi">
                 <a class="btn dropdown-toggle tomee-execute-jndi-btn" href="#">
                     {{i18n "application.jndi"}}
                     <span class="caret"></span>

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/console.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/console.js?rev=1400456&r1=1400455&r2=1400456&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/console.js
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/console.js
 Sat Oct 20 14:11:19 2012
@@ -21,24 +21,41 @@ TOMEE.ApplicationTabConsole = function (
 
     var channel = TOMEE.ApplicationChannel,
         container = 
$(TOMEE.ApplicationTemplates.getValue('application-tab-console', {})),
-        webservices = TOMEE.ApplicationTabWebservices(),
-        jndi = TOMEE.ApplicationTabJndi(),
+        innerPanels = {
+            webservices:TOMEE.ApplicationTabWebservices(),
+            jndi:TOMEE.ApplicationTabJndi()
+        },
+
         codeArea = null,
         active = false,
         delayedContainerResize = TOMEE.DelayedTask();
 
-    container.find('.webservices-div').append(webservices.getEl());
-    container.find('.jndi-div').append(jndi.getEl());
+    container.find('.webservices-div').append(innerPanels.webservices.getEl());
+    container.find('.jndi-div').append(innerPanels.jndi.getEl());
 
     container.find('.dropdown-toggle').on('click', function (ev) {
         var button = $(ev.currentTarget),
+            customAttr = 'tab-name',
             group = button.parent('.btn-group'),
-            isOpened = group.hasClass('open');
+            tab = group.attr(customAttr);
+
+        container.find('.btn-group').each(function(index, grpHtmlEl) {
+            var grpEl = $(grpHtmlEl),
+                grpTabName = grpEl.attr(customAttr);
+            if(tab === grpTabName) {
+                return;
+            }
+            innerPanels[grpTabName].onDetach();
+            grpEl.removeClass('open');
+        });
 
-        container.find('.btn-group').removeClass('open');
 
-        if (!isOpened) {
+        if (group.hasClass('open')) {
+            group.removeClass('open');
+            innerPanels[tab].onDetach();
+        } else {
             group.addClass('open');
+            innerPanels[tab].onAppend();
         }
     });
 

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/jndi.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/jndi.js?rev=1400456&r1=1400455&r2=1400456&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/jndi.js
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/jndi.js
 Sat Oct 20 14:11:19 2012
@@ -20,7 +20,8 @@ TOMEE.ApplicationTabJndi = function () {
     "use strict";
 
     var channel = TOMEE.ApplicationChannel,
-        container = 
$(TOMEE.ApplicationTemplates.getValue('application-tab-jndi', {}));
+        container = 
$(TOMEE.ApplicationTemplates.getValue('application-tab-jndi', {})),
+        active = false;
 
     channel.bind('ui-actions', 'window-F5-pressed', function () {
         triggerRefresh();
@@ -36,12 +37,22 @@ TOMEE.ApplicationTabJndi = function () {
     });
 
     function triggerRefresh() {
+        if(!active) {
+            return;
+        }
         channel.send('ui-actions', 'reload-jndi-table', {});
     }
 
     return {
         getEl:function () {
             return container;
+        },
+        onAppend:function () {
+            active = true;
+            triggerRefresh();
+        },
+        onDetach:function () {
+            active = false;
         }
     };
 };
\ No newline at end of file

Modified: 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/webservices.js
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/webservices.js?rev=1400456&r1=1400455&r2=1400456&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/webservices.js
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/app/js/view/panels/webservices.js
 Sat Oct 20 14:11:19 2012
@@ -20,7 +20,8 @@ TOMEE.ApplicationTabWebservices = functi
     "use strict";
 
     var channel = TOMEE.ApplicationChannel,
-        container = 
$(TOMEE.ApplicationTemplates.getValue('application-tab-webservices', {}));
+        container = 
$(TOMEE.ApplicationTemplates.getValue('application-tab-webservices', {})),
+        active = false;
 
     channel.bind('ui-actions', 'window-F5-pressed', function () {
         triggerRefresh();
@@ -64,12 +65,22 @@ TOMEE.ApplicationTabWebservices = functi
     }
 
     function triggerRefresh() {
+        if(!active) {
+            return;
+        }
         channel.send('ui-actions', 'reload-webservices-table', {});
     }
 
     return {
         getEl:function () {
             return container;
+        },
+        onAppend:function () {
+            active = true;
+            triggerRefresh();
+        },
+        onDetach:function () {
+            active = false;
         }
     };
 };
\ No newline at end of file


Reply via email to