浏览代码

HUE-6083 [metadata] Render /partitions page as metastore.mako

Enrico Berti 8 年之前
父节点
当前提交
338d518

+ 11 - 0
apps/metastore/src/metastore/static/metastore/js/metastore.ko.js

@@ -303,9 +303,20 @@ var MetastoreViewModel = (function () {
         self.setDatabaseByName(path[1]);
         break;
       case 'table':
+        huePubSub.subscribe('metastore.loaded.table', function(){
+          hueUtils.waitForRendered('a[href="#overview"]', function(el){ return el.is(':visible') }, function(){
+            $('a[href="#overview"]').click();
+          });
+        }, 'metastore');
         self.loadTableDef({
           name: path[2],
           database: path[1]
+        }, function(){
+          if (path.length > 3 && path[3] === 'partitions'){
+            huePubSub.subscribe('metastore.loaded.partitions', function(){
+              $('a[href="#partitions"]').click();
+            }, 'metastore');
+          }
         });
     }
   };

+ 2 - 3
apps/metastore/src/metastore/static/metastore/js/metastore.model.js

@@ -200,9 +200,6 @@ var MetastoreDatabase = (function () {
     if (callback) {
       callback();
     }
-    window.setTimeout(function () {
-      $('a[href="#overview"]').click();
-    }, 200);
   };
 
   return MetastoreDatabase;
@@ -295,6 +292,7 @@ var MetastoreTable = (function () {
         self.preview.keys(self.keys());
         self.loading(false);
         self.loaded(true);
+        huePubSub.publish('metastore.loaded.partitions');
       },
       errorCallback: function (data) {
         self.loading(false);
@@ -638,6 +636,7 @@ var MetastoreTable = (function () {
     self.loading(true);
     self.fetchFields();
     self.fetchDetails();
+    huePubSub.publish('metastore.loaded.table');
   };
 
 

+ 1 - 1
apps/metastore/src/metastore/urls.py

@@ -33,7 +33,7 @@ urlpatterns = patterns('metastore.views',
   url(r'^table/(?P<database>\w+)/(?P<table>\w+)/load$', 'load_table', name='load_table'),
   url(r'^table/(?P<database>\w+)/(?P<table>\w+)/read$', 'read_table', name='read_table'),
   url(r'^table/(?P<database>\w+)/(?P<table>\w+)/queries$', 'table_queries', name='table_queries'),
-  url(r'^table/(?P<database>\w+)/(?P<table>\w+)/partitions$', 'describe_partitions', name='describe_partitions'),
+  url(r'^table/(?P<database>\w+)/(?P<table>\w+)/partitions/?$', 'describe_partitions', name='describe_partitions'),
   url(r'^table/(?P<database>\w+)/(?P<table>\w+)/partitions/(?P<partition_spec>.+?)/read$', 'read_partition', name='read_partition'),
   url(r'^table/(?P<database>\w+)/(?P<table>\w+)/partitions/(?P<partition_spec>.+?)/browse$', 'browse_partition', name='browse_partition'),
   url(r'^table/(?P<database>\w+)/(?P<table>\w+)/partitions/drop$', 'drop_partition', name='drop_partition'),

+ 4 - 1
apps/metastore/src/metastore/views.py

@@ -514,7 +514,7 @@ def describe_partitions(request, database, table):
       'partition_values_json': massaged_partitions,
     })
   else:
-    return render("describe_partitions.mako", request, {
+    return render("metastore.mako", request, {
       'breadcrumbs': [{
             'name': database,
             'url': reverse('metastore:show_tables', kwargs={'database': database})
@@ -535,6 +535,9 @@ def describe_partitions(request, database, table):
         'has_write_access': has_write_access(request.user),
         'is_optimizer_enabled': has_optimizer(),
         'is_navigator_enabled': has_navigator(request.user),
+        'optimizer_url': get_optimizer_url(),
+        'navigator_url': get_navigator_url(),
+        'is_embeddable': request.REQUEST.get('is_embeddable', False),
         'source_type': _get_servername(db),
     })