From 56debc72d63792ca475b6f39430f40961c734f60 Mon Sep 17 00:00:00 2001 From: Pavel Milkevich Date: Mon, 14 Oct 2024 16:39:16 +0200 Subject: [PATCH] Load new widget type contentstudio.preview #7868 --- .../js/app/view/ContentItemPreviewToolbar.ts | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/modules/lib/src/main/resources/assets/js/app/view/ContentItemPreviewToolbar.ts b/modules/lib/src/main/resources/assets/js/app/view/ContentItemPreviewToolbar.ts index 15b9fe0fe6..183efc4f67 100644 --- a/modules/lib/src/main/resources/assets/js/app/view/ContentItemPreviewToolbar.ts +++ b/modules/lib/src/main/resources/assets/js/app/view/ContentItemPreviewToolbar.ts @@ -12,6 +12,8 @@ import {IssueType} from '../issue/IssueType'; import {MenuButton} from '@enonic/lib-admin-ui/ui/button/MenuButton'; import {Action} from '@enonic/lib-admin-ui/ui/Action'; import {ContentId} from '../content/ContentId'; +import {GetWidgetsByInterfaceRequest} from '../resource/GetWidgetsByInterfaceRequest'; +import {Widget} from '@enonic/lib-admin-ui/content/Widget'; export class ContentItemPreviewToolbar extends ContentStatusToolbar { @@ -21,6 +23,7 @@ export class ContentItemPreviewToolbar private mainAction: Action; private issueActionsList: Action[]; private debouncedFetch: (id: ContentId) => void; + private liveViewWidgets: Promise; constructor() { super({className: 'content-item-preview-toolbar'}); @@ -29,6 +32,8 @@ export class ContentItemPreviewToolbar protected initElements(): void { super.initElements(); + this.liveViewWidgets = this.fetchLiveViewWidgets(); + this.mainAction = new Action(); this.issueButton = new MenuButton(this.mainAction); } @@ -64,12 +69,28 @@ export class ContentItemPreviewToolbar doRender(): Q.Promise { return super.doRender().then(rendered => { + + this.liveViewWidgets.then((widgets: Widget[]) => { + console.log('Live view widgets:', widgets); + }); + this.issueButton.addClass('transparent'); this.addContainer(this.issueButton, this.issueButton.getChildControls()); return rendered; }); } + private async fetchLiveViewWidgets(): Promise { + return new GetWidgetsByInterfaceRequest('contentstudio.preview').sendAndParse() + .then((widgets: Widget[]) => { + return widgets.sort((a: Widget, b: Widget) => a.getConfig()['order'] - b.getConfig()['order']); + }) + .catch((e) => { + DefaultErrorHandler.handle(e); + return []; + }); + } + setItem(item: ContentSummaryAndCompareStatus): void { if (this.getItem() !== item) { @@ -86,7 +107,7 @@ export class ContentItemPreviewToolbar } protected foldOrExpand(): void { - // + // } private fetchIssues(id: ContentId): Q.Promise {