Commit 25af06f25d409fb345835c0090586469c4f202dd

Authored by Igor Kulikov
1 parent 4e8c05f6

Dashboard lauout improvements.

... ... @@ -181,6 +181,8 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
181 181 vm.widgetBackgroundColor = widgetBackgroundColor;
182 182 vm.widgetPadding = widgetPadding;
183 183 vm.showWidgetTitle = showWidgetTitle;
  184 + vm.hasWidgetTitleTemplate = hasWidgetTitleTemplate;
  185 + vm.widgetTitleTemplate = widgetTitleTemplate;
184 186 vm.showWidgetTitlePanel = showWidgetTitlePanel;
185 187 vm.showWidgetActions = showWidgetActions;
186 188 vm.widgetTitleStyle = widgetTitleStyle;
... ... @@ -239,6 +241,7 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
239 241 }
240 242
241 243 $scope.$watchCollection('vm.widgets', function () {
  244 + sortWidgets();
242 245 var ids = [];
243 246 for (var i=0;i<vm.widgets.length;i++) {
244 247 var widget = vm.widgets[i];
... ... @@ -422,8 +425,13 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
422 425 function widgetOrder(widget) {
423 426 var order;
424 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 435 order = widget.config.mobileOrder;
428 436 } else {
429 437 order = widget.row;
... ... @@ -432,6 +440,12 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
432 440 }
433 441
434 442 $scope.$on('widgetPositionChanged', function () {
  443 + sortWidgets();
  444 + });
  445 +
  446 + loadStDiff();
  447 +
  448 + function sortWidgets() {
435 449 vm.widgets.sort(function (widget1, widget2) {
436 450 var row1 = widgetOrder(widget1);
437 451 var row2 = widgetOrder(widget2);
... ... @@ -441,9 +455,7 @@ function DashboardController($scope, $rootScope, $element, $timeout, $mdMedia, $
441 455 }
442 456 return res;
443 457 });
444   - });
445   -
446   - loadStDiff();
  458 + }
447 459
448 460 function reload() {
449 461 loadStDiff();
... ... @@ -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 842 function showWidgetTitlePanel(widget) {
813 843 var ctx = widgetContext(widget);
814 844 if (ctx && ctx.hideTitlePanel) {
815 845 return false;
816 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 47 backgroundColor: vm.widgetBackgroundColor(widget),
48 48 padding: vm.widgetPadding(widget)}">
49 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 51 <span ng-show="vm.showWidgetTitle(widget)" ng-style="vm.widgetTitleStyle(widget)" class="md-subhead">{{vm.widgetTitle(widget)}}</span>
51 52 <tb-timewindow aggregation="{{vm.hasAggregation(widget)}}" ng-if="vm.hasTimewindow(widget)" ng-model="widget.config.timewindow"></tb-timewindow>
52 53 </div>
... ...