Răsfoiți Sursa

display the "save as" prompt in the editor when the page is not saved in background

Gildas 1 an în urmă
părinte
comite
36298cfa27
2 a modificat fișierele cu 13 adăugiri și 3 ștergeri
  1. 12 2
      src/core/common/download.js
  2. 1 1
      src/core/content/content.js

+ 12 - 2
src/core/common/download.js

@@ -21,7 +21,7 @@
  *   Source.
  */
 
-/* global browser, document, URL, Blob, MouseEvent, setTimeout, open, navigator, File, setInterval, clearInterval */
+/* global browser, document, URL, Blob, MouseEvent, setTimeout, open, navigator, File, setInterval, clearInterval, prompt */
 
 import * as yabson from "./../../lib/yabson/yabson.js";
 import { getSharePageBar, setLabels } from "./../../ui/common/common-content-ui.js";
@@ -180,7 +180,17 @@ async function downloadPageForeground(pageData, options) {
 	if (options.sharePage && navigator.share) {
 		await sharePage(pageData, options);
 	} else {
-		if (pageData.filename && pageData.filename.length) {
+		let filename = pageData.filename;
+		if (options.confirmFilename) {
+			filename = prompt("Save as", pageData.filename);
+			if (filename) {
+				pageData.filename = filename;
+			} else {
+				browser.runtime.sendMessage({ method: "downloads.cancel" });
+				browser.runtime.sendMessage({ method: "ui.processCancelled" });
+			}
+		}
+		if (filename) {
 			const link = document.createElement("a");
 			link.download = pageData.filename;
 			link.href = URL.createObjectURL(new Blob([pageData.content], { type: pageData.mimeType }));

+ 1 - 1
src/core/content/content.js

@@ -171,7 +171,7 @@ async function savePage(message) {
 			try {
 				const pageData = await processPage(options);
 				if (pageData) {
-					if (((!options.backgroundSave && !options.saveToClipboard) || options.saveToGDrive || options.saveToGitHub || options.saveWithCompanion || options.saveWithWebDAV || options.saveToDropbox || options.saveToRestFormApi) && options.confirmFilename) {
+					if (((!options.backgroundSave && !options.saveToClipboard && !options.openEditor) || options.saveToGDrive || options.saveToGitHub || options.saveWithCompanion || options.saveWithWebDAV || options.saveToDropbox || options.saveToRestFormApi) && options.confirmFilename) {
 						const filename = ui.prompt("Save as", pageData.filename);
 						if (filename) {
 							pageData.filename = filename;