Jelajahi Sumber

AMBARI-10199. RU: Config History table: text filters not working after typing '?' character. (akovalenko)

Aleksandr Kovalenko 10 tahun lalu
induk
melakukan
f5594591eb

+ 8 - 2
ambari-web/app/views/common/filter_view.js

@@ -28,6 +28,8 @@
 
 var App = require('app');
 
+var validator = require('utils/validator');
+
 var wrapperView = Ember.View.extend({
   classNames: ['view-wrapper'],
   layout: Ember.Handlebars.compile('<a href="#" {{action "clearFilter" target="view"}} class="ui-icon ui-icon-circle-close"></a> {{yield}}'),
@@ -639,8 +641,12 @@ module.exports = {
       case 'string':
       default:
         return function (origin, compareValue) {
-          var regex = new RegExp(compareValue, "i");
-          return regex.test(origin);
+          if (validator.isValidMatchesRegexp(compareValue)) {
+            var regex = new RegExp(compareValue, "i");
+            return regex.test(origin);
+          } else {
+            return false;
+          }
         }
     }
   }

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

@@ -205,5 +205,7 @@ App.MainConfigHistoryView = App.TableView.extend(App.TableServerViewMixin, {
    */
   colPropAssoc: function () {
     return this.get('controller.colPropAssoc');
-  }.property('controller.colPropAssoc')
+  }.property('controller.colPropAssoc'),
+
+  filter: Em.K
 });

+ 0 - 3
ambari-web/test/mappers/stack_service_mapper_test.js

@@ -206,9 +206,6 @@ describe('App.stackServiceMapper', function () {
       App.stackServiceMapper.clearStackModels();
     });
 
-    afterEach(function () {
-    });
-
     it('should sort and map data about services with their components', function () {
       App.stackServiceMapper.map(data);
       var services = App.StackService.find(),

+ 5 - 0
ambari-web/test/views/common/filter_view_test.js

@@ -379,6 +379,11 @@ describe('filters.getFilterByType', function () {
         condition: 'hello',
         value: '',
         result: false
+      },
+      {
+        condition: '?',
+        value: 'hello',
+        result: false
       }
     ];