Browse Source

HUE-8872 [editor] Show correct column count in the result column selector

This also takes care of some linting issues
Johan Ahlen 6 years ago
parent
commit
24090d309f

+ 8 - 0
desktop/core/src/desktop/js/apps/notebook/result.js

@@ -117,6 +117,14 @@ class Result {
 
     self.isMetaFilterVisible = ko.observable(false);
     self.filteredMetaChecked = ko.observable(true);
+
+    self.filteredColumnCount = ko.pureComputed(() => {
+      if (!self.metaFilter() || self.metaFilter().query === '') {
+        return self.meta().length - 1;
+      }
+      return self.filteredMeta().length;
+    });
+
     self.filteredMeta = ko.pureComputed(() => {
       if (!self.metaFilter() || self.metaFilter().query === '') {
         return self.meta();

+ 8 - 0
desktop/core/src/desktop/js/apps/notebook2/result.js

@@ -91,6 +91,14 @@ class Result {
 
     self.isMetaFilterVisible = ko.observable(false);
     self.filteredMetaChecked = ko.observable(true);
+
+    self.filteredColumnCount = ko.pureComputed(() => {
+      if (!self.metaFilter() || self.metaFilter().query === '') {
+        return self.meta().length - 1;
+      }
+      return self.filteredMeta().length;
+    });
+
     self.filteredMeta = ko.pureComputed(() => {
       if (!self.metaFilter() || self.metaFilter().query === '') {
         return self.meta();

+ 1 - 1
desktop/core/src/desktop/js/jquery/plugins/jquery.filechooser.js

@@ -272,7 +272,7 @@ Plugin.prototype.navigateTo = function(path) {
     .find('.filechooser-tree')
     .html('<i style="font-size: 24px; color: #DDD" class="fa fa-spinner fa-spin"></i>');
   let pageSize = '?pagesize=1000';
-  var index = path.indexOf('?');
+  const index = path.indexOf('?');
   if (index > -1) {
     pageSize = path.substring(index) + pageSize.replace(/\?/, '&');
     path = path.substring(0, index);

+ 1 - 1
desktop/core/src/desktop/js/ko/bindings/ko.hueLink.js

@@ -27,7 +27,7 @@ ko.bindingHandlers.hueLink = {
         return function(data, event) {
           const url = ko.unwrap(valueAccessor());
           if (url) {
-            const prefix = window.HUE_BASE_URL +  '/hue' + (url.indexOf('/') === 0 ? '' : '/');
+            const prefix = window.HUE_BASE_URL + '/hue' + (url.indexOf('/') === 0 ? '' : '/');
             if ($(element).attr('target')) {
               window.open(prefix + url, $(element).attr('target'));
             } else if (event.ctrlKey || event.metaKey || event.which === 2) {

+ 11 - 5
desktop/core/src/desktop/js/ko/components/ko.globalSearch.js

@@ -148,11 +148,18 @@ class GlobalSearch {
         disableNavigation: true,
         showMagnify: true,
         facetDropDownVisible: self.facetDropDownVisible,
-        spin: loading,
-        placeHolder: I18n(window.HAS_CATALOG ? 'Search data and saved documents...' : 'Search saved documents...'),
+        spin: self.loading,
+        placeHolder: I18n(
+          window.HAS_CATALOG ? 'Search data and saved documents...' : 'Search saved documents...'
+        ),
         querySpec: self.querySpec,
-        onClear: function () { self.selectedIndex(null); self.searchResultVisible(false); },
-        facets: window.HAS_READ_ONLY_CATALOG ? ['classification', 'tag', 'tags', 'type'] : ['originalName', 'parentPath', 'tag', 'tags', 'type'],
+        onClear: function() {
+          self.selectedIndex(null);
+          self.searchResultVisible(false);
+        },
+        facets: window.HAS_READ_ONLY_CATALOG
+          ? ['classification', 'tag', 'tags', 'type']
+          : ['originalName', 'parentPath', 'tag', 'tags', 'type'],
         knownFacetValues: self.knownFacetValues,
         autocompleteFromEntries: self.autocompleteFromEntries,
         triggerObservable: self.searchResultCategories
@@ -344,7 +351,6 @@ class GlobalSearch {
       if (window.HAS_READ_ONLY_CATALOG) {
         facetValues['classification'] = facets;
       }
-
     });
   }
 

+ 19 - 8
desktop/core/src/desktop/js/onePageViewModel.js

@@ -232,7 +232,7 @@ class OnePageViewModel {
       $rawHtml.find('a[href]').each(function() {
         let link = $(this).attr('href');
         if (link.startsWith('/') && !link.startsWith('/hue')) {
-          link =  window.HUE_BASE_URL + '/hue' + link;
+          link = window.HUE_BASE_URL + '/hue' + link;
         }
         $(this).attr('href', link);
       });
@@ -338,13 +338,19 @@ class OnePageViewModel {
                       .replace('*', encodeURIComponent(self.currentContextParams()[key.name]))
                       .replace(/#/g, '%23');
                   } else {
-                    baseURL = baseURL.replace('*', encodeURI(self.currentContextParams()[key.name])); // We have some really funky stuff in here, this should be encodeURIComponent
+                    baseURL = baseURL.replace(
+                      '*',
+                      encodeURI(self.currentContextParams()[key.name])
+                    ); // We have some really funky stuff in here, this should be encodeURIComponent
                   }
                 } else {
                   baseURL = baseURL.replace('*', '');
                 }
               } else {
-                baseURL = baseURL.replace(':' + key.name, encodeURI(self.currentContextParams()[key.name])); // We have some really funky stuff in here, this should be encodeURIComponent
+                baseURL = baseURL.replace(
+                  ':' + key.name,
+                  encodeURI(self.currentContextParams()[key.name])
+                ); // We have some really funky stuff in here, this should be encodeURIComponent
               }
             });
           }
@@ -498,8 +504,10 @@ class OnePageViewModel {
         }
       },
       { url: '/dashboard/*', app: 'dashboard' },
-      { url: '/desktop/api/desktop/api2/doc/export*', app: function() {
-          var documents = getUrlParameter('documents');
+      {
+        url: '/desktop/api/desktop/api2/doc/export*',
+        app: function() {
+          const documents = getUrlParameter('documents');
           location.href = window.HUE_BASE_URL + '/desktop/api2/doc/export?documents=' + documents;
         }
       },
@@ -581,8 +589,10 @@ class OnePageViewModel {
         }
       },
       { url: '/filebrowser/view=*', app: 'filebrowser' },
-      { url: '/filebrowser/download=*', app: function(ctx) {
-        location.href = window.HUE_BASE_URL + '/filebrowser/download=' + ctx.params[0];
+      {
+        url: '/filebrowser/download=*',
+        app: function(ctx) {
+          location.href = window.HUE_BASE_URL + '/filebrowser/download=' + ctx.params[0];
         }
       },
       {
@@ -821,7 +831,8 @@ class OnePageViewModel {
         const prefix = window.IS_EMBEDDED ? '' : '/hue';
         if (href.startsWith('/') && !href.startsWith(prefix)) {
           page(window.HUE_BASE_URL + prefix + href);
-        } else if (href.indexOf('#') == 0) { // Only place that seem to use this is hbase onclick row
+        } else if (href.indexOf('#') == 0) {
+          // Only place that seem to use this is hbase onclick row
           window.location.hash = href;
         } else {
           page(href);

+ 1 - 1
desktop/core/src/desktop/js/sql/sqlWorkerHandler.js

@@ -93,7 +93,7 @@ export default {
 
       // For location marking
       const aceSqlLocationWorker = new Worker(
-          window.HUE_BASE_URL + '/desktop/workers/aceSqlLocationWorker.js?v=' + window.HUE_VERSION
+        window.HUE_BASE_URL + '/desktop/workers/aceSqlLocationWorker.js?v=' + window.HUE_VERSION
       );
       aceSqlLocationWorker.onmessage = function(e) {
         if (e.data.ping) {

+ 4 - 1
desktop/core/src/desktop/js/utils/hueUtils.js

@@ -160,7 +160,10 @@ const changeURL = (newURL, params) => {
   }
 
   const hashSplit = newURL.split('#');
-  var base = hashSplit[0].length && hashSplit[0].indexOf(window.HUE_BASE_URL) !== 0 ? window.HUE_BASE_URL : '';
+  const base =
+    hashSplit[0].length && hashSplit[0].indexOf(window.HUE_BASE_URL) !== 0
+      ? window.HUE_BASE_URL
+      : '';
   let url = base + hashSplit[0];
   if (extraSearch) {
     url += (url.indexOf('?') === -1 ? '?' : '&') + extraSearch;

+ 2 - 2
desktop/libs/notebook/src/notebook/templates/editor_components.mako

@@ -1444,8 +1444,8 @@ ${ sqlSyntaxDropdown.sqlSyntaxDropdown() }
             <input class="all-meta-checked no-margin-top" type="checkbox" data-bind="enable: !result.isMetaFilterVisible() && result.filteredMeta().length > 0, event: { change: function(){ toggleAllResultColumns($element); result.clickFilteredMetaCheck() } }, checked: result.filteredMetaChecked" />
           </th>
           <th colspan="2" class="nav-header-like">
-            <span class="meta-title pointer" data-bind="click: function(){ result.isMetaFilterVisible(true); }, attr: {title: result.filteredMeta().length }">${_('columns')}</span>
-            (<span class="meta-title pointer" data-bind="click: function(){ result.isMetaFilterVisible(true); }, text: result.filteredMeta().length"></span>)
+            <span class="meta-title pointer" data-bind="click: function() { result.isMetaFilterVisible(true); }, attr: { title: result.filteredColumnCount() }">${_('columns')}</span>
+            (<span class="meta-title pointer" data-bind="click: function() { result.isMetaFilterVisible(true); }, text: result.filteredColumnCount()"></span>)
             <span class="inactive-action" href="javascript:void(0)" data-bind="click: function(){ result.isMetaFilterVisible(true); }, css: { 'blue' : result.isMetaFilterVisible }"><i class="pointer fa fa-search" title="${ _('Search') }"></i></span>
           </th>
         </tr>