Procházet zdrojové kódy

AMBARI-15276. Combo Search: Create filter for service page and version page jump links (rzang)

Richard Zang před 9 roky
rodič
revize
f1c2b3da02

+ 16 - 15
ambari-web/app/controllers/main/host.js

@@ -497,6 +497,7 @@ App.MainHostController = Em.ArrayController.extend(App.TableServerMixin, {
     if (!component) return;
     if (!component) return;
     var id = component.get('componentName');
     var id = component.get('componentName');
     var column = 6;
     var column = 6;
+    var colPropAssoc = this.get('colPropAssoc');
 
 
     var filterForComponent = {
     var filterForComponent = {
       iColumn: column,
       iColumn: column,
@@ -504,6 +505,7 @@ App.MainHostController = Em.ArrayController.extend(App.TableServerMixin, {
       type: 'multiple'
       type: 'multiple'
     };
     };
     App.db.setFilterConditions(this.get('name'), [filterForComponent]);
     App.db.setFilterConditions(this.get('name'), [filterForComponent]);
+    App.db.setComboSearchQuery(this.get('name'), colPropAssoc[column] + ': ' + '"' + id + '"');
   },
   },
 
 
   /**
   /**
@@ -513,23 +515,22 @@ App.MainHostController = Em.ArrayController.extend(App.TableServerMixin, {
    */
    */
   filterByStack: function (displayName, state) {
   filterByStack: function (displayName, state) {
     if (!displayName || !state) return;
     if (!displayName || !state) return;
-    var column = 11;
+    var colPropAssoc = this.get('colPropAssoc');
 
 
-    var filterForStack = {
-      iColumn: column,
-      value: [
-        {
-          property: 'repository_versions/RepositoryVersions/display_name',
-          value: displayName
-        },
-        {
-          property: 'HostStackVersions/state',
-          value: state.toUpperCase()
-        }
-      ],
-      type: 'sub-resource'
+    var versionFilter = {
+      iColumn: 16,
+      value: displayName,
+      type: 'string'
+    };
+    var stateFilter = {
+      iColumn: 17,
+      value: state.toUpperCase(),
+      type: 'string'
     };
     };
-    App.db.setFilterConditions(this.get('name'), [filterForStack]);
+    var versionFilterStr = colPropAssoc[versionFilter.iColumn] + ': ' + '"' + versionFilter.value + '"';
+    var stateFilterStr = colPropAssoc[stateFilter.iColumn] + ': ' + '"' + stateFilter.value + '"';
+    App.db.setFilterConditions(this.get('name'), [versionFilter, stateFilter]);
+    App.db.setComboSearchQuery(this.get('name'), [versionFilterStr, stateFilterStr].join(' '));
   },
   },
 
 
   goToHostAlerts: function (event) {
   goToHostAlerts: function (event) {

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

@@ -127,6 +127,8 @@ App.TableView = Em.View.extend(App.UserPref, {
               self.set('tableFilteringComplete', true);
               self.set('tableFilteringComplete', true);
             }
             }
           });
           });
+        } else {
+          self.set('tableFilteringComplete', true);
         }
         }
       });
       });
     } else {
     } else {

+ 1 - 1
ambari-web/app/views/main/host/combo_search_box.js

@@ -55,9 +55,9 @@ App.MainHostComboSearchBoxView = Em.View.extend({
             {label: 'Host Name', value: 'hostName', category: 'Host'},
             {label: 'Host Name', value: 'hostName', category: 'Host'},
             {label: 'IP', value: 'ip', category: 'Host'},
             {label: 'IP', value: 'ip', category: 'Host'},
             {label: 'Heath Status', value: 'healthClass', category: 'Host'},
             {label: 'Heath Status', value: 'healthClass', category: 'Host'},
-            {label: 'Stack Version', value: 'version', category: 'Host'},
             {label: 'Cores', value: 'cpu', category: 'Host'},
             {label: 'Cores', value: 'cpu', category: 'Host'},
             {label: 'RAM', value: 'memoryFormatted', category: 'Host'},
             {label: 'RAM', value: 'memoryFormatted', category: 'Host'},
+            {label: 'Stack Version', value: 'version', category: 'Host'},
             {label: 'Version State', value: 'versionState', category: 'Host'},
             {label: 'Version State', value: 'versionState', category: 'Host'},
             {label: 'Rack', value: 'rack', category: 'Host'},
             {label: 'Rack', value: 'rack', category: 'Host'},
             {label: 'Service', value: 'services', category: 'Service'},
             {label: 'Service', value: 'services', category: 'Service'},

+ 10 - 13
ambari-web/test/controllers/main/host_test.js

@@ -399,19 +399,16 @@ describe('MainHostController', function () {
     it("stack and displayName exist", function() {
     it("stack and displayName exist", function() {
       hostController.set('name', 'ctrl1');
       hostController.set('name', 'ctrl1');
       hostController.filterByStack('stack1', 'INSTALLED');
       hostController.filterByStack('stack1', 'INSTALLED');
-      expect(App.db.setFilterConditions.calledWith('ctrl1', [{
-        iColumn: 11,
-        value: [
-          {
-            property: 'repository_versions/RepositoryVersions/display_name',
-            value: 'stack1'
-          },
-          {
-            property: 'HostStackVersions/state',
-            value: 'INSTALLED'
-          }
-        ],
-        type: 'sub-resource'
+      expect(App.db.setFilterConditions.calledWith('ctrl1', [
+      {
+        iColumn: 16,
+        value: 'stack1',
+        type: 'string'
+      },
+      {
+        iColumn: 17,
+        value: 'INSTALLED',
+        type: 'string'
       }])).to.be.true;
       }])).to.be.true;
     });
     });
   });
   });