فهرست منبع

AMBARI-11593. Create/Edit widget: Add metric dropdown should show the contextual service first in the list. (jaimin)

Jaimin Jetly 10 سال پیش
والد
کامیت
70ec7ecad1

+ 1 - 0
ambari-web/app/controllers/main/service/widgets/edit_controller.js

@@ -89,6 +89,7 @@ App.WidgetEditController = App.WidgetWizardController.extend({
         type: 'sync',
         callback: function () {
           this.load('widgetType');
+          this.load('widgetService');
           this.load('widgetProperties', true);
           this.load('widgetValues', true);
           this.load('widgetMetrics', true);

+ 14 - 2
ambari-web/app/views/main/service/widgets/create/expression_view.js

@@ -393,8 +393,20 @@ App.AddMetricExpressionView = Em.View.extend({
       }));
     }
 
-    return result;
-  }.property('controller.filteredMetrics')
+    return this.putContextServiceOnTop(result);
+  }.property('controller.filteredMetrics'),
+
+  /**
+   * returns the input array with the context service (service from which widget browser is launched) as the first element of the array
+   * @param serviceComponentMap {Array}
+   * @return {Array}
+   */
+  putContextServiceOnTop: function(serviceComponentMap) {
+    var contextService = this.get('controller.content.widgetService');
+    var serviceIndex = serviceComponentMap.indexOf(serviceComponentMap.findProperty('serviceName', contextService));
+    return serviceComponentMap.slice(serviceIndex, serviceComponentMap.length).concat(serviceComponentMap.slice(0, serviceIndex));
+  }
+
 });
 
 App.InputCursorTextfieldView = Ember.TextField.extend({