From 0a66f40c468ae2bf15faceba204288f614c96969 Mon Sep 17 00:00:00 2001 From: Jason Weill <93281816+JasonWeill@users.noreply.github.com> Date: Mon, 20 May 2024 23:13:54 -0700 Subject: [PATCH] Duplicate notebook menu option (#7374) * WIP: Create new application:duplicate command, add to menu * WIP: Duplicate a file, then open the new file. * Polish * Removes null check for variable not typed to be null * Removes unneeded import, type declaration * Simplifies comments * Update Playwright Snapshots * Update Playwright Snapshots --------- Co-authored-by: github-actions[bot] --- .../application-extension/schema/menus.json | 4 ++++ packages/application-extension/src/index.ts | 19 ++++++++++++++++++ .../opened-menu-file-chromium-linux.png | Bin 8147 -> 8472 bytes .../opened-menu-file-firefox-linux.png | Bin 8118 -> 8437 bytes 4 files changed, 23 insertions(+) diff --git a/packages/application-extension/schema/menus.json b/packages/application-extension/schema/menus.json index 2ad34edc14..84fc396842 100644 --- a/packages/application-extension/schema/menus.json +++ b/packages/application-extension/schema/menus.json @@ -10,6 +10,10 @@ "command": "application:rename", "rank": 4.5 }, + { + "command": "application:duplicate", + "rank": 4.8 + }, { "command": "notebook:trust", "rank": 20 diff --git a/packages/application-extension/src/index.ts b/packages/application-extension/src/index.ts index cd0ddd62a5..514f7d8da0 100644 --- a/packages/application-extension/src/index.ts +++ b/packages/application-extension/src/index.ts @@ -83,6 +83,11 @@ const JUPYTERLAB_DOCMANAGER_PLUGIN_ID = * The command IDs used by the application plugin. */ namespace CommandIDs { + /** + * Duplicate the current document and open the new document + */ + export const duplicate = 'application:duplicate'; + /** * Handle local links */ @@ -615,6 +620,20 @@ const title: JupyterFrontEndPlugin = { return !!(currentWidget && docManager.contextForWidget(currentWidget)); }; + commands.addCommand(CommandIDs.duplicate, { + label: () => trans.__('Duplicate'), + isEnabled, + execute: async () => { + if (!isEnabled()) { + return; + } + + // Duplicate the file, and open the new file. + const result = await docManager.duplicate(current.context.path); + await commands.execute('docmanager:open', { path: result.path }); + }, + }); + commands.addCommand(CommandIDs.rename, { label: () => trans.__('Renameā€¦'), isEnabled, diff --git a/ui-tests/test/menus.spec.ts-snapshots/opened-menu-file-chromium-linux.png b/ui-tests/test/menus.spec.ts-snapshots/opened-menu-file-chromium-linux.png index 171f93690e084b344288d0765f85f3e5877d496d..34fe51769f47bdc3a5d9767021aeb1b0da41a123 100644 GIT binary patch literal 8472 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⋘Y)epfzM@cUkkF#*ladJ#-KOQZE3LV`w;PdE8 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 A7ytkO literal 8147 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 diff --git a/ui-tests/test/menus.spec.ts-snapshots/opened-menu-file-firefox-linux.png b/ui-tests/test/menus.spec.ts-snapshots/opened-menu-file-firefox-linux.png index e88b5b8dc706eadc59bd2b47a15d7742d03df5b4..8bfc3cecce69b6ae8d1c95739df9f31d2d594824 100644 GIT binary patch literal 8437 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