Commit 7515ce7a3da63a07f8fb19df03eb0e8498795437
1 parent
e4bfbacd
UI: Added new function openDashboardStateInSeparateDialog to widget context
Showing
2 changed files
with
13 additions
and
17 deletions
... | ... | @@ -84,6 +84,8 @@ export interface WidgetActionsApi { |
84 | 84 | entityId?: EntityId, entityName?: string, additionalParams?: any, entityLabel?: string) => void; |
85 | 85 | elementClick: ($event: Event) => void; |
86 | 86 | getActiveEntityInfo: () => SubscriptionEntityInfo; |
87 | + openDashboardStateInSeparateDialog: (targetDashboardStateId: string, params?: StateParams, dialogTitle?: string, | |
88 | + hideDashboardToolbar?: boolean, dialogWidth?: number, dialogHeight?: number) => void; | |
87 | 89 | } |
88 | 90 | |
89 | 91 | export interface AliasInfo { | ... | ... |
... | ... | @@ -284,7 +284,8 @@ export class WidgetComponent extends PageComponent implements OnInit, AfterViewI |
284 | 284 | getActionDescriptors: this.getActionDescriptors.bind(this), |
285 | 285 | handleWidgetAction: this.handleWidgetAction.bind(this), |
286 | 286 | elementClick: this.elementClick.bind(this), |
287 | - getActiveEntityInfo: this.getActiveEntityInfo.bind(this) | |
287 | + getActiveEntityInfo: this.getActiveEntityInfo.bind(this), | |
288 | + openDashboardStateInSeparateDialog: this.openDashboardStateInSeparateDialog.bind(this) | |
288 | 289 | }; |
289 | 290 | |
290 | 291 | this.widgetContext.customHeaderActions = []; |
... | ... | @@ -1025,7 +1026,8 @@ export class WidgetComponent extends PageComponent implements OnInit, AfterViewI |
1025 | 1026 | this.updateEntityParams(params, targetEntityParamName, targetEntityId, entityName, entityLabel); |
1026 | 1027 | if (type === WidgetActionType.openDashboardState) { |
1027 | 1028 | if (descriptor.openInSeparateDialog) { |
1028 | - this.openDashboardStateInDialog(descriptor, entityId, entityName, additionalParams, entityLabel); | |
1029 | + this.openDashboardStateInSeparateDialog(descriptor.targetDashboardStateId, params, descriptor.dialogTitle, | |
1030 | + descriptor.dialogHideDashboardToolbar, descriptor.dialogWidth, descriptor.dialogHeight); | |
1029 | 1031 | } else { |
1030 | 1032 | this.widgetContext.stateController.openState(targetDashboardStateId, params, descriptor.openRightLayout); |
1031 | 1033 | } |
... | ... | @@ -1276,22 +1278,15 @@ export class WidgetComponent extends PageComponent implements OnInit, AfterViewI |
1276 | 1278 | } |
1277 | 1279 | } |
1278 | 1280 | |
1279 | - private openDashboardStateInDialog(descriptor: WidgetActionDescriptor, | |
1280 | - entityId?: EntityId, entityName?: string, additionalParams?: any, entityLabel?: string) { | |
1281 | + private openDashboardStateInSeparateDialog(targetDashboardStateId: string, params?: StateParams, dialogTitle?: string, | |
1282 | + hideDashboardToolbar = true, dialogWidth?: number, dialogHeight?: number) { | |
1281 | 1283 | const dashboard = deepClone(this.widgetContext.stateController.dashboardCtrl.dashboardCtx.getDashboard()); |
1282 | 1284 | const stateObject: StateObject = {}; |
1283 | - stateObject.params = {}; | |
1284 | - const targetEntityParamName = descriptor.stateEntityParamName; | |
1285 | - const targetDashboardStateId = descriptor.targetDashboardStateId; | |
1286 | - let targetEntityId: EntityId; | |
1287 | - if (descriptor.setEntityId) { | |
1288 | - targetEntityId = entityId; | |
1289 | - } | |
1290 | - this.updateEntityParams(stateObject.params, targetEntityParamName, targetEntityId, entityName, entityLabel); | |
1285 | + stateObject.params = params; | |
1291 | 1286 | if (targetDashboardStateId) { |
1292 | 1287 | stateObject.id = targetDashboardStateId; |
1293 | 1288 | } |
1294 | - let title = descriptor.dialogTitle; | |
1289 | + let title = dialogTitle; | |
1295 | 1290 | if (!title) { |
1296 | 1291 | if (targetDashboardStateId && dashboard.configuration.states) { |
1297 | 1292 | const dashboardState = dashboard.configuration.states[targetDashboardStateId]; |
... | ... | @@ -1304,7 +1299,6 @@ export class WidgetComponent extends PageComponent implements OnInit, AfterViewI |
1304 | 1299 | title = dashboard.title; |
1305 | 1300 | } |
1306 | 1301 | title = this.utils.customTranslation(title, title); |
1307 | - const params = stateObject.params; | |
1308 | 1302 | const paramsEntityName = params && params.entityName ? params.entityName : ''; |
1309 | 1303 | const paramsEntityLabel = params && params.entityLabel ? params.entityLabel : ''; |
1310 | 1304 | title = insertVariable(title, 'entityName', paramsEntityName); |
... | ... | @@ -1324,9 +1318,9 @@ export class WidgetComponent extends PageComponent implements OnInit, AfterViewI |
1324 | 1318 | dashboard, |
1325 | 1319 | state: objToBase64([ stateObject ]), |
1326 | 1320 | title, |
1327 | - hideToolbar: descriptor.dialogHideDashboardToolbar, | |
1328 | - width: descriptor.dialogWidth, | |
1329 | - height: descriptor.dialogHeight | |
1321 | + hideToolbar: hideDashboardToolbar, | |
1322 | + width: dialogWidth, | |
1323 | + height: dialogHeight | |
1330 | 1324 | } |
1331 | 1325 | }); |
1332 | 1326 | } | ... | ... |