Browse Source

AMBARI-6434 Remove synchronous calls that load user preferences. (atkach)

atkach 11 years ago
parent
commit
fbeeaf8b54

+ 1 - 1
ambari-web/app/controllers/global/cluster_controller.js

@@ -278,7 +278,7 @@ App.ClusterController = Em.Controller.extend({
     if (App.testMode) {
       self.updateLoadStatus('clusterStatus');
     } else {
-      App.clusterStatus.updateFromServer(true).complete(function () {
+      App.clusterStatus.updateFromServer().complete(function () {
         self.updateLoadStatus('clusterStatus');
       });
     }

+ 0 - 6
ambari-web/app/controllers/main/admin/access_controller.js

@@ -27,12 +27,6 @@ App.MainAdminAccessController = Em.Controller.extend(App.UserPref, {
    */
   showJobs: true,
 
-  /**
-   * User pref request should be sync
-   * @type {bool}
-   */
-  makeRequestAsync: false,
-
   /**
    * User pref key
    * @type {string}

+ 0 - 8
ambari-web/app/mixins/common/userPref.js

@@ -33,12 +33,6 @@ var App = require('app');
  */
 App.UserPref = Em.Mixin.create({
 
-  /**
-   * Should <code>getUserPref</code> and <code>postUserPref</code> be async
-   * @type {bool}
-   */
-  makeRequestAsync: true,
-
   /**
    * Additional to request data
    * @type {object}
@@ -55,7 +49,6 @@ App.UserPref = Em.Mixin.create({
       sender: this,
       data: {
         key: key,
-        async: this.get('makeRequestAsync'),
         data: this.get('additionalData')
       },
       success: 'getUserPrefSuccessCallback',
@@ -95,7 +88,6 @@ App.UserPref = Em.Mixin.create({
       'sender': this,
       'beforeSend': 'postUserPrefBeforeSend',
       'data': {
-        'async': this.get('makeRequestAsync'),
         'keyValuePair': keyValuePair
       },
       'success': 'postUserPrefSuccessCallback',

+ 2 - 7
ambari-web/app/models/cluster_states.js

@@ -103,19 +103,16 @@ App.clusterStatus = Em.Object.create(App.UserPref, {
 
   /**
    * get cluster data from server and update cluster status
-   * @param {bool} isAsync set this to true if the call is to be made asynchronously.  if unspecified, false is assumed
    * @param {bool} overrideLocaldb
    * @return promise object for the get call
    * @method updateFromServer
    */
-  updateFromServer: function (isAsync, overrideLocaldb) {
-    // if isAsync is undefined, set it to false
-    this.set('makeRequestAsync', isAsync || false);
+  updateFromServer: function (overrideLocaldb) {
     // if overrideLocaldb is undefined, set it to true
     this.set('additionalData', {
       user: App.db.getUser(),
       login: App.db.getLoginName(),
-      overrideLocaldb: Em.isNone(overrideLocaldb) ? true : overrideLocaldb
+      overrideLocaldb: !overrideLocaldb
     });
     return this.getUserPref(this.get('key'));
   },
@@ -234,7 +231,6 @@ App.clusterStatus = Em.Object.create(App.UserPref, {
           name: 'settings.post.user_pref',
           sender: opt.sender || this,
           data: {
-            async: !!opt.async,
             keyValuePair: keyValuePair
           },
           success: opt.success,
@@ -243,7 +239,6 @@ App.clusterStatus = Em.Object.create(App.UserPref, {
         });
       }
       else {
-        this.set('makeRequestAsync', false);
         this.postUserPref(this.get('key'), val);
       }
       return newValue;

+ 45 - 36
ambari-web/app/router.js

@@ -187,6 +187,7 @@ App.Router = Em.Router.extend({
     console.log('login success');
     var d = data;
     var isAdmin = data.Users.roles.indexOf('admin') >= 0;
+    var self = this;
     if (isAdmin) {
       App.set('isAdmin', true);
       var controller = this.get('loginController');
@@ -194,8 +195,10 @@ App.Router = Em.Router.extend({
       this.setLoginName(params.loginName);
       App.usersMapper.map({"items": [data]});
       this.setUser(App.User.find().findProperty('id', params.loginName));
-      this.transitionTo(this.getSection());
-      controller.postLogin(true,true);
+      this.getSection(function(route){
+        self.transitionTo(route);
+        controller.postLogin(true,true);
+      });
     }
     else {
       App.ajax.send({
@@ -225,13 +228,16 @@ App.Router = Em.Router.extend({
 
   login2SuccessCallback: function (clusterResp, opt, params) {
     var controller = this.get('loginController');
+    var self = this;
     if (clusterResp.items.length) {
       this.setAuthenticated(true);
       this.setLoginName(params.loginName);
       App.usersMapper.map({"items": [params.loginData]});
       this.setUser(App.User.find().findProperty('id', params.loginName));
-      this.transitionTo(this.getSection());
-      controller.postLogin(true,true);
+      this.getSection(function(route){
+        self.transitionTo(route);
+        controller.postLogin(true,true);
+      });
     }
     else {
       controller.set('errorMessage', Em.I18n.t('router.hadoopClusterNotSetUp'));
@@ -270,43 +276,44 @@ App.Router = Em.Router.extend({
     console.log('Error message is: ' + request.responseText);
   },
 
-  getSection: function () {
+  getSection: function (callback) {
     if (App.testMode) {
       if (App.alwaysGoToInstaller) {
-        return 'installer';
+        callback('installer');
       } else {
-        return 'main.dashboard.index';
+        callback('main.dashboard.index');
       }
     }
-    App.clusterStatus.updateFromServer(false, false);
-    var clusterStatusOnServer = App.clusterStatus.get('value');
-    if (!App.get('isAdmin') || clusterStatusOnServer && (clusterStatusOnServer.clusterState === 'DEFAULT' || clusterStatusOnServer.clusterState === 'CLUSTER_STARTED_5')) {
-      return 'main.dashboard.index';
-    } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('addHostController.name')) {
-      // if wizardControllerName == "addHostController", then it means someone closed the browser or the browser was crashed when we were last in Add Hosts wizard
-      return 'main.hostAdd';
-    } else if (clusterStatusOnServer && (clusterStatusOnServer.wizardControllerName === App.router.get('addSecurityController.name') || clusterStatusOnServer.wizardControllerName === App.router.get('mainAdminSecurityDisableController.name'))) {
-      // if wizardControllerName == "addSecurityController", then it means someone closed the browser or the browser was crashed when we were last in Add Security wizard
-      return 'main.admin.adminSecurity';
-    } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('addServiceController.name')) {
-      // if wizardControllerName == "addHostController", then it means someone closed the browser or the browser was crashed when we were last in Add Hosts wizard
-      return 'main.serviceAdd';
-    } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('stackUpgradeController.name')) {
-      // if wizardControllerName == "stackUpgradeController", then it means someone closed the browser or the browser was crashed when we were last in Stack Upgrade wizard
-      return 'main.stackUpgrade';
-    } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('reassignMasterController.name')) {
-      // if wizardControllerName == "reassignMasterController", then it means someone closed the browser or the browser was crashed when we were last in Reassign Master wizard
-      return 'main.reassign';
-    } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('highAvailabilityWizardController.name')) {
-      // if wizardControllerName == "highAvailabilityWizardController", then it means someone closed the browser or the browser was crashed when we were last in NameNode High Availability wizard
-      return 'main.admin.enableHighAvailability';
-    }else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('rollbackHighAvailabilityWizardController.name')) {
-      // if wizardControllerName == "highAvailabilityRollbackController", then it means someone closed the browser or the browser was crashed when we were last in NameNode High Availability Rollback wizard
-      return 'main.admin.rollbackHighAvailability';
-    } else {
+    App.clusterStatus.updateFromServer(false).complete(function () {
+      var clusterStatusOnServer = App.clusterStatus.get('value');
       // if wizardControllerName == "installerController", then it means someone closed the browser or the browser was crashed when we were last in Installer wizard
-      return 'installer';
-    }
+      var route = 'installer';
+      if (!App.get('isAdmin') || clusterStatusOnServer && (clusterStatusOnServer.clusterState === 'DEFAULT' || clusterStatusOnServer.clusterState === 'CLUSTER_STARTED_5')) {
+        route = 'main.dashboard.index';
+      } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('addHostController.name')) {
+        // if wizardControllerName == "addHostController", then it means someone closed the browser or the browser was crashed when we were last in Add Hosts wizard
+        route = 'main.hostAdd';
+      } else if (clusterStatusOnServer && (clusterStatusOnServer.wizardControllerName === App.router.get('addSecurityController.name') || clusterStatusOnServer.wizardControllerName === App.router.get('mainAdminSecurityDisableController.name'))) {
+        // if wizardControllerName == "addSecurityController", then it means someone closed the browser or the browser was crashed when we were last in Add Security wizard
+        route = 'main.admin.adminSecurity';
+      } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('addServiceController.name')) {
+        // if wizardControllerName == "addHostController", then it means someone closed the browser or the browser was crashed when we were last in Add Hosts wizard
+        route = 'main.serviceAdd';
+      } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('stackUpgradeController.name')) {
+        // if wizardControllerName == "stackUpgradeController", then it means someone closed the browser or the browser was crashed when we were last in Stack Upgrade wizard
+        route = 'main.stackUpgrade';
+      } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('reassignMasterController.name')) {
+        // if wizardControllerName == "reassignMasterController", then it means someone closed the browser or the browser was crashed when we were last in Reassign Master wizard
+        route = 'main.reassign';
+      } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('highAvailabilityWizardController.name')) {
+        // if wizardControllerName == "highAvailabilityWizardController", then it means someone closed the browser or the browser was crashed when we were last in NameNode High Availability wizard
+        route = 'main.admin.enableHighAvailability';
+      } else if (clusterStatusOnServer && clusterStatusOnServer.wizardControllerName === App.router.get('rollbackHighAvailabilityWizardController.name')) {
+        // if wizardControllerName == "highAvailabilityRollbackController", then it means someone closed the browser or the browser was crashed when we were last in NameNode High Availability Rollback wizard
+        route = 'main.admin.rollbackHighAvailability';
+      }
+      callback(route);
+    });
   },
 
   logOff: function (context) {
@@ -378,7 +385,9 @@ App.Router = Em.Router.extend({
         if (router.getAuthenticated()) {
           Ember.run.next(function () {
             console.log(router.getLoginName() + ' already authenticated.  Redirecting...');
-            router.transitionTo(router.getSection(), context);
+            router.getSection(function (route) {
+              router.transitionTo(route, context);
+            });
           });
         }
       },

+ 33 - 32
ambari-web/app/routes/installer.js

@@ -41,39 +41,40 @@ module.exports = Em.Route.extend({
           Ember.run.next(function () {
             var installerController = router.get('installerController');
 
-            App.clusterStatus.updateFromServer();
-            var currentClusterStatus = App.clusterStatus.get('value');
-
-            if (currentClusterStatus) {
-              switch (currentClusterStatus.clusterState) {
-                case 'CLUSTER_NOT_CREATED_1' :
-                  router.transitionTo('step' + installerController.get('currentStep'));
-                  break;
-                case 'CLUSTER_DEPLOY_PREP_2' :
-                  installerController.setCurrentStep('8');
-                  App.db.data = currentClusterStatus.localdb;
-                  router.transitionTo('step' + installerController.get('currentStep'));
-                  break;
-                case 'CLUSTER_INSTALLING_3' :
-                case 'SERVICE_STARTING_3' :
-                  if (!installerController.get('isStep9')) {
-                    installerController.setCurrentStep('9');
-                  }
-                  router.transitionTo('step' + installerController.get('currentStep'));
-                  break;
-                case 'CLUSTER_INSTALLED_4' :
-                  if (!installerController.get('isStep10')) {
-                    installerController.setCurrentStep('10');
-                  }
-                  App.db.data = currentClusterStatus.localdb;
-                  router.transitionTo('step' + installerController.get('currentStep'));
-                  break;
-                case 'DEFAULT' :
-                default:
-                  router.transitionTo('main.dashboard.index');
-                  break;
+            App.clusterStatus.updateFromServer().complete(function () {
+              var currentClusterStatus = App.clusterStatus.get('value');
+
+              if (currentClusterStatus) {
+                switch (currentClusterStatus.clusterState) {
+                  case 'CLUSTER_NOT_CREATED_1' :
+                    router.transitionTo('step' + installerController.get('currentStep'));
+                    break;
+                  case 'CLUSTER_DEPLOY_PREP_2' :
+                    installerController.setCurrentStep('8');
+                    App.db.data = currentClusterStatus.localdb;
+                    router.transitionTo('step' + installerController.get('currentStep'));
+                    break;
+                  case 'CLUSTER_INSTALLING_3' :
+                  case 'SERVICE_STARTING_3' :
+                    if (!installerController.get('isStep9')) {
+                      installerController.setCurrentStep('9');
+                    }
+                    router.transitionTo('step' + installerController.get('currentStep'));
+                    break;
+                  case 'CLUSTER_INSTALLED_4' :
+                    if (!installerController.get('isStep10')) {
+                      installerController.setCurrentStep('10');
+                    }
+                    App.db.data = currentClusterStatus.localdb;
+                    router.transitionTo('step' + installerController.get('currentStep'));
+                    break;
+                  case 'DEFAULT' :
+                  default:
+                    router.transitionTo('main.dashboard.index');
+                    break;
+                }
               }
-            }
+            });
           });
         } else {
           Em.run.next(function () {

+ 1 - 7
ambari-web/app/utils/ajax/ajax.js

@@ -751,12 +751,7 @@ var urls = {
   },
   'settings.get.user_pref': {
     'real': '/persist/{key}',
-    'mock': '/data/user_settings/{key}.json',
-    'format': function(data) {
-      return {
-        async: data.async
-      };
-    }
+    'mock': '/data/user_settings/{key}.json'
   },
   'settings.post.user_pref': {
     'real': '/persist',
@@ -764,7 +759,6 @@ var urls = {
     'type': 'POST',
     'format': function (data) {
       return {
-        async: data.async,
         data: JSON.stringify(data.keyValuePair)
       }
     }

+ 16 - 3
ambari-web/app/views/common/table_view.js

@@ -72,21 +72,34 @@ App.TableView = Em.View.extend(App.UserPref, {
       if (App.db.getDisplayLength(name)) {
         this.set('displayLength', App.db.getDisplayLength(name));
       } else {
-        this.getUserPref(this.displayLengthKey());
+        this.getUserPref(this.displayLengthKey()).complete(function(){
+          self.initFilters();
+        });
+        return;
       }
     }
+    this.initFilters();
+  },
 
+  /**
+   * initialize filters
+   * restore values from local DB
+   * or clear filters in case there is no filters to restore
+   */
+  initFilters: function () {
+    var name = this.get('controller.name');
+    var self = this;
     var filterConditions = App.db.getFilterConditions(name);
     if (filterConditions) {
       this.set('filterConditions', filterConditions);
 
       var childViews = this.get('childViews');
 
-      filterConditions.forEach(function(condition, index, filteredConditions) {
+      filterConditions.forEach(function (condition, index, filteredConditions) {
         var view = !Em.isNone(condition.iColumn) && childViews.findProperty('column', condition.iColumn);
         if (view) {
           view.set('value', condition.value);
-          Em.run.next(function() {
+          Em.run.next(function () {
             view.showClearFilter();
             // check if it is the last iteration
             if (filteredConditions.length - index - 1 === 0) {

+ 24 - 21
ambari-web/app/views/main/dashboard/widget.js

@@ -57,30 +57,32 @@ App.DashboardWidgetView = Em.View.extend({
 
   deleteWidget: function (event) {
     var parent = this.get('parentView');
-    if (App.testMode) {
+    var self = this;
+    if (App.get('testMode')) {
       //update view on dashboard
       var objClass = parent.widgetsMapper(this.id);
       parent.get('visibleWidgets').removeObject(objClass);
       parent.get('hiddenWidgets').pushObject(Em.Object.create({displayName: this.get('title'), id: this.get('id'), checked: false}));
     } else {
       //reconstruct new persist value then post in persist
-      parent.getUserPref(parent.get('persistKey'));
-      var oldValue = parent.get('currentPrefObject');
-      var deletedId = this.get('id');
-      var newValue = Em.Object.create({
-        dashboardVersion: oldValue.dashboardVersion,
-        visible: [],
-        hidden: oldValue.hidden,
-        threshold: oldValue.threshold
-      });
-      for (var i = 0; i <= oldValue.visible.length - 1; i++) {
-        if (oldValue.visible[i] != deletedId) {
-          newValue.visible.push(oldValue.visible[i]);
+      parent.getUserPref(parent.get('persistKey')).complete(function(){
+        var oldValue = parent.get('currentPrefObject');
+        var deletedId = self.get('id');
+        var newValue = Em.Object.create({
+          dashboardVersion: oldValue.dashboardVersion,
+          visible: [],
+          hidden: oldValue.hidden,
+          threshold: oldValue.threshold
+        });
+        for (var i = 0; i <= oldValue.visible.length - 1; i++) {
+          if (oldValue.visible[i] != deletedId) {
+            newValue.visible.push(oldValue.visible[i]);
+          }
         }
-      }
-      newValue.hidden.push([deletedId, this.get('title')]);
-      parent.postUserPref(parent.get('persistKey'), newValue);
-      parent.translateToReal(newValue);
+        newValue.hidden.push([deletedId, self.get('title')]);
+        parent.postUserPref(parent.get('persistKey'), newValue);
+        parent.translateToReal(newValue);
+      });
     }
   },
 
@@ -155,10 +157,11 @@ App.DashboardWidgetView = Em.View.extend({
           if (!App.testMode) {
             // save to persist
             var parent = self.get('parentView');
-            parent.getUserPref(parent.get('persistKey'));
-            var oldValue = parent.get('currentPrefObject');
-            oldValue.threshold[parseInt(self.get('id'))] = [configObj.get('thresh1'), configObj.get('thresh2')];
-            parent.postUserPref(parent.get('persistKey'), oldValue);
+            parent.getUserPref(parent.get('persistKey')).complete(function () {
+              var oldValue = parent.get('currentPrefObject');
+              oldValue.threshold[parseInt(self.get('id'))] = [configObj.get('thresh1'), configObj.get('thresh2')];
+              parent.postUserPref(parent.get('persistKey'), oldValue);
+            });
           }
 
           this.hide();

+ 53 - 51
ambari-web/app/views/main/dashboard/widgets.js

@@ -57,23 +57,24 @@ App.MainDashboardWidgetsView = Em.View.extend(App.UserPref, App.LocalStorage, {
         if (!App.testMode) {
           // update persist then translate to real
           var widgetsArray = $('div[viewid]'); // get all in DOM
-          self.getUserPref(self.get('persistKey'));
-          var oldValue = self.get('currentPrefObject') || self.getDBProperty(self.get('persistKey'));
-          var newValue = Em.Object.create({
-            dashboardVersion: oldValue.dashboardVersion,
-            visible: [],
-            hidden: oldValue.hidden,
-            threshold: oldValue.threshold
+          self.getUserPref(self.get('persistKey')).complete(function () {
+            var oldValue = self.get('currentPrefObject') || self.getDBProperty(self.get('persistKey'));
+            var newValue = Em.Object.create({
+              dashboardVersion: oldValue.dashboardVersion,
+              visible: [],
+              hidden: oldValue.hidden,
+              threshold: oldValue.threshold
+            });
+            var size = oldValue.visible.length;
+            for (var j = 0; j <= size - 1; j++) {
+              var viewID = widgetsArray.get(j).getAttribute('viewid');
+              var id = viewID.split("-").get(1);
+              newValue.visible.push(id);
+            }
+            self.postUserPref(self.get('persistKey'), newValue);
+            self.setDBProperty(self.get('persistKey'), newValue);
+            //self.translateToReal(newValue);
           });
-          var size = oldValue.visible.length;
-          for(var j = 0; j <= size -1; j++){
-            var viewID = widgetsArray.get(j).getAttribute('viewid');
-            var id = viewID.split("-").get(1);
-            newValue.visible.push(id);
-          }
-          self.postUserPref(self.get('persistKey'), newValue);
-          self.setDBProperty(self.get('persistKey'), newValue);
-          //self.translateToReal(newValue);
         }
       }
     }).disableSelection();
@@ -224,24 +225,25 @@ App.MainDashboardWidgetsView = Em.View.extend(App.UserPref, App.LocalStorage, {
           }, this);
         } else {
           //save in persist
-          parent.getUserPref(parent.get('persistKey'));
-          var oldValue = parent.get('currentPrefObject') || parent.getDbProperty(parent.get('persistKey'));
-          var newValue = Em.Object.create({
-            dashboardVersion: oldValue.dashboardVersion,
-            visible: oldValue.visible,
-            hidden: [],
-            threshold: oldValue.threshold
+          parent.getUserPref(parent.get('persistKey')).complete(function () {
+            var oldValue = parent.get('currentPrefObject') || parent.getDbProperty(parent.get('persistKey'));
+            var newValue = Em.Object.create({
+              dashboardVersion: oldValue.dashboardVersion,
+              visible: oldValue.visible,
+              hidden: [],
+              threshold: oldValue.threshold
+            });
+            checkedWidgets.forEach(function (item) {
+              newValue.visible.push(item.id);
+              hiddenWidgets.removeObject(item);
+            }, this);
+            hiddenWidgets.forEach(function (item) {
+              newValue.hidden.push([item.id, item.displayName]);
+            }, this);
+            parent.postUserPref(parent.get('persistKey'), newValue);
+            parent.setDBProperty(parent.get('persistKey'), newValue);
+            parent.translateToReal(newValue);
           });
-          checkedWidgets.forEach(function(item){
-            newValue.visible.push(item.id);
-            hiddenWidgets.removeObject(item);
-          }, this);
-          hiddenWidgets.forEach(function(item){
-            newValue.hidden.push([item.id, item.displayName]);
-          }, this);
-          parent.postUserPref(parent.get('persistKey'), newValue);
-          parent.setDBProperty(parent.get('persistKey'), newValue);
-          parent.translateToReal(newValue);
         }
       }
   }),
@@ -288,27 +290,29 @@ App.MainDashboardWidgetsView = Em.View.extend(App.UserPref, App.LocalStorage, {
    * Set visibility-status for widgets
    */
   setOnLoadVisibleWidgets: function () {
+    var self = this;
     if (App.testMode) {
       this.translateToReal(this.get('initPrefObject'));
     } else {
       // called when first load/refresh/jump back page
-      this.getUserPref(this.get('persistKey'));
-      var currentPrefObject = this.get('currentPrefObject') || this.getDBProperty(this.get('persistKey'));
-      if (currentPrefObject) { // fit for no dashboard version
-        if (!currentPrefObject.dashboardVersion) {
-          currentPrefObject.dashboardVersion = 'new';
-          this.postUserPref(this.get('persistKey'), currentPrefObject);
-          this.setDBProperty(this.get('persistKey'), currentPrefObject);
+      self.getUserPref(this.get('persistKey')).complete(function () {
+        var currentPrefObject = self.get('currentPrefObject') || self.getDBProperty(self.get('persistKey'));
+        if (currentPrefObject) { // fit for no dashboard version
+          if (!currentPrefObject.dashboardVersion) {
+            currentPrefObject.dashboardVersion = 'new';
+            self.postUserPref(self.get('persistKey'), currentPrefObject);
+            self.setDBProperty(self.get('persistKey'), currentPrefObject);
+          }
+          self.set('currentPrefObject', self.checkServicesChange(currentPrefObject));
+          self.translateToReal(self.get('currentPrefObject'));
         }
-        this.set('currentPrefObject', this.checkServicesChange(currentPrefObject));
-        this.translateToReal(this.get('currentPrefObject'));
-      }
-      else {
-        // post persist then translate init object
-        this.postUserPref(this.get('persistKey'), this.get('initPrefObject'));
-        this.setDBProperty(this.get('persistKey'), this.get('initPrefObject'));
-        this.translateToReal(this.get('initPrefObject'));
-      }
+        else {
+          // post persist then translate init object
+          self.postUserPref(self.get('persistKey'), self.get('initPrefObject'));
+          self.setDBProperty(self.get('persistKey'), self.get('initPrefObject'));
+          self.translateToReal(self.get('initPrefObject'));
+        }
+      });
     }
   },
 
@@ -502,8 +506,6 @@ App.MainDashboardWidgetsView = Em.View.extend(App.UserPref, App.LocalStorage, {
     return 'user-pref-' + App.router.get('loginName') + '-dashboard';
   }.property(),
 
-  makeRequestAsync: false,
-
   getUserPrefSuccessCallback: function (response, request, data) {
     if (response) {
       console.log('Got persist value from server with key ' + data.key + '. Value is: ' + response);