Commit 25af06f25d409fb345835c0090586469c4f202dd

Authored by Igor Kulikov
1 parent 4e8c05f6

Dashboard lauout improvements.

@@ -181,6 +181,8 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $ @@ -181,6 +181,8 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
181 vm.widgetBackgroundColor = widgetBackgroundColor; 181 vm.widgetBackgroundColor = widgetBackgroundColor;
182 vm.widgetPadding = widgetPadding; 182 vm.widgetPadding = widgetPadding;
183 vm.showWidgetTitle = showWidgetTitle; 183 vm.showWidgetTitle = showWidgetTitle;
  184 + vm.hasWidgetTitleTemplate = hasWidgetTitleTemplate;
  185 + vm.widgetTitleTemplate = widgetTitleTemplate;
184 vm.showWidgetTitlePanel = showWidgetTitlePanel; 186 vm.showWidgetTitlePanel = showWidgetTitlePanel;
185 vm.showWidgetActions = showWidgetActions; 187 vm.showWidgetActions = showWidgetActions;
186 vm.widgetTitleStyle = widgetTitleStyle; 188 vm.widgetTitleStyle = widgetTitleStyle;
@@ -239,6 +241,7 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $ @@ -239,6 +241,7 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
239 } 241 }
240 242
241 $scope.$watchCollection('vm.widgets', function () { 243 $scope.$watchCollection('vm.widgets', function () {
  244 + sortWidgets();
242 var ids = []; 245 var ids = [];
243 for (var i=0;i<vm.widgets.length;i++) { 246 for (var i=0;i<vm.widgets.length;i++) {
244 var widget = vm.widgets[i]; 247 var widget = vm.widgets[i];
@@ -422,8 +425,13 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $ @@ -422,8 +425,13 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
422 function widgetOrder(widget) { 425 function widgetOrder(widget) {
423 var order; 426 var order;
424 if (vm.widgetLayouts && vm.widgetLayouts[widget.id]) { 427 if (vm.widgetLayouts && vm.widgetLayouts[widget.id]) {
425 - order = vm.widgetLayouts[widget.id].mobileOrder;  
426 - } else if (widget.config.mobileOrder) { 428 + if (angular.isDefined(vm.widgetLayouts[widget.id].mobileOrder)
  429 + && vm.widgetLayouts[widget.id].mobileOrder >= 0) {
  430 + order = vm.widgetLayouts[widget.id].mobileOrder;
  431 + } else {
  432 + order = vm.widgetLayouts[widget.id].row;
  433 + }
  434 + } else if (angular.isDefined(widget.config.mobileOrder) && widget.config.mobileOrder >= 0) {
427 order = widget.config.mobileOrder; 435 order = widget.config.mobileOrder;
428 } else { 436 } else {
429 order = widget.row; 437 order = widget.row;
@@ -432,6 +440,12 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $ @@ -432,6 +440,12 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
432 } 440 }
433 441
434 $scope.$on('widgetPositionChanged', function () { 442 $scope.$on('widgetPositionChanged', function () {
  443 + sortWidgets();
  444 + });
  445 +
  446 + loadStDiff();
  447 +
  448 + function sortWidgets() {
435 vm.widgets.sort(function (widget1, widget2) { 449 vm.widgets.sort(function (widget1, widget2) {
436 var row1 = widgetOrder(widget1); 450 var row1 = widgetOrder(widget1);
437 var row2 = widgetOrder(widget2); 451 var row2 = widgetOrder(widget2);
@@ -441,9 +455,7 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $ @@ -441,9 +455,7 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
441 } 455 }
442 return res; 456 return res;
443 }); 457 });
444 - });  
445 -  
446 - loadStDiff(); 458 + }
447 459
448 function reload() { 460 function reload() {
449 loadStDiff(); 461 loadStDiff();
@@ -809,12 +821,30 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $ @@ -809,12 +821,30 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
809 } 821 }
810 } 822 }
811 823
  824 + function hasWidgetTitleTemplate(widget) {
  825 + var ctx = widgetContext(widget);
  826 + if (ctx && ctx.widgetTitleTemplate) {
  827 + return true;
  828 + } else {
  829 + return false;
  830 + }
  831 + }
  832 +
  833 + function widgetTitleTemplate(widget) {
  834 + var ctx = widgetContext(widget);
  835 + if (ctx && ctx.widgetTitleTemplate) {
  836 + return ctx.widgetTitleTemplate;
  837 + } else {
  838 + return '';
  839 + }
  840 + }
  841 +
812 function showWidgetTitlePanel(widget) { 842 function showWidgetTitlePanel(widget) {
813 var ctx = widgetContext(widget); 843 var ctx = widgetContext(widget);
814 if (ctx && ctx.hideTitlePanel) { 844 if (ctx && ctx.hideTitlePanel) {
815 return false; 845 return false;
816 } else { 846 } else {
817 - return showWidgetTitle(widget) || hasTimewindow(widget); 847 + return hasWidgetTitleTemplate(widget) || showWidgetTitle(widget) || hasTimewindow(widget);
818 } 848 }
819 } 849 }
820 850
@@ -47,6 +47,7 @@ @@ -47,6 +47,7 @@
47 backgroundColor: vm.widgetBackgroundColor(widget), 47 backgroundColor: vm.widgetBackgroundColor(widget),
48 padding: vm.widgetPadding(widget)}"> 48 padding: vm.widgetPadding(widget)}">
49 <div class="tb-widget-title" layout="column" layout-align="center start" ng-show="vm.showWidgetTitlePanel(widget)"> 49 <div class="tb-widget-title" layout="column" layout-align="center start" ng-show="vm.showWidgetTitlePanel(widget)">
  50 + <div ng-if="vm.hasWidgetTitleTemplate(widget)" ng-include="vm.widgetTitleTemplate(widget)"></div>
50 <span ng-show="vm.showWidgetTitle(widget)" ng-style="vm.widgetTitleStyle(widget)" class="md-subhead">{{vm.widgetTitle(widget)}}</span> 51 <span ng-show="vm.showWidgetTitle(widget)" ng-style="vm.widgetTitleStyle(widget)" class="md-subhead">{{vm.widgetTitle(widget)}}</span>
51 <tb-timewindow aggregation="{{vm.hasAggregation(widget)}}" ng-if="vm.hasTimewindow(widget)" ng-model="widget.config.timewindow"></tb-timewindow> 52 <tb-timewindow aggregation="{{vm.hasAggregation(widget)}}" ng-if="vm.hasTimewindow(widget)" ng-model="widget.config.timewindow"></tb-timewindow>
52 </div> 53 </div>