Jelajahi Sumber

add support of links

Gildas 4 tahun lalu
induk
melakukan
5ce83cc4ad

+ 1 - 1
extension/core/bg/business.js

@@ -201,7 +201,7 @@ async function runTask(taskInfo) {
 	} catch (error) {
 		if (error && (!error.message || !isIgnoredError(error))) {
 			console.log(error.message ? error.message : error); // eslint-disable-line no-console
-			ui.onError(taskInfo.tab.id, error.message);
+			ui.onError(taskInfo.tab.id, error.message, error.link);
 			taskInfo.done();
 		}
 	}

+ 2 - 2
extension/core/bg/downloads.js

@@ -77,7 +77,7 @@ async function onMessage(message, sender) {
 			try {
 				await woleet.anchor(message.hash, message.woleetKey);
 			} catch (error) {
-				ui.onError(sender.tab.id, error.message + " (Woleet)");
+				ui.onError(sender.tab.id, error.message, error.link);
 			}
 		}
 		business.onSaveEnd(message.taskId);
@@ -170,7 +170,7 @@ async function downloadContent(contents, tab, incognito, message) {
 	} catch (error) {
 		if (!error.message || error.message != "upload_cancelled") {
 			console.error(error); // eslint-disable-line no-console
-			ui.onError(tab.id, error.message);
+			ui.onError(tab.id, error.message, error.link);
 		}
 	} finally {
 		if (message.url) {

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

@@ -65,7 +65,7 @@ async function onMessage(message) {
 			};
 		}
 		if (message.method == "content.error") {
-			onError(message.error);
+			onError(message.error, message.link);
 		}
 	}
 }

+ 7 - 3
extension/lib/woleet/woleet.js

@@ -42,11 +42,15 @@ async function anchor(hash, userKey) {
 		})
 	});
 	if (response.status == 401) {
-		throw new Error("Your access token on Woleet is invalid. Go to https://app.woleet.io/ to create your account.");
+		const error = new Error("Your access token on Woleet is invalid. Go to __DOC_LINK__ to create your account.");
+		error.link = "https://app.woleet.io/";
+		throw error;
 	} else if (response.status == 402) {
-		throw new Error("You have no more credits on Woleet. Go to https://app.woleet.io/ to recharge them.");
+		const error = new Error("You have no more credits on Woleet. Go to __DOC_LINK__ to recharge them.");
+		error.link = "https://app.woleet.io/";
+		throw error;
 	} else if (response.status >= 400) {
-		throw new Error((response.statusText || ("Error " + response.status)));
+		throw new Error((response.statusText || ("Error " + response.status)) + " (Woleet)");
 	}
 	return response.json();
 }

+ 2 - 2
extension/ui/bg/index.js

@@ -60,10 +60,10 @@ function onStart(tabId, step, autoSave) {
 	button.onStart(tabId, step, autoSave);
 }
 
-async function onError(tabId, message) {
+async function onError(tabId, message, link) {
 	button.onError(tabId);
 	if (message) {
-		await tabs.sendMessage(tabId, { method: "content.error", error: message.toString() });
+		await tabs.sendMessage(tabId, { method: "content.error", error: message.toString(), link });
 	}
 }
 

+ 1 - 1
extension/ui/bg/ui-editor.js

@@ -333,7 +333,7 @@ browser.runtime.onMessage.addListener(message => {
 		return refreshOptions(message.profileName);
 	}
 	if (message.method == "content.error") {
-		onError(message.error);
+		onError(message.error, message.link);
 	}
 });
 

+ 15 - 3
extension/ui/common/content-error.js

@@ -38,9 +38,9 @@ export {
 	onError
 };
 
-function onError(message) {
+function onError(message, link) {
 	try {
-		console.error("SingleFile", message); // eslint-disable-line no-console
+		console.error("SingleFile", message, link); // eslint-disable-line no-console
 		errorBarElement = document.querySelector(ERROR_BAR_TAGNAME);
 		if (!errorBarElement) {
 			errorBarElement = createElement(ERROR_BAR_TAGNAME);
@@ -79,6 +79,9 @@ function onError(message) {
 					transition: opacity 250ms;
 					height: 16px;
 				}
+				a {
+					color: #303036;
+				}
 				.close-button:hover {
 					opacity: 1;
 				}
@@ -88,7 +91,16 @@ function onError(message) {
 			containerElement.className = "container";
 			const errorTextElement = document.createElement("span");
 			errorTextElement.classList.add("text");
-			errorTextElement.textContent = "SingleFile error: " + message;
+			const content = message.split("__DOC_LINK__");
+			errorTextElement.textContent = "SingleFile error: " + content[0];
+			if (link && content.length == 2) {
+				const linkElement = document.createElement("a");
+				linkElement.textContent = link;
+				linkElement.href = link;
+				linkElement.target = "_blank";
+				errorTextElement.appendChild(linkElement);
+				errorTextElement.appendChild(document.createTextNode(content[1]));
+			}
 			containerElement.appendChild(errorTextElement);
 			const closeElement = document.createElement("img");
 			closeElement.classList.add("close-button");