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 2013/10/31 00:56:16 UTC

git commit: AMBARI-3054. User Preference to show 'Background Operations'. (xiwang)

Updated Branches:
  refs/heads/trunk 0dba52dfc -> 68f77e653


AMBARI-3054. User Preference to show 'Background Operations'. (xiwang)


Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/68f77e65
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/68f77e65
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/68f77e65

Branch: refs/heads/trunk
Commit: 68f77e6536cb1293b58aefc32300395305795792
Parents: 0dba52d
Author: Xi Wang <xi...@apache.org>
Authored: Wed Oct 30 16:56:05 2013 -0700
Committer: Xi Wang <xi...@apache.org>
Committed: Wed Oct 30 16:56:05 2013 -0700

----------------------------------------------------------------------
 ambari-web/app/controllers.js                   |  1 +
 .../global/background_operations_controller.js  |  4 ++-
 ambari-web/app/controllers/main/host/details.js | 32 ++++++++++++++------
 ambari-web/app/controllers/main/service.js      |  4 ++-
 ambari-web/app/controllers/main/service/item.js | 16 +++++++---
 ambari-web/app/messages.js                      |  4 +++
 ambari-web/app/routes/main.js                   |  8 ++++-
 ambari-web/app/styles/application.less          | 15 +++++++++
 ambari-web/app/utils/host_progress_popup.js     | 11 +++++++
 ambari-web/app/views.js                         |  1 +
 ambari-web/app/views/common/modal_popup.js      |  2 ++
 ambari-web/app/views/main/admin.js              |  5 +++
 12 files changed, 87 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/controllers.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers.js b/ambari-web/app/controllers.js
index 80bfac9..78a5f45 100644
--- a/ambari-web/app/controllers.js
+++ b/ambari-web/app/controllers.js
@@ -44,6 +44,7 @@ require('controllers/main/admin/rollbackHA/step2_controller');
 require('controllers/main/admin/rollbackHA/step3_controller');
 require('controllers/main/admin/rollbackHA/rollback_wizard_controller');
 require('controllers/main/admin/cluster');
+require('controllers/main/admin/user_settings');
 require('controllers/main/admin/stack_upgrade_controller');
 require('controllers/main/admin/user');
 require('controllers/main/admin/misc_controller');

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/controllers/global/background_operations_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/global/background_operations_controller.js b/ambari-web/app/controllers/global/background_operations_controller.js
index dc54cd1..f5d6623 100644
--- a/ambari-web/app/controllers/global/background_operations_controller.js
+++ b/ambari-web/app/controllers/global/background_operations_controller.js
@@ -192,7 +192,9 @@ App.BackgroundOperationsController = Em.Controller.extend({
    */
   showPopup: function(){
     App.updater.immediateRun('requestMostRecent');
-    if(this.get('popupView') && App.HostPopup.get('isBackgroundOperations')){
+
+    if(this.get('popupView') && App.HostPopup.get('isBackgroundOperations') && App.HostPopup.get('showServices')){
+      this.set ('popupView.isNotShowBgChecked', !App.router.get('mainAdminUserSettingsController').loadShowBgChecked());
       this.set('popupView.isOpen', true);
       $(this.get('popupView.element')).appendTo('#wrapper');
     } else {

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/controllers/main/host/details.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/host/details.js b/ambari-web/app/controllers/main/host/details.js
index d5bbfa5..81b95fa 100644
--- a/ambari-web/app/controllers/main/host/details.js
+++ b/ambari-web/app/controllers/main/host/details.js
@@ -239,7 +239,7 @@ App.MainHostDetailsController = Em.Controller.extend({
         deleted = {xhr: xhr, url: url, method: 'DELETE'};
       },
       statusCode: require('data/statusCodes')
-    });
+      });
     return deleted;
   },
 
@@ -278,7 +278,9 @@ App.MainHostDetailsController = Em.Controller.extend({
               App.router.get('clusterController').loadUpdatedStatusDelayed(500);
             }
 
-            App.router.get('backgroundOperationsController').showPopup();
+            if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+              App.router.get('backgroundOperationsController').showPopup();
+            }
 
           });
     });
@@ -349,10 +351,14 @@ App.MainHostDetailsController = Em.Controller.extend({
             component.set('workStatus', App.HostComponentStatus.stopped);
           },App.testModeDelayForActions);
         }
+
       } else {
         App.router.get('clusterController').loadUpdatedStatusDelayed(500);
       }
-      App.router.get('backgroundOperationsController').showPopup();
+
+      if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+        App.router.get('backgroundOperationsController').showPopup();
+      }
     });
   },
 
@@ -465,8 +471,9 @@ App.MainHostDetailsController = Em.Controller.extend({
               App.router.get('clusterController').loadUpdatedStatusDelayed(500);
             }
 
-            App.router.get('backgroundOperationsController').showPopup();
-
+            if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+              App.router.get('backgroundOperationsController').showPopup();
+            }
           });
       });
   },
