Pārlūkot izejas kodu

AMBARI-6907. Config History: should display new current version after reverting to an old version.(xiwang)

Xi Wang 10 gadi atpakaļ
vecāks
revīzija
933f7f8b26

+ 34 - 12
ambari-web/app/controllers/main/service/info/configs.js

@@ -252,9 +252,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
    * get service config versions of current service
    */
   loadServiceConfigVersions: function () {
-    var self = this;
-
-    App.ajax.send({
+    return App.ajax.send({
       name: 'service.serviceConfigVersions.get',
       data: {
         serviceName: this.get('content.serviceName')
@@ -262,9 +260,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
       sender: this,
       success: 'loadServiceConfigVersionsSuccess',
       error: 'loadServiceConfigVersionsError'
-    }).complete(function () {
-        self.loadSelectedVersion();
-      });
+    })
   },
 
   /**
@@ -275,13 +271,39 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
    * @param params
    */
   loadServiceConfigVersionsSuccess: function (data, opt, params) {
-    var currentVersion = Math.max.apply(this, data.items.mapProperty('serviceconfigversion'));
-    var currentVersionObject = data.items.findProperty('serviceconfigversion', currentVersion);
+    var self = this;
+    this.loadCurrentVersions().complete(function () {
+      App.serviceConfigVersionsMapper.map(data);
+      self.loadSelectedVersion();
+    });
+  },
+
+  loadCurrentVersions: function () {
+    return App.ajax.send({
+      name: 'service.serviceConfigVersions.get.current',
+      sender: this,
+      data: {},
+      success: 'loadCurrentVersionsSuccess'
+    })
+  },
 
-    this.set('currentVersion', currentVersion);
-    App.cache['currentConfigVersions'] = {};
-    App.cache['currentConfigVersions'][currentVersionObject.service_name + '_' + currentVersionObject.serviceconfigversion] = true;
-    App.serviceConfigVersionsMapper.map(data);
+  /**
+   * load current service config version number
+   * set currentVersion
+   * @param data
+   * @param opt
+   * @param params
+   */
+  loadCurrentVersionsSuccess: function (data, opt, params) {
+    var currentConfigVersions = {};
+    var self = this;
+    for (var service in data.Clusters.desired_serviceconfigversions) {
+      currentConfigVersions[service + '_' + data.Clusters.desired_serviceconfigversions[service].serviceconfigversion] = true;
+      if (self.get('content.serviceName') == service) {
+        self.set('currentVersion', data.Clusters.desired_serviceconfigversions[service].serviceconfigversion);
+      }
+    }
+    App.cache['currentConfigVersions'] = currentConfigVersions;
   },
 
   /**

+ 1 - 1
ambari-web/app/messages.js

@@ -1987,7 +1987,7 @@ Em.I18n.translations = {
   'dashboard.configHistory.title': 'Config History',
   'dashboard.configHistory.table.version.title' : 'Service',
   'dashboard.configHistory.table.configGroup.title' : 'Config Group',
-  'dashboard.configHistory.table.modified.title' : 'Modified',
+  'dashboard.configHistory.table.created.title' : 'Created',
   'dashboard.configHistory.table.empty' : 'No history to display',
   'dashboard.configHistory.table.version.versionText' : 'V{0}',
   'dashboard.configHistory.table.filteredHostsInfo': '{0} of {1} versions showing',

+ 2 - 2
ambari-web/app/models/service_config_version.js

@@ -38,10 +38,10 @@ App.ServiceConfigVersion = DS.Model.extend({
     return Em.I18n.t('dashboard.configHistory.table.version.versionText').format(this.get('version'));
   }.property('version'),
   modifiedDate: function () {
-    return dateUtil.dateFormat(this.get('appliedTime'));
+    return dateUtil.dateFormat(this.get('createTime'));
   }.property('createTime'),
   shortModifiedDate: function () {
-    return dateUtil.dateFormat(this.get('appliedTime'), 'MMM DD, YYYY');
+    return dateUtil.dateFormat(this.get('createTime'), 'MMM DD, YYYY');
   }.property('createTime'),
   /**
    * determine whether ServiceConfigVersion is requested from server

+ 1 - 4
ambari-web/app/templates/common/configs/config_history_flow.hbs

@@ -91,11 +91,8 @@
             <button class="btn" {{action doCancel target="controller"}} {{bindAttr disabled="view.versionActionsDisabled"}}>{{t common.cancel}}</button>
             <button class="btn btn-success" {{action save target="view"}} {{bindAttr disabled="view.isSaveDisabled"}}>{{t common.save}}</button>
           </div>
-          <button class="btn btn-success"  {{action revert view.displayedServiceVersion target="view"}} {{bindAttr disabled="view.versionActionsDisabled" class="view.displayedServiceVersion.isCurrent:hidden"}}>{{t dashboard.configHistory.info-bar.revert.button}}</button>
+          <button class="btn btn-success"  {{action revert target="view"}} {{bindAttr disabled="view.versionActionsDisabled" class="view.displayedServiceVersion.isCurrent:hidden"}}>{{t dashboard.configHistory.info-bar.revert.button}}</button>
         </div>
     </div>
-    <div class="label-wrapper">
-      {{view.shortNotes}} {{#if view.showMoreLink}}<a class="pointer" {{bindAttr title="view.displayedServiceVersion.notes"}}>{{t jobs.hive.more}}</a>{{/if}}
-    </div>
   </div>
 </div>

+ 3 - 10
ambari-web/app/views/common/configs/config_history_flow.js

@@ -231,16 +231,9 @@ App.ConfigHistoryFlowView = Em.View.extend({
   },
 
   sendRevertCallSuccess: function (data, opt, params) {
-    var version = params.data.Clusters.desired_serviceconfigversions.serviceconfigversion;
-
-    this.get('serviceVersions').forEach(function (serviceVersion) {
-      serviceVersion.set('isCurrent', serviceVersion.get('version') === version);
-    });
-    this.set('controller.currentVersion', version);
-
-    this.switchVersion({context: Em.Object.create({
-      version: version
-    })});
+    // revert to an old version would generate a new version with latest version number,
+    // so, need to loadStep to update
+     this.get('controller').loadStep();
   },
 
   /**

+ 2 - 2
ambari-web/app/views/main/dashboard/config_history_view.js

@@ -100,9 +100,9 @@ App.MainConfigHistoryView = App.TableView.extend({
   }),
   modifiedSort: sort.fieldView.extend({
     column: 3,
-    name: 'appliedTime',
+    name: 'createTime',
     status: 'sorting_desc',
-    displayName: Em.I18n.t('dashboard.configHistory.table.modified.title')
+    displayName: Em.I18n.t('dashboard.configHistory.table.created.title')
   }),
   authorSort: sort.fieldView.extend({
     column: 4,