Sfoglia il codice sorgente

HUE-2173 [dashboard] Mini skeleton for static dashboard

Romain Rigaux 8 anni fa
parent
commit
07dba5f

+ 3 - 0
desktop/libs/dashboard/src/dashboard/api.py

@@ -374,6 +374,9 @@ def _create_facet(collection, user, facet_id, facet_label, facet_field, widget_t
 
   if widget_type in ('tree-widget', 'heatmap-widget', 'map-widget'):
     facet_type = 'pivot'
+  elif widget_type == 'document-widget':
+    properties['uuid'] = facet_field
+    properties['subfacet'] = {}
   elif widget_type == 'gradient-map-widget':
     facet_type = 'nested'
     properties['facets'] = []

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

@@ -929,7 +929,16 @@ var Collection = function (vm, collection) {
         if (data.status == 0) {
           var facet = ko.mapping.fromJS(data.facet);
 
-          self._addObservablesToFacet(facet, vm);
+          if (false) {
+        	// get doc2
+
+        	// facet.subfacet = ko.mapping.fromJS(data.facet);
+        	// self._addObservablesToFacet(facet, vm); // needed if we only have result?
+        	// "read only"
+        	// .isLoading(false)
+          } else {
+            self._addObservablesToFacet(facet, vm);
+          }
 
           self.facets.push(facet);
           vm.search();
@@ -1761,6 +1770,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json) {
     self.draggableGradienMap = ko.observable(bareWidgetBuilder("Gradient Map", "gradient-map-widget"));
     self.draggableTree2 = ko.observable(bareWidgetBuilder("Tree", "tree2-widget"));
     self.draggableTextFacet = ko.observable(bareWidgetBuilder("Text Facet", "text-facet-widget"));
+    self.draggableDocument = ko.observable(bareWidgetBuilder("Document", "document-widget"));
 
     self.hasAvailableFields = ko.pureComputed(function () {
       return self.collection.availableFacetFields().length > 0;
@@ -2039,7 +2049,7 @@ var SearchViewModel = function (collection_json, query_json, initial_json) {
           return $.post("/dashboard/search", {
             collection: ko.mapping.toJSON(self.collection),
             query: ko.mapping.toJSON(self.query),
-            facet: ko.mapping.toJSON(facet),
+            facet: ko.mapping.toJSON(facet)
           }, function (data) {
             facet.queryResult(new QueryResult(self, {
               type: self.collection.engine(),

+ 40 - 4
desktop/libs/dashboard/src/dashboard/templates/common_search.mako

@@ -17,9 +17,10 @@
 <%!
 from django.utils.translation import ugettext as _
 
-from dashboard.conf import USE_GRIDSTER
 from desktop import conf
 from desktop.views import commonheader, commonfooter, _ko, commonshare
+
+from dashboard.conf import USE_GRIDSTER, HAS_REPORT_ENABLED
 %>
 
 <%namespace name="dashboard" file="common_dashboard.mako" />
@@ -372,7 +373,7 @@ from desktop.views import commonheader, commonfooter, _ko, commonshare
          <a data-bind="style: { cursor: $root.availableDraggableMap() ? 'move' : 'default' }">
                        <i class="hcha hcha-map-chart"></i>
          </a>
-   </div>
+    </div>
     <div data-bind="visible: $root.collection.supportAnalytics(), css: { 'draggable-widget': true, 'disabled': ! availableDraggableMap() },
                     draggable: {data: draggableGradienMap(), isEnabled: availableDraggableMap,
                     options: {'start': function(event, ui){lastWindowScrollPosition = $(window).scrollTop();$('.card-body').slideUp('fast');},
@@ -381,7 +382,19 @@ from desktop.views import commonheader, commonfooter, _ko, commonshare
          <a data-bind="style: { cursor: $root.availableDraggableMap() ? 'move' : 'default' }">
                        <i class="hcha hcha-map-chart"></i>
          </a>
-   </div>
+    </div>
+    % if HAS_REPORT_ENABLED.get():
+    <div data-bind="visible: $root.collection.supportAnalytics(),
+                    css: { 'draggable-widget': true, 'disabled': false },
+                    draggable: {data: draggableDocument(), isEnabled: true,
+                    options: {'start': function(event, ui){lastWindowScrollPosition = $(window).scrollTop();$('.card-body').slideUp('fast');},
+                              'stop': function(event, ui){$('.card-body').slideDown('fast', function(){$(window).scrollTop(lastWindowScrollPosition)});}}}"
+         title="${_('Document')}" rel="tooltip" data-placement="top">
+         <a data-bind="style: { cursor: true ? 'move' : 'default' }">
+                       <i class="fa fa-file-o"></i>
+         </a>
+    </div>
+    % endif
       </%def>
 </%dashboard:layout_toolbar>
 
@@ -1708,7 +1721,7 @@ ${ dashboard.layout_skeleton(suffix='search') }
             <div data-bind="attr:{'id': 'lineChart_'+id()}, lineChart: {datum: {counts: $root.results(), sorting: $root.collection.template.chartSettings.chartSorting(), snippet: $data},
                   transformer: multiSerieDataTransformerGrid, showControls: false }, visible: $root.collection.template.chartSettings.chartType() == ko.HUE_CHARTS.TYPES.LINECHART" class="chart"></div>
 
-            <div data-bind="attr:{'id': 'leafletMapChart_'+id()}, leafletMapChart: {datum: {counts: $root.results(), sorting: $root.collection.template.chartSettings.chartSorting(), snippet: $data},
+            <div data-bind="attr: {'id': 'leafletMapChart_'+id()}, leafletMapChart: {datum: {counts: $root.results(), sorting: $root.collection.template.chartSettings.chartSorting(), snippet: $data},
                   transformer: leafletMapChartDataTransformerGrid, showControls: false, height: 380, visible: $root.collection.template.chartSettings.chartType() == ko.HUE_CHARTS.TYPES.MAP, forceRedraw: true}" class="chart"></div>
             <div class="clearfix"></div>
          <!-- /ko -->
@@ -1723,6 +1736,29 @@ ${ dashboard.layout_skeleton(suffix='search') }
 
 
 
+<script type="text/html" id="document-widget">
+  ##<div class="widget-spinner" data-bind="visible: isLoading()">
+  ##  <i class="fa fa-spinner fa-spin"></i>
+  ##</div>
+
+  <!-- ko if: $root.getFacetFromQuery(id()).has_data() -->
+  <div class="row-fluid" data-bind="with: $root.getFacetFromQuery(id())">
+
+    <!-- ko with: $root.collection.getFacetById($parent.id()) -->
+    <div>
+      Name Uuid
+      
+      ## Get sub widget by ID
+      ## <div data-bind="template: { name: function() { return widgetType(); }}" class="widget-main-section"></div>
+      
+    </div>
+   <!-- /ko -->
+  </div>
+
+  <!-- /ko -->
+</script>
+
+
 <script type="text/html" id="bucket-widget">
   <div class="widget-spinner" data-bind="visible: isLoading()">
     <i class="fa fa-spinner fa-spin"></i>