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 2014/02/21 02:45:31 UTC
svn commit: r1570413 - in /tomee/tomee/trunk/tomee/tomee-webaccess/src/main:
groovy/org/apache/tomee/webaccess/service/ webapp/app/ webapp/app/js/
webapp/app/js/templates/ webapp/app/js/view/
Author: tveronezi
Date: Fri Feb 21 01:45:30 2014
New Revision: 1570413
URL: http://svn.apache.org/r1570413
Log:
https://issues.apache.org/jira/browse/TOMEE-1129
WebAccess contexts panels - frontend
Added:
tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates/contexts.handlebars
Modified:
tomee/tomee/trunk/tomee/tomee-webaccess/src/main/groovy/org/apache/tomee/webaccess/service/ContextsServiceImpl.groovy
tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/app.less
tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/application.js
tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/i18n.js
tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates.js
tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates/sessions.handlebars
tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/view/sessions.js
Modified: tomee/tomee/trunk/tomee/tomee-webaccess/src/main/groovy/org/apache/tomee/webaccess/service/ContextsServiceImpl.groovy
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-webaccess/src/main/groovy/org/apache/tomee/webaccess/service/ContextsServiceImpl.groovy?rev=1570413&r1=1570412&r2=1570413&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-webaccess/src/main/groovy/org/apache/tomee/webaccess/service/ContextsServiceImpl.groovy (original)
+++ tomee/tomee/trunk/tomee/tomee-webaccess/src/main/groovy/org/apache/tomee/webaccess/service/ContextsServiceImpl.groovy Fri Feb 21 01:45:30 2014
@@ -98,6 +98,9 @@ class ContextsServiceImpl {
def server = ManagementFactory.platformMBeanServer
server.queryNames(null, null)*.toString().findAll({
it.startsWith('Catalina:j2eeType=WebModule') || it.startsWith('Tomcat:j2eeType=WebModule')
+ }).findAll({
+ def name = new ObjectName(it)
+ server.getAttribute(name, 'stateName') != 'STOPPED'
}).collect({
def name = new ObjectName(it)
def docBase = server.getAttribute(name, 'docBase') ?: ''
@@ -121,10 +124,10 @@ class ContextsServiceImpl {
if (name) {
def originalDocBase = server.getAttribute(name, 'originalDocBase') ?: ''
if (originalDocBase) {
+ // stop the application first
+ server.invoke(name, 'stop', null, null)
def docBase = new File(originalDocBase as String)
if (docBase.isDirectory()) {
- // stop the application first
- server.invoke(name, 'stop', null, null)
// then remove the directory
docBase.deleteDir()
} else {
Modified: tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/app.less
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/app.less?rev=1570413&r1=1570412&r2=1570413&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/app.less (original)
+++ tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/app.less Fri Feb 21 01:45:30 2014
@@ -53,6 +53,24 @@ body {
right: 0;
overflow: auto;
}
+
+ .ux-sessions-panel {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 300px;
+ margin-bottom: 0;
+ }
+
+ .ux-contexts-panel {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 295px;
+ right: 0;
+ margin-bottom: 0;
+ }
}
.ux-logfile-output {
@@ -76,7 +94,6 @@ body {
border: 0;
margin: 0;
background-color: white;
- border: 0;
border-radius: 0;
overflow: auto;
width: 2000px;
@@ -103,7 +120,6 @@ body {
border: 0;
margin: 0;
background-color: white;
- border: 0;
border-radius: 0;
overflow: auto;
width: 2000px;
Modified: tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/application.js
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/application.js?rev=1570413&r1=1570412&r2=1570413&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/application.js (original)
+++ tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/application.js Fri Feb 21 01:45:30 2014
@@ -61,6 +61,17 @@
});
}
});
+ $.ajax({
+ url: window.ux.ROOT_URL + 'rest/context',
+ method: 'GET',
+ dataType: 'json',
+ data: {},
+ success: function (data) {
+ sessionsView.render({
+ contexts: data.contextResultDto
+ });
+ }
+ });
},
showScripting: function (scriptType) {
@@ -97,6 +108,19 @@
});
});
+
+ sessionsView.on('kill-context', function (data) {
+ $.ajax({
+ url: window.ux.ROOT_URL + 'rest/context/' + data.basename + '/',
+ method: 'DELETE',
+ dataType: 'json',
+ data: {},
+ success: function (data) {
+ router.showSessions();
+ }
+ });
+ });
+
scriptingView.on('execute-action', function (data) {
$.ajax({
url: window.ux.ROOT_URL + 'rest/scripting/',
Modified: tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/i18n.js
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/i18n.js?rev=1570413&r1=1570412&r2=1570413&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/i18n.js (original)
+++ tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/i18n.js Fri Feb 21 01:45:30 2014
@@ -42,7 +42,8 @@ define(['lib/underscore', 'lib/handlebar
'session.expiration.date': 'Expire',
'scripting.user.realm': 'Realm Name',
'scripting.user.name': 'User name',
- 'scripting.user.password': 'User password'
+ 'scripting.user.password': 'User password',
+ 'contexts': 'Contexts'
};
underscore.each(underscore.keys(messages), function (key) {
Modified: tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates.js
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates.js?rev=1570413&r1=1570412&r2=1570413&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates.js (original)
+++ tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates.js Fri Feb 21 01:45:30 2014
@@ -29,7 +29,8 @@
'scripting-user',
'logfiles',
'logfile-link',
- 'sessions'
+ 'sessions',
+ 'contexts'
];
function loop(values, callback) {
Added: tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates/contexts.handlebars
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates/contexts.handlebars?rev=1570413&view=auto
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates/contexts.handlebars (added)
+++ tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates/contexts.handlebars Fri Feb 21 01:45:30 2014
@@ -0,0 +1,21 @@
+<div class="ux-contexts-panel panel panel-default">
+ <div class="panel-heading">
+ <h3 class="panel-title">{{i18n "contexts"}}</h3>
+ </div>
+ <div class="panel-body">
+ <table class="table table-striped">
+ <tbody>
+ {{#each contexts}}
+ <tr>
+ <td>{{this.baseName}}</td>
+ <td>
+ <a class="ux-kill-context-btn" href="kill">
+ <span data-context-basename="{{this.baseName}}" class="glyphicon glyphicon-trash"></span>
+ </a>
+ </td>
+ </tr>
+ {{/each}}
+ </tbody>
+ </table>
+ </div>
+</div>
Modified: tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates/sessions.handlebars
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates/sessions.handlebars?rev=1570413&r1=1570412&r2=1570413&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates/sessions.handlebars (original)
+++ tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/templates/sessions.handlebars Fri Feb 21 01:45:30 2014
@@ -1,34 +1,36 @@
-<div class="panel-heading">
- <h3 class="panel-title">{{i18n "sessions"}}</h3>
-</div>
-<div class="panel-body">
- <table class="table table-striped">
- <thead>
- <tr>
- <th>{{i18n "session.id"}}</th>
- <th>{{i18n "session.context"}}</th>
- <th>{{i18n "session.creation.date"}}</th>
- <th>{{i18n "session.last.access"}}</th>
- <th>{{i18n "session.expiration.date"}}</th>
- <th></th>
- </tr>
- </thead>
- <tbody>
- {{#each sessions}}
- <tr>
- <td>{{this.sessionId}}</td>
- <td>{{this.context}}</td>
- <td>{{timeStampToDate this.creationTs}}</td>
- <td>{{timeStampToDate this.lastAccessTs}}</td>
- <td>{{timeStampToDate this.expirationTs}}</td>
- <td>
- <a class="ux-expire-btn" href="expire">
+<div class="ux-sessions-panel panel panel-default">
+ <div class="panel-heading">
+ <h3 class="panel-title">{{i18n "sessions"}}</h3>
+ </div>
+ <div class="panel-body">
+ <table class="table table-striped">
+ <thead>
+ <tr>
+ <th>{{i18n "session.id"}}</th>
+ <th>{{i18n "session.context"}}</th>
+ <th>{{i18n "session.creation.date"}}</th>
+ <th>{{i18n "session.last.access"}}</th>
+ <th>{{i18n "session.expiration.date"}}</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ {{#each sessions}}
+ <tr>
+ <td>{{this.sessionId}}</td>
+ <td>{{this.context}}</td>
+ <td>{{timeStampToDate this.creationTs}}</td>
+ <td>{{timeStampToDate this.lastAccessTs}}</td>
+ <td>{{timeStampToDate this.expirationTs}}</td>
+ <td>
+ <a class="ux-expire-btn" href="expire">
<span data-session-id="{{this.sessionId}}" data-context-id="{{this.context}}"
class="glyphicon glyphicon-trash"></span>
- </a>
- </td>
- </tr>
- {{/each}}
- </tbody>
- </table>
+ </a>
+ </td>
+ </tr>
+ {{/each}}
+ </tbody>
+ </table>
+ </div>
</div>
\ No newline at end of file
Modified: tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/view/sessions.js
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/view/sessions.js?rev=1570413&r1=1570412&r2=1570413&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/view/sessions.js (original)
+++ tomee/tomee/trunk/tomee/tomee-webaccess/src/main/webapp/app/js/view/sessions.js Fri Feb 21 01:45:30 2014
@@ -24,7 +24,7 @@
var View = Backbone.View.extend({
tagName: 'div',
- className: 'ux-dashboard panel panel-default',
+ className: 'ux-dashboard',
events: {
'click .ux-refresh-btn': function (evt) {
evt.preventDefault();
@@ -32,23 +32,37 @@
me.trigger('refresh-sessions', {});
},
'click .ux-expire-btn': function (evt) {
- // TRICK to avoid full page reload.
- evt.preventDefault();
+ evt.preventDefault(); // TRICK to avoid full page reload.
var myLink = $(evt.target);
this.trigger('expire-session', {
sessionId: myLink.attr('data-session-id'),
context: myLink.attr('data-context-id')
});
+ },
+ 'click .ux-kill-context-btn': function (evt) {
+ evt.preventDefault(); // TRICK to avoid full page reload.
+ var myLink = $(evt.target);
+ this.trigger('kill-context', {
+ basename: myLink.attr('data-context-basename')
+ });
}
},
- render: function (data) {
+ renderSubPanel: function (data, name) {
+ if (!data || !data[name]) {
+ return; // no-op
+ }
var me = this;
- me.$el.empty();
+ me.$el.find('.ux-' + name + '-panel').remove();
var tplValues = {};
if (data) {
tplValues = data;
}
- me.$el.append(templates.getValue('sessions', tplValues));
+ me.$el.append(templates.getValue(name, tplValues));
+ },
+ render: function (data) {
+ var me = this;
+ me.renderSubPanel(data, 'sessions');
+ me.renderSubPanel(data, 'contexts');
return me;
}
});