From 2a9005d971d56ca0bd5c562baece16de3c8c281e Mon Sep 17 00:00:00 2001 From: Santiago Caro Duque Date: Mon, 26 Feb 2024 16:15:54 +0100 Subject: [PATCH] Toggle all direct children from folder #1188 --- .../desktop/src/renderer/app/app.component.ts | 3 +++ .../app/components/context-menu/context-menus.ts | 10 ++++++++++ .../renderer/app/services/environments.service.ts | 15 +++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/packages/desktop/src/renderer/app/app.component.ts b/packages/desktop/src/renderer/app/app.component.ts index 135ff286c..a7c242210 100644 --- a/packages/desktop/src/renderer/app/app.component.ts +++ b/packages/desktop/src/renderer/app/app.component.ts @@ -214,6 +214,9 @@ export class AppComponent extends Logger implements OnInit { if (payload.subject === 'route') { this.environmentsService.toggleRoute(payload.subjectUUID); } + if (payload.subject === 'folder') { + this.environmentsService.toggleFolder(payload.subjectUUID); + } break; case 'duplicateToEnv': this.startEntityDuplicationToAnotherEnvironment( diff --git a/packages/desktop/src/renderer/app/components/context-menu/context-menus.ts b/packages/desktop/src/renderer/app/components/context-menu/context-menus.ts index 86ee61e74..ba266fb11 100644 --- a/packages/desktop/src/renderer/app/components/context-menu/context-menus.ts +++ b/packages/desktop/src/renderer/app/components/context-menu/context-menus.ts @@ -87,6 +87,16 @@ export const FoldersContextMenu = (folderUUID: string): ContextMenuItem[] => [ icon: 'folder', disabled: false }, + { + payload: { + subject: 'folder', + action: 'toggle', + subjectUUID: folderUUID + }, + label: 'Toggle folder', + icon: 'power_settings_new', + disabled: false + }, { payload: { subject: 'folder', diff --git a/packages/desktop/src/renderer/app/services/environments.service.ts b/packages/desktop/src/renderer/app/services/environments.service.ts index e3e8f50ec..6c272d24a 100644 --- a/packages/desktop/src/renderer/app/services/environments.service.ts +++ b/packages/desktop/src/renderer/app/services/environments.service.ts @@ -665,6 +665,21 @@ export class EnvironmentsService extends Logger { } } + /** + * Enable and disable routes in a folder + */ + public toggleFolder(folderId: string | 'root') { + const activeEnvironment = this.store.getActiveEnvironment(); + const selectedFolder = activeEnvironment.folders.find( + (folder) => folder.uuid === folderId + ); + for (const child of selectedFolder.children) { + if (child.type === 'route') { + this.toggleRoute(child.uuid); + } + } + } + /** * Update a folder and save it in the store */