Author: rgodfrey
Date: Tue Apr 24 16:09:22 2012
New Revision: 1329818
URL: http://svn.apache.org/viewvc?rev=1329818&view=rev
Log:
NO-JIRA : [Java Config] add ability to create bindings to exchange screen
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/exchange.html
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/exchange.js
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java?rev=1329818&r1=1329817&r2=1329818&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
Tue Apr 24 16:09:22 2012
@@ -39,6 +39,7 @@ import org.codehaus.jackson.map.Serializ
*/
public class RestServlet extends AbstractServlet
{
+ public static final String DEPTH_PARAM = "depth";
private Class<? extends ConfiguredObject>[] _hierarchy;
public RestServlet(Broker broker, Class<? extends ConfiguredObject>...
hierarchy)
@@ -261,9 +262,17 @@ public class RestServlet extends Abstrac
List<Map<String, Object>> output = new ArrayList<Map<String,
Object>>();
- if(!params.isEmpty())
+ // TODO - depth and sort special params, everything else should act as
a filter
+ if(request.getParameter(DEPTH_PARAM)!=null)
{
- // TODO - depth and sort special params, everything else should
act as a filter
+ try
+ {
+ depth = Integer.parseInt(request.getParameter(DEPTH_PARAM));
+ }
+ catch (NumberFormatException e)
+ {
+
+ }
}
for(ConfiguredObject configuredObject : allObjects)
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/exchange.html
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/exchange.html?rev=1329818&r1=1329817&r2=1329818&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/exchange.html
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/exchange.html
Tue Apr 24 16:09:22 2012
@@ -34,6 +34,74 @@
</script>
<script src="/js/sasl.js">
</script>
+ <script>
+ require(["dojo/parser",
+ "dojox/validate/us",
+ "dojox/validate/web",
+ "dijit/form/CheckBox",
+ "dijit/form/Textarea",
+ "dijit/form/FilteringSelect",
+ "dijit/form/TextBox",
+ "dijit/form/ValidationTextBox",
+ "dijit/form/DateTextBox",
+ "dijit/form/TimeTextBox",
+ "dijit/form/Button",
+ "dijit/form/RadioButton",
+ "dijit/form/Form",
+ "dijit/form/DateTextBox",
+ "dojox/form/BusyButton",
+ "dojox/form/CheckedMultiSelect",
+ "dojo/domReady!"]);
+
+ // Require the Dialog class
+ require(["dojo/dom", "dojo/dom-construct", "dijit/registry",
"dojo/_base/xhr", "dojo/store/Memory", "dijit/form/FilteringSelect",
"dijit/Dialog"],
+ function(dom, domConstruct, registry, xhr, Memory,
FilteringSelect)
+ {
+
+ var thisObj = this;
+
+ // Show the dialog
+ addBindingDialog = function() {
+
+ if(thisObj.queueChooser)
+ {
+ thisObj.queueChooser.destroy( false );
+ }
+
+ var queueDiv = dom.byId("addQueuesDiv");
+ domConstruct.create("input", { id: "queueSelect" },
queueDiv);
+
+ var urlQuery =
dojo.queryToObject(dojo.doc.location.search.substr((dojo.doc.location.search[0]
=== "?" ? 1 : 0)));
+ xhr.get({url: "/rest/queue/" +
encodeURIComponent(urlQuery.vhost) + "?depth=0", handleAs:
"json"}).then(function(data)
+ {
+
+ var queues = [];
+ for(var i=0; i < data.length; i++)
+ {
+ queues[i] = {id: data[i].name, name: data[i].name};
+ }
+
+ var queueStore = new Memory({ data: queues });
+
+ thisObj.queueChooser = new FilteringSelect({ id:
"queueSelect",
+ name:
"addQueueName",
+ store:
queueStore,
+ searchAttr:
"name"}, "queueSelect");
+
+
+ registry.byId("addBinding").show();
+
+ });
+
+ }
+
+ // Hide the dialog
+ hideAddBinding = function() {
+ registry.byId("addBinding").hide();
+ }
+ });
+ </script>
+ </head>
</head>
<body class="claro">
@@ -69,6 +137,59 @@
<br/>
<div data-dojo-type="dijit.TitlePane" data-dojo-props="title:
'Bindings'">
<div id="bindings"></div>
+ <button onclick="addBindingDialog();">Add Binding</button>
+
+ <div class="dijitHidden">
+ <div data-dojo-type="dijit.Dialog" style="width:600px;"
data-dojo-props="title:'Add Binding'" id="addBinding">
+ <h1>Add a new Binding</h1>
+ <br/>
+ <form id="addBindingsForm" dojoType="dijit.form.Form"
method="post">
+ <script>
+ validateAndPut = function()
+ {
+
+ var exchangeData = {};
+ exchangeData.name =
dojo.byId("addBindingName").value;
+
+ var urlQuery =
dojo.queryToObject(dojo.doc.location.search.substr((dojo.doc.location.search[0]
=== "?" ? 1 : 0)));
+ var postUrl = "/rest/binding/" +
encodeURIComponent(urlQuery.vhost) + "/" +
encodeURIComponent(urlQuery.exchange) + "/" +
encodeURIComponent(dijit.byId("queueSelect").get('value')) + "/" +
encodeURIComponent(dijit.byId("addBindingName").value);
+
+
+ dojo.xhrPut( { url: postUrl,
+ handleAs: "json",
+ headers: { "Content-Type":
"application/json"},
+ putData: dojo.toJson(
exchangeData )}).then( function(data)
+ {
+ hideAddBinding();
+ },
+ function(error)
+ {
+ alert(error);
+ });
+ return false;
+ };
+ </script>
+ <table cellpadding="0" cellspacing="2">
+ <tr>
+ <td valign="top"><strong>Binding Key:
</strong></td>
+ <td><input type="text" required="true"
name="name" id="addBindingName" placeholder="<binding-key>"
+
dojoType="dijit.form.ValidationTextBox"/></td>
+ </tr>
+ <tr>
+ <td valign="top"><strong>Queue:
</strong></td>
+ <td><div id="addQueuesDiv"></div>
+ </td>
+ </tr>
+ </table>
+ <br/>
+ <input type="button" value="Submit Form"
id="addBindingOk" dojoType="dojox.form.BusyButton"
data-dojo-props="onClick:validateAndPut"
+ label="Add" busyLabel="Submitting Form..."
timeout="2000" />
+ <input type="button" value="Cancel" label="Cancel"
id="addBindingCancel" data-dojo-props="onClick:hideAddBinding"
dojoType="dijit.form.Button" />
+
+ </form>
+
+ </div>
+ </div>
</div>
<br/>
Modified:
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/exchange.js
URL:
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/exchange.js?rev=1329818&r1=1329817&r2=1329818&view=diff
==============================================================================
---
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/exchange.js
(original)
+++
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/exchange.js
Tue Apr 24 16:09:22 2012
@@ -87,6 +87,7 @@ require(["dojo/store/JsonRest",
}
+ var sampleTime = new Date();
thisObj.updateHeader();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]