@@ -520,7 +527,9 @@ App.MainHostDetailsController = Em.Controller.extend({
               App.router.get('clusterController').loadUpdatedStatusDelayed(500);
             }
 
-            App.router.get('backgroundOperationsController').showPopup();
+            if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+              App.router.get('backgroundOperationsController').showPopup();
+            }
 
           });
       }
@@ -548,7 +557,9 @@ App.MainHostDetailsController = Em.Controller.extend({
         }
         self.doDatanodeDecommission(decommissionHostNames, true);
       }
-      App.router.get('backgroundOperationsController').showPopup();
+      if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+        App.router.get('backgroundOperationsController').showPopup();
+      }
     });
   },
 
@@ -650,7 +661,9 @@ App.MainHostDetailsController = Em.Controller.extend({
         decommissionHostNames.splice(index, 1);
         self.doDatanodeDecommission(decommissionHostNames, false);
       }
-      App.router.get('backgroundOperationsController').showPopup();
+      if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+        App.router.get('backgroundOperationsController').showPopup();
+      }
     });
   },
   
@@ -859,4 +872,5 @@ App.MainHostDetailsController = Em.Controller.extend({
     });
   }
 
-});
\ No newline at end of file
+});
+

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/controllers/main/service.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service.js b/ambari-web/app/controllers/main/service.js
index 570409f..4bc3601 100644
--- a/ambari-web/app/controllers/main/service.js
+++ b/ambari-web/app/controllers/main/service.js
@@ -110,7 +110,9 @@ App.MainServiceController = Em.ArrayController.extend({
     var requestId = data.Requests.id;
     console.log('requestId is: ' + requestId);
 
-    App.router.get('backgroundOperationsController').showPopup();
+    if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+      App.router.get('backgroundOperationsController').showPopup();
+    }
   },
   allServicesCallErrorCallback: function() {
     console.log("ERROR");

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/controllers/main/service/item.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/item.js b/ambari-web/app/controllers/main/service/item.js
index 64fb843..5c9b7dd 100644
--- a/ambari-web/app/controllers/main/service/item.js
+++ b/ambari-web/app/controllers/main/service/item.js
@@ -76,7 +76,9 @@ App.MainServiceItemController = Em.Controller.extend({
     else {
       App.router.get('clusterController').loadUpdatedStatusDelayed(500);// @todo check working without param 500
     }
-    App.router.get('backgroundOperationsController').showPopup();
+    if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+      App.router.get('backgroundOperationsController').showPopup();
+    }
   },
   /**
    * Confirmation popup for start/stop services
@@ -140,7 +142,9 @@ App.MainServiceItemController = Em.Controller.extend({
     var self = this;
     App.showConfirmationPopup(function() {
       self.content.set('runRebalancer', true);
-      App.router.get('backgroundOperationsController').showPopup();
+      if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+        App.router.get('backgroundOperationsController').showPopup();
+      }
     });
   },
 
@@ -152,7 +156,9 @@ App.MainServiceItemController = Em.Controller.extend({
     var self = this;
     App.showConfirmationPopup(function() {
       self.content.set('runCompaction', true);
-      App.router.get('backgroundOperationsController').showPopup();
+      if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+        App.router.get('backgroundOperationsController').showPopup();
+      }
     });
   },
 
@@ -186,7 +192,9 @@ App.MainServiceItemController = Em.Controller.extend({
 
   runSmokeTestSuccessCallBack: function(data) {
     if (data.Requests.id) {
-      App.router.get('backgroundOperationsController').showPopup();
+      if (App.router.get('mainAdminUserSettingsController').loadShowBgChecked()) {
+        App.router.get('backgroundOperationsController').showPopup();
+      }
     }
     else {
       console.warn('error during runSmokeTestSuccessCallBack');

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 8c9568e..2ae1691 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -133,6 +133,7 @@ Em.I18n.translations = {
   'common.stats':'Stats',
   'common.abort': 'Abort',
   'common.misc': 'Misc',
+  'common.userSettings': 'User Settings',
   'common.operations': 'Operations',
   'common.reinstall': 'Re-Install',
   'common.errorPopup.header': 'An error has been encountered',
@@ -869,6 +870,9 @@ Em.I18n.translations = {
   'admin.cluster.upgradeAvailable':'Upgrade available',
   'admin.cluster.upgradeUnavailable':'Upgrade unavailable',
 
+  'admin.userSettings.header': 'Customize User Settings',
+  'admin.userSettings.showBgOperations': 'Show background operations dialog when an operation is started',
+  'admin.userSettings.notShowBgOperations': 'Do not show this dialog again when starting a background operation',
   'admin.misc.header': 'Service Users and Groups',
   'admin.misc.nothingToShow': 'No user accounts to display',
 

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/routes/main.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/main.js b/ambari-web/app/routes/main.js
index f0e1670..ec2dd9a 100644
--- a/ambari-web/app/routes/main.js
+++ b/ambari-web/app/routes/main.js
@@ -793,7 +793,13 @@ module.exports = Em.Route.extend({
         router.get('mainAdminController').connectOutlet('mainAdminAdvanced');
       }
     }),
-
+    adminUserSettings: Em.Route.extend({
+      route: '/userSettings',
+      connectOutlets: function (router) {
+        router.set('mainAdminController.category', "userSettings");
+        router.get('mainAdminController').connectOutlet('mainAdminUserSettings');
+      }
+    }),
     adminMisc: Em.Route.extend({
       route: '/misc',
       connectOutlets: function (router) {

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/styles/application.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less
index 6568d9b..49c985e 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -1053,6 +1053,16 @@ a:focus {
     overflow: auto;
     width: 100%;
   }
+  .modal-footer {
+    #footer-checkbox {
+      text-align: left;
+      padding-top: 3px;
+      margin-left: 22px;
+      .checkbox {
+        margin: 0px;
+      }
+    }
+  }
 
   .modal-body {
 
@@ -3080,6 +3090,11 @@ table.graphs {
   }
 }
 
+.admin-user-settings {
+  .checkbox {
+    margin: 0px;
+  }
+}
 /*End Admin*/
 
 /*assign masters*/

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/utils/host_progress_popup.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/host_progress_popup.js b/ambari-web/app/utils/host_progress_popup.js
index 9b3006f..5930ed3 100644
--- a/ambari-web/app/utils/host_progress_popup.js
+++ b/ambari-web/app/utils/host_progress_popup.js
@@ -479,6 +479,17 @@ App.HostPopup = Em.Object.create({
         template: Ember.Handlebars.compile('{{popupHeaderName}}')
       }),
       classNames: ['sixty-percent-width-modal'],
+      // for the checkbox: do not show this dialog again
+      hasFooterCheckbox: true,
+      isNotShowBgChecked : null,
+      updateNotShowBgChecked: function () {
+        var curVal = !this.get('isNotShowBgChecked');
+        var key = App.router.get('mainAdminUserSettingsController').persistKey();
+        if (!App.testMode) {
+          App.router.get('mainAdminUserSettingsController').postUserPref(key, curVal);
+        }
+      }.observes('isNotShowBgChecked'),
+
       autoHeight: false,
       closeModelPopup: function () {
         this.set('isOpen', false);

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/views.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views.js b/ambari-web/app/views.js
index c7980cb..16be05b 100644
--- a/ambari-web/app/views.js
+++ b/ambari-web/app/views.js
@@ -72,6 +72,7 @@ require('views/main/admin/rollbackHA/step3_view');
 require('views/main/admin/rollbackHA/rollback_wizard_view');
 require('views/main/admin/cluster');
 require('views/main/admin/misc_view');
+require('views/main/admin/user_settings');
 require('views/main/admin/stack_upgrade');
 require('views/main/admin/advanced');
 require('views/main/admin/advanced/password');

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/views/common/modal_popup.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/modal_popup.js b/ambari-web/app/views/common/modal_popup.js
index ecb8b5e..f231965 100644
--- a/ambari-web/app/views/common/modal_popup.js
+++ b/ambari-web/app/views/common/modal_popup.js
@@ -39,6 +39,8 @@ App.ModalPopup = Ember.View.extend({
     '{{#if footerClass}}{{view footerClass}}',
     '{{else}}',
     '<div class="modal-footer">',
+    '{{#if view.hasFooterCheckbox}} <label id="footer-checkbox" class="span8">  {{view Ember.Checkbox classNames="checkbox" checkedBinding="view.isNotShowBgChecked"}} &nbsp;' +
+      '{{t admin.userSettings.notShowBgOperations}}</label> {{/if}}',
     '{{#if view.secondary}}<a class="btn" {{action onSecondary target="view"}}>{{view.secondary}}</a>{{/if}}',
     '{{#if view.primary}}<a {{bindAttr class="view.enablePrimary::disabled :btn :btn-success"}} {{action onPrimary target="view"}}>{{view.primary}}</a>{{/if}}',
     '</div>',

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/68f77e65/ambari-web/app/views/main/admin.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin.js b/ambari-web/app/views/main/admin.js
index 0d6ec6c..33479a5 100644
--- a/ambari-web/app/views/main/admin.js
+++ b/ambari-web/app/views/main/admin.js
@@ -47,6 +47,11 @@ App.MainAdminView = Em.View.extend({
       label: Em.I18n.t('common.cluster')
     });
     items.push({
+      name: 'userSettings',
+      url: 'adminUserSettings',
+      label: Em.I18n.t('common.userSettings')
+    });
+    items.push({
       name: 'misc',
       url: 'adminMisc',
       label: Em.I18n.t('common.misc')