ソースを参照

HUE-8917 [assist] Fix issue with missing templates in right assist

Johan Ahlen 6 年 前
コミット
f7fbad777b

+ 34 - 28
desktop/core/src/desktop/js/ko/components/assist/ko.assistDbPanel.js

@@ -24,7 +24,7 @@ import dataCatalog from 'catalog/dataCatalog';
 import huePubSub from 'utils/huePubSub';
 import I18n from 'utils/i18n';
 
-const TEMPLATE = `
+const ASSIST_TABLE_TEMPLATES = `
   <script type="text/html" id="assist-no-database-entries">
     <ul class="assist-tables">
       <li>
@@ -41,25 +41,6 @@ const TEMPLATE = `
     </ul>
   </script>
 
-  <script type="text/html" id="assist-database-actions">
-    <div class="assist-actions database-actions" style="opacity: 0">
-      <!-- ko if: sourceType === 'hive' || sourceType === 'impala' -->
-      <a class="inactive-action" href="javascript:void(0)" data-bind="visible: navigationSettings.showStats, click: function (data, event) { showContextPopover(data, event); }, css: { 'blue': statsVisible }"><i class="fa fa-fw fa-info" title="${I18n(
-        'Show details'
-      )}"></i></a>
-      <!-- /ko -->
-      <a class="inactive-action" href="javascript:void(0)" data-bind="visible: navigationSettings.openItem, click: openItem"><i class="fa fa-long-arrow-right" title="${I18n(
-        'Open'
-      )}"></i></a>
-    </div>
-  </script>
-  
-  <script type="text/html" id="collection-title-context-items">
-    <li><a href="javascript:void(0);" data-bind="hueLink: '/indexer'"><i class="fa fa-fw fa-table"></i> ${I18n(
-      'Open in Browser'
-    )}</a></li>
-  </script>
-
   <script type="text/html" id="sql-context-items">
     <!-- ko if: typeof catalogEntry !== 'undefined' -->
       <li><a href="javascript:void(0);" data-bind="click: function (data) { showContextPopover(data, { target: $parentContext.$contextSourceElement }, { left: -15, top: 2 }); }"><i class="fa fa-fw fa-info"></i> ${I18n(
@@ -155,13 +136,6 @@ const TEMPLATE = `
     </li>
   </script>
 
-  <script type="text/html" id="assist-database-entry">
-    <li class="assist-table" data-bind="appAwareTemplateContextMenu: { template: 'sql-context-items', scrollContainer: '.assist-db-scrollable' }, visibleOnHover: { selector: '.database-actions' }">
-      <!-- ko template: { name: 'assist-database-actions' } --><!-- /ko -->
-      <a class="assist-table-link" href="javascript: void(0);" data-bind="click: function () { $parent.selectedDatabase($data); $parent.selectedDatabaseChanged(); }, attr: {'title': catalogEntry.getTitle(true) }, draggableText: { text: editorText,  meta: {'type': 'sql', 'database': databaseName} }"><i class="fa fa-fw fa-database muted valign-middle"></i> <span class="highlightable" data-bind="text: catalogEntry.name, css: { 'highlight': highlight() }"></span></a>
-    </li>
-  </script>
-
   <script type="text/html" id="assist-table-entry">
     <li class="assist-table" data-bind="appAwareTemplateContextMenu: { template: 'sql-context-items', scrollContainer: '.assist-db-scrollable' }, visibleOnHover: { override: statsVisible() || navigationSettings.rightAssist, selector: '.table-actions' }">
       <div class="assist-actions table-actions" data-bind="css: { 'assist-actions-left': navigationSettings.rightAssist }" style="opacity: 0">
@@ -261,6 +235,36 @@ const TEMPLATE = `
     </ul>
     <!-- /ko -->
   </script>
+`;
+
+const TEMPLATE =
+  ASSIST_TABLE_TEMPLATES +
+  `
+  <script type="text/html" id="assist-database-actions">
+    <div class="assist-actions database-actions" style="opacity: 0">
+      <!-- ko if: sourceType === 'hive' || sourceType === 'impala' -->
+      <a class="inactive-action" href="javascript:void(0)" data-bind="visible: navigationSettings.showStats, click: function (data, event) { showContextPopover(data, event); }, css: { 'blue': statsVisible }"><i class="fa fa-fw fa-info" title="${I18n(
+        'Show details'
+      )}"></i></a>
+      <!-- /ko -->
+      <a class="inactive-action" href="javascript:void(0)" data-bind="visible: navigationSettings.openItem, click: openItem"><i class="fa fa-long-arrow-right" title="${I18n(
+        'Open'
+      )}"></i></a>
+    </div>
+  </script>
+
+  <script type="text/html" id="collection-title-context-items">
+    <li><a href="javascript:void(0);" data-bind="hueLink: '/indexer'"><i class="fa fa-fw fa-table"></i> ${I18n(
+      'Open in Browser'
+    )}</a></li>
+  </script>
+
+  <script type="text/html" id="assist-database-entry">
+    <li class="assist-table" data-bind="appAwareTemplateContextMenu: { template: 'sql-context-items', scrollContainer: '.assist-db-scrollable' }, visibleOnHover: { selector: '.database-actions' }">
+      <!-- ko template: { name: 'assist-database-actions' } --><!-- /ko -->
+      <a class="assist-table-link" href="javascript: void(0);" data-bind="click: function () { $parent.selectedDatabase($data); $parent.selectedDatabaseChanged(); }, attr: {'title': catalogEntry.getTitle(true) }, draggableText: { text: editorText,  meta: {'type': 'sql', 'database': databaseName} }"><i class="fa fa-fw fa-database muted valign-middle"></i> <span class="highlightable" data-bind="text: catalogEntry.name, css: { 'highlight': highlight() }"></span></a>
+    </li>
+  </script>
 
   <script type="text/html" id="assist-db-breadcrumb">
     <div class="assist-flex-header assist-breadcrumb">
@@ -560,7 +564,7 @@ const TEMPLATE = `
       <span class="assist-errors">${I18n('Error loading tables.')}</span>
     </div>
   </script>
-  
+
   <!-- ko template: 'assist-sql-inner-panel' --><!-- /ko -->
 `;
 
@@ -906,3 +910,5 @@ const viewModelFactory = {
 };
 
 componentUtils.registerComponent('hue-assist-db-panel', viewModelFactory, TEMPLATE);
+
+export default ASSIST_TABLE_TEMPLATES;

+ 8 - 6
desktop/core/src/desktop/js/ko/components/assist/ko.assistEditorContextPanel.js

@@ -17,17 +17,19 @@
 import $ from 'jquery';
 import ko from 'knockout';
 
-import AssistDbSource from 'ko/components/assist/assistDbSource';
+import ASSIST_TABLE_TEMPLATES from 'ko/components/assist/ko.assistDbPanel';
 import AssistDbEntry from 'ko/components/assist/assistDbEntry';
+import AssistDbSource from 'ko/components/assist/assistDbSource';
 import componentUtils from 'ko/components/componentUtils';
-import huePubSub from 'utils/huePubSub';
 import dataCatalog from 'catalog/dataCatalog';
+import huePubSub from 'utils/huePubSub';
 import I18n from 'utils/i18n';
 
-const TEMPLATE = `
+const TEMPLATE =
+  ASSIST_TABLE_TEMPLATES +
+  `
   <div class="assist-inner-panel assist-assistant-panel">
     <div class="assist-flex-panel">
-
       <div class="assist-flex-header">
         <div class="assist-inner-header">
           <!-- ko if: isSolr -->
@@ -128,8 +130,8 @@ const TEMPLATE = `
           <a href="javascript:void(0)" data-bind="visible: activeTables().length > 0, click: function() { uploadTableStats(true) }, attr: { 'title': ('${I18n(
             'Add table '
           )}'  + (isMissingDDL() ? 'DDL' : '') + (isMissingDDL() && isMissingStats() ? ' ${I18n(
-  'and'
-)} ' : '') + (isMissingStats() ? 'stats' : '')) }">
+    'and'
+  )} ' : '') + (isMissingStats() ? 'stats' : '')) }">
             <i class="fa fa-fw fa-plus-circle"></i> ${I18n('Improve Analysis')}
           </a>
           <!-- /ko -->