Browse Source

HUE-1435 [hbase] Searchbar & tableview cleanup

Kevin Wang 12 years ago
parent
commit
fd25c61
3 changed files with 35 additions and 25 deletions
  1. 1 0
      apps/hbase/static/js/app.js
  2. 31 25
      apps/hbase/static/js/controls.js
  3. 3 0
      apps/hbase/static/js/utils.js

+ 1 - 0
apps/hbase/static/js/app.js

@@ -117,6 +117,7 @@ routie({
       app.cluster(cluster);
       app.pageTitle(cluster);
       Views.render('clusterview');
+      resetElements();
       app.views.tables.reload();
       routed = true;
     },

+ 31 - 25
apps/hbase/static/js/controls.js

@@ -157,12 +157,8 @@ var SmartViewModel = function(options) {
   self.name = ko.observable(options.name);
   self.name.subscribe(function(){
     self.querySet.removeAll();
-    self.querySet.push(new QuerySetPeice({
-      'row_key': 'null',
-      'scan_length': 10,
-      'prefix': 'false'
-    }));
     self._reloadcfs();
+    self.evaluateQuery();
   }); //fix and decouple
 
   self.lastReloadTime = ko.observable(1);
@@ -172,20 +168,22 @@ var SmartViewModel = function(options) {
   {
     var inputs = value.match(searchRenderers['rowkey']['select']);
     self.querySet.removeAll();
-    for(var i=0; i<inputs.length; i++) {
-      if(inputs[i].trim() != "" && inputs[i].trim() != ',') {
-        var p = inputs[i].split('+');
-        var scan = p.length > 1 ? parseInt(p[1].trim()) : 0;
-        var extract = inputs[i].match(searchRenderers['rowkey']['nested']['columns']['select']);
-        var columns = extract != null ? extract[0].match(searchRenderers['rowkey']['nested']['columns']['tag']) : [];
-        var filter = inputs[i].match(searchRenderers['rowkey']['nested']['filter']['select']);
-        self.querySet.push(new QuerySetPeice({
-          'row_key': p[0].replace(/[\[\{].+[\]\}]|\*/g,'').trim(), //clean up with column regex selectors instead
-          'scan_length': scan ? scan + 1 : 1,
-          'columns': columns,
-          'prefix': inputs[i].match(searchRenderers['rowkey']['nested']['prefix']['select']) != null,
-          'filter': filter != null && filter.length > 0 ? escape(filter[0].slice(1, -1)) : null
-        }));
+    if(inputs) {
+      for(var i=0; i<inputs.length; i++) {
+        if(inputs[i].trim() != "" && inputs[i].trim() != ',') {
+          var p = inputs[i].split('+');
+          var scan = p.length > 1 ? parseInt(p[1].trim()) : 0;
+          var extract = inputs[i].match(searchRenderers['rowkey']['nested']['columns']['select']);
+          var columns = extract != null ? extract[0].match(searchRenderers['rowkey']['nested']['columns']['tag']) : [];
+          var filter = inputs[i].match(searchRenderers['rowkey']['nested']['filter']['select']);
+          self.querySet.push(new QuerySetPiece({
+            'row_key': p[0].replace(/[\[\{].+[\]\}]|\*/g,'').trim(), //clean up with column regex selectors instead
+            'scan_length': scan ? scan + 1 : 1,
+            'columns': columns,
+            'prefix': inputs[i].match(searchRenderers['rowkey']['nested']['prefix']['select']) != null,
+            'filter': filter != null && filter.length > 0 ? escape(filter[0].slice(1, -1)) : null
+          }));
+        }
       }
     }
     routie(app.cluster() + '/' + app.views.tabledata.name() +'/query/' + value);
@@ -221,14 +219,22 @@ var SmartViewModel = function(options) {
 
   self.querySet = ko.observableArray();
   self.validateQuery = function() {
-    $(self.querySet()).each(function() {
-      this.validate();
-      this.editing(false);
-    });
+    if(self.querySet().length == 0) {
+      self.querySet.push(new QuerySetPiece({
+        'row_key': 'null',
+        'scan_length': 10,
+        'prefix': 'false'
+      }));
+    } else {
+      $(self.querySet()).each(function() {
+        this.validate();
+        this.editing(false);
+      });
+    }
   };
   self.addQuery = function() {
     self.validateQuery();
-    self.querySet.push(new QuerySetPeice({onValidate: function() {
+    self.querySet.push(new QuerySetPiece({onValidate: function() {
       //self.reload();
     }}))
   };
@@ -506,7 +512,7 @@ var TableDataRow = function(options) {
   };
 };
 
-var QuerySetPeice = function(options) {
+var QuerySetPiece = function(options) {
   var self = this;
   options = ko.utils.extend({
     row_key: "null",

+ 3 - 0
apps/hbase/static/js/utils.js

@@ -175,6 +175,7 @@ function convertTimestamp(timestamp) {
 }
 
 function resetElements() {
+  $(window).unbind('scroll');
   $(window).scroll(function(e) {
     $(".subnav.sticky").each(function() {
       var padder = $(this).data('padder'), top = $(this).position().top + (padder ? window.scrollY : 0);
@@ -187,6 +188,8 @@ function resetElements() {
       }
     });
   });
+  app.views.tabledata.searchQuery('');
+  app.search.cur_input('');
 };
 
 function prepForTransport(value) {