Multiple fixes (Each commit is a separate fix.) (#1918)

* fixed table-sorting issue with custom-labels

* added entityLabel column for entity-table-widget"

* Added event for force-re-init of widget
This commit is contained in:
Sergey Tarnavskiy 2019-08-09 14:41:45 +03:00 committed by Igor Kulikov
parent d2965be1a7
commit 6fb040a4fd
5 changed files with 50 additions and 8 deletions

File diff suppressed because one or more lines are too long

View File

@ -780,6 +780,10 @@ export default function WidgetController($scope, $state, $timeout, $window, $ocL
widgetContext.dashboardTimewindow = newDashboardTimewindow; widgetContext.dashboardTimewindow = newDashboardTimewindow;
}); });
$scope.$on('widgetForceReInit', function () {
reInit();
});
$scope.$on("$destroy", function () { $scope.$on("$destroy", function () {
onDestroy(); onDestroy();
}); });

View File

@ -794,6 +794,7 @@
"search": "Search entities", "search": "Search entities",
"selected-entities": "{ count, plural, 1 {1 entity} other {# entities} } selected", "selected-entities": "{ count, plural, 1 {1 entity} other {# entities} } selected",
"entity-name": "Entity name", "entity-name": "Entity name",
"entity-label": "Entity label",
"details": "Entity details", "details": "Entity details",
"no-entities-prompt": "No entities found", "no-entities-prompt": "No entities found",
"no-data": "No data to display", "no-data": "No data to display",

View File

@ -67,11 +67,13 @@ function EntitiesTableWidgetController($element, $scope, $filter, $mdMedia, $mdP
vm.displayEntityName = true; vm.displayEntityName = true;
vm.entityNameColumnTitle = ''; vm.entityNameColumnTitle = '';
vm.displayEntityLabel = false;
vm.entityLabelColumnTitle = '';
vm.displayEntityType = true; vm.displayEntityType = true;
vm.actionCellDescriptors = []; vm.actionCellDescriptors = [];
vm.displayPagination = true; vm.displayPagination = true;
vm.defaultPageSize = 10; vm.defaultPageSize = 10;
vm.defaultSortOrder = 'entityName'; vm.defaultSortOrder = "'entityName'";
vm.query = { vm.query = {
order: vm.defaultSortOrder, order: vm.defaultSortOrder,
@ -159,6 +161,7 @@ function EntitiesTableWidgetController($element, $scope, $filter, $mdMedia, $mdP
vm.searchAction.show = angular.isDefined(vm.settings.enableSearch) ? vm.settings.enableSearch : true; vm.searchAction.show = angular.isDefined(vm.settings.enableSearch) ? vm.settings.enableSearch : true;
vm.displayEntityName = angular.isDefined(vm.settings.displayEntityName) ? vm.settings.displayEntityName : true; vm.displayEntityName = angular.isDefined(vm.settings.displayEntityName) ? vm.settings.displayEntityName : true;
vm.displayEntityLabel = angular.isDefined(vm.settings.displayEntityLabel) ? vm.settings.displayEntityLabel : false;
if (vm.settings.entityNameColumnTitle && vm.settings.entityNameColumnTitle.length) { if (vm.settings.entityNameColumnTitle && vm.settings.entityNameColumnTitle.length) {
vm.entityNameColumnTitle = utils.customTranslation(vm.settings.entityNameColumnTitle, vm.settings.entityNameColumnTitle); vm.entityNameColumnTitle = utils.customTranslation(vm.settings.entityNameColumnTitle, vm.settings.entityNameColumnTitle);
@ -166,6 +169,12 @@ function EntitiesTableWidgetController($element, $scope, $filter, $mdMedia, $mdP
vm.entityNameColumnTitle = $translate.instant('entity.entity-name'); vm.entityNameColumnTitle = $translate.instant('entity.entity-name');
} }
if (vm.settings.entityLabelColumnTitle && vm.settings.entityLabelColumnTitle.length) {
vm.entityLabelColumnTitle = utils.customTranslation(vm.settings.entityLabelColumnTitle, vm.settings.entityLabelColumnTitle);
} else {
vm.entityLabelColumnTitle = $translate.instant('entity.entity-label');
}
vm.displayEntityType = angular.isDefined(vm.settings.displayEntityType) ? vm.settings.displayEntityType : true; vm.displayEntityType = angular.isDefined(vm.settings.displayEntityType) ? vm.settings.displayEntityType : true;
vm.displayPagination = angular.isDefined(vm.settings.displayPagination) ? vm.settings.displayPagination : true; vm.displayPagination = angular.isDefined(vm.settings.displayPagination) ? vm.settings.displayPagination : true;
@ -176,6 +185,11 @@ function EntitiesTableWidgetController($element, $scope, $filter, $mdMedia, $mdP
if (vm.settings.defaultSortOrder && vm.settings.defaultSortOrder.length) { if (vm.settings.defaultSortOrder && vm.settings.defaultSortOrder.length) {
vm.defaultSortOrder = vm.settings.defaultSortOrder; vm.defaultSortOrder = vm.settings.defaultSortOrder;
if (vm.settings.defaultSortOrder.charAt(0) === "-") {
vm.defaultSortOrder = "-'" + vm.settings.defaultSortOrder.substring(1) + "'";
} else {
vm.defaultSortOrder = "'" + vm.settings.defaultSortOrder + "'";
}
} }
vm.query.order = vm.defaultSortOrder; vm.query.order = vm.defaultSortOrder;
@ -470,6 +484,24 @@ function EntitiesTableWidgetController($element, $scope, $filter, $mdMedia, $mdP
vm.columnWidth['entityName'] = '0px'; vm.columnWidth['entityName'] = '0px';
} }
if (vm.displayEntityLabel) {
vm.columns.push(
{
name: 'entityLabel',
label: 'entityLabel',
title: vm.entityLabelColumnTitle,
display: true
}
);
vm.contentsInfo['entityLabel'] = {
useCellContentFunction: false
};
vm.stylesInfo['entityLabel'] = {
useCellStyleFunction: false
};
vm.columnWidth['entityLabel'] = '0px';
}
if (vm.displayEntityType) { if (vm.displayEntityType) {
vm.columns.push( vm.columns.push(
{ {
@ -557,6 +589,11 @@ function EntitiesTableWidgetController($element, $scope, $filter, $mdMedia, $mdP
id: {} id: {}
}; };
entity.entityName = datasource.entityName; entity.entityName = datasource.entityName;
if (datasource.entityLabel) {
entity.entityLabel = datasource.entityLabel;
} else {
entity.entityLabel = datasource.entityName;
}
if (datasource.entityId) { if (datasource.entityId) {
entity.id.id = datasource.entityId; entity.id.id = datasource.entityId;
} }

View File

@ -41,7 +41,7 @@
<table md-table> <table md-table>
<thead fix-head md-head md-order="vm.query.order" md-on-reorder="vm.onReorder"> <thead fix-head md-head md-order="vm.query.order" md-on-reorder="vm.onReorder">
<tr md-row> <tr md-row>
<th ng-if="column.display" md-column md-order-by="{{ column.name }}" ng-repeat="column in vm.columns"><span>{{ column.title }}</span></th> <th ng-if="column.display" md-column md-order-by="'{{ column.label }}'" ng-repeat="column in vm.columns"><span>{{ column.title }}</span></th>
<th md-column class="tb-action-cell" layout="row" layout-align="end center"> <th md-column class="tb-action-cell" layout="row" layout-align="end center">
<md-button class="md-icon-button" <md-button class="md-icon-button"
aria-label="{{'entity.columns-to-display' | translate}}" aria-label="{{'entity.columns-to-display' | translate}}"