You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2013/09/25 16:12:28 UTC
svn commit: r1526182 - in
/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources:
./ js/qpid/common/grid/ js/qpid/management/ js/qpid/management/logs/
Author: orudyy
Date: Wed Sep 25 14:12:28 2013
New Revision: 1526182
URL: http://svn.apache.org/r1526182
Log:
QPID-5138: Convert the time displayed in log viewer, message viewer, etc into user prefered timezone
Added:
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
Modified:
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/GridUpdater.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logs/LogFileDownloadDialog.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logs/LogViewer.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/showMessage.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferences.html
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/GridUpdater.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/GridUpdater.js?rev=1526182&r1=1526181&r2=1526182&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/GridUpdater.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/grid/GridUpdater.js Wed Sep 25 14:12:28 2013
@@ -40,6 +40,7 @@ define(["dojo/_base/xhr",
this.serviceUrl = args.serviceUrl;
this.onUpdate = args.onUpdate;
+ this.dataTransformer = args.dataTransformer;
this.appendData = args.append;
this.appendLimit = args.appendLimit;
@@ -122,6 +123,10 @@ define(["dojo/_base/xhr",
function processData(data)
{
+ if (self.dataTransformer)
+ {
+ data = self.dataTransformer(data);
+ }
var dataSet = false;
if (!store)
{
@@ -197,6 +202,10 @@ define(["dojo/_base/xhr",
GridUpdater.prototype.refresh = function(data)
{
+ if (this.dataTransformer && data)
+ {
+ data = this.dataTransformer(data);
+ }
this.updating = true;
try
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js?rev=1526182&r1=1526181&r2=1526182&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Preferences.js Wed Sep 25 14:12:28 2013
@@ -34,6 +34,7 @@ define([
"qpid/common/TimeZoneSelector",
"dojo/text!../../showPreferences.html",
"qpid/common/util",
+ "qpid/management/UserPreferences",
"dijit/Dialog",
"dijit/form/NumberSpinner",
"dijit/form/CheckBox",
@@ -43,26 +44,26 @@ define([
"dijit/form/DropDownButton",
"dijit/form/Button",
"dijit/form/Form",
+ "dijit/layout/BorderContainer",
"dijit/layout/TabContainer",
"dijit/layout/ContentPane",
"dojox/grid/EnhancedGrid",
"dojox/validate/us",
"dojox/validate/web",
"dojo/domReady!"],
-function (declare, xhr, event, connect, dom, domConstruct, parser, json, Memory, ObjectStore, entities, registry, TimeZoneSelector, markup, util) {
+function (declare, xhr, event, connect, dom, domConstruct, parser, json, Memory, ObjectStore, entities, registry, TimeZoneSelector, markup, util, UserPreferences) {
- var preferenceNames = ["timeZone", "updatePeriod", "saveTabs"];
+ var preferenceNames = ["timeZone", "updatePeriod"];
return declare("qpid.management.Preferences", null, {
preferencesDialog: null,
- saveButton: null,
- cancelButton: null,
constructor: function()
{
var that = this;
+ this.userPreferences = {};
this.domNode = domConstruct.create("div", {innerHTML: markup});
this.preferencesDialog = parser.parse(this.domNode)[0];
@@ -72,82 +73,38 @@ function (declare, xhr, event, connect,
this[name] = registry.byId("preferences." + name);
}
- this.saveButton = registry.byId("preferences.saveButton");
- this.cancelButton = registry.byId("preferences.cancelButton");
+ this.setButton = registry.byId("preferences.setButton");
+ this.setAndCloseButton = registry.byId("preferences.setAndCloseButton");
+ this.setButton.on("click", function(e){that._savePreferences(e, false)});
+ this.setAndCloseButton.on("click", function(e){that._savePreferences(e, true)});
this.theForm = registry.byId("preferences.preferencesForm");
- this.users = registry.byId("preferences.users");
- this.users.set("structure", [ { name: "User", field: "name", width: "50%"},
+ this.usersGrid = registry.byId("preferences.users");
+ this.usersGrid.set("structure", [ { name: "User", field: "name", width: "50%"},
{ name: "Authentication Provider", field: "authenticationProvider", width: "50%"}]);
- this.cancelButton.on("click", function(){that.preferencesDialog.hide();});
- this.deletePreferencesButton = registry.byId("preferences.deletePreeferencesButton");
- this.deletePreferencesButton.on("click", function(){
- if (util.deleteGridSelections(
- null,
- that.users,
- "rest/userpreferences",
- "Are you sure you want to delete preferences for user",
- "user"))
- {
- that._updateUsersWithPreferences();
- }
- });
+ this.deleteButton = registry.byId("preferences.deleteButton");
+ this.deleteAndCloseButton = registry.byId("preferences.deleteAndCloseButton");
+ this.deleteButton.on("click", function(e){that._deletePreferences(false)});
+ this.deleteAndCloseButton.on("click", function(e){that._deletePreferences(true)});
+
var deletePreferencesButtonToggler = function(rowIndex){
- var data = that.users.selection.getSelected();
- that.deletePreferencesButton.set("disabled",!data.length );
+ var data = that.usersGrid.selection.getSelected();
+ that.deleteButton.set("disabled",!data.length );
+ that.deleteAndCloseButton.set("disabled",!data.length );
};
- connect.connect(this.users.selection, 'onSelected', deletePreferencesButtonToggler);
- connect.connect(this.users.selection, 'onDeselected', deletePreferencesButtonToggler);
- this.theForm.on("submit", function(e){
- event.stop(e);
- if(that.theForm.validate()){
- var preferences = {};
- for(var i=0; i<preferenceNames.length; i++)
- {
- var name = preferenceNames[i];
- var preferenceWidget = that[name];
- if (preferenceWidget)
- {
- preferences[name] = preferenceWidget.get("value");
- }
- }
- xhr.post({
- url: "rest/preferences",
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- postData: json.stringify(preferences),
- load: function(x) {that.success = true; },
- error: function(error) {that.success = false; that.failureReason = error;}
- });
- if(that.success === true)
- {
- that.preferencesDialog.hide();
- }
- else
- {
- alert("Error:" + that.failureReason);
- }
- }
- return false;
- });
+ connect.connect(this.usersGrid.selection, 'onSelected', deletePreferencesButtonToggler);
+ connect.connect(this.usersGrid.selection, 'onDeselected', deletePreferencesButtonToggler);
+ this.theForm.on("submit", function(e){event.stop(e); return false;});
+
+ this._setValues();
+
+ deletePreferencesButtonToggler();
this.preferencesDialog.startup();
},
showDialog: function(){
- var that = this;
- xhr.get({
- url: "rest/preferences",
- sync: true,
- handleAs: "json",
- load: function(data) {
- that._updatePreferencesWidgets(data);
- that._updateUsersWithPreferences();
- that.preferencesDialog.show();
- },
- error: function(error){
- alert("Cannot load user preferences : " + error);
- }
- });
+ this._setValues();
+ this._loadUserPreferences();
+ this.preferencesDialog.show();
},
destroy: function()
@@ -159,24 +116,113 @@ function (declare, xhr, event, connect,
}
},
- _updatePreferencesWidgets: function(data)
+ _savePreferences: function(e, hideDialog)
{
- for(var i=0; i<preferenceNames.length; i++)
+ var that =this;
+ event.stop(e);
+ if(this.theForm.validate()){
+ var preferences = {};
+ for(var i=0; i<preferenceNames.length; i++)
+ {
+ var name = preferenceNames[i];
+ var preferenceWidget = this[name];
+ if (preferenceWidget)
+ {
+ preferences[name] = preferenceWidget.hasOwnProperty("checked") ? preferenceWidget.checked : preferenceWidget.get("value");
+ }
+ }
+
+ UserPreferences.setPreferences(
+ preferences,
+ function(preferences)
+ {
+ success = true;
+ if (hideDialog)
+ {
+ that.preferencesDialog.hide();
+ }
+ else
+ {
+ var reloadUsers = true;
+ if (that.users)
+ {
+ var authenticatedUser = dom.byId("authenticatedUser").innerHTML;
+ for(var i=0; i<that.users.length; i++)
+ {
+ if (that.users[i].name == authenticatedUser)
+ {
+ reloadUsers = false;
+ break;
+ }
+ }
+ }
+ if (reloadUsers)
+ {
+ that._loadUserPreferences();
+ }
+ alert("Preferences stored successfully");
+ }
+ },
+ function(error){alert("Error:" + error);}
+ );
+ }
+ },
+
+ _deletePreferences: function(hideDialog){
+ var data = this.usersGrid.selection.getSelected();
+ if (util.deleteGridSelections(
+ null,
+ this.usersGrid,
+ "rest/userpreferences",
+ "Are you sure you want to delete preferences for user",
+ "user"))
+ {
+ this._loadUserPreferences();
+ var authenticatedUser = dom.byId("authenticatedUser").innerHTML;
+ for(i = 0; i<data.length; i++)
+ {
+ if (data[i].name == authenticatedUser)
+ {
+ UserPreferences.resetPreferences();
+ this._setValues();
+ break;
+ }
+ }
+ if (hideDialog)
+ {
+ this.preferencesDialog.hide();
+ }
+ }
+ },
+
+ _setValues: function()
+ {
+ for(var i = 0; i < preferenceNames.length; i++)
{
- var preference = preferenceNames[i];
- if (this.hasOwnProperty(preference))
+ var name = preferenceNames[i];
+ var preferenceWidget = this[name];
+ if (preferenceWidget)
{
- var value = data ? data[preference] : null;
+ var value = UserPreferences[name]
if (typeof value == "string")
{
value = entities.encode(String(value))
}
- this[preference].set("value", value);
+ if (!value && name == "updatePeriod")
+ {
+ // set to default
+ value = 5;
+ }
+ preferenceWidget.set("value", value);
+ if (preferenceWidget.hasOwnProperty("checked"))
+ {
+ preferenceWidget.set("checked", UserPreferences[name] ? true : false);
+ }
}
}
},
- _updateUsersWithPreferences: function()
+ _loadUserPreferences : function()
{
var that = this;
xhr.get({
@@ -189,14 +235,15 @@ function (declare, xhr, event, connect,
{
users[i].id = users[i].authenticationProvider + "/" + users[i].name;
}
+ that.users = users;
var usersStore = new Memory({data: users, idProperty: "id"});
var usersDataStore = new ObjectStore({objectStore: usersStore});
- if (that.users.store)
+ if (that.usersGrid.store)
{
- that.users.store.close();
+ that.usersGrid.store.close();
}
- that.users.set("store", usersDataStore);
- that.users._refresh();
+ that.usersGrid.set("store", usersDataStore);
+ that.usersGrid._refresh();
});
}
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js?rev=1526182&r1=1526181&r2=1526182&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js Wed Sep 25 14:12:28 2013
@@ -33,6 +33,7 @@ define(["dojo/_base/xhr",
"qpid/management/addBinding",
"qpid/management/moveCopyMessages",
"qpid/management/showMessage",
+ "qpid/management/UserPreferences",
"dojo/store/JsonRest",
"dojox/grid/EnhancedGrid",
"dojo/data/ObjectStore",
@@ -41,7 +42,7 @@ define(["dojo/_base/xhr",
"dojox/grid/enhanced/plugins/IndirectSelection",
"dojo/domReady!"],
function (xhr, parser, query, registry, connect, event, json, properties, updater, util, formatter,
- UpdatableStore, addBinding, moveMessages, showMessage, JsonRest, EnhancedGrid, ObjectStore, entities) {
+ UpdatableStore, addBinding, moveMessages, showMessage, UserPreferences, JsonRest, EnhancedGrid, ObjectStore, entities) {
function Queue(name, parent, controller) {
this.name = name;
@@ -98,10 +99,7 @@ define(["dojo/_base/xhr",
{name:"Arrival", field:"arrivalTime", width: "100%",
formatter: function(val) {
- var d = new Date(0);
- d.setUTCSeconds(val/1000);
-
- return d.toLocaleString();
+ return UserPreferences.formatDateTime(val, {addOffset: true, appendTimeZone: true});
} }
],
plugins: {
@@ -164,6 +162,7 @@ define(["dojo/_base/xhr",
event.stop(evt);
that.deleteQueue();
});
+ UserPreferences.addListener(that);
}});
@@ -237,6 +236,12 @@ define(["dojo/_base/xhr",
Queue.prototype.close = function() {
updater.remove( this.queueUpdater );
+ UserPreferences.removeListener(this);
+ };
+
+ Queue.prototype.onPreferencesChange = function(data)
+ {
+ this.grid._refresh();
};
var queueTypeKeys = {
Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js?rev=1526182&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/UserPreferences.js Wed Sep 25 14:12:28 2013
@@ -0,0 +1,259 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+define(["dojo/_base/xhr",
+ "dojo/json",
+ "dojo/date",
+ "dojo/date/locale",
+ "dojo/number",
+ "dojox/date/timezone"], function (xhr, json, date, locale, number) {
+
+ var listeners = [];
+ var userTimeZones = {};
+
+ var UserPreferences = {
+
+ loadPreferences : function(callbackSuccessFunction, callbackErrorFunction)
+ {
+ var that = this;
+ xhr.get({
+ url: "rest/preferences",
+ sync: true,
+ handleAs: "json",
+ load: function(data)
+ {
+ for(var name in data)
+ {
+ that[name] = data[name];
+ }
+ if (callbackSuccessFunction)
+ {
+ callbackSuccessFunction();
+ }
+ },
+ error: function(error)
+ {
+ if (callbackErrorFunction)
+ {
+ callbackErrorFunction(error);
+ }
+ }
+ });
+ },
+
+ setPreferences : function(preferences, callbackSuccessFunction, callbackErrorFunction)
+ {
+ var that = this;
+ xhr.post({
+ url: "rest/preferences",
+ sync: true,
+ handleAs: "json",
+ headers: { "Content-Type": "application/json"},
+ postData: json.stringify(preferences),
+ load: function(x)
+ {
+ for(var name in preferences)
+ {
+ if (preferences.hasOwnProperty(name))
+ that[name] = preferences[name];
+ }
+ that._notifyListeners(preferences);
+ if (callbackSuccessFunction)
+ {
+ callbackSuccessFunction(preferences);
+ }
+ },
+ error: function(error)
+ {
+ if (callbackErrorFunction)
+ {
+ callbackErrorFunction(error);
+ }
+ }
+ });
+ },
+
+ resetPreferences : function()
+ {
+ var preferences = {};
+ for(var name in this)
+ {
+ if (this.hasOwnProperty(name) && typeof this[name] != "function")
+ {
+ if (name == "preferencesError")
+ {
+ continue;
+ }
+ this[name] = null;
+ preferences[name] = undefined;
+ delete preferences[name];
+ }
+ }
+ this._notifyListeners(preferences);
+ },
+
+ addListener : function(obj)
+ {
+ listeners.push(obj);
+ },
+
+ removeListener : function(obj)
+ {
+ for(var i = 0; i < listeners.length; i++)
+ {
+ if(listeners[i] === obj)
+ {
+ listeners.splice(i,1);
+ return;
+ }
+ }
+ },
+
+ _notifyListeners : function(preferences)
+ {
+ for(var i = 0; i < listeners.length; i++)
+ {
+ try
+ {
+ listeners[i].onPreferencesChange(preferences);
+ }
+ catch(e)
+ {
+ if (console && console.warn)
+ {
+ console.warn(e);
+ }
+ }
+ }
+ },
+
+ getTimeZoneInfo : function(timeZoneName)
+ {
+ if (!timeZoneName && this.timeZone)
+ {
+ timeZoneName = this.timeZone;
+ }
+
+ if (!timeZoneName)
+ {
+ return null;
+ }
+
+ var timeZoneInfo = userTimeZones[timeZoneName];
+ if (timeZoneInfo)
+ {
+ return timeZoneInfo;
+ }
+
+ timeZoneInfo = dojox.date.timezone.getTzInfo(new Date(), timeZoneName);
+ userTimeZones[timeZoneName] = timeZoneInfo;
+ return timeZoneInfo;
+ },
+
+ addTimeZoneOffsetToUTC : function(utcTimeInMilliseconds, timeZone)
+ {
+ var tzi = null;
+ if (timeZone && timeZone.hasOwnProperty("tzOffset"))
+ {
+ tzi = timeZone;
+ }
+ else
+ {
+ tzi = this.getTimeZoneInfo(timeZone);
+ }
+
+ if (tzi)
+ {
+ var browserTimeZoneOffsetInMinues = new Date().getTimezoneOffset();
+ return utcTimeInMilliseconds - (tzi.tzOffset - browserTimeZoneOffsetInMinues) * 60000;
+ }
+ return utcTimeInMilliseconds;
+ },
+
+ getTimeZoneDescription : function(timeZone)
+ {
+ var tzi = null;
+ if (timeZone && timeZone.hasOwnProperty("tzOffset"))
+ {
+ tzi = timeZone;
+ }
+ else
+ {
+ tzi = this.getTimeZoneInfo(timeZone);
+ }
+
+ if (tzi)
+ {
+ var timeZoneOfsetInMinutes = -tzi.tzOffset;
+ var timeZoneCode = tzi.tzAbbr;
+ return (timeZoneOfsetInMinutes>=0? "+" : "-")
+ + number.format(timeZoneOfsetInMinutes/60, {pattern: "00"})
+ + ":" + number.format(timeZoneOfsetInMinutes%60, {pattern: "00"})
+ + " " + timeZoneCode;
+ }
+ return date.getTimezoneName(new Date());
+ },
+
+ formatDateTime : function(utcTimeInMilliseconds, options)
+ {
+ var dateTimeOptions = options || {};
+ var tzi = this.getTimeZoneInfo(dateTimeOptions.timeZoneName);
+ var timeInMilliseconds = utcTimeInMilliseconds;
+
+ if (tzi && dateTimeOptions.addOffset)
+ {
+ timeInMilliseconds = this.addTimeZoneOffsetToUTC(utcTimeInMilliseconds, tzi);
+ }
+
+ var d = new Date(timeInMilliseconds);
+
+ var formatOptions = {
+ datePattern: dateTimeOptions.datePattern || "yyyy-MM-dd",
+ timePattern: dateTimeOptions.timePattern || "HH:mm:ss.SSS"
+ };
+
+ if ("date" == dateTimeOptions.selector)
+ {
+ formatOptions.selector = "date";
+ }
+ else if ("time" == dateTimeOptions.selector)
+ {
+ formatOptions.selector = "time";
+ }
+
+ var result = locale.format(d, formatOptions);
+ if(dateTimeOptions.appendTimeZone)
+ {
+ result += " (" + this.getTimeZoneDescription(tzi) + ")";
+ }
+ return result;
+ }
+
+ };
+
+ UserPreferences.loadPreferences(null,
+ function(error)
+ {
+ UserPreferences.preferencesError = error;
+ }
+ );
+
+ return UserPreferences;
+});
\ No newline at end of file
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logs/LogFileDownloadDialog.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logs/LogFileDownloadDialog.js?rev=1526182&r1=1526181&r2=1526182&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logs/LogFileDownloadDialog.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logs/LogFileDownloadDialog.js Wed Sep 25 14:12:28 2013
@@ -28,7 +28,7 @@ define([
"dojo/parser",
"dojo/store/Memory",
"dojo/data/ObjectStore",
- "dojo/date/locale",
+ "qpid/management/UserPreferences",
"dojo/number",
"dijit/registry",
"dijit/Dialog",
@@ -36,7 +36,7 @@ define([
"dojox/grid/EnhancedGrid",
"dojo/text!../../../logs/showLogFileDownloadDialog.html",
"dojo/domReady!"
-], function(declare, event, xhr, connect, domConstruct, query, parser, Memory, ObjectStore, locale, number,
+], function(declare, event, xhr, connect, domConstruct, query, parser, Memory, ObjectStore, UserPreferences, number,
registry, Dialog, Button, EnhancedGrid, template){
@@ -79,8 +79,7 @@ return declare("qpid.management.logs.Log
},
{ name: "Last Modified", field: "lastModified", width: "250px",
formatter: function(val) {
- var d = new Date(val);
- return locale.format(d, {selector:"date", datePattern: "EEE, MMM d yy, HH:mm:ss z (ZZZZ)"});
+ return UserPreferences.formatDateTime(val, {addOffset: true, appendTimeZone: true});
}
}
];
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logs/LogViewer.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logs/LogViewer.js?rev=1526182&r1=1526181&r2=1526182&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logs/LogViewer.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/logs/LogViewer.js Wed Sep 25 14:12:28 2013
@@ -23,14 +23,25 @@ define(["dojo/_base/xhr",
"dojo/query",
"dojo/date/locale",
"dijit/registry",
+ "qpid/management/UserPreferences",
"qpid/common/grid/GridUpdater",
"qpid/common/grid/UpdatableGrid",
"qpid/management/logs/LogFileDownloadDialog",
"dojo/text!../../../logs/showLogViewer.html",
"dojo/domReady!"],
- function (xhr, parser, query, locale, registry, GridUpdater, UpdatableGrid, LogFileDownloadDialog, markup) {
+ function (xhr, parser, query, locale, registry, UserPreferences, GridUpdater, UpdatableGrid, LogFileDownloadDialog, markup) {
var defaulGridRowLimit = 4096;
+ var currentTimeZone;
+
+ function dataTransformer(data)
+ {
+ for(var i=0; i < data.length; i++)
+ {
+ data[i].time = UserPreferences.addTimeZoneOffsetToUTC(data[i].timestamp);
+ }
+ return data;
+ }
function LogViewer(name, parent, controller) {
var self = this;
@@ -64,10 +75,11 @@ define(["dojo/_base/xhr",
LogViewer.prototype._buildGrid = function() {
var self = this;
+ currentTimeZone = UserPreferences.getTimeZoneDescription();
var gridStructure = [
{
- hidden: true,
+ hidden: false,
name: "ID",
field: "id",
width: "50px",
@@ -75,28 +87,27 @@ define(["dojo/_base/xhr",
filterable: true
},
{
- name: "Date", field: "timestamp", width: "100px", datatype: "date",
+ name: "Date", field: "time", width: "100px", datatype: "date",
formatter: function(val) {
- var d = new Date(0);
- d.setUTCSeconds(val/1000);
- return locale.format(d, {selector:"date", datePattern: "EEE, MMM d yy"});
- },
- dataTypeArgs: {
- selector: "date",
- datePattern: "EEE MMMM d yyy"
+ return UserPreferences.formatDateTime(val, {selector:"date"});
}
},
- { name: "Time", field: "timestamp", width: "150px", datatype: "time",
+ { name: "Time ", field: "time", width: "100px", datatype: "time",
formatter: function(val) {
- var d = new Date(0);
- d.setUTCSeconds(val/1000);
- return locale.format(d, {selector:"time", timePattern: "HH:mm:ss z (ZZZZ)"});
- },
- dataTypeArgs: {
- selector: "time",
- timePattern: "HH:mm:ss ZZZZ"
+ return UserPreferences.formatDateTime(val, {selector:"time"});
}
},
+ {
+ name: "Time zone",
+ field: "time",
+ width: "80px",
+ datatype: "string",
+ hidden: true,
+ filterable: false,
+ formatter: function(val) {
+ return currentTimeZone;
+ },
+ },
{ name: "Level", field: "level", width: "50px", datatype: "string", autoComplete: true, hidden: true},
{ name: "Logger", field: "logger", width: "150px", datatype: "string", autoComplete: false, hidden: true},
{ name: "Thread", field: "thread", width: "100px", datatype: "string", hidden: true},
@@ -132,14 +143,15 @@ define(["dojo/_base/xhr",
}
},
append: true,
- appendLimit: defaulGridRowLimit
+ appendLimit: defaulGridRowLimit,
+ dataTransformer: dataTransformer
});
this.grid = new UpdatableGrid(updater.buildUpdatableGridArguments({
structure: gridStructure,
selectable: true,
selectionMode: "none",
sortInfo: -1,
- sortFields: [{attribute: 'timestamp', descending: true}],
+ sortFields: [{attribute: 'id', descending: true}],
plugins:{
nestedSorting:true,
enhancedFilter:{defaulGridRowLimit: defaulGridRowLimit},
@@ -170,14 +182,19 @@ define(["dojo/_base/xhr",
};
this.grid.on("styleRow", onStyleRow);
this.grid.startup();
+ UserPreferences.addListener(this);
}
catch(err)
{
- console.error(err);
+ if (console && console.error)
+ {
+ console.error(err);
+ }
}
};
LogViewer.prototype.close = function() {
+ UserPreferences.removeListener(this);
if (this.grid)
{
this.grid.destroy();
@@ -195,5 +212,12 @@ define(["dojo/_base/xhr",
}
};
+ LogViewer.prototype.onPreferencesChange = function(data)
+ {
+ currentTimeZone = UserPreferences.getTimeZoneDescription();
+ dataTransformer(this.grid.updater.memoryStore.data);
+ this.grid._refresh();
+ };
+
return LogViewer;
});
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/showMessage.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/showMessage.js?rev=1526182&r1=1526181&r2=1526182&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/showMessage.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/showMessage.js Wed Sep 25 14:12:28 2013
@@ -29,8 +29,9 @@ define(["dojo/_base/xhr",
"dojo/_base/connect",
"qpid/common/properties",
"dojox/html/entities",
+ "qpid/management/UserPreferences",
"dojo/domReady!"],
- function (xhr, dom, construct, domClass, win, registry, parser, array, event, json, query, connect, properties, entities) {
+ function (xhr, dom, construct, domClass, win, registry, parser, array, event, json, query, connect, properties, entities, UserPreferences) {
function encode(val){
@@ -88,9 +89,7 @@ define(["dojo/_base/xhr",
}
tableStr += "</table>";
} else if(domClass.contains(field,"datetime")) {
- var d = new Date(0);
- d.setUTCSeconds(val/1000);
- field.innerHTML = d.toLocaleString();
+ field.innerHTML = UserPreferences.formatDateTime(val, {addOffset: true, appendTimeZone: true});
} else {
field.innerHTML = encode(val);
}
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferences.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferences.html?rev=1526182&r1=1526181&r2=1526182&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferences.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showPreferences.html Wed Sep 25 14:12:28 2013
@@ -40,14 +40,10 @@
"/>
</td>
</tr>
- <tr>
- <td><strong>Save tabs:</strong></td>
- <td><input id="preferences.saveTabs" type="checkbox" data-dojo-type="dijit/form/CheckBox" name="saveTabs"/></td>
- </tr>
</table>
<div class="dijitDialogPaneActionBar">
- <input type="submit" value="Save Preferences" data-dojo-type="dijit/form/Button" data-dojo-props="label: 'Save Preferences'" id="preferences.saveButton"/>
- <button value="Cancel" data-dojo-type="dijit/form/Button" data-dojo-props="label: 'Cancel'" id="preferences.cancelButton"></button>
+ <button data-dojo-type="dijit/form/Button" data-dojo-props="label: 'Set'" id="preferences.setButton">Set</button>
+ <button data-dojo-type="dijit/form/Button" data-dojo-props="label: 'Set and Close'" id="preferences.setAndCloseButton">Set and Close</button>
</div>
</form>
</div>
@@ -76,7 +72,8 @@
</thead>
</table>
<div class="dijitDialogPaneActionBar">
- <button id="preferences.deletePreeferencesButton" data-dojo-type="dijit/form/Button" data-dojo-props="label:'Delete Preferences', title:'Delete preferences for selected users'">Delete Preferences</button>
+ <button id="preferences.deleteButton" data-dojo-type="dijit/form/Button" data-dojo-props="label:'Delete', title:'Delete preferences for selected users'">Delete</button>
+ <button id="preferences.deleteAndCloseButton" data-dojo-type="dijit/form/Button" data-dojo-props="label: 'Delete and Close', title:'Delete preferences for selected users and close the dialog'">Delete and Close</button>
</div>
</div>
</div>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org