Sfoglia il codice sorgente

HUE-7630 [dashboard] Add a basic query builder layout

Romain Rigaux 8 anni fa
parent
commit
865f193

+ 1 - 1
desktop/core/src/desktop/templates/common_dashboard.mako

@@ -54,7 +54,7 @@
       </div>
       </div>
     </a>
     </a>
     % if HAS_QUERY_BUILDER_ENABLED.get():
     % if HAS_QUERY_BUILDER_ENABLED.get():
-    <a href="javascript: fullLayout(searchViewModel)" title="${ _('Query Builder: Single widget for easily analysing data in multiple dimensions') }" onmouseover="searchViewModel.previewColumns('qbuilder')" onmouseout="searchViewModel.previewColumns('')">
+    <a href="javascript: queryBuilderSearchLayout(searchViewModel)" title="${ _('Query Builder: Single widget for easily analysing data in multiple dimensions') }" onmouseover="searchViewModel.previewColumns('qbuilder')" onmouseout="searchViewModel.previewColumns('')">
       <div class="layout-container">
       <div class="layout-container">
         <div class="layout-box" style="width: 100px;"><i class="fa fa-table"></i></div>
         <div class="layout-box" style="width: 100px;"><i class="fa fa-table"></i></div>
       </div>
       </div>

+ 8 - 2
desktop/libs/dashboard/src/dashboard/static/dashboard/js/search.ko.js

@@ -20,6 +20,13 @@ function magicSearchLayout(vm) {
   huePubSub.publish('dashboard.set.layout');
   huePubSub.publish('dashboard.set.layout');
 }
 }
 
 
+function queryBuilderSearchLayout(vm) {
+  loadSearchLayout(vm, vm.initial.qbLayout);
+  $(document).trigger("magicSearchLayout");
+  huePubSub.publish('dashboard.set.layout');
+}
+
+
 function loadSearchLayout(viewModel, json_layout) {
 function loadSearchLayout(viewModel, json_layout) {
   var _columns = [];
   var _columns = [];
 
 
@@ -1599,6 +1606,7 @@ var NewTemplate = function (vm, initial) {
   self.collections = ko.mapping.fromJS(initial.collections);
   self.collections = ko.mapping.fromJS(initial.collections);
   self.engines = ko.mapping.fromJS(initial.engines);
   self.engines = ko.mapping.fromJS(initial.engines);
   self.layout = initial.layout;
   self.layout = initial.layout;
+  self.qbLayout = initial.qb_layout;
   self.inited = ko.observable(self.collections().length > 0); // No collection if not a new dashboard
   self.inited = ko.observable(self.collections().length > 0); // No collection if not a new dashboard
 
 
   self.init = function() {
   self.init = function() {
@@ -2630,7 +2638,6 @@ var SearchViewModel = function (collection_json, query_json, initial_json) {
     self.query.selectedMultiq('query');
     self.query.selectedMultiq('query');
 
 
 
 
-
     // UI
     // UI
     self.selectedQDefinition(null);
     self.selectedQDefinition(null);
     self.response({});
     self.response({});
@@ -2657,7 +2664,6 @@ var SearchViewModel = function (collection_json, query_json, initial_json) {
   };
   };
 
 
 
 
-
   self.build();
   self.build();
 };
 };
 
 

+ 17 - 0
desktop/libs/dashboard/src/dashboard/views.py

@@ -51,6 +51,19 @@ DEFAULT_LAYOUT = [
         "drops":["temp"],"klass":"card card-home card-column span10"},
         "drops":["temp"],"klass":"card card-home card-column span10"},
 ]
 ]
 
 
+QUEERY_BUILDER_LAYOUT = [
+  {u'klass': u'card card-home card-column span12', u'rows': [
+    {u'widgets': [
+        {u'name': u'Filter Bar', u'widgetType': u'filter-widget', u'properties': {}, u'isLoading': False, u'offset': 0, u'klass': u'card card-widget span12', u'id': u'abe50df3-a5a0-408a-8122-019d779b4354', u'size': 12}],
+     u'id': u'22532a0a-8e43-603a-daa9-77d5d233fd7f', u'columns': []},
+        {u'widgets': [], u'id': u'ebb7fe4d-64c5-c660-bdc0-02a77ff8321e', u'columns': []},
+        {u'widgets': [{u'name': u'Grid Results', u'widgetType': u'resultset-widget', u'properties': {}, u'isLoading': False, u'offset': 0, u'klass': u'card card-widget span12', u'id': u'14023aef-b233-9420-96c6-15d48293532b', u'size': 12}],
+    u'id': u'2bfa8b4b-f7f3-1491-4de0-282130c6ab61', u'columns': []}
+    ],
+    u'id': u'7e0c0a45-ae90-43a6-669a-2a852ef4a449', u'drops': [u'temp'], u'size': 12
+  }
+]
+
 
 
 def index(request, is_mobile=False):
 def index(request, is_mobile=False):
   hue_collections = DashboardController(request.user).get_search_collections()
   hue_collections = DashboardController(request.user).get_search_collections()
@@ -87,6 +100,7 @@ def index(request, is_mobile=False):
     'initial': json.dumps({
     'initial': json.dumps({
         'collections': [],
         'collections': [],
         'layout': DEFAULT_LAYOUT,
         'layout': DEFAULT_LAYOUT,
+        'qb_layout': QUEERY_BUILDER_LAYOUT,
         'is_latest': _get_latest(),
         'is_latest': _get_latest(),
         'engines': get_engines(request.user)
         'engines': get_engines(request.user)
     }),
     }),
@@ -115,6 +129,7 @@ def new_search(request):
       'initial': {
       'initial': {
           'collections': collections,
           'collections': collections,
           'layout': DEFAULT_LAYOUT,
           'layout': DEFAULT_LAYOUT,
+          'qb_layout': QUEERY_BUILDER_LAYOUT,
           'is_latest': _get_latest(),
           'is_latest': _get_latest(),
           'engines': get_engines(request.user)
           'engines': get_engines(request.user)
        }
        }
@@ -126,6 +141,7 @@ def new_search(request):
       'initial': json.dumps({
       'initial': json.dumps({
           'collections': collections,
           'collections': collections,
           'layout': DEFAULT_LAYOUT,
           'layout': DEFAULT_LAYOUT,
+          'qb_layout': QUEERY_BUILDER_LAYOUT,
           'is_latest': _get_latest(),
           'is_latest': _get_latest(),
           'engines': get_engines(request.user)
           'engines': get_engines(request.user)
        }),
        }),
@@ -159,6 +175,7 @@ def browse(request, name, is_mobile=False):
                "properties":{},"offset":0,"isLoading":True,"klass":"card card-widget span12"}]}],
                "properties":{},"offset":0,"isLoading":True,"klass":"card card-widget span12"}]}],
           "drops":["temp"],"klass":"card card-home card-column span10"}
           "drops":["temp"],"klass":"card card-home card-column span10"}
       ],
       ],
+      'qb_layout': QUEERY_BUILDER_LAYOUT,
       'is_latest': _get_latest(),
       'is_latest': _get_latest(),
       'engines': get_engines(request.user)
       'engines': get_engines(request.user)
     }),
     }),