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