From 974be2960ff072db36d8bd71dc811c597aa1c8f8 Mon Sep 17 00:00:00 2001 From: Amazingca Date: Sat, 3 Oct 2026 13:19:41 -0600 Subject: [PATCH] Add link opening differentiation and copying --- app/settings.html | 6 ++++++ app/settings.js | 10 ++++++++++ app/todos.js | 41 ++++++++++++++++++++++++++++++++++++++++- 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/app/settings.html b/app/settings.html index 87e783a..39e032d 100644 --- a/app/settings.html +++ b/app/settings.html @@ -36,6 +36,12 @@ +
+
+

search engine

+ +
+

sync server

diff --git a/app/settings.js b/app/settings.js index cca8ac4..a789744 100644 --- a/app/settings.js +++ b/app/settings.js @@ -6,6 +6,7 @@ var archived = []; var theme = { colorScheme: "default", css: "", + searchEngine: "https://duckduckgo.com/?ia=web&q=", showCompleted: false }; var server = { @@ -30,6 +31,15 @@ if (localStorage.getItem("theme")) { theme = JSON.parse(localStorage.getItem("theme")); } +const searchEngineElement = document.getElementById("searchEngine"); +searchEngineElement.value = theme.searchEngine; + +searchEngineElement.addEventListener("input", (event) => { + + theme.searchEngine = event.target.value; + backupData(); +}); + const serverAddressElement = document.getElementById("serverAddress"); if (localStorage.getItem("server")) { diff --git a/app/todos.js b/app/todos.js index 047dadb..7ba3a55 100644 --- a/app/todos.js +++ b/app/todos.js @@ -6,6 +6,7 @@ var archived = []; var theme = { colorScheme: "default", css: "", + searchEngine: "https://duckduckgo.com/?ia=web&q=", showCompleted: false }; @@ -104,7 +105,8 @@ const todoElement = (item, index, isCompleted = false) => {
- ${(item.description.match(/^https?:\/\/.*...*$/g)) ? "open" : ""} + open +

copy

${(page == 'home') ? 'archive' : 'restore'}

delete

@@ -147,6 +149,8 @@ const applyListeners = () => { backupData(); }); + copyHelper(`todo-archived-${i}-copy`); + document.getElementById(`todo-archived-${i}-restore`).addEventListener("click", (event) => { todos.uncompleted = [ @@ -192,6 +196,8 @@ const applyListeners = () => { backupData(); }); + copyHelper(`todo-uncompleted-${i}-copy`); + document.getElementById(`todo-uncompleted-${i}-archive`).addEventListener("click", (event) => { archived = [ @@ -233,6 +239,8 @@ const applyListeners = () => { hydrateTodos(); backupData(); }); + + copyHelper(`todo-completed-${i}-copy`); document.getElementById(`todo-completed-${i}-archive`).addEventListener("click", (event) => { @@ -255,6 +263,37 @@ const applyListeners = () => { } } +const copyHelper = (target) => { + + document.getElementById(target).addEventListener("click", (event) => { + + const targetKeys = target.split("-"); + + var targetItem; + + switch (targetKeys[1]) { + case "uncompleted": + targetText = todos.uncompleted[targetKeys[2]]; + break; + case "completed": + targetText = todos.completed[targetKeys[2]]; + break; + case "archived": + targetText = archived[targetKeys[2]]; + break; + default: + break; + } + + navigator.clipboard.writeText(targetText.description); + + event.target.innerHTML = "copied!"; + setTimeout(() => { + event.target.innerHTML = "copy"; + }, 1000); + }); +} + const hydrateArchived = () => { if (archived.length > 0) archivedElement.innerHTML = archived -- 2.54.0