You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by xi...@apache.org on 2015/04/16 02:11:00 UTC
ambari git commit: AMBARI-10509. Delete selected widgets from Widget
Browser from the widget layout.(XIWANG)
Repository: ambari
Updated Branches:
refs/heads/trunk 546475471 -> bcc80c684
AMBARI-10509. Delete selected widgets from Widget Browser from the widget layout.(XIWANG)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/bcc80c68
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/bcc80c68
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/bcc80c68
Branch: refs/heads/trunk
Commit: bcc80c68424cb2b310a34b5ac32c2043858f55c4
Parents: 5464754
Author: Xi Wang <xi...@apache.org>
Authored: Wed Apr 15 15:52:46 2015 -0700
Committer: Xi Wang <xi...@apache.org>
Committed: Wed Apr 15 17:10:36 2015 -0700
----------------------------------------------------------------------
.../controllers/main/service/info/summary.js | 105 ++++++++++++++-----
ambari-web/app/messages.js | 2 +
.../app/styles/enhanced_service_dashboard.less | 3 +-
.../modal_popups/widget_browser_popup.hbs | 14 ++-
ambari-web/app/utils/ajax/ajax.js | 10 ++
5 files changed, 103 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/bcc80c68/ambari-web/app/controllers/main/service/info/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/summary.js b/ambari-web/app/controllers/main/service/info/summary.js
index 878fb0c..5a37bc3 100644
--- a/ambari-web/app/controllers/main/service/info/summary.js
+++ b/ambari-web/app/controllers/main/service/info/summary.js
@@ -402,24 +402,26 @@ App.MainServiceInfoSummaryController = Em.Controller.extend({
var addedWidgetsNames = this.get('widgets').mapProperty('widgetName');
if (data.items[0] && data.items.length) {
this.set("allSharedWidgets",
- data.items.map(function (widget) {
+ data.items.filter(function (widget) {
+ return widget.Widgets.widget_type != "HEATMAP";
+ }).map(function (widget) {
var widgetType = widget.Widgets.widget_type;
var widgetName = widget.Widgets.widget_name;
- if (widgetType != "HEATMAP") {
- return Em.Object.create({
- iconPath: "/img/widget-" + widgetType.toLowerCase() + ".png",
- widgetName: widgetName,
- displayName: widget.Widgets.display_name,
- description: widget.Widgets.description,
- widgetType: widgetType,
- serviceName: widget.Widgets.metrics.mapProperty('service_name').uniq().join('-'),
- added: addedWidgetsNames.contains(widgetName)
- });
- }
+ return Em.Object.create({
+ id: widget.Widgets.id,
+ widgetName: widgetName,
+ displayName: widget.Widgets.display_name,
+ description: widget.Widgets.description,
+ widgetType: widgetType,
+ iconPath: "/img/widget-" + widgetType.toLowerCase() + ".png",
+ serviceName: widget.Widgets.metrics.mapProperty('service_name').uniq().join('-'),
+ added: addedWidgetsNames.contains(widgetName),
+ isShared: true
+ });
})
);
- this.set('isAllSharedWidgetsLoaded', true);
}
+ this.set('isAllSharedWidgetsLoaded', true);
},
allSharedWidgets: [],
@@ -449,24 +451,26 @@ App.MainServiceInfoSummaryController = Em.Controller.extend({
var addedWidgetsNames = this.get('widgets').mapProperty('widgetName');
if (data.items[0] && data.items.length) {
this.set("mineWidgets",
- data.items.map(function (widget) {
+ data.items.filter(function (widget) {
+ return widget.Widgets.widget_type != "HEATMAP";
+ }).map(function (widget) {
var widgetType = widget.Widgets.widget_type;
var widgetName = widget.Widgets.widget_name;
- if (widgetType != "HEATMAP") {
- return Em.Object.create({
- iconPath: "/img/widget-" + widgetType.toLowerCase() + ".png",
- widgetName: widgetName,
- displayName: widget.Widgets.display_name,
- description: widget.Widgets.description,
- widgetType: widgetType,
- serviceName: widget.Widgets.metrics.mapProperty('service_name').uniq().join('-'),
- added: addedWidgetsNames.contains(widgetName)
- });
- }
+ return Em.Object.create({
+ id: widget.Widgets.id,
+ widgetName: widgetName,
+ displayName: widget.Widgets.display_name,
+ description: widget.Widgets.description,
+ widgetType: widgetType,
+ iconPath: "/img/widget-" + widgetType.toLowerCase() + ".png",
+ serviceName: widget.Widgets.metrics.mapProperty('service_name').uniq().join('-'),
+ added: addedWidgetsNames.contains(widgetName),
+ isShared: false
+ });
})
);
- this.set('isMineWidgetsLoaded', true);
}
+ this.set('isMineWidgetsLoaded', true);
},
/**
@@ -517,6 +521,55 @@ App.MainServiceInfoSummaryController = Em.Controller.extend({
},
/**
+ * delete widgets, on click handler for "Delete"
+ */
+ deleteWidget: function (event) {
+ var widget = event.context;
+ var self = this;
+ var bodyMessage = Em.Object.create({
+ confirmMsg: Em.I18n.t('dashboard.widgets.browser.action.delete.bodyMsg').format(widget.displayName),
+ confirmButton: Em.I18n.t('dashboard.widgets.browser.action.delete.btnMsg')
+ });
+ return App.showConfirmationFeedBackPopup(function (query) {
+ return App.ajax.send({
+ name: 'widget.action.delete',
+ sender: self,
+ data: {
+ id: widget.id
+ },
+ success: 'updateWidgetBrowser'
+ });
+
+ }, bodyMessage);
+ },
+
+ /**
+ * update widget browser content after deleted some widget
+ */
+ updateWidgetBrowser: function () {
+ this.loadAllSharedWidgets();
+ this.loadMineWidgets();
+ },
+
+ /**
+ * unshare widgets, on click handler for "Unshare"
+ */
+ unshareWidget: function (event) {
+ var widget = event.context;
+ var widgetName = widget.widgetName;
+
+ },
+
+ /**
+ * Share widgets, on click handler for "Share"
+ */
+ shareWidget: function (event) {
+ var widget = event.context;
+ var widgetName = widget.widgetName;
+
+ },
+
+ /**
* save layout
* return {$.ajax}
*/
http://git-wip-us.apache.org/repos/asf/ambari/blob/bcc80c68/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index c5e3a1a..45124e4 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -2270,6 +2270,8 @@ Em.I18n.translations = {
'dashboard.widgets.browser.action.delete': 'Delete',
'dashboard.widgets.browser.action.unshare': 'Unshare',
'dashboard.widgets.browser.action.share': 'Share',
+ 'dashboard.widgets.browser.action.delete.bodyMsg': 'You are about to permanently delete widget: {0}. You can add it back through creating new widget.',
+ 'dashboard.widgets.browser.action.delete.btnMsg': 'Confirm Delete',
'dashboard.widgets.NameNodeHeap': 'NameNode Heap',
'dashboard.widgets.NameNodeCpu': 'NameNode CPU WIO',
http://git-wip-us.apache.org/repos/asf/ambari/blob/bcc80c68/ambari-web/app/styles/enhanced_service_dashboard.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/enhanced_service_dashboard.less b/ambari-web/app/styles/enhanced_service_dashboard.less
index 092b551..f410554 100644
--- a/ambari-web/app/styles/enhanced_service_dashboard.less
+++ b/ambari-web/app/styles/enhanced_service_dashboard.less
@@ -359,7 +359,7 @@
}
}
#services-filter-bar {
- padding: 10px;
+ padding: 0px 10px 10px 10px;
a {
font-size: 14px;
padding: 3px;
@@ -432,6 +432,7 @@
}
.dropdown-menu {
min-width: 110px;
+ left: 0px;
}
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/bcc80c68/ambari-web/app/templates/common/modal_popups/widget_browser_popup.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/common/modal_popups/widget_browser_popup.hbs b/ambari-web/app/templates/common/modal_popups/widget_browser_popup.hbs
index 9b83b1b..67acbe6 100644
--- a/ambari-web/app/templates/common/modal_popups/widget_browser_popup.hbs
+++ b/ambari-web/app/templates/common/modal_popups/widget_browser_popup.hbs
@@ -72,14 +72,20 @@
</button>
<ul class="dropdown-menu">
<li>
- <a href="#" {{action deleteWidget widget target="controller"}}>
+ <a href="#" {{action "deleteWidget" widget target="controller"}}>
{{t dashboard.widgets.browser.action.delete}}
</a>
</li>
<li>
- <a href="#" {{action unshareWidget widget target="controller"}}>
- {{t dashboard.widgets.browser.action.unshare}}
- </a>
+ {{#if widget.isShared}}
+ <a href="#" {{action "unshareWidget" widget target="controller"}}>
+ {{t dashboard.widgets.browser.action.unshare}}
+ </a>
+ {{else}}
+ <a href="#" {{action "shareWidget" widget target="controller"}}>
+ {{t dashboard.widgets.browser.action.share}}
+ </a>
+ {{/if}}
</li>
</ul>
<button type="button" class="btn btn-default" {{action "addWidget" widget target="controller"}} >
http://git-wip-us.apache.org/repos/asf/ambari/blob/bcc80c68/ambari-web/app/utils/ajax/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index 0dadc53..e7d28bc 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -2442,6 +2442,16 @@ var urls = {
}
},
+ 'widget.action.delete': {
+ real: '/clusters/{clusterName}/widgets/{id}',
+ mock: '',
+ format: function (data) {
+ return {
+ type: 'DELETE'
+ }
+ }
+ },
+
'widgets.serviceComponent.metrics.get': {
real: '/clusters/{clusterName}/services/{serviceName}/components/{componentName}?fields={widgetIds}',
mock: '/data/metrics/{serviceName}/Append_num_ops_&_Delete_num_ops.json'