Browse Source

HUE-6537 [core] Promote the first category of interpreter

Romain Rigaux 8 years ago
parent
commit
eab7bbd32d
2 changed files with 16 additions and 5 deletions
  1. 2 1
      desktop/core/src/desktop/models.py
  2. 14 4
      desktop/core/src/desktop/templates/hue.mako

+ 2 - 1
desktop/core/src/desktop/models.py

@@ -1625,7 +1625,8 @@ class ClusterConfig():
         'type': 'notebook',
         'displayName': 'Notebook',
         'tooltip': _('Notebook'),
-        'page': '/notebook'
+        'page': '/notebook',
+        'is_sql': False
       })
 
     _interpreters = get_ordered_interpreters(self.user)

+ 14 - 4
desktop/core/src/desktop/templates/hue.mako

@@ -656,7 +656,7 @@ ${ smart_unicode(login_modal(request).content) | n,unicode }
           self.loadApp('editor');
 
           self.getActiveAppViewModel(function (viewModel) {
-            var editorType = statementOptions['type'] || 'hive'; // Next: use file extensions and default type of Editor for SQL            
+            var editorType = statementOptions['type'] || 'hive'; // Next: use file extensions and default type of Editor for SQL
             viewModel.newNotebook(editorType, function() {
               self.changeEditorType(statementOptions['statementType'] || editorType);
 
@@ -1168,15 +1168,25 @@ ${ smart_unicode(login_modal(request).content) | n,unicode }
             var buttonActions = clusterConfig['button_actions'];
               buttonActions.forEach(function(app) {
               var interpreters = [];
-              var hasNotebook = false;
+              var toAddDivider = false;
+              var dividerAdded = false;
+              var lastInterpreter = null;
               $.each(app['interpreters'], function(index, interpreter) {
-                hasNotebook = hasNotebook || interpreter.type == 'notebook';
+                // Promote the first catagory of interpreters
+                if (! dividerAdded) {
+                  toAddDivider = app.name === 'editor' && (lastInterpreter != null && lastInterpreter.is_sql != interpreter.is_sql);
+                }
                 interpreters.push({
                   displayName: interpreter.displayName,
-                  dividerAbove: app.name === 'editor' && index === 1 && hasNotebook,
+                  dividerAbove: toAddDivider,
                   icon: interpreter.type,
                   url: interpreter.page
                 });
+                lastInterpreter = interpreter;
+                if (toAddDivider) {
+                  dividerAdded = true;
+                  toAddDivider = false;
+                }
               });
 
               % if user.is_superuser: