Эх сурвалжийг харах

HUE-3228 [dashboard] Add explore table in assist menu

Romain Rigaux 8 жил өмнө
parent
commit
81ae2103c2

+ 1 - 1
desktop/core/src/desktop/static/desktop/js/apiHelper.js

@@ -62,7 +62,7 @@ var ApiHelper = (function () {
   var IMPALA_INVALIDATE_API = '/impala/api/invalidate';
   var CONFIG_SAVE_API = '/desktop/api/configurations/save/';
   var CONFIG_APPS_API = '/desktop/api/configurations';
-  var SOLR_COLLECTIONS_API = '/indexer/api/collections/list/';
+  var SOLR_COLLECTIONS_API = '/indexer/api/indexes/list/';
   var HBASE_API_PREFIX = '/hbase/api/';
   var SAVE_TO_FILE = '/filebrowser/save';
 

+ 5 - 0
desktop/core/src/desktop/static/desktop/js/assist/assistDbEntry.js

@@ -469,6 +469,11 @@ var AssistDbEntry = (function () {
     }
   };
 
+  AssistDbEntry.prototype.explore = function () {
+    var self = this;
+    huePubSub.publish('open.link', '/hue/dashboard/browse/' + self.getDatabaseName() + '.' + self.getTableName() + '?engine=' + self.assistDbSource.sourceType);
+  };
+  
   AssistDbEntry.prototype.openInMetastore = function () {
     var self = this;
     var url;

+ 11 - 3
desktop/core/src/desktop/templates/assist.mako

@@ -17,6 +17,7 @@
 <%!
 from django.utils.translation import ugettext as _
 
+from dashboard.conf import HAS_SQL_ENABLED
 from desktop import appmanager
 from desktop import conf
 from desktop.conf import USE_NEW_SIDE_PANELS, VCS
@@ -25,8 +26,7 @@ from desktop.views import _ko
 
 from metadata.conf import has_navigator, has_navigator_file_search
 from metastore.conf import ENABLE_NEW_CREATE_TABLE
-from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING
-from notebook.conf import get_ordered_interpreters
+from notebook.conf import ENABLE_QUERY_BUILDER, ENABLE_QUERY_SCHEDULING, get_ordered_interpreters
 %>
 
 <%def name="assistJSModels()">
@@ -97,7 +97,15 @@ from notebook.conf import get_ordered_interpreters
     <li><a href="javascript:void(0);" data-bind="click: openInMetastore"><i class="fa fa-fw fa-table"></i> ${ _('Open in Browser') }</a></li>
     <!-- /ko -->
     <!-- ko if: definition.isView || definition.isTable -->
-    <li><a href="javascript:void(0);" data-bind="click: function() { huePubSub.publish('query.and.watch', {'url': '/notebook/browse/' + databaseName + '/' + tableName + '/', sourceType: sourceType}); }"><i class="fa fa-fw fa-code"></i> ${ _('Open in Editor') }</a></li>
+    <li>
+      <a href="javascript:void(0);" data-bind="click: function() { huePubSub.publish('query.and.watch', {'url': '/notebook/browse/' + databaseName + '/' + tableName + '/', sourceType: sourceType}); }">
+        <i class="fa fa-fw fa-code"></i> ${ _('Open in Editor') }
+      </a>
+    </li>
+    % if HAS_SQL_ENABLED.get():
+    <li><a href="javascript: void(0);" data-bind="click: explore">
+      <!-- ko template: { name: 'app-icon-template', data: { icon: 'dashboard' } } --><!-- /ko --> ${ _('Open in Dashboard') }</a></li>
+    % endif
     <!-- /ko -->
     %if ENABLE_QUERY_BUILDER.get():
     <!-- ko if: definition.isColumn && $currentApp() === 'editor' -->

+ 2 - 2
desktop/libs/dashboard/src/dashboard/views.py

@@ -136,10 +136,10 @@ def new_search(request):
 def browse(request, name, is_mobile=False):
   engine = request.GET.get('engine', 'solr')
   collections = get_engine(request.user, engine).datasets()
-  if not collections:
+  if not collections and engine == 'solr':
     return no_collections(request)
 
-  collection = Collection2(user=request.user, name=name)
+  collection = Collection2(user=request.user, name=name, engine=engine)
   query = {'qs': [{'q': ''}], 'fqs': [], 'start': 0}
 
   template = 'search.mako'

+ 2 - 1
desktop/libs/indexer/src/indexer/templates/importer.mako

@@ -1308,7 +1308,8 @@ ${ assist.assistPanel() }
         }
         else if (self.outputFormat() == 'index') {
           $.post("/search/get_collection", {
-              name: self.name()
+              name: self.name(),
+              engine: 'solr'
           }, function (data) {
             self.isTargetExisting(data.status == 0);
             self.isTargetChecking(false);