diff --git a/gui-js/apps/minsky-electron/src/app/backend-init.ts b/gui-js/apps/minsky-electron/src/app/backend-init.ts index 48bb33606..8d956df71 100644 --- a/gui-js/apps/minsky-electron/src/app/backend-init.ts +++ b/gui-js/apps/minsky-electron/src/app/backend-init.ts @@ -52,7 +52,6 @@ export async function backend(command: string, ...args: any[]): Promise { } CppClass.record(`${command} ${arg}`); - log.info('Async Rest API: ',command,arg); let response=await restService.call(command, arg); if (logFilter(command)) log.info('Async Rest API: ',command,arg,"=>",response); diff --git a/gui-js/apps/minsky-electron/src/app/events/electron.events.ts b/gui-js/apps/minsky-electron/src/app/events/electron.events.ts index be6b16353..a1cd344f2 100644 --- a/gui-js/apps/minsky-electron/src/app/events/electron.events.ts +++ b/gui-js/apps/minsky-electron/src/app/events/electron.events.ts @@ -11,7 +11,6 @@ import { events, HandleDescriptionPayload, HandleDimensionPayload, - PickSlicesPayload, MinskyProcessPayload, minsky, RenderNativeWindow, @@ -175,13 +174,6 @@ ipcMain.handle( } ); -ipcMain.handle( - events.SAVE_PICK_SLICES, - async (event, payload: PickSlicesPayload) => { - return await CommandsManager.savePickSlices(payload); - } -); - ipcMain.handle( events.CURRENT_TAB_POSITION, async (event)=>{ diff --git a/gui-js/apps/minsky-electron/src/app/managers/CommandsManager.ts b/gui-js/apps/minsky-electron/src/app/managers/CommandsManager.ts index a73b647d3..572100ab4 100644 --- a/gui-js/apps/minsky-electron/src/app/managers/CommandsManager.ts +++ b/gui-js/apps/minsky-electron/src/app/managers/CommandsManager.ts @@ -4,7 +4,6 @@ import { events, Functions, HandleDimensionPayload, - PickSlicesPayload, InitializePopupWindowPayload, electronMenuBarHeightForWindows, HandleDescriptionPayload, importCSVvariableName, @@ -1067,24 +1066,15 @@ export class CommandsManager { } static async pickSlices(ravel: Ravel, handleIndex: number) { - // encode slice labels for transport through CGI URI - const allSliceLabels = (await ravel.allSliceLabels()).map(x=>encodeURIComponent(x)); - const pickedSliceLabels = (await ravel.pickedSliceLabels()).map(x=>encodeURIComponent(x)); - const window=WindowManager.createPopupWindowWithRouting({ title: `Pick slices`, - url: `#/headless/pick-slices?command=${ravel.$prefix()}&handleIndex=${handleIndex}&allSliceLabels=${allSliceLabels.join()}&pickedSliceLabels=${pickedSliceLabels.join()}`, + url: `#/headless/pick-slices?command=${ravel.$prefix()}&handleIndex=${handleIndex}`, height: 400, width: 400, }); Object.defineProperty(window,'dontCloseOnReturn',{value: true,writable:false}); } - static async savePickSlices(payload: PickSlicesPayload) { - await (new Ravel(payload.command)).pickSliceLabels(payload.handleIndex, payload.pickedSliceLabels); - minsky.reset(); - } - static async lockSpecificHandles(ravel: Ravel) { let allLockHandles = await ravel.lockGroup.allLockHandles(); if(Object.keys(allLockHandles).length === 0) { diff --git a/gui-js/apps/minsky-electron/src/app/managers/ContextMenuManager.ts b/gui-js/apps/minsky-electron/src/app/managers/ContextMenuManager.ts index d10c7b0d7..95a5fb50e 100644 --- a/gui-js/apps/minsky-electron/src/app/managers/ContextMenuManager.ts +++ b/gui-js/apps/minsky-electron/src/app/managers/ContextMenuManager.ts @@ -927,8 +927,8 @@ export class ContextMenuManager { new MenuItem({ label: 'Pick axis slices', enabled: handleAvailable, - click: async () => { - await CommandsManager.pickSlices(ravel,handleIndex); + click: () => { + CommandsManager.pickSlices(ravel,handleIndex); } }), new MenuItem({ diff --git a/gui-js/libs/core/src/lib/services/electron/electron.service.ts b/gui-js/libs/core/src/lib/services/electron/electron.service.ts index 26c729f2b..b21bbcc08 100644 --- a/gui-js/libs/core/src/lib/services/electron/electron.service.ts +++ b/gui-js/libs/core/src/lib/services/electron/electron.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { events, CurrentWindowDetails, HandleDescriptionPayload, HandleDimensionPayload, PickSlicesPayload,} from '@minsky/shared'; +import { events, CurrentWindowDetails, HandleDescriptionPayload, HandleDimensionPayload,} from '@minsky/shared'; import isElectron from 'is-electron'; import {Minsky, CppClass} from '@minsky/shared'; @@ -69,10 +69,6 @@ export class ElectronService { return await this.ipcRenderer.invoke(events.SAVE_HANDLE_DIMENSION, payload); } - async savePickSlices(payload: PickSlicesPayload) { - return await this.ipcRenderer.invoke(events.SAVE_PICK_SLICES, payload); - } - async currentTabPosition(): Promise { return await this.ipcRenderer.invoke(events.CURRENT_TAB_POSITION); } diff --git a/gui-js/libs/shared/src/lib/interfaces/Interfaces.ts b/gui-js/libs/shared/src/lib/interfaces/Interfaces.ts index a2c957f08..8bee380dd 100644 --- a/gui-js/libs/shared/src/lib/interfaces/Interfaces.ts +++ b/gui-js/libs/shared/src/lib/interfaces/Interfaces.ts @@ -52,12 +52,6 @@ export interface HandleDimensionPayload { units: string; } -export interface PickSlicesPayload { - command: string; - handleIndex: number; - pickedSliceLabels: string[]; -} - export interface ElectronCanvasOffset { left: number; top: number; diff --git a/gui-js/libs/ui-components/src/lib/pick-slices/pick-slices.component.ts b/gui-js/libs/ui-components/src/lib/pick-slices/pick-slices.component.ts index 434116c3c..bef7c49d2 100644 --- a/gui-js/libs/ui-components/src/lib/pick-slices/pick-slices.component.ts +++ b/gui-js/libs/ui-components/src/lib/pick-slices/pick-slices.component.ts @@ -4,6 +4,7 @@ import { ElectronService } from '@minsky/core'; import { MessageBoxSyncOptions } from 'electron/renderer'; import { MatButtonModule } from '@angular/material/button'; import { NgFor } from '@angular/common'; +import {Ravel} from '@minsky/shared'; @Component({ selector: 'minsky-pick-slices', @@ -15,7 +16,7 @@ import { NgFor } from '@angular/common'; export class PickSlicesComponent implements OnInit { sliceLabels: {label: string, selected: boolean, lastClicked: boolean}[] = []; - command: string; + ravel: Ravel; handleIndex: number; constructor( @@ -24,16 +25,16 @@ export class PickSlicesComponent implements OnInit { ) {} ngOnInit(): void { - this.route.queryParams.subscribe((params) => { - this.command=params['command']; + this.route.queryParams.subscribe(async (params) => { + this.ravel=new Ravel(params['command']); this.handleIndex = +params['handleIndex']; - - const pickedSliceLabels = params['pickedSliceLabels'].split(','); - this.sliceLabels = params['allSliceLabels'].split(',').map(l => ({ - label: l, - selected: pickedSliceLabels.includes(l), - lastClicked: false - })); + const pickedSliceLabels = await this.ravel.pickedSliceLabels(); + const allSliceLabels=await this.ravel.allSliceLabelsAxis(this.handleIndex); + this.sliceLabels = allSliceLabels.map(l => ({ + label: l, + selected: pickedSliceLabels.includes(l), + lastClicked: false + })); }); } @@ -48,11 +49,7 @@ export class PickSlicesComponent implements OnInit { await this.electronService.showMessageBoxSync(options); } else { - await this.electronService.savePickSlices({ - command: this.command, - handleIndex: this.handleIndex, - pickedSliceLabels: this.sliceLabels.filter(sl => sl.selected).map(sl => sl.label) - }); + await this.ravel.pickSliceLabels(this.handleIndex, this.sliceLabels.filter(sl => sl.selected).map(sl => sl.label)); } } this.closeWindow();