Author: kwall
Date: Tue Aug 2 10:55:51 2016
New Revision: 1754865
URL: http://svn.apache.org/viewvc?rev=1754865&view=rev
Log:
QPID-7118: [Java Broker] [Web Management Console] Add dashboard menu/tab
Added:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/dashboard/
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/dashboard/DashboardCreateDialogForm.html
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/DashboardTab.js
- copied, changed from r1754791,
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/dashboard/
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/dashboard/DashboardCreateDialogForm.js
- copied, changed from r1754791,
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showDashboardTab.html
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/index.html
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/Structure.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryWidget.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showQueryTab.html
Added:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/dashboard/DashboardCreateDialogForm.html
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/dashboard/DashboardCreateDialogForm.html?rev=1754865&view=auto
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/dashboard/DashboardCreateDialogForm.html
(added)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/dashboard/DashboardCreateDialogForm.html
Tue Aug 2 10:55:51 2016
@@ -0,0 +1,45 @@
+<!--
+ ~ 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>
+ <form data-dojo-attach-point="createDashboardForm"
data-dojo-type="dijit/form/Form" id="${id}_createDashboardForm">
+ <div>
+ <div class="clear">
+ <label class="formLabel-labelCell tableContainer-labelCell"
for="${id}_dashboardScope">Scope*: </label>
+ <select id="${id}_dashboardScope" class="formLabel-controlCell
tableContainer-valueCell"
+ data-dojo-attach-point="scope"
+ data-dojo-type='dijit/form/FilteringSelect'
+ data-dojo-props="name: 'scope', placeHolder:
'Dashboard scope', required: true, title: 'Select dashboard scope',
intermediateChanges: true">
+ </select>
+ </div>
+ <div class="clear"></div>
+ </div>
+ <div class="dijitDialogPaneActionBar">
+ <input id="${id}_cancelButton"
+ data-dojo-attach-point="cancelButton"
+ data-dojo-type="dijit/form/Button"
+ type="button"
+ label="Cancel"/>
+ <input id="${id}_okButton"
+ data-dojo-attach-point="okButton"
+ data-dojo-type="dijit/form/Button"
+ type="submit" label="Ok"/>
+ </div>
+ </form>
+</div>
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/index.html
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/index.html?rev=1754865&r1=1754864&r2=1754865&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/index.html
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/index.html
Tue Aug 2 10:55:51 2016
@@ -19,14 +19,14 @@
<head>
<meta charset="utf-8">
<title>Qpid Management</title>
- <link rel="icon" type="image/png" href="images/qpid-favicon.png" />
+ <link rel="icon" type="image/png" href="images/qpid-favicon.png"/>
<link rel="stylesheet" href="dojo/dojo/resources/dojo.css"/>
<link rel="stylesheet" href="dojo/dijit/themes/claro/claro.css"/>
<link rel="stylesheet" href="dojo/dojox/grid/resources/claroGrid.css"/>
<link rel="stylesheet"
href="dojo/dojox/grid/enhanced/resources/claro/EnhancedGrid.css"/>
<link rel="stylesheet"
href="dojo/dojox/grid/enhanced/resources/EnhancedGrid_rtl.css"/>
<link rel="stylesheet"
href="dojo/dojox/form/resources/CheckedMultiSelect.css"/>
- <link rel="stylesheet" href="dojo/dojox/form/resources/FileInput.css" />
+ <link rel="stylesheet" href="dojo/dojox/form/resources/FileInput.css"/>
<link rel="stylesheet" href="dojo/dijit/themes/claro/document.css"/>
<link rel="stylesheet" href="dojo/dgrid/css/dgrid.css"/>
<link rel="stylesheet" href="dojo/dgrid/css/skins/claro.css"/>
@@ -114,54 +114,86 @@
</head>
<body class="claro qpid">
-<div id="pageLayout" data-dojo-type="dijit.layout.BorderContainer"
data-dojo-props="design: 'headline', gutters: false, isLayoutContainer:false">
+<div id="pageLayout" data-dojo-type="dijit.layout.BorderContainer"
+ data-dojo-props="design: 'headline', gutters: false,
isLayoutContainer:false">
<div data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region:'top', isLayoutContainer:false">
<div id="header"></div>
<div class="alignRight">
- <div id="login" class="hidden" data-dojo-type="dijit/Toolbar">
- <div id="query" data-dojo-type="dijit/form/DropDownButton"
data-dojo-props="iconClass: 'dijitIconApplication'">
- <span>Query</span>
- <div data-dojo-type="dijit/Menu">
- <div data-dojo-type="dijit/MenuItem"
- data-dojo-props="onClick:
function(e){qpidManagementHelper.showQueryCreateDialog(e);}">Create Query</div>
- <div data-dojo-type="dijit/MenuItem"
- data-dojo-props="onClick:
function(e){qpidManagementHelper.showQueryBrowser(e);}">Show Query Browser</div>
+ <div id="login" class="hidden" data-dojo-type="dijit/Toolbar">
+ <div data-dojo-type="dijit/form/DropDownButton">
+ <span>Dashboard</span>
+ <div data-dojo-type="dijit/Menu">
+ <div data-dojo-type="dijit/MenuItem"
+ data-dojo-props="onClick:
function(e){qpidManagementHelper.showDashboardCreateDialog(e);}">
+ Create Dashboard
+ </div>
+ <div data-dojo-type="dijit/MenuItem"
+ data-dojo-props="onClick:
function(e){qpidManagementHelper.showDashboardBrowser(e);}">
+ Show Dashboard Browser
+ </div>
+ </div>
</div>
- </div>
- <div data-dojo-type="dijit/form/DropDownButton"
data-dojo-props="iconClass: 'helpIcon', showLabel: false">
- <span>Help</span>
- <div data-dojo-type="dijit/Menu">
- <div data-dojo-type="dijit/MenuItem"
data-dojo-props="onClick: function(){qpidManagementHelper.showAPI();}">REST
API</div>
- <div data-dojo-type="dijit/MenuItem"
- data-dojo-props="iconClass: 'helpIcon', onClick:
function(){qpidManagementHelper.showDocumentation();}">Documentation</div>
+ <div data-dojo-type="dijit/form/DropDownButton"
data-dojo-props="iconClass: 'dijitIconApplication'">
+ <span>Query</span>
+ <div data-dojo-type="dijit/Menu">
+ <div data-dojo-type="dijit/MenuItem"
+ data-dojo-props="onClick:
function(e){qpidManagementHelper.showQueryCreateDialog(e);}">
+ Create Query
+ </div>
+ <div data-dojo-type="dijit/MenuItem"
+ data-dojo-props="onClick:
function(e){qpidManagementHelper.showQueryBrowser(e);}">
+ Show Query Browser
+ </div>
+ </div>
</div>
- </div>
- <span data-dojo-type="dijit/ToolbarSeparator"></span>
- <div id="authenticatedUserControls"
data-dojo-type="dijit/form/DropDownButton" data-dojo-props="iconClass:
'userIcon ui-icon'">
- <div data-dojo-type="dijit/Menu">
- <div data-dojo-type="dijit/MenuItem"
data-dojo-props="onClick: function(){qpidManagementHelper.logout();}" >Log
out</div>
- <div data-dojo-type="dijit/MenuItem"
-
data-dojo-props="iconClass:'dijitIconFunction',onClick:
function(){qpidManagementHelper.showPreferencesDialog();}">Preferences</div>
+ <div data-dojo-type="dijit/form/DropDownButton"
+ data-dojo-props="iconClass: 'helpIcon', showLabel: false">
+ <span>Help</span>
+ <div data-dojo-type="dijit/Menu">
+ <div data-dojo-type="dijit/MenuItem"
+ data-dojo-props="onClick:
function(){qpidManagementHelper.showAPI();}">REST API
+ </div>
+ <div data-dojo-type="dijit/MenuItem"
+ data-dojo-props="iconClass: 'helpIcon', onClick:
function(){qpidManagementHelper.showDocumentation();}">
+ Documentation
+ </div>
+ </div>
+ </div>
+ <span data-dojo-type="dijit/ToolbarSeparator"></span>
+ <div id="authenticatedUserControls"
data-dojo-type="dijit/form/DropDownButton"
+ data-dojo-props="iconClass: 'userIcon ui-icon'">
+ <div data-dojo-type="dijit/Menu">
+ <div data-dojo-type="dijit/MenuItem"
+ data-dojo-props="onClick:
function(){qpidManagementHelper.logout();}">Log out
+ </div>
+ <div data-dojo-type="dijit/MenuItem"
+
data-dojo-props="iconClass:'dijitIconFunction',onClick:
function(){qpidManagementHelper.showPreferencesDialog();}">
+ Preferences
+ </div>
+ </div>
</div>
</div>
- </div>
- </div>
+ </div>
</div>
- <div id="tree" data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region:'leading', splitter: true, isLayoutContainer:false">
- <div qpid-type="treeView" qpid-props="query: 'service/structure'"
></div>
+ <div id="tree" data-dojo-type="dijit.layout.ContentPane"
+ data-dojo-props="region:'leading', splitter: true,
isLayoutContainer:false">
+ <div qpid-type="treeView"></div>
</div>
- <div id="main" data-dojo-type="dijit.layout.ContentPane"
data-dojo-props="region:'center', gutters: true, isLayoutContainer:false">
- <div id="managedViews" data-dojo-type="dijit.layout.TabContainer"
data-dojo-props="tabPosition: 'top', doLayout:false, isLayoutContainer:false">
+ <div id="main" data-dojo-type="dijit.layout.ContentPane"
+ data-dojo-props="region:'center', gutters: true,
isLayoutContainer:false">
+ <div id="managedViews" data-dojo-type="dijit.layout.TabContainer"
+ data-dojo-props="tabPosition: 'top', doLayout:false,
isLayoutContainer:false">
</div>
<div>
- <div qpid-type="footer" ></div>
+ <div qpid-type="footer"></div>
</div>
</div>
<div class="dijitHidden">
<div data-dojo-type="dijit.Dialog" data-dojo-props="title: 'Error'"
id="errorDialog">
<div>
<div class="errorDialogErrorPrimary">
- <span
id="errorDialog.statusCode">000</span> - <span
id="errorDialog.errorMessage">error</span>
+ <span
id="errorDialog.statusCode">000</span> - <span
+ id="errorDialog.errorMessage">error</span>
</div>
<div class="clear" class="errorDialogErrorSecondary">
@@ -174,8 +206,10 @@
</div>
</div>
<div class="dijitDialogPaneActionBar qpidDialogPaneActionBar">
- <input type="button" id="errorDialog.button.cancel"
value="Cancel" label="Cancel" dojoType="dijit.form.Button"
onClick="dijit.byId('errorDialog').hide();"/>
- <input type="button" id="errorDialog.button.relogin"
value="Login" label="Login" dojoType="dijit.form.Button"
onClick="dijit.byId('errorDialog').hide(); window.location='/';"/>
+ <input type="button" id="errorDialog.button.cancel"
value="Cancel" label="Cancel"
+ dojoType="dijit.form.Button"
onClick="dijit.byId('errorDialog').hide();"/>
+ <input type="button" id="errorDialog.button.relogin"
value="Login" label="Login"
+ dojoType="dijit.form.Button"
onClick="dijit.byId('errorDialog').hide(); window.location='/';"/>
</div>
</div>
</div>
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js?rev=1754865&r1=1754864&r2=1754865&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ConsoleHelper.js
Tue Aug 2 10:55:51 2016
@@ -32,6 +32,8 @@ define(["dojo/query",
var documentationUrl = null;
var queryCreateDialog = null;
var queryCreateDialogForm = null;
+ var dashboardCreateDialog = null;
+ var dashboardCreateDialogForm = null;
var openWindow = function (url, title)
{
@@ -121,6 +123,51 @@ define(["dojo/query",
tabType: "queryBrowser"
});
},
+ showDashboardCreateDialog: function (e)
+ {
+ var management = this.management;
+ var controller = this.controller;
+ if (dashboardCreateDialog == null)
+ {
+
require(["qpid/management/dashboard/DashboardCreateDialogForm", "dojo/ready"],
+ function (DashboardCreateDialogForm, ready)
+ {
+ ready(function ()
+ {
+ dashboardCreateDialogForm =
+ new DashboardCreateDialogForm({management:
management, structure: controller.structure});
+ dashboardCreateDialogForm.on("create", function (e)
+ {
+ dashboardCreateDialog.hide();
+ var tabData = {
+ tabType: "dashboard",
+ modelObject: e.parentObject,
+ data: e.preference,
+ preferenceId: e.preference.id
+ };
+ controller.showTab(tabData);
+ });
+ dashboardCreateDialogForm.on("cancel", function (e)
+ {
+ dashboardCreateDialog.hide();
+ });
+ dashboardCreateDialog = new Dialog({title: "Create
dashboard", content: dashboardCreateDialogForm});
+ dashboardCreateDialog.show();
+ });
+ });
+ }
+ else
+ {
+ dashboardCreateDialogForm.initScope();
+ dashboardCreateDialog.show();
+ }
+ },
+ showDashboardBrowser: function (e)
+ {
+ this.controller.showTab({
+ tabType: "dashboardBrowser"
+ });
+ },
init: function (controller, TreeView)
{
this.controller = controller;
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/Structure.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/Structure.js?rev=1754865&r1=1754864&r2=1754865&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/Structure.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/common/Structure.js
Tue Aug 2 10:55:51 2016
@@ -113,5 +113,53 @@ define(["dojo/_base/lang"],
return findObjectsByType(this.structure, type);
};
+ Structure.prototype.getScopeItems = function ()
+ {
+ var brokers = this.findByType("broker");
+ var virtualHosts = this.findByType("virtualhost");
+ var objects = brokers.concat(virtualHosts);
+
+ var items = [];
+ var scopeModelObjects = {};
+ for (var i = 0; i < objects.length; i++)
+ {
+ if (objects[i].type === "broker")
+ {
+ name = objects[i].name;
+ brokerId = objects[i].id;
+ }
+ else
+ {
+ name = "VH:" + objects[i].parent.name + "/" +
objects[i].name;
+ }
+ var id = objects[i].id;
+ items.push({
+ id: id,
+ name: name
+ });
+ scopeModelObjects[id] = objects[i];
+ }
+
+ return {
+ scopeModelObjects: scopeModelObjects,
+ items: items
+ };
+ };
+
+ Structure.prototype.getHierarchicalName = function (object)
+ {
+ if (object && object.parent)
+ {
+ var type = object.type.charAt(0).toUpperCase() +
object.type.substring(1);
+ var val = object.name;
+ for (var i = object.parent; i && i.parent; i = i.parent)
+ {
+ val = i.name + "/" + val;
+ }
+ return " (" + type + ":" + val + ")" ;
+ }
+ return "";
+ };
+
return Structure;
});
Copied:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/DashboardTab.js
(from r1754791,
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js)
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/DashboardTab.js?p2=qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/DashboardTab.js&p1=qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js&r1=1754791&r2=1754865&rev=1754865&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/DashboardTab.js
Tue Aug 2 10:55:51 2016
@@ -1,5 +1,4 @@
/*
- *
* 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
@@ -25,27 +24,12 @@ define(["dojo/parser",
"dojo/query",
"dojo/json",
"qpid/common/util",
- "dojo/text!showQueryTab.html",
- "qpid/management/query/QueryWidget",
+ "dojo/text!showDashboardTab.html",
"dojo/domReady!"],
- function (parser, lang, all, Deferred, query, json, util, template,
QueryWidget)
+ function (parser, lang, all, Deferred, query, json, util, template)
{
- function getPath(object)
- {
- if (object && object.parent)
- {
- var type = object.type.charAt(0).toUpperCase() +
object.type.substring(1);
- var val = object.name;
- for (var i = object.parent; i && i.parent; i = i.parent)
- {
- val = i.name + "/" + val;
- }
- return " (" + type + ":" + val + ")" ;
- }
- return "";
- }
- function QueryTab(kwArgs)
+ function DashboardTab(kwArgs)
{
this.controller = kwArgs.controller;
this.tabData = kwArgs.tabData;
@@ -53,25 +37,19 @@ define(["dojo/parser",
this.management = this.controller.management;
}
- QueryTab.prototype.getTitle = function (changed)
+ DashboardTab.prototype.getTitle = function (changed)
{
if (this.tabData.preferenceId && !this.tabData.data)
{
return "Loading...";
}
- var category = "";
- if (this.tabData.data && this.tabData.data.value &&
this.tabData.data.value.category)
- {
- category = this.tabData.data.value.category;
- category = category.charAt(0).toUpperCase() +
category.substring(1);
- }
var name = this.tabData.data.name ? this.tabData.data.name : "New";
var prefix = this.tabData.data.name && !changed ? "" : "*";
- var path = getPath(this.parent);
- return prefix + category + " query:" + name + path;
+ var path =
this.controller.structure.getHierarchicalName(this.parent);
+ return prefix + "Dashboard:" + name + path;
};
- QueryTab.prototype.open = function (contentPane)
+ DashboardTab.prototype.open = function (contentPane)
{
this.contentPane = contentPane;
contentPane.containerNode.innerHTML = template;
@@ -122,53 +100,21 @@ define(["dojo/parser",
}));
};
- QueryTab.prototype.onOpen = function (containerNode)
+ DashboardTab.prototype.onOpen = function (containerNode)
{
- this.queryWidgetNode = query(".queryWidgetNode", containerNode)[0];
- this.queryWidget = new QueryWidget({
- management: this.management,
- parentObject: this.parent,
- preference: this.tabData.data,
- controller: this.controller
- }, this.queryWidgetNode);
- this.contentPane.set("title", this.getTitle());
- this.queryWidget.on("save", lang.hitch(this, function(e)
- {
- this.tabData.data = e.preference;
- var title = this.getTitle();
- this.contentPane.set("title", title);
- }));
- this.queryWidget.on("change", lang.hitch(this, function(e)
- {
- var title = this.getTitle(true);
- this.contentPane.set("title", title);
- }));
- this.queryWidget.on("delete", lang.hitch(this, function(e)
- {
- this.management.userPreferences.removeTab(this.tabData);
- this.destroy();
- }));
- this.queryWidget.on("clone", lang.hitch(this, function(e)
- {
- this.controller.showTab({
- tabType: "query",
- data: e.preference,
- modelObject: e.parentObject
- });
- }));
- this.queryWidget.startup();
+ this.dashboardWidgetNode = query(".dashboardWidgetNode",
containerNode)[0];
};
- QueryTab.prototype.close = function ()
+ DashboardTab.prototype.close = function ()
{
- if (this.queryWidget != null)
+ if (this.dashboardWidget != null)
{
- this.queryWidget.destroyRecursive();
- this.queryWidget = null;
+ this.dashboardWidget.destroyRecursive();
+ this.dashboardWidget = null;
}
};
- QueryTab.prototype.destroy = function ()
+ DashboardTab.prototype.destroy = function ()
{
this.close();
this.contentPane.onClose();
@@ -176,5 +122,5 @@ define(["dojo/parser",
this.contentPane.destroyRecursive();
};
- return QueryTab;
+ return DashboardTab;
});
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js?rev=1754865&r1=1754864&r2=1754865&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/QueryTab.js
Tue Aug 2 10:55:51 2016
@@ -30,21 +30,6 @@ define(["dojo/parser",
"dojo/domReady!"],
function (parser, lang, all, Deferred, query, json, util, template,
QueryWidget)
{
- function getPath(object)
- {
- if (object && object.parent)
- {
- var type = object.type.charAt(0).toUpperCase() +
object.type.substring(1);
- var val = object.name;
- for (var i = object.parent; i && i.parent; i = i.parent)
- {
- val = i.name + "/" + val;
- }
- return " (" + type + ":" + val + ")" ;
- }
- return "";
- }
-
function QueryTab(kwArgs)
{
this.controller = kwArgs.controller;
@@ -67,7 +52,7 @@ define(["dojo/parser",
}
var name = this.tabData.data.name ? this.tabData.data.name : "New";
var prefix = this.tabData.data.name && !changed ? "" : "*";
- var path = getPath(this.parent);
+ var path =
this.controller.structure.getHierarchicalName(this.parent);
return prefix + category + " query:" + name + path;
};
@@ -151,6 +136,7 @@ define(["dojo/parser",
this.queryWidget.on("clone", lang.hitch(this, function(e)
{
this.controller.showTab({
+ preferenceId: e.preference.id,
tabType: "query",
data: e.preference,
modelObject: e.parentObject
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js?rev=1754865&r1=1754864&r2=1754865&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/controller.js
Tue Aug 2 10:55:51 2016
@@ -42,6 +42,7 @@ define(["dojo/dom",
"qpid/management/Logger",
"qpid/management/QueryTab",
"qpid/management/QueryBrowserTab",
+ "qpid/management/DashboardTab",
"qpid/common/util",
"dojo/ready",
"dojox/uuid/generateRandomUuid",
@@ -70,6 +71,7 @@ define(["dojo/dom",
Logger,
QueryTab,
QueryBrowserTab,
+ DashboardTab,
util,
ready)
{
@@ -93,6 +95,7 @@ define(["dojo/dom",
brokerlogger: Logger,
virtualhostlogger: Logger,
query: QueryTab,
+ dashboard: DashboardTab,
queryBrowser: QueryBrowserTab
};
Copied:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/dashboard/DashboardCreateDialogForm.js
(from r1754791,
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js)
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/dashboard/DashboardCreateDialogForm.js?p2=qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/dashboard/DashboardCreateDialogForm.js&p1=qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js&r1=1754791&r2=1754865&rev=1754865&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/dashboard/DashboardCreateDialogForm.js
Tue Aug 2 10:55:51 2016
@@ -1,5 +1,4 @@
/*
- *
* 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
@@ -21,7 +20,7 @@
define(["dojo/_base/declare",
"dojo/_base/lang",
- "dojo/text!query/QueryCreateDialogForm.html",
+ "dojo/text!dashboard/DashboardCreateDialogForm.html",
"dojo/Evented",
"dojo/store/Memory",
"dojox/uuid/generateRandomUuid",
@@ -36,21 +35,8 @@ define(["dojo/_base/declare",
"dojox/validate/web",
"dojo/domReady!"], function (declare, lang, template, Evented, Memory,
generateRandomUuid)
{
- var getCategoryMetadata = function (management, value)
- {
- if (value)
- {
- var category = value.charAt(0)
- .toUpperCase() + value.substring(1);
- return management.metadata.metadata[category];
- }
- else
- {
- return undefined;
- }
- };
- return declare("qpid.management.query.QueryCreateDialogForm",
+ return declare("qpid.management.dashboard.DashboardCreateDialogForm",
[dijit._WidgetBase, dijit._TemplatedMixin,
dijit._WidgetsInTemplateMixin, Evented],
{
/**
@@ -66,10 +52,9 @@ define(["dojo/_base/declare",
* template attach points
*/
scope: null,
- category: null,
okButton: null,
cancelButton: null,
- createQueryForm: null,
+ createDashboardForm: null,
postCreate: function ()
{
@@ -78,38 +63,15 @@ define(["dojo/_base/declare",
},
initScope: function ()
{
- var brokers = this.structure.findByType("broker");
- var virtualHosts = this.structure.findByType("virtualhost");
- var objects = brokers.concat(virtualHosts);
-
- var items = [];
- var brokerId = null;
- this._scopeModelObjects = {};
- for (var i = 0; i < objects.length; i++)
- {
- if (objects[i].type === "broker")
- {
- name = objects[i].name;
- brokerId = objects[i].id;
- }
- else
- {
- name = "VH:" + objects[i].parent.name + "/" +
objects[i].name;
- }
- var id = objects[i].id;
- items.push({
- id: id,
- name: name
- });
- this._scopeModelObjects[id] = objects[i];
- }
+ var scopeItems = this.structure.getScopeItems();
+ this._scopeModelObjects = scopeItems.scopeModelObjects;
var scopeStore = new Memory({
- data: items,
+ data: scopeItems.items,
idProperty: 'id'
});
this.scope.set("store", scopeStore);
- this.scope.set("value", brokerId);
+ this.scope.set("value", scopeItems.items[0].id);
this._onChange();
},
_postCreate: function ()
@@ -118,7 +80,6 @@ define(["dojo/_base/declare",
this.cancelButton.on("click", lang.hitch(this,
this._onCancel));
this.okButton.on("click", lang.hitch(this,
this._onFormSubmit));
this.scope.on("change", lang.hitch(this, this._onChange));
- this.category.on("change", lang.hitch(this, this._onChange));
},
_onCancel: function (data)
{
@@ -126,27 +87,18 @@ define(["dojo/_base/declare",
},
_onChange: function (e)
{
- var invalid = !getCategoryMetadata(this.management,
this.category.value)
- || !this._scopeModelObjects[this.scope.value];
+ var invalid = !this._scopeModelObjects[this.scope.value];
this.okButton.set("disabled", invalid);
},
_onFormSubmit: function (e)
{
- if (this.createQueryForm.validate())
+ if (this.createDashboardForm.validate())
{
- var category = this.category.value;
- if (getCategoryMetadata(this.management, category))
- {
- var data = {
- preference: {value: {category: category}, id :
generateRandomUuid()},
- parentObject:
this._scopeModelObjects[this.scope.value]
- };
- this.emit("create", data);
- }
- else
- {
- alert('Specified category does not exist. Please enter
valid category');
- }
+ var data = {
+ preference: {id : generateRandomUuid()},
+ parentObject: this._scopeModelObjects[this.scope.value]
+ };
+ this.emit("create", data);
}
else
{
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js?rev=1754865&r1=1754864&r2=1754865&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryCreateDialogForm.js
Tue Aug 2 10:55:51 2016
@@ -78,38 +78,15 @@ define(["dojo/_base/declare",
},
initScope: function ()
{
- var brokers = this.structure.findByType("broker");
- var virtualHosts = this.structure.findByType("virtualhost");
- var objects = brokers.concat(virtualHosts);
-
- var items = [];
- var brokerId = null;
- this._scopeModelObjects = {};
- for (var i = 0; i < objects.length; i++)
- {
- if (objects[i].type === "broker")
- {
- name = objects[i].name;
- brokerId = objects[i].id;
- }
- else
- {
- name = "VH:" + objects[i].parent.name + "/" +
objects[i].name;
- }
- var id = objects[i].id;
- items.push({
- id: id,
- name: name
- });
- this._scopeModelObjects[id] = objects[i];
- }
+ var scopeItems = this.structure.getScopeItems();
+ this._scopeModelObjects = scopeItems.scopeModelObjects;
var scopeStore = new Memory({
- data: items,
+ data: scopeItems.items,
idProperty: 'id'
});
this.scope.set("store", scopeStore);
- this.scope.set("value", brokerId);
+ this.scope.set("value", scopeItems.items[0].id);
this._onChange();
},
_postCreate: function ()
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryWidget.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryWidget.js?rev=1754865&r1=1754864&r2=1754865&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryWidget.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/query/QueryWidget.js
Tue Aug 2 10:55:51 2016
@@ -30,6 +30,7 @@ define(["dojo/_base/declare",
"dojo/store/Memory",
"dijit/registry",
"dojox/html/entities",
+ "dojox/uuid/generateRandomUuid",
"dgrid/extensions/ColumnReorder",
"dgrid/extensions/ColumnHider",
"qpid/management/query/QueryGrid",
@@ -56,6 +57,7 @@ define(["dojo/_base/declare",
Memory,
registry,
entities,
+ generateRandomUuid,
ColumnReorder,
ColumnHider,
QueryGrid)
@@ -183,6 +185,11 @@ define(["dojo/_base/declare",
okButton: null,
cancelButton: null,
+ /**
+ * constructor
+ */
+ structure: null,
+
// internal fields
_scopeModelObjects: {},
@@ -197,41 +204,23 @@ define(["dojo/_base/declare",
this.cloneQueryForm.on("submit", lang.hitch(this,
this._onFormSubmit));
this.scope.on("change", lang.hitch(this, this._onChange));
},
- _setScopeItemsAttr: function (items)
+ _initScopeItems: function (defaultValue)
{
- this._scopeModelObjects = {};
- var options = [];
- for (var i = 0; i < items.length; i++)
- {
- var name = null, id = items[i].id;
- if (items[i].type === "broker")
- {
- name = items[i].name;
- }
- else
- {
- name = "VH:" + items[i].parent.name + "/" +
items[i].name;
- }
-
- this._scopeModelObjects[id] = items[i];
- options.push({id: id, name: name});
- }
+ var scopeItems = this.structure.getScopeItems();
+ this._scopeModelObjects = scopeItems.scopeModelObjects;
var scopeStore = new Memory({
- data: options,
+ data: scopeItems.items,
idProperty: 'id'
});
this.scope.set("store", scopeStore);
- },
- _setDefaultScopeItemAttr: function (defaultValue)
- {
+
if (defaultValue)
{
for (var field in this._scopeModelObjects)
{
var item = this._scopeModelObjects[field];
- if (item.id === defaultValue.id || (item.type ===
"broker" && defaultValue.type
-
=== "broker"))
+ if (item.id === defaultValue.id)
{
this.scope.set("value", item.id);
break;
@@ -239,7 +228,6 @@ define(["dojo/_base/declare",
}
}
},
-
_onCancel: function (data)
{
this.emit("cancel");
@@ -342,7 +330,7 @@ define(["dojo/_base/declare",
this._lastHeaders = [];
// lifecycle UI
- this._queryCloneDialogForm = new QueryCloneDialogForm();
+ this._queryCloneDialogForm = new
QueryCloneDialogForm({structure : this.controller.structure});
this._queryCloneDialog =
new dijit.Dialog({title: "Clone query", content:
this._queryCloneDialogForm});
this._queryCloneDialogForm.on("clone", lang.hitch(this,
this._onQueryClone));
@@ -1051,16 +1039,12 @@ define(["dojo/_base/declare",
},
_cloneQuery: function ()
{
- var brokers =
this.controller.structure.findByType("broker");
- var virtualHosts =
this.controller.structure.findByType("virtualhost");
- var objects = brokers.concat(virtualHosts);
- this._queryCloneDialogForm.set("scopeItems", objects);
- this._queryCloneDialogForm.set("defaultScopeItem",
this.parentObject);
+
this._queryCloneDialogForm._initScopeItems(this.parentObject);
this._queryCloneDialog.show();
},
_onQueryClone: function (e)
{
- var preference = {type: "query", value: this._getQuery()};
+ var preference = {id : generateRandomUuid(), type:
"query", value: this._getQuery()};
this._queryCloneDialog.hide();
this.emit("clone", {preference: preference, parentObject:
e.parentObject});
},
Added:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showDashboardTab.html
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showDashboardTab.html?rev=1754865&view=auto
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showDashboardTab.html
(added)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showDashboardTab.html
Tue Aug 2 10:55:51 2016
@@ -0,0 +1,20 @@
+<!--
+ ~ 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="dashboardWidgetNode"></div>
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showQueryTab.html
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showQueryTab.html?rev=1754865&r1=1754864&r2=1754865&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showQueryTab.html
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/showQueryTab.html
Tue Aug 2 10:55:51 2016
@@ -18,7 +18,5 @@
- under the License.
-
-->
-<div class="query">
- <div class="queryWidgetNode"></div>
-</div>
+<div class="queryWidgetNode"></div>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]