ソースを参照

AMBARI-8990 Link for clearing filter is being shown even when none of the filter is active (ababiichuk)

aBabiichuk 10 年 前
コミット
32c30c8f96

+ 2 - 0
ambari-web/app/templates/main/dashboard/config_history.hbs

@@ -87,8 +87,10 @@
 
   <div class="page-bar">
     <div class="filtered-info span4">
+    {{#if view.showFilteredContent}}
       <label>{{view.filteredContentInfo}} - <a {{action clearFilters target="view"}}
               href="#">{{t tableView.filters.clearAllFilters}}</a></label>
+    {{/if}}
     </div>
     <div class="items-on-page">
       <label>{{t common.show}}: {{view view.rowsPerPageSelectView selectionBinding="view.displayLength"}}</label>

+ 3 - 1
ambari-web/app/templates/main/host.hbs

@@ -169,7 +169,9 @@
 
   <div class="page-bar">
     <div class="filtered-info span4">
-      <label>{{view.filteredContentInfo}} - <a {{action clearFilters target="view"}} id="hosts-page-clear-filters" href="#">{{t tableView.filters.clearAllFilters}}</a></label>
+      {{#if view.showFilteredContent}}
+        <label>{{view.filteredContentInfo}} - <a {{action clearFilters target="view"}} id="hosts-page-clear-filters" href="#">{{t tableView.filters.clearAllFilters}}</a></label>
+      {{/if}}
     </div>
     <div class="selected-hosts-info span4">
       {{#if view.showSelectedFilter}}

+ 4 - 2
ambari-web/app/templates/main/host/host_alerts.hbs

@@ -72,8 +72,10 @@
 
   <div class="page-bar">
     <div class="filtered-info span4">
-      <label>{{view.filteredContentInfo}} - <a {{action clearFilters target="view"}}
-          href="#">{{t tableView.filters.clearAllFilters}}</a></label>
+      {{#if view.showFilteredContent}}
+        <label>{{view.filteredContentInfo}} - <a {{action clearFilters target="view"}}
+            href="#">{{t tableView.filters.clearAllFilters}}</a></label>
+      {{/if}}
     </div>
     <div class="selected-hosts-info span4">
     </div>

+ 4 - 2
ambari-web/app/templates/main/host/stack_versions.hbs

@@ -69,8 +69,10 @@
 
 <div class="page-bar">
   <div class="filtered-info span4">
-    <label>{{view.filteredContentInfo}} - <a {{action clearFilters target="view"}}
-      href="#">{{t tableView.filters.clearAllFilters}}</a></label>
+    {{#if view.showFilteredContent}}
+      <label>{{view.filteredContentInfo}} - <a {{action clearFilters target="view"}}
+        href="#">{{t tableView.filters.clearAllFilters}}</a></label>
+    {{/if}}
   </div>
   <div class="items-on-page">
     <label>{{t common.show}}: {{view view.rowsPerPageSelectView selectionBinding="view.parentView.displayLength"}}</label>

+ 20 - 0
ambari-web/app/views/common/table_view.js

@@ -412,6 +412,26 @@ App.TableView = Em.View.extend(App.UserPref, {
     return this.get('filteredContent').slice(this.get('startIndex') - 1, this.get('endIndex'));
   }.property('filteredCount', 'startIndex', 'endIndex'),
 
+  /**
+   * flag to toggle displaying filtered hosts counter
+   */
+  showFilteredContent: function () {
+    var result = false;
+    if (this.get('filterConditions.length') > 0) {
+      this.get('filterConditions').forEach(function(f) {
+        if (f.value) {
+          if (Em.typeOf(f.value) == "array") {
+            if (f.value[0] || f.value[1]) {
+              result = true;
+            }
+          } else {
+            result = true;
+          }
+        }
+      });
+    }
+    return result;
+  }.property('filteredContent'),
   /**
    * Filter table by filterConditions
    */

+ 21 - 0
ambari-web/test/views/common/table_view_test.js

@@ -265,4 +265,25 @@ describe('App.TableView', function () {
 
   });
 
+  describe("#showFilteredContent", function() {
+    beforeEach(function() {
+      view = App.TableView.create({});
+    });
+
+    it('hide clear filters link', function () {
+      view.set('filterConditions', []);
+      expect(view.get('showFilteredContent')).to.be.false;
+    });
+
+    it('shows clear filters link', function () {
+      view.set('filterConditions', [{value: "1"}]);
+      expect(view.get('showFilteredContent')).to.be.true;
+    });
+
+    it('shows clear filters link for array filter', function () {
+      view.set('filterConditions', [{value: ["1", "2"]}]);
+      expect(view.get('showFilteredContent')).to.be.true;
+    });
+  });
+
 });