You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by at...@apache.org on 2015/05/22 17:49:17 UTC
ambari git commit: AMBARI-11339 Dashboards: hiding a widget from the
dashboard causes the page to jump and widgets to reload (jarring). (atkach)
Repository: ambari
Updated Branches:
refs/heads/trunk 0e772bef5 -> b9d82cf98
AMBARI-11339 Dashboards: hiding a widget from the dashboard causes the page to jump and widgets to reload (jarring). (atkach)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b9d82cf9
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b9d82cf9
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b9d82cf9
Branch: refs/heads/trunk
Commit: b9d82cf98f762d2d279555f6238444a1abf0375e
Parents: 0e772be
Author: Andrii Tkach <at...@hortonworks.com>
Authored: Fri May 22 16:12:07 2015 +0300
Committer: Andrii Tkach <at...@hortonworks.com>
Committed: Fri May 22 18:49:03 2015 +0300
----------------------------------------------------------------------
.../controllers/main/service/info/summary.js | 25 +++++++++++--
.../main/service/info/summary_test.js | 39 ++++++++++++++++++++
2 files changed, 60 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/b9d82cf9/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 69e6328..c4d56f3 100644
--- a/ambari-web/app/controllers/main/service/info/summary.js
+++ b/ambari-web/app/controllers/main/service/info/summary.js
@@ -484,7 +484,7 @@ App.MainServiceInfoSummaryController = Em.Controller.extend(App.WidgetSectionMix
hideWidget: function (event) {
var widgetToHide = event.context;
var activeLayout = this.get('activeWidgetLayout');
- var widgetIds = activeLayout.get('widgets').map(function(widget) {
+ var widgetIds = activeLayout.get('widgets').map(function (widget) {
return {
"id": widget.get("id")
}
@@ -496,8 +496,8 @@ App.MainServiceInfoSummaryController = Em.Controller.extend(App.WidgetSectionMix
"layout_name": activeLayout.get("layoutName"),
"scope": activeLayout.get("scope"),
"section_name": activeLayout.get("sectionName"),
- "widgets": widgetIds.filter(function(widget) {
- return widget.id != widgetToHide.id;
+ "widgets": widgetIds.filter(function (widget) {
+ return widget.id !== widgetToHide.id;
})
}
};
@@ -510,12 +510,29 @@ App.MainServiceInfoSummaryController = Em.Controller.extend(App.WidgetSectionMix
layoutId: activeLayout.get("id"),
data: data
},
- success: 'updateActiveLayout'
+ success: 'hideWidgetSuccessCallback'
});
},
/**
+ * @param {object|null} data
+ * @param {object} opt
+ * @param {object} params
+ */
+ hideWidgetSuccessCallback: function (data, opt, params) {
+ params.data.WidgetLayoutInfo.widgets = params.data.WidgetLayoutInfo.widgets.map(function (widget) {
+ return {
+ WidgetInfo: {
+ id: widget.id
+ }
+ }
+ });
+ App.widgetLayoutMapper.map({items: [params.data]});
+ this.propertyDidChange('widgets');
+ },
+
+ /**
* update current active widget layout
*/
updateActiveLayout: function () {
http://git-wip-us.apache.org/repos/asf/ambari/blob/b9d82cf9/ambari-web/test/controllers/main/service/info/summary_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/info/summary_test.js b/ambari-web/test/controllers/main/service/info/summary_test.js
index 1e49be7..a15979f 100644
--- a/ambari-web/test/controllers/main/service/info/summary_test.js
+++ b/ambari-web/test/controllers/main/service/info/summary_test.js
@@ -292,4 +292,43 @@ describe('App.MainServiceInfoSummaryController', function () {
});
+ describe("#hideWidgetSuccessCallback()", function () {
+ beforeEach(function () {
+ sinon.stub(App.widgetLayoutMapper, 'map');
+ sinon.stub(controller, 'propertyDidChange');
+ });
+ afterEach(function () {
+ App.widgetLayoutMapper.map.restore();
+ controller.propertyDidChange.restore();
+ });
+ it("", function () {
+ var params = {
+ data: {
+ WidgetLayoutInfo: {
+ widgets: [
+ {
+ id: 1
+ }
+ ]
+ }
+ }
+ };
+ controller.hideWidgetSuccessCallback({}, {}, params);
+ expect(App.widgetLayoutMapper.map.calledWith({
+ items: [{
+ WidgetLayoutInfo: {
+ widgets: [
+ {
+ WidgetInfo: {
+ id: 1
+ }
+ }
+ ]
+ }
+ }]
+ })).to.be.true;
+ expect(controller.propertyDidChange.calledWith('widgets')).to.be.true;
+ });
+ });
+
});
\ No newline at end of file