You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by tv...@apache.org on 2012/02/15 23:41:58 UTC

svn commit: r1244772 - in /openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging: ./ js/tomee/ js/tomee/mock/ js/tomee/model/ js/tomee/view/

Author: tveronezi
Date: Wed Feb 15 22:41:58 2012
New Revision: 1244772

URL: http://svn.apache.org/viewvc?rev=1244772&view=rev
Log:
https://issues.apache.org/jira/browse/TOMEE-130

Preparing the javascript/html code for the new web interface. Once this initial code is ready, I will move the files under "staging" to a better location.

Added:
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/mock/
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/mock/test.json
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/TestModel.js
      - copied, changed from r1244526, openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationModel.js
Modified:
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/index.html
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/Application.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationChannel.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationController.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationI18N.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationModel.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationHomePanelBody.js
    openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationHomePanelTest.js

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/index.html
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/index.html?rev=1244772&r1=1244771&r2=1244772&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/index.html (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/index.html Wed Feb 15 22:41:58 2012
@@ -56,6 +56,8 @@
 <script src="js/tomee/ApplicationI18N.js"></script>
 <script src="js/tomee/ApplicationModel.js"></script>
 
+<script src="js/tomee/model/TestModel.js"></script>
+
 <script src="js/tomee/util/DelayedTask.js"></script>
 <script src="js/tomee/util/Sequence.js"></script>
 

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/Application.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/Application.js?rev=1244772&r1=1244771&r2=1244772&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/Application.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/Application.js Wed Feb 15 22:41:58 2012
@@ -40,4 +40,25 @@ TOMEE.log = {
             window.console.error(msg);
         }
     }
+};
+
+TOMEE.utils = {
+    getArray: function (obj) {
+        if (!obj) {
+            return [];
+        }
+
+        if (obj instanceof Array) {
+            return obj;
+        }
+
+        return [obj];
+    },
+
+    getObject: function (obj) {
+        if (!obj) {
+            return {};
+        }
+        return obj;
+    }
 };
\ No newline at end of file

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationChannel.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationChannel.js?rev=1244772&r1=1244771&r2=1244772&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationChannel.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationChannel.js Wed Feb 15 22:41:58 2012
@@ -26,7 +26,7 @@
  * In this application an example of that is the pagingToolChannel sending message to its parent.
  *
  */
-TOMEE.ApplicationChannel = function (initParams) {
+TOMEE.ApplicationChannel = function (cfg) {
     "use strict";
 
     var listeners = {};

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationController.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationController.js?rev=1244772&r1=1244771&r2=1244772&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationController.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationController.js Wed Feb 15 22:41:58 2012
@@ -28,12 +28,13 @@ TOMEE.ApplicationController = function (
     var channel = TOMEE.ApplicationChannel({});
 
     //this object handles all the data manipulation.
-    var model = TOMEE.ApplicationModel({
+    var testPanelModel = TOMEE.TestModel({
         channel: channel
     });
 
     var view = TOMEE.ApplicationView({
-        channel: channel
+        channel: channel,
+        testModel: testPanelModel
     });
 
     //The user clicked in one of the buttons in the application toolbar
@@ -48,15 +49,24 @@ TOMEE.ApplicationController = function (
         view.getHome().getBody().showPanel(menuKey);
     });
 
-    //a panel is about to be removed
-    //you have a chance to do some closure here
-    channel.bind('dying_panel', function (params) {
+    //a panel is about to be removed from the view
+    //you have a chance to do some closure here (stop Ajax calls, for example)
+    channel.bind('hiding_panel', function (params) {
         var panel = params.panel;
         //placeholder
     });
 
     view.render(function () {
         view.getHome().getMenu().selectMenu('test');
+        testPanelModel.load();
+    });
+
+    //"test" -> data loaded event
+    channel.bind('test_connection_exception', function (params) {
+
+    });
+    channel.bind('test_connection_new_data', function (params) {
+        view.getHome().getBody().loadData('test');
     });
 
     return {

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationI18N.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationI18N.js?rev=1244772&r1=1244771&r2=1244772&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationI18N.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationI18N.js Wed Feb 15 22:41:58 2012
@@ -34,6 +34,16 @@ TOMEE.ApplicationI18N = (function () {
         'app.home.menu.setup.test.testname': 'Test',
         'app.home.menu.setup.test.testsatus': 'Status',
 
+        'app.home.menu.setup.test.testname.key.homeSet': 'openejb.home is set',
+        'app.home.menu.setup.test.testname.key.homeExists': 'openejb.home exists',
+        'app.home.menu.setup.test.testname.key.homeDirectory': 'openejb.home is a directory',
+        'app.home.menu.setup.test.testname.key.libDirectory': 'has lib directory',
+
+        'app.home.menu.setup.test.testname.key.openEjbInstalled': 'Were the OpenEJB classes installed',
+        'app.home.menu.setup.test.testname.key.ejbsInstalled': 'Were the EJB classes installed',
+        'app.home.menu.setup.test.testname.key.openEjbStarted': 'Was OpenEJB initialized (aka started)',
+        'app.home.menu.setup.test.testname.key.testLookup': 'Performing a test lookup',
+
         'app.home.menu.tools': 'Tools',
 
         'app.home.menu.tools.jndi': 'JNDI Browser',

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationModel.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationModel.js?rev=1244772&r1=1244771&r2=1244772&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationModel.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationModel.js Wed Feb 15 22:41:58 2012
@@ -26,6 +26,26 @@ TOMEE.ApplicationModel = function (cfg) 
 
     var channel = cfg.channel;
 
+    /**
+     * Prepare internal values.
+     *
+     * @param data request json value
+     */
+    var prepareDataMethod = cfg.prepareDataMethod;
+    if(!prepareDataMethod) {
+        throw "You need to give me the prepareDataMethod";
+    }
+
+    var methodType = cfg.methodType;
+    if(!methodType) {
+        throw "You need to give me the methodType (GET, POST, PUT etc)";
+    }
+
+    var url = cfg.url;
+    if(!url) {
+        throw "You need to give me the url";
+    }
+
     //holder for all the request parameters.
     var requestParameters = {};
 
@@ -33,33 +53,6 @@ TOMEE.ApplicationModel = function (cfg) 
     //so we can cancel it if necessary
     var currentRequest = null;
 
-    var getArray = function (obj) {
-        if (!obj) {
-            return [];
-        }
-
-        if (obj instanceof Array) {
-            return obj;
-        }
-
-        return [obj];
-    };
-
-    var getObject = function (obj) {
-        if (!obj) {
-            return {};
-        }
-        return obj;
-    };
-
-    /**
-     * Prepare internal values.
-     *
-     * @param data request json value
-     */
-    var prepareData = function (data) {
-
-    };
 
     /**
      * Delayed task for the remote request.
@@ -73,13 +66,16 @@ TOMEE.ApplicationModel = function (cfg) 
 
             //start a new request
             currentRequest = $.ajax({
-                type: 'GET',
-                url: 'some.servlet',
+                type: methodType,
+                dataType: 'json',
+                data: requestParameters,
+                url: url,
                 success: function (data) {
-
+                    prepareDataMethod(data);
+                    channel.send('connection_new_data', {});
                 },
                 error: function (data) {
-
+                    channel.send('connection_exception', {});
                 }
             });
         }

Added: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/mock/test.json
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/mock/test.json?rev=1244772&view=auto
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/mock/test.json (added)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/mock/test.json Wed Feb 15 22:41:58 2012
@@ -0,0 +1,37 @@
+{
+    "tests": [
+        {
+            "key": "homeSet",
+            "success": true
+        },
+        {
+            "key": "homeExists",
+            "success": true
+        },
+        {
+            "key": "homeDirectory",
+            "success": true
+        },
+        {
+            "key": "libDirectory",
+            "success": false
+        },
+        {
+            "key": "openEjbInstalled",
+            "success": true
+        },
+        {
+            "key": "ejbsInstalled",
+            "success": true
+        },
+        {
+            "key": "openEjbStarted",
+            "success": true
+        },
+        {
+            "key": "testLookup",
+            "success": true
+        }
+    ]
+}
+

Copied: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/TestModel.js (from r1244526, openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationModel.js)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/TestModel.js?p2=openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/TestModel.js&p1=openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationModel.js&r1=1244526&r2=1244772&rev=1244772&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/ApplicationModel.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/model/TestModel.js Wed Feb 15 22:41:58 2012
@@ -21,86 +21,38 @@
  *
  * @param cfg
  */
-TOMEE.ApplicationModel = function (cfg) {
-    "use strict";
-
+TOMEE.TestModel = function (cfg) {
     var channel = cfg.channel;
 
-    //holder for all the request parameters.
-    var requestParameters = {};
-
-    //keep tracking of the current request
-    //so we can cancel it if necessary
-    var currentRequest = null;
-
-    var getArray = function (obj) {
-        if (!obj) {
-            return [];
-        }
-
-        if (obj instanceof Array) {
-            return obj;
-        }
-
-        return [obj];
-    };
-
-    var getObject = function (obj) {
-        if (!obj) {
-            return {};
-        }
-        return obj;
-    };
-
-    /**
-     * Prepare internal values.
-     *
-     * @param data request json value
-     */
-    var prepareData = function (data) {
+    var myData = null;
 
-    };
+    var myModel = (function () {
+        var myChannel = TOMEE.ApplicationChannel({});
 
-    /**
-     * Delayed task for the remote request.
-     */
-    var load = new TOMEE.DelayedTask({
-        callback: function () {
-            //if we already have a running request, cancel it.
-            if (currentRequest) {
-                currentRequest.abort();
+        myChannel.bind('connection_new_data', function (params) {
+            channel.send('test_connection_new_data', params);
+        });
+        myChannel.bind('connection_exception', function (params) {
+            channel.send('test_connection_exception', params);
+        });
+
+        return TOMEE.ApplicationModel({
+            methodType: 'GET',
+            url: 'js/tomee/mock/test.json',
+            channel: myChannel,
+            prepareDataMethod: function (data) {
+                myData = data;
             }
+        });
+    })();
 
-            //start a new request
-            currentRequest = $.ajax({
-                type: 'GET',
-                url: 'some.servlet',
-                success: function (data) {
-
-                },
-                error: function (data) {
-
-                }
-            });
-        }
-    });
-
-    var getRequestParameter = function (key) {
-        return requestParameters[key];
+    var iterateTestBeans = function (callback) {
+        $.each(myData.tests, function (i, bean) {
+            callback(bean);
+        });
     };
 
-    var setRequestParameter = function (key, value) {
-        requestParameters[key] = value;
-    };
-
-    return {
-        setRequestParameter: setRequestParameter,
-        getRequestParameter: getRequestParameter,
-        load: function () {
-            //wait 1 second before triggering this request
-            //the user may be still selecting his parameters
-            //the last calling thread will trigger the request
-            load.delay(1000);
-        }
-    };
+    return $.extend({}, {
+        iterateTestBeans: iterateTestBeans
+    }, myModel);
 };
\ No newline at end of file

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationHomePanelBody.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationHomePanelBody.js?rev=1244772&r1=1244771&r2=1244772&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationHomePanelBody.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationHomePanelBody.js Wed Feb 15 22:41:58 2012
@@ -24,36 +24,41 @@ TOMEE.ApplicationHomePanelBody = functio
     var myBody = $('<div class="span9"/>');
 
     var currentPanel = null;
-    var constructors = {
-        'test': function () {
-            return TOMEE.ApplicationHomePanelTest(cfg);
-        },
-        'jndi': function () {
+    var myPanels = {
+        'test': (function () {
+            return TOMEE.ApplicationHomePanelTest({
+                model: cfg.testModel
+            });
+        })(),
+
+        'jndi': (function () {
             return TOMEE.ApplicationHomePanelJndi(cfg);
-        },
-        'ejb': function () {
+        })(),
+
+        'ejb': (function () {
             return TOMEE.ApplicationHomePanelEJB(cfg);
-        },
-        'class': function () {
+        })(),
+
+        'class': (function () {
             return TOMEE.ApplicationHomePanelClass(cfg);
-        },
-        'obj': function () {
+        })(),
+
+        'obj': (function () {
             return TOMEE.ApplicationHomePanelInvoker(cfg);
-        }
+        })()
     };
 
     var showPanel = function (key) {
         if (currentPanel) {
-            channel.send('dying_panel', {
+            channel.send('hiding_panel', {
                 panel: currentPanel
             });
             currentPanel = null;
         }
         myBody.empty();
 
-        var innerConstructor = constructors[key];
-        if (innerConstructor) {
-            currentPanel = innerConstructor();
+        var currentPanel = myPanels[key];
+        if (currentPanel) {
             myBody.append(currentPanel.getEl());
         } else {
             var tpl = [
@@ -65,10 +70,19 @@ TOMEE.ApplicationHomePanelBody = functio
         }
     };
 
+    var loadData = function (panelKey) {
+        var currentPanel = myPanels[panelKey];
+        if (!currentPanel || !currentPanel.loadData) {
+            return;
+        }
+        currentPanel.loadData();
+    };
+
     return {
         getEl: function () {
             return myBody;
         },
-        showPanel: showPanel
+        showPanel: showPanel,
+        loadData: loadData
     };
 };
\ No newline at end of file

Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationHomePanelTest.js
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationHomePanelTest.js?rev=1244772&r1=1244771&r2=1244772&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationHomePanelTest.js (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/webapp/staging/js/tomee/view/ApplicationHomePanelTest.js Wed Feb 15 22:41:58 2012
@@ -20,7 +20,7 @@ TOMEE.ApplicationHomePanelTest = functio
     "use strict";
 
     var channel = cfg.channel;
-
+    var model = cfg.model;
 
     var elements = (function () {
         var tbodyUid = TOMEE.Sequence.next();
@@ -58,14 +58,14 @@ TOMEE.ApplicationHomePanelTest = functio
         var row = [
             '        <tr>',
             '            <td>' + index + '</td>',
-            '            <td>' + TOMEE.ApplicationI18N.get('app.home.menu.setup.test.testname.' + bean['key']) + '</td>',
-            '            <td>' + bean['status'] + '</td>',
+            '            <td>' + TOMEE.ApplicationI18N.get('app.home.menu.setup.test.testname.key.' + bean['key']) + '</td>',
+            '            <td>' + bean['success'] + '</td>',
             '        </tr>'
         ].join('');
         elements.tbody.append($(row));
     };
 
-    var loadData = function (params) {
+    var loadData = function () {
         //remove the current rows if any
         elements.tbody.empty();
 
@@ -73,7 +73,7 @@ TOMEE.ApplicationHomePanelTest = functio
 
         //The user should give a "getData" method that iterates over
         //the objects that will be used to populate the grid
-        params.getData(function (bean) {
+        model.iterateTestBeans(function (bean) {
             addRow(index, bean);
             index = index + 1;
         });
@@ -82,6 +82,7 @@ TOMEE.ApplicationHomePanelTest = functio
     return {
         getEl: function () {
             return elements.all;
-        }
+        },
+        loadData: loadData
     };
 };
\ No newline at end of file