var theme = {
colorScheme: "default",
css: "",
+ searchEngine: "https://duckduckgo.com/?ia=web&q=",
showCompleted: false
};
var server = {
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")) {
var theme = {
colorScheme: "default",
css: "",
+ searchEngine: "https://duckduckgo.com/?ia=web&q=",
showCompleted: false
};
<div class="data">
<textarea id="todo-${targetText}-${index}-description">${item.description}</textarea>
<div>
- ${(item.description.match(/^https?:\/\/.*...*$/g)) ? "<a href='" + item.description + "' target='_blank' class='embedded'>open</a>" : ""}
+ <a href='${(item.description.match(/^https?:\/\/.*...*$/g)) ? item.description : theme.searchEngine + item.description}' target='_blank' class='embedded'>open</a>
+ <p id="todo-${targetText}-${index}-copy">copy</p>
<p id="todo-${targetText}-${index}-${(page == 'home') ? 'archive' : 'restore'}">${(page == 'home') ? 'archive' : 'restore'}</p>
<p id="todo-${targetText}-${index}-delete">delete</p>
</div>
backupData();
});
+ copyHelper(`todo-archived-${i}-copy`);
+
document.getElementById(`todo-archived-${i}-restore`).addEventListener("click", (event) => {
todos.uncompleted = [
backupData();
});
+ copyHelper(`todo-uncompleted-${i}-copy`);
+
document.getElementById(`todo-uncompleted-${i}-archive`).addEventListener("click", (event) => {
archived = [
hydrateTodos();
backupData();
});
+
+ copyHelper(`todo-completed-${i}-copy`);
document.getElementById(`todo-completed-${i}-archive`).addEventListener("click", (event) => {
}
}
+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