Browse Source

AMBARI-4994. Jobs page: When "id" filter is applied, other filters do not work. (alexantonenko)

Alex Antonenko 11 years ago
parent
commit
05774df576

+ 9 - 0
ambari-web/app/controllers/main/jobs_controller.js

@@ -50,11 +50,20 @@ App.MainJobsController = Em.ArrayController.extend({
 
   filterObject: Ember.Object.create({
     id: "",
+    isIdFilterApplied: false,
     jobsLimit: -1,
     user: "",
     windowStart: "",
     windowEnd: "",
 
+    onApplyIdFilter: function () {
+      if(this.get('id') == ""){
+        this.set('isIdFilterApplied', false);
+      }else{
+        this.set('isIdFilterApplied', true);
+      }
+    }.observes('id'),
+
     /**
      * Direct binding to startTime filter field
      */

+ 7 - 1
ambari-web/app/views/common/filter_view.js

@@ -59,6 +59,10 @@ var wrapperView = Ember.View.extend({
   },
 
   setValueOnApply: function() {
+    this.set('disabled', true);
+    if(this.get('value') == null){
+      this.set('value', '')
+    }
     this.set(this.get('setPropertyOnApply'), this.get('value'));
     return false;
   },
@@ -265,7 +269,9 @@ module.exports = {
 
     config.fieldType = config.fieldType || 'input-medium';
     config.filterView = selectFieldView.extend({
-      classNames : [ config.fieldType ]
+      classNames : [ config.fieldType ],
+      attributeBindings: ['disabled','multiple'],
+      disabled: false
     });
     config.emptyValue = Em.I18n.t('any');
 

+ 13 - 0
ambari-web/app/views/main/jobs_view.js

@@ -44,6 +44,19 @@ App.MainJobsView = App.TableView.extend({
     }
   }.observes("controller.content.length"),
 
+  onApplyIdFilter: function() {
+    var isIdFilterApplied = this.get('controller.filterObject.isIdFilterApplied');
+    this.get('childViews').forEach(function(childView) {
+      if (childView['clearFilter'] && childView.get('column') != 0) {
+        childView.clearFilter();
+        var childOfChild = childView.get('childViews')[0];
+        if(childOfChild){
+          childOfChild.set('disabled', isIdFilterApplied);
+        }
+      }
+    });
+  }.observes('controller.filterObject.isIdFilterApplied'),
+
   sortView: sort.wrapperView,
   idSort: sort.fieldView.extend({
     column: 0,