From 19aa864579099eb2065a22c8a87bc5ff45af9b5a Mon Sep 17 00:00:00 2001 From: Clement Date: Thu, 2 Jul 2020 13:05:21 +0200 Subject: [PATCH] :sparkles: Allows to add the page content into the email, server-side Fix #4 --- src/_locales/en/messages.json | 12 +++++ src/_locales/fr/messages.json | 16 +++++- src/options.html | 96 +++++++++++++++++++---------------- src/popup.html | 38 +++++++------- src/scripts/background.js | 3 ++ src/scripts/options.js | 12 +++++ src/scripts/popup.js | 13 +++-- 7 files changed, 120 insertions(+), 70 deletions(-) diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index cb77a13..5894032 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -23,6 +23,10 @@ "message": "Token:", "description": "Token label" }, + "optionsExtract": { + "message": "Send page content into the email:", + "description": "Extract label" + }, "URLChanged": { "message": "URL changed!", "description": "Message when URL is changed." @@ -31,6 +35,10 @@ "message": "Token saved!", "description": "Message when token is changed." }, + "optionSaved": { + "message": "Option saved!", + "description": "Message when option is changed." + }, "cantExtractTitle": { "message": "Sorry, could not extract this page's title and URL", "description": "Message when we could not extract the page's title and URL" @@ -46,5 +54,9 @@ "defaultURL": { "message": "https://app.readlater.shikiryu.com", "description": "Default URL" + }, + "excerpt": { + "message": "Add content", + "description": "Option to add the webpage content into the email" } } diff --git a/src/_locales/fr/messages.json b/src/_locales/fr/messages.json index b15fd1e..c7da3f1 100644 --- a/src/_locales/fr/messages.json +++ b/src/_locales/fr/messages.json @@ -23,14 +23,22 @@ "message": "Jeton :", "description": "Token label" }, + "optionsExtract": { + "message": "Envoyer le contenu de la page dans le mail:", + "description": "Extract label" + }, "URLChanged": { - "message": "URL changed!", + "message": "URL enregistrée !", "description": "Message when URL is changed." }, "tokenSaved": { - "message": "Token saved!", + "message": "Jeton enregistré !", "description": "Message when token is changed." }, + "optionSaved": { + "message": "Option enregistrée !", + "description": "Message when option is changed." + }, "cantExtractTitle": { "message": "Sorry, could not extract this page's title and URL", "description": "Message when we could not extract the page's title and URL" @@ -46,5 +54,9 @@ "defaultURL": { "message": "https://app.readlater.shikiryu.com", "description": "Default URL" + }, + "excerpt": { + "message": "Ajouter le contenu", + "description": "Option to add the webpage content into the email" } } diff --git a/src/options.html b/src/options.html index 78385ee..9c6c75b 100644 --- a/src/options.html +++ b/src/options.html @@ -1,57 +1,63 @@ - + - - - - - - - -
-
-
-

-

-
-
-
- -
-
-
-
-
-
-
- -
+ + + + + + +
-
-
- +
+

+

+
+
-
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+ +
+
+ +
+
+ +
-
-
-
+ - - - - + + + diff --git a/src/popup.html b/src/popup.html index eafcb34..793308e 100644 --- a/src/popup.html +++ b/src/popup.html @@ -1,28 +1,30 @@ - + - - + + - + diff --git a/src/scripts/background.js b/src/scripts/background.js index 41bccc0..aa960d9 100644 --- a/src/scripts/background.js +++ b/src/scripts/background.js @@ -18,6 +18,9 @@ ext.runtime.onMessage.addListener(function(request, sender, sendResponse) { i: encodeURIComponent(data.image), c: encodeURIComponent(data.comment) }; + if (data.extract) { + params["e"] = true; + } var queryString = Object.keys(params) .map(key => { return key + "=" + params[key]; diff --git a/src/scripts/options.js b/src/scripts/options.js index c403ef0..0786099 100644 --- a/src/scripts/options.js +++ b/src/scripts/options.js @@ -3,6 +3,7 @@ import storage from "./utils/storage"; var urlInput = document.querySelector("[name=url]"); var tokenInput = document.querySelector("[name=token]"); +var extractInput = document.querySelector("[name=extract]"); var message = document.getElementById("msg"); storage.get("url", function(resp) { @@ -13,6 +14,10 @@ storage.get("token", function(resp) { tokenInput.value = resp.token; }); +storage.get("extract", function(resp) { + extractInput.value = resp.extract; +}); + urlInput.addEventListener("blur", function(e) { var value = this.value; storage.set({ url: value }, function() { @@ -27,6 +32,13 @@ tokenInput.addEventListener("blur", function(e) { }); }); +extractInput.addEventListener("change", function(e) { + var value = this.value; + storage.set({ extract: value }, function() { + message.textContent = ext.i18n.getMessage("optionSaved"); + }); +}); + document.querySelectorAll("[data-message]").forEach(function(elt) { elt.textContent = ext.i18n.getMessage(elt.dataset.message); }); diff --git a/src/scripts/popup.js b/src/scripts/popup.js index be03a7b..91fba09 100644 --- a/src/scripts/popup.js +++ b/src/scripts/popup.js @@ -10,10 +10,12 @@ var page_data = { }; var popup = document.getElementById("app"); -storage.get("color", function(resp) { - var color = resp.color; - if (color) { - popup.style.backgroundColor = color; +storage.get("extract", function(resp) { + var extract = resp.extract; + if (extract) { + document.getElementById("save-content").checked = extract + ? "checked" + : false; } }); @@ -45,7 +47,7 @@ var renderBookmark = data => { ext.tabs.query({ active: true, currentWindow: true }, function(tabs) { var activeTab = tabs[0]; - chrome.tabs.sendMessage( + ext.tabs.sendMessage( activeTab.id, { action: "process-page" }, renderBookmark @@ -56,6 +58,7 @@ popup.addEventListener("click", function(e) { if (e.target && e.target.matches("#save-btn")) { e.preventDefault(); page_data.comment = document.getElementById("comment").value; + page_data.extract = document.getElementById("save-content").checked; ext.runtime.sendMessage( { action: "perform-save", data: page_data }, function(response) {