Skip to content

Commit

Permalink
Refactor AI events #7977
Browse files Browse the repository at this point in the history
  • Loading branch information
edloidas authored and ashklianko committed Oct 22, 2024
1 parent 4029a19 commit b40fc7a
Show file tree
Hide file tree
Showing 11 changed files with 50 additions and 77 deletions.
45 changes: 23 additions & 22 deletions modules/lib/src/main/resources/assets/js/app/ai/AI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ import {EnonicAiAppliedData} from './event/data/EnonicAiAppliedData';
import {ContentData} from './event/data/EnonicAiContentData';
import {EnonicAiContentOperatorSetupData} from './event/data/EnonicAiContentOperatorSetupData';
import {EnonicAiTranslatorSetupData} from './event/data/EnonicAiTranslatorSetupData';
import {EnonicAiContentOperatorApplyEvent} from './event/incoming/EnonicAiContentOperatorApplyEvent';
import {EnonicAiContentOperatorRenderEvent} from './event/incoming/EnonicAiContentOperatorRenderEvent';
import {EnonicAiContentOperatorShowEvent} from './event/incoming/EnonicAiContentOperatorShowEvent';
import {EnonicAiTranslatorCompletedEvent} from './event/incoming/EnonicAiTranslatorCompletedEvent';
import {EnonicAiTranslatorStartedEvent} from './event/incoming/EnonicAiTranslatorStartedEvent';
import {EnonicAiContentOperatorConfigEvent} from './event/outgoing/EnonicAiContentOperatorConfigEvent';
import {EnonicAiDataSentEvent} from './event/outgoing/EnonicAiDataSentEvent';
import {EnonicAiTranslatorConfigEvent} from './event/outgoing/EnonicAiTranslatorConfigEvent';
import {AiContentOperatorDialogShownEvent} from './event/incoming/AiContentOperatorDialogShownEvent';
import {AiContentOperatorRenderedEvent} from './event/incoming/AiContentOperatorRenderedEvent';
import {AiContentOperatorResultAppliedEvent} from './event/incoming/AiContentOperatorResultAppliedEvent';
import {AiTranslatorCompletedEvent} from './event/incoming/AiTranslatorCompletedEvent';
import {AiTranslatorStartedEvent} from './event/incoming/AiTranslatorStartedEvent';
import {AiContentOperatorConfigureEvent} from './event/outgoing/AiContentOperatorConfigureEvent';
import {AiTranslatorConfigureEvent} from './event/outgoing/AiTranslatorConfigureEvent';
import {AiUpdateDataEvent} from './event/outgoing/AiUpdateDataEvent';

declare global {
interface Window {
Expand All @@ -36,6 +36,7 @@ interface EnonicAi {
};
translator?: {
setup(setupData: EnonicAiTranslatorSetupData): void;
render(container: HTMLElement): void;
translate(language?: string): Promise<boolean>;
isAvailable(): boolean;
}
Expand Down Expand Up @@ -70,11 +71,11 @@ export class AI {
return;
}

EnonicAiContentOperatorRenderEvent.on(this.showContentOperatorEventListener);
EnonicAiContentOperatorShowEvent.on(this.showContentOperatorEventListener);
EnonicAiContentOperatorApplyEvent.on(this.applyContentOperatorEventListener);
EnonicAiTranslatorStartedEvent.on(this.translatorStartedEventListener);
EnonicAiTranslatorCompletedEvent.on(this.translatorCompletedEventListener);
AiContentOperatorRenderedEvent.on(this.showContentOperatorEventListener);
AiContentOperatorDialogShownEvent.on(this.showContentOperatorEventListener);
AiContentOperatorResultAppliedEvent.on(this.applyContentOperatorEventListener);
AiTranslatorStartedEvent.on(this.translatorStartedEventListener);
AiTranslatorCompletedEvent.on(this.translatorCompletedEventListener);

this.getContentOperator()?.setup({serviceUrl: CONFIG.getString('services.aiContentOperatorServiceUrl')});
this.getTranslator()?.setup({serviceUrl: CONFIG.getString('services.aiTranslatorServiceUrl')});
Expand All @@ -85,7 +86,7 @@ export class AI {
const names = fullName.split(' ').map(word => word.substring(0, 1));
const shortName = (names.length >= 2 ? names.join('') : fullName).substring(0, 2).toUpperCase();

new EnonicAiContentOperatorConfigEvent({
new AiContentOperatorConfigureEvent({
user: {
fullName,
shortName,
Expand All @@ -110,7 +111,7 @@ export class AI {

setCurrentData(data: ContentData): void {
this.currentData = data;
new EnonicAiDataSentEvent({data}).fire();
new AiUpdateDataEvent({data}).fire();
}

updateInstructions(configs: ApplicationConfig[]): void {
Expand Down Expand Up @@ -138,10 +139,10 @@ export class AI {
private notifyInstructionsChanged(plugin: EnonicAiPlugin, instructions: string): void {
switch (plugin) {
case 'contentOperator':
new EnonicAiContentOperatorConfigEvent({instructions}).fire();
new AiContentOperatorConfigureEvent({instructions}).fire();
break;
case 'translator':
new EnonicAiTranslatorConfigEvent({instructions}).fire();
new AiTranslatorConfigureEvent({instructions}).fire();
break;
}
}
Expand Down Expand Up @@ -170,18 +171,18 @@ export class AI {
return this.getTranslator()?.isAvailable() ?? false;
}

private translatorStartedEventListener = (event: EnonicAiTranslatorStartedEvent) => {
private translatorStartedEventListener = (event: AiTranslatorStartedEvent) => {
AiHelper.getAiHelperByPath(event.path)?.setState(AiHelperState.PROCESSING);
};

private translatorCompletedEventListener = (event: EnonicAiTranslatorCompletedEvent) => {
private translatorCompletedEventListener = (event: AiTranslatorCompletedEvent) => {
const helper = AiHelper.getAiHelperByPath(event.path);
helper?.setValue(event.value);
helper?.setState(AiHelperState.COMPLETED);
};

private showContentOperatorEventListener = () => {
new EnonicAiDataSentEvent({
new AiUpdateDataEvent({
data: {
fields: this.content.getContentData().toJson(),
topic: this.content.getDisplayName(),
Expand All @@ -194,11 +195,11 @@ export class AI {
}).fire();

if (this.currentData) {
new EnonicAiDataSentEvent({data: this.currentData}).fire();
new AiUpdateDataEvent({data: this.currentData}).fire();
}
};

private applyContentOperatorEventListener = (event: EnonicAiContentOperatorApplyEvent) => {
private applyContentOperatorEventListener = (event: AiContentOperatorResultAppliedEvent) => {
const {topic} = event.result;
const hasDisplayNameChanged = !StringHelper.isEmpty(topic) && topic !== this.content.getDisplayName();
const displayName = hasDisplayNameChanged ? topic : undefined;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import {ClassHelper} from '@enonic/lib-admin-ui/ClassHelper';
import {Event} from '@enonic/lib-admin-ui/event/Event';

export class EnonicAiContentOperatorHideEvent
export class AiContentOperatorDialogShownEvent
extends Event {

private constructor() {
super();
}

static on(handler: (event: EnonicAiContentOperatorHideEvent) => void) {
static on(handler: (event: AiContentOperatorDialogShownEvent) => void) {
Event.bind(ClassHelper.getFullName(this), handler);
}

static un(handler?: (event: EnonicAiContentOperatorHideEvent) => void) {
static un(handler?: (event: AiContentOperatorDialogShownEvent) => void) {
Event.unbind(ClassHelper.getFullName(this), handler);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import {ClassHelper} from '@enonic/lib-admin-ui/ClassHelper';
import {Event} from '@enonic/lib-admin-ui/event/Event';

export class EnonicAiContentOperatorShowEvent
export class AiContentOperatorRenderedEvent
extends Event {

private constructor() {
super();
}

static on(handler: (event: EnonicAiContentOperatorShowEvent) => void) {
static on(handler: (event: AiContentOperatorRenderedEvent) => void) {
Event.bind(ClassHelper.getFullName(this), handler);
}

static un(handler?: (event: EnonicAiContentOperatorShowEvent) => void) {
static un(handler?: (event: AiContentOperatorRenderedEvent) => void) {
Event.unbind(ClassHelper.getFullName(this), handler);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {ClassHelper} from '@enonic/lib-admin-ui/ClassHelper';
import {Event} from '@enonic/lib-admin-ui/event/Event';
import {EnonicAiAppliedRawData} from '../data/EnonicAiAppliedData';

export class EnonicAiContentOperatorApplyEvent
export class AiContentOperatorResultAppliedEvent
extends Event {

result: EnonicAiAppliedRawData;
Expand All @@ -11,11 +11,11 @@ export class EnonicAiContentOperatorApplyEvent
super();
}

static on(handler: (event: EnonicAiContentOperatorApplyEvent) => void) {
static on(handler: (event: AiContentOperatorResultAppliedEvent) => void) {
Event.bind(ClassHelper.getFullName(this), handler);
}

static un(handler?: (event: EnonicAiContentOperatorApplyEvent) => void) {
static un(handler?: (event: AiContentOperatorResultAppliedEvent) => void) {
Event.unbind(ClassHelper.getFullName(this), handler);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {ClassHelper} from '@enonic/lib-admin-ui/ClassHelper';
import {Event} from '@enonic/lib-admin-ui/event/Event';

export class EnonicAiTranslatorCompletedEvent
export class AiTranslatorCompletedEvent
extends Event {

readonly path: string;
Expand All @@ -12,11 +12,11 @@ export class EnonicAiTranslatorCompletedEvent
super();
}

static on(handler: (event: EnonicAiTranslatorCompletedEvent) => void) {
static on(handler: (event: AiTranslatorCompletedEvent) => void) {
Event.bind(ClassHelper.getFullName(this), handler);
}

static un(handler?: (event: EnonicAiTranslatorCompletedEvent) => void) {
static un(handler?: (event: AiTranslatorCompletedEvent) => void) {
Event.unbind(ClassHelper.getFullName(this), handler);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import {ClassHelper} from '@enonic/lib-admin-ui/ClassHelper';
import {Event} from '@enonic/lib-admin-ui/event/Event';

export class EnonicAiContentOperatorRenderEvent
export class AiTranslatorDialogShownEvent
extends Event {

private constructor() {
super();
}

static on(handler: (event: EnonicAiContentOperatorRenderEvent) => void) {
static on(handler: (event: AiTranslatorDialogShownEvent) => void) {
Event.bind(ClassHelper.getFullName(this), handler);
}

static un(handler?: (event: EnonicAiContentOperatorRenderEvent) => void) {
static un(handler?: (event: AiTranslatorDialogShownEvent) => void) {
Event.unbind(ClassHelper.getFullName(this), handler);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {ClassHelper} from '@enonic/lib-admin-ui/ClassHelper';
import {Event} from '@enonic/lib-admin-ui/event/Event';

export class EnonicAiTranslatorStartedEvent
export class AiTranslatorStartedEvent
extends Event {

readonly path: string;
Expand All @@ -10,11 +10,11 @@ export class EnonicAiTranslatorStartedEvent
super();
}

static on(handler: (event: EnonicAiTranslatorStartedEvent) => void) {
static on(handler: (event: AiTranslatorStartedEvent) => void) {
Event.bind(ClassHelper.getFullName(this), handler);
}

static un(handler?: (event: EnonicAiTranslatorStartedEvent) => void) {
static un(handler?: (event: AiTranslatorStartedEvent) => void) {
Event.unbind(ClassHelper.getFullName(this), handler);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {ClassHelper} from '@enonic/lib-admin-ui/ClassHelper';
import {Event} from '@enonic/lib-admin-ui/event/Event';
import {EnonicAiConfigData} from '../data/EnonicAiConfigData';

export class EnonicAiContentOperatorConfigEvent
export class AiContentOperatorConfigureEvent
extends Event {

private readonly payload: EnonicAiConfigData;
Expand All @@ -17,11 +17,11 @@ export class EnonicAiContentOperatorConfigEvent
return this.payload;
}

static on(handler: (event: EnonicAiContentOperatorConfigEvent) => void) {
static on(handler: (event: AiContentOperatorConfigureEvent) => void) {
Event.bind(ClassHelper.getFullName(this), handler);
}

static un(handler?: (event: EnonicAiContentOperatorConfigEvent) => void) {
static un(handler?: (event: AiContentOperatorConfigureEvent) => void) {
Event.unbind(ClassHelper.getFullName(this), handler);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {ClassHelper} from '@enonic/lib-admin-ui/ClassHelper';
import {Event} from '@enonic/lib-admin-ui/event/Event';
import {EnonicAiConfigData} from '../data/EnonicAiConfigData';

export class EnonicAiTranslatorConfigEvent
export class AiTranslatorConfigureEvent
extends Event {

private readonly payload: EnonicAiConfigData;
Expand All @@ -17,11 +17,11 @@ export class EnonicAiTranslatorConfigEvent
return this.payload;
}

static on(handler: (event: EnonicAiTranslatorConfigEvent) => void) {
static on(handler: (event: AiTranslatorConfigureEvent) => void) {
Event.bind(ClassHelper.getFullName(this), handler);
}

static un(handler?: (event: EnonicAiTranslatorConfigEvent) => void) {
static un(handler?: (event: AiTranslatorConfigureEvent) => void) {
Event.unbind(ClassHelper.getFullName(this), handler);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {ClassHelper} from '@enonic/lib-admin-ui/ClassHelper';
import {Event} from '@enonic/lib-admin-ui/event/Event';
import {EnonicAiContentData} from '../data/EnonicAiContentData';

export class EnonicAiDataSentEvent
export class AiUpdateDataEvent
extends Event {

private readonly payload: EnonicAiContentData;
Expand All @@ -17,11 +17,11 @@ export class EnonicAiDataSentEvent
return this.payload;
}

static on(handler: (event: EnonicAiDataSentEvent) => void) {
static on(handler: (event: AiUpdateDataEvent) => void) {
Event.bind(ClassHelper.getFullName(this), handler);
}

static un(handler?: (event: EnonicAiDataSentEvent) => void) {
static un(handler?: (event: AiUpdateDataEvent) => void) {
Event.unbind(ClassHelper.getFullName(this), handler);
}

Expand Down

This file was deleted.

0 comments on commit b40fc7a

Please sign in to comment.