You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ma...@apache.org on 2014/10/03 16:09:50 UTC
svn commit: r1629203 - in /qpid/trunk/qpid/java:
broker-core/src/main/java/org/apache/qpid/server/queue/
broker-plugins/management-http/src/main/java/resources/
broker-plugins/management-http/src/main/java/resources/css/
broker-plugins/management-http/...
Author: macbean
Date: Fri Oct 3 14:09:50 2014
New Revision: 1629203
URL: http://svn.apache.org/r1629203
Log:
QPID-6130: [Java Broker] Introduce edit queue dialog to web management UI
Added:
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/editQueue.html
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/css/common.css
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ContextVariablesEditor.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/addQueue.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java?rev=1629203&r1=1629202&r2=1629203&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java Fri Oct 3 14:09:50 2014
@@ -2961,7 +2961,10 @@ public abstract class AbstractQueue<X ex
{
throw new IllegalConfigurationException("Flow resume size can't be greater than flow control size");
}
-
+ else if (changedAttributes.contains(DURABLE) && proxyForValidation.isDurable() != isDurable())
+ {
+ throw new IllegalConfigurationException("Message durability cannot be modified after queue creation");
+ }
for (String attrName : NON_NEGATIVE_NUMBERS)
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html?rev=1629203&r1=1629202&r2=1629203&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/addQueue.html Fri Oct 3 14:09:50 2014
@@ -73,8 +73,8 @@
value: '',
searchAttr: 'name',
required: false,
- promptMessage: 'Message durability override. If not default, messages arriving will have durability setting overridden',
- title: 'Enter message durability override'">
+ promptMessage: 'Message persistence override. If not default, messages arriving will have persistence setting overridden',
+ title: 'Enter message persistence override'">
<option value="ALWAYS">Always</option>
<option value="DEFAULT">Default</option>
<option value="NEVER">Never</option>
@@ -108,10 +108,8 @@
</div>
</div>
- <br/>
<div class="clear"></div>
-
<div id="formAddQueueTypePriority:fields" class="hidden"
data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Priority Queue Settings'">
<div class="clear">
@@ -166,8 +164,9 @@
<div class="clear"></div>
</div>
- <br/>
- <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Flow Control Settings', open: false">
+ <div class="clear formBox">
+ <fieldset>
+ <legend>Flow Control Settings</legend>
<div class="clear">
<div class="formLabel-labelCell">Capacity:</div>
<div class="formLabel-controlCell">
@@ -194,11 +193,13 @@
trim: true"/>
</div>
</div>
+ </fieldset>
<div class="clear"></div>
</div>
- <br/>
- <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Alerting Settings', open: false">
+ <div class="clear formBox">
+ <fieldset>
+ <legend>Alerting Settings</legend>
<div class="clear">
<div class="formLabel-labelCell">Queue Depth:</div>
<div class="formLabel-controlCell">
@@ -264,11 +265,13 @@
trim: true"/>
</div>
</div>
+ </fieldset>
<div class="clear"></div>
</div>
- <br/>
- <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Other Settings', open: false">
+ <div class="clear formBox">
+ <fieldset>
+ <legend>Other Settings</legend>
<div class="clear">
<div class="formLabel-labelCell">Maximum Delivery Retries:</div>
<div class="formLabel-controlCell">
@@ -323,9 +326,14 @@
title: 'Controls where a shared groups feature is enabled'"/>
</div>
</div>
+ </fieldset>
<div class="clear"></div>
</div>
+ <div class="clear" data-dojo-type="dijit/TitlePane" data-dojo-props="title: 'Context variables', open: false">
+ <div id="formAddQueue.context" ></div>
+ </div>
+
<div class="dijitDialogPaneActionBar">
<!-- submit buttons -->
<input type="submit" value="Create Queue" label="Create Queue" dojoType="dijit.form.Button" />
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/css/common.css
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/css/common.css?rev=1629203&r1=1629202&r2=1629203&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/css/common.css (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/css/common.css Fri Oct 3 14:09:50 2014
@@ -262,7 +262,6 @@ div .messages {
/* Required to keep queue type radio buttons on one line when dialog adds scrollbar */
#addQueue {
- max-height: 350px;
overflow: auto;
width: 630px;
}
@@ -305,4 +304,4 @@ div .messages {
width:100%;
max-height: 140px;
overflow: auto;
-}
\ No newline at end of file
+}
Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/editQueue.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/editQueue.html?rev=1629203&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/editQueue.html (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/editQueue.html Fri Oct 3 14:09:50 2014
@@ -0,0 +1,247 @@
+<!--
+ ~ 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.
+ -->
+<div class="dijitHidden">
+ <div data-dojo-type="dijit.Dialog" data-dojo-props="title:'Edit Queue'" id="editQueue">
+ <form id="formEditQueue" method="post" dojoType="dijit.form.Form">
+ <div id="formEditQueue.allFields">
+ <div id="formEditQueue.contentPane">
+ <div class="editNoteBanner">NOTE: All changes will only take effect after Virtual Host restart.</div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Queue Name:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.name"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'name',
+ placeHolder: 'queue name',
+ required: true,
+ promptMessage: 'Name of queue',
+ disabled: 'true'"/>
+ </div>
+ </div>
+
+ <div class="clear">
+ <div class="formLabel-labelCell">Queue Type:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.type"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'type',
+ placeHolder: 'queue type',
+ required: true,
+ promptMessage: 'Type of queue',
+ disabled: 'true'"/>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Durable?</div>
+ <div class="formLabel-controlCell">
+ <input type="checkbox" id="formEditQueue.durable"
+ dojoType="dijit.form.CheckBox"
+ data-dojo-props="
+ name: 'durable',
+ value: 'durable',
+ disabled: 'true'"/>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Persist Messages?</div>
+ <div class="formLabel-controlCell">
+ <select id="formEditQueue.messageDurability"
+ dojoType="dijit.form.FilteringSelect"
+ data-dojo-props="
+ name: 'messageDurability',
+ value: '',
+ searchAttr: 'name',
+ required: false,
+ promptMessage: 'Message persistence override. If not default, messages arriving will have persistence setting overridden',
+ title: 'Enter message persistence override'">
+ <option value="ALWAYS">Always</option>
+ <option value="DEFAULT">Default</option>
+ <option value="NEVER">Never</option>
+ </select>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Maximum Ttl:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.maximumMessageTtl"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'maximumMessageTtl',
+ placeHolder: 'ttl in ms',
+ promptMessage: 'Maximum message time to live (ttl) in ms. Messages arriving with larger ttl values will be overridden by this value',
+ title: 'Enter the maximum message time to live in milliseconds',
+ trim: true"/>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Minimum Ttl:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.minimumMessageTtl"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'minimumMessageTtl',
+ placeHolder: 'ttl in ms',
+ promptMessage: 'Minimum message time to live (ttl) in ms. Messages arriving with smaller ttl values will be overridden by this value',
+ title: 'Enter the minimum message time to live in milliseconds',
+ trim: true"/>
+ </div>
+ </div>
+
+ <div class="clear"></div>
+
+ <div class="clear formBox">
+ <fieldset>
+ <legend>Flow Control Settings</legend>
+ <div class="clear">
+ <div class="formLabel-labelCell">Capacity:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.queueFlowControlSizeBytes"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'queueFlowControlSizeBytes',
+ placeHolder: 'size in bytes',
+ promptMessage: 'Ceiling (in bytes) at which queue will begin to throttle sessions producing messages',
+ title: 'Enter the ceiling (in bytes) at which queue will begin to throttle sessions producing messages',
+ trim: true"/>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Resume Capacity:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.queueFlowResumeSizeBytes"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'queueFlowResumeSizeBytes',
+ placeHolder: 'size in bytes',
+ promptMessage: 'Floor (in bytes) at which queue will cease to throttle sessions producing messages',
+ title: 'Enter the floor (in bytes) at which queue will cease to throttle sessions producing messages',
+ trim: true"/>
+ </div>
+ </div>
+ </fieldset>
+ <div class="clear"></div>
+ </div>
+
+ <div class="clear formBox">
+ <fieldset>
+ <legend>Alerting Settings</legend>
+ <div class="clear">
+ <div class="formLabel-labelCell">Queue Depth:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.alertThresholdQueueDepthMessages"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'alertThresholdQueueDepthMessages',
+ placeHolder: 'number of messages',
+ promptMessage: 'Ceiling value for number of messages on queue before alerts will be generated',
+ title: 'Enter the ceiling value for number of messages on queue before alerts will be generated',
+ trim: true"/>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Queue Depth:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.alertThresholdQueueDepthBytes"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'alertThresholdQueueDepthBytes',
+ placeHolder: 'total message size in bytes',
+ promptMessage: 'Ceiling value (in bytes) for total size of all messages on the queue before alerts will be generated',
+ title: 'Enter the ceiling value (in bytes) for total size of all messages on the queue before alerts will be generated',
+ trim: true"/>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Message Age:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.alertThresholdMessageAge"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'alertThresholdMessageAge',
+ placeHolder: 'time in ms',
+ promptMessage: 'Message age (in milliseconds) above which alerts will be generated',
+ title: 'Enter the message age (in milliseconds) above which alerts will be generated',
+ trim: true"/>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Message Size:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.alertThresholdMessageSize"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'alertThresholdMessageSize',
+ placeHolder: 'message size in bytes',
+ promptMessage: 'Message size (in bytes) above which alerts will be generated',
+ title: 'Enter the message size (in bytes) above which alerts will be generated',
+ trim: true"/>
+ </div>
+ </div>
+ <div class="clear">
+ <div class="formLabel-labelCell">Gap between alerts:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.alertRepeatGap"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'alertRepeatGap',
+ placeHolder: 'time in ms',
+ promptMessage: 'Minimum time (in milliseconds) between each alert',
+ title: 'Enter the minimum time (in milliseconds) between each alert.',
+ trim: true"/>
+ </div>
+ </div>
+ </fieldset>
+ <div class="clear"></div>
+ </div>
+
+ <div class="clear formBox">
+ <fieldset>
+ <legend>Other Settings</legend>
+ <div class="clear">
+ <div class="formLabel-labelCell">Maximum Delivery Retries:</div>
+ <div class="formLabel-controlCell">
+ <input type="text" id="formEditQueue.maximumDeliveryAttempts"
+ data-dojo-type="dijit/form/ValidationTextBox"
+ data-dojo-props="
+ name: 'maximumDeliveryAttempts',
+ placeHolder: 'number of retries',
+ promptMessage: 'Maximum number of delivery attempts before the message will be sent to the alternate exchange',
+ title: 'Enter the maximum number of delivery attempts before the message will be sent to the alternate exchange',
+ trim: true"/>
+ </div>
+ </div>
+ </fieldset>
+ <div class="clear"></div>
+ </div>
+
+ <div data-dojo-type="dijit/TitlePane" data-dojo-props="title: 'Context variables', open: false">
+ <div id="formEditQueue.context" ></div>
+ </div>
+ </div>
+ <div class="dijitDialogPaneActionBar">
+ <button data-dojo-type="dijit/form/Button" id="formEditQueue.saveButton" data-dojo-props="label: 'Save'">Save</button>
+ <button data-dojo-type="dijit/form/Button" id="formEditQueue.cancelButton" data-dojo-props="label: 'Cancel'" ></button>
+ </div>
+ </div>
+
+ </form>
+ </div>
+</div>
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ContextVariablesEditor.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ContextVariablesEditor.js?rev=1629203&r1=1629202&r2=1629203&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ContextVariablesEditor.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ContextVariablesEditor.js Fri Oct 3 14:09:50 2014
@@ -77,8 +77,8 @@ function (util, xhr, declare, array, con
var addButton = registry.byNode(addButtonNode);
var deleteButton = registry.byNode(deleteButtonNode);
var layout = [[
- { name: "Name", field: "name", width: "40%", editable: true, selectOnClick: false, type: dojox.grid.cells._Widget, widgetClass: dijit.form.TextBox },
- { name: 'Actual Value', field: 'actualValue', width: '30%', editable: true, selectOnClick: false, type: dojox.grid.cells._Widget, widgetClass: dijit.form.TextBox},
+ { name: "Name", field: "name", width: "40%", editable: true},
+ { name: 'Actual Value', field: 'actualValue', width: '30%', editable: true},
{ name: 'Effective Value', field: 'effectiveValue', width: '30%', editable: false}
]];
var data = [];
@@ -177,6 +177,38 @@ function (util, xhr, declare, array, con
}
this.setData(actualValues, allEffectiveValues, inheritedActualValues);
},
+ loadInheritedData: function(restUrl)
+ {
+ var allEffectiveValues = null;
+ xhr.get(
+ {
+ url: restUrl,
+ sync: true,
+ content: { actuals: false },
+ handleAs: "json",
+ load: function(data)
+ {
+ allEffectiveValues = data[0].context;
+ }
+ }
+ );
+
+ var inheritedActualValues = null;
+ xhr.get(
+ {
+ url: restUrl,
+ sync: true,
+ content: { actuals: true, inheritedActuals: true},
+ handleAs: "json",
+ load: function(data)
+ {
+ inheritedActualValues = data[0].context;
+ }
+ }
+ );
+
+ this.setData({}, allEffectiveValues, inheritedActualValues);
+ },
setData: function(actualValues, allEffectiveValues, inheritedActualValues)
{
this.value = actualValues;
@@ -523,4 +555,4 @@ function (util, xhr, declare, array, con
}
});
-});
\ No newline at end of file
+});
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=1629203&r1=1629202&r2=1629203&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 Fri Oct 3 14:09:50 2014
@@ -34,6 +34,7 @@ define(["dojo/_base/xhr",
"qpid/management/moveCopyMessages",
"qpid/management/showMessage",
"qpid/management/UserPreferences",
+ "qpid/management/editQueue",
"dojo/store/JsonRest",
"dojox/grid/EnhancedGrid",
"dojo/data/ObjectStore",
@@ -42,7 +43,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, UserPreferences, JsonRest, EnhancedGrid, ObjectStore, entities) {
+ UpdatableStore, addBinding, moveMessages, showMessage, UserPreferences, editQueue, JsonRest, EnhancedGrid, ObjectStore, entities) {
function Queue(name, parent, controller) {
this.name = name;
@@ -172,6 +173,12 @@ define(["dojo/_base/xhr",
event.stop(evt);
that.deleteQueue();
});
+ var editQueueButton = query(".editQueueButton", contentPane.containerNode)[0];
+ connect.connect(registry.byNode(editQueueButton), "onClick",
+ function(evt){
+ event.stop(evt);
+ editQueue.show({nodeName:that.modelObj.parent.parent.name, hostName:that.modelObj.parent.name,queueName:that.name});
+ });
UserPreferences.addListener(that);
}});
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js?rev=1629203&r1=1629202&r2=1629203&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js Fri Oct 3 14:09:50 2014
@@ -28,6 +28,7 @@ define(["dojo/_base/xhr",
"dojo/_base/event",
'dojo/_base/json',
'qpid/common/util',
+ "qpid/common/ContextVariablesEditor",
"dijit/form/NumberSpinner", // required by the form
/* dojox/ validate resources */
"dojox/validate/us", "dojox/validate/web",
@@ -200,6 +201,14 @@ define(["dojo/_base/xhr",
registry.byId("addQueue").show();
util.applyMetadataToWidgets(form.domNode, "Queue", "standard");
+ if (!this.context)
+ {
+ this.context = new qpid.common.ContextVariablesEditor({name: 'context', title: 'Context variables'});
+ this.context.placeAt(dom.byId("formAddQueue.context"));
+ }
+
+ var escapedUrl = "api/latest/virtualhost/" + encodeURIComponent(addQueue.vhostnode) + "/" + encodeURIComponent(addQueue.vhost);
+ this.context.loadInheritedData(escapedUrl);
};
return addQueue;
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js?rev=1629203&r1=1629202&r2=1629203&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js Fri Oct 3 14:09:50 2014
@@ -134,35 +134,10 @@ define(["dojo/_base/xhr",
this.virtualHostContext.placeAt(dom.byId("addVirtualHost.context"));
}
- var inheritedActualValues = null;
- xhr.get(
- {
- url: "api/latest/broker",
- sync: true,
- content: { actuals: true, inheritedActuals: true},
- handleAs: "json",
- load: function(data)
- {
- inheritedActualValues = data[0].context;
- }
- }
- );
- var effectiveValues = null;
- xhr.get(
- {
- url: "api/latest/broker",
- sync: true,
- handleAs: "json",
- load: function(data)
- {
- effectiveValues = data[0].context;
- }
- }
- );
+ this.virtualHostNodeContext.loadInheritedData("api/latest/broker");
+ this.virtualHostContext.loadInheritedData("api/latest/broker");
- this.virtualHostNodeContext.setData({},effectiveValues,inheritedActualValues);
- this.virtualHostContext.setData({},effectiveValues,inheritedActualValues);
this.dialog.show();
if (!this.resizeEventRegistered)
{
Added: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js?rev=1629203&view=auto
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js (added)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js Fri Oct 3 14:09:50 2014
@@ -0,0 +1,218 @@
+/*
+ *
+ * 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",
+ "dojox/html/entities",
+ "dojo/_base/array",
+ "dojo/_base/event",
+ "dojo/_base/lang",
+ "dojo/_base/window",
+ "dojo/dom",
+ "dojo/dom-construct",
+ "dijit/registry",
+ "dojo/parser",
+ 'dojo/json',
+ "dojo/query",
+ "dojo/store/Memory",
+ "dojo/data/ObjectStore",
+ "qpid/common/util",
+ "dojo/text!editQueue.html",
+ "qpid/common/ContextVariablesEditor",
+ "dijit/Dialog",
+ "dijit/form/CheckBox",
+ "dijit/form/FilteringSelect",
+ "dijit/form/ValidationTextBox",
+ "dijit/form/Button",
+ "dijit/form/Form",
+ "dojox/validate/us",
+ "dojox/validate/web",
+ "dojo/domReady!"],
+ function (xhr, entities, array, event, lang, win, dom, domConstruct, registry, parser, json, query, Memory, ObjectStore, util, template)
+ {
+ var fields = ["name",
+ "type",
+ "durable",
+ "messageDurability",
+ "maximumMessageTtl",
+ "minimumMessageTtl",
+ "queueFlowControlSizeBytes",
+ "queueFlowResumeSizeBytes",
+ "alertThresholdQueueDepthMessages",
+ "alertThresholdQueueDepthBytes",
+ "alertThresholdMessageAge",
+ "alertThresholdMessageSize",
+ "alertRepeatGap",
+ "maximumDeliveryAttempts"];
+
+ var numericFieldNames = ["maximumMessageTtl",
+ "minimumMessageTtl",
+ "queueFlowControlSizeBytes",
+ "queueFlowResumeSizeBytes",
+ "alertThresholdQueueDepthMessages",
+ "alertThresholdQueueDepthBytes",
+ "alertThresholdMessageAge",
+ "alertThresholdMessageSize",
+ "alertRepeatGap",
+ "maximumDeliveryAttempts"];
+
+ var queueEditor =
+ {
+ init: function()
+ {
+ var that=this;
+ this.containerNode = domConstruct.create("div", {innerHTML: template});
+ parser.parse(this.containerNode);
+ this.allFieldsContainer = dom.byId("formEditQueue.allFields");
+ this.dialog = registry.byId("editQueue");
+ this.saveButton = registry.byId("formEditQueue.saveButton");
+ this.cancelButton = registry.byId("formEditQueue.cancelButton");
+ this.cancelButton.on("click", function(e){that._cancel(e);});
+ this.saveButton.on("click", function(e){that._save(e);});
+ for(var i = 0; i < fields.length; i++)
+ {
+ var fieldName = fields[i];
+ this[fieldName] = registry.byId("formEditQueue." + fieldName);
+ }
+ this.form = registry.byId("formEditQueue");
+ this.form.on("submit", function(){return false;});
+ },
+ show: function(hostData)
+ {
+ var that=this;
+ if (!this.context)
+ {
+ this.context = new qpid.common.ContextVariablesEditor({name: 'context', title: 'Context variables'});
+ this.context.placeAt(dom.byId("formEditQueue.context"));
+ }
+ this.query = "api/latest/queue/" + encodeURIComponent(hostData.nodeName) + "/" + encodeURIComponent(hostData.hostName) + "/" + encodeURIComponent(hostData.queueName);
+ this.dialog.set("title", "Edit Queue - " + entities.encode(String(hostData.queueName)));
+ xhr.get(
+ {
+ url: this.query,
+ sync: true,
+ content: { actuals: true },
+ handleAs: "json",
+ load: function(data)
+ {
+ that._show(data[0], hostData);
+ }
+ }
+ );
+ },
+ destroy: function()
+ {
+ if (this.dialog)
+ {
+ this.dialog.destroyRecursive();
+ this.dialog = null;
+ }
+
+ if (this.containerNode)
+ {
+ domConstruct.destroy(this.containerNode);
+ this.containerNode = null;
+ }
+ },
+ _cancel: function(e)
+ {
+ this.dialog.hide();
+ },
+ _save: function(e)
+ {
+ event.stop(e);
+ if(this.form.validate())
+ {
+ var data = util.getFormWidgetValues(this.form, this.initialData);
+ var context = this.context.get("value");
+ if (context && !util.equals(context, this.initialData.context))
+ {
+ data["context"] = context;
+ }
+ var success = false,failureReason=null;
+ xhr.put({
+ url: this.query,
+ sync: true,
+ handleAs: "json",
+ headers: { "Content-Type": "application/json"},
+ putData: json.stringify(data),
+ load: function(x) {success = true; },
+ error: function(error) {success = false; failureReason = error;}
+ });
+
+ if(success === true)
+ {
+ this.dialog.hide();
+ }
+ else
+ {
+ util.xhrErrorHandler(failureReason);
+ }
+ }
+ else
+ {
+ alert('Form contains invalid data. Please correct first');
+ }
+ },
+ _show:function(actualData, effectiveData)
+ {
+
+ this.initialData = actualData;
+ for(var i = 0; i < fields.length; i++)
+ {
+ var fieldName = fields[i];
+ var widget = this[fieldName];
+ widget.reset();
+
+ if (widget instanceof dijit.form.CheckBox)
+ {
+ widget.set("checked", actualData[fieldName]);
+ }
+ else
+ {
+ widget.set("value", actualData[fieldName]);
+ }
+ }
+
+ var that = this;
+ util.applyMetadataToWidgets(that.allFieldsContainer, "Queue", actualData.type);
+
+ this.context.load(this.query, {actualValues:actualData.context, effectiveValues:effectiveData.context});
+
+ // Add regexp to the numeric fields
+ for(var i = 0; i < numericFieldNames.length; i++)
+ {
+ this[numericFieldNames[i]].set("regExpGen", util.numericOrContextVarRegexp);
+ }
+
+ this.dialog.startup();
+ this.dialog.show();
+ if (!this.resizeEventRegistered)
+ {
+ this.resizeEventRegistered = true;
+ util.resizeContentAreaAndRepositionDialog(dom.byId("formEditQueue.contentPane"), this.dialog);
+ }
+ }
+ };
+
+ queueEditor.init();
+
+ return queueEditor;
+ }
+);
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html?rev=1629203&r1=1629202&r2=1629203&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/showQueue.html Fri Oct 3 14:09:50 2014
@@ -198,7 +198,7 @@
</div>
</div>
<div class="clear">
- <div class="formLabel-labelCell">Alert frequency:</div>
+ <div class="formLabel-labelCell">Gap between alerts:</div>
<div>
<span class="alertRepeatGap"></span>
<span class="alertRepeatGapUnits"></span>
@@ -208,6 +208,7 @@
</div>
<div class="dijitDialogPaneActionBar">
+ <button data-dojo-type="dijit.form.Button" class="editQueueButton" type="button">Edit Queue</button>
<button data-dojo-type="dijit.form.Button" class="deleteQueueButton" type="button">Delete Queue</button>
</div>
</div>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org