From 33794b12d5c68df918b988497a396b86acb09feb Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Fri, 26 Apr 2019 20:32:48 +0200 Subject: Rename "template" directory to "theme" This commit renames the "template" directory to "theme" because "theme" is the more correct term here. --- template/admin/rsrc/main.js | 160 -------------------------------------------- 1 file changed, 160 deletions(-) delete mode 100644 template/admin/rsrc/main.js (limited to 'template/admin/rsrc/main.js') diff --git a/template/admin/rsrc/main.js b/template/admin/rsrc/main.js deleted file mode 100644 index 46880f2..0000000 --- a/template/admin/rsrc/main.js +++ /dev/null @@ -1,160 +0,0 @@ -//============================================================================== -// Elements which contains the location of the previous and next site -//============================================================================== -const prev = document.getElementById("prev-site"); -const next = document.getElementById("next-site"); - -//============================================================================== -// Handle arrow keys and change the location to the desired direction -//============================================================================== -document.addEventListener("keyup", function(e) { - if(!e.ctrlKey && !e.shiftKey && !e.altKey) { - (e.keyCode === 37 && prev) && (window.location.href = prev.getAttribute("href")); - (e.keyCode === 39 && next) && (window.location.href = next.getAttribute("href")); - } -}, false); - -//============================================================================== -// Markdown tags to replace -//============================================================================== -const markdownTags = { - "bold": ["**", "**"], - "italic": ["*", "*"], - "heading": ["## ", "\n"], - "link": ["[", "](href)"], - "image": ["![", "](href)"], - "code": ["\n~~~\n", "\n~~~\n"], - "quote": ["\n> ", ""], - "list_ul": ["* ", ""], - "list_ol": ["1. ", ""] -}; - -//============================================================================== -// Timeout function for delayed execution of code -//============================================================================== -function delayed(callback) { - window.setTimeout(callback, 20); -} - -//============================================================================== -// Set caret position in editor -//============================================================================== -function setCaretPosition(position) { - document.getElementById("content-editor").setSelectionRange(position, position); - document.getElementById("content-editor").focus(); -} - -//============================================================================== -// Insert emoticon after cursor in editor -//============================================================================== -function insertEmoticon(target, emoticon) { - const selectionStart = target.selectionStart; - const selectionEnd = target.selectionEnd; - - const content = target.value; - target.value = content.slice(0, selectionStart) + emoticon + content.slice(selectionEnd); - - delayed(function() { - setCaretPosition(selectionStart + emoticon.length); - }); -} - -//============================================================================== -// Insert markdown around text in editor -//============================================================================== -function insertMarkdown(target, markdown) { - const selectionStart = target.selectionStart; - const selectionEnd = target.selectionEnd; - - const selectedText = target.value.substring(selectionStart, selectionEnd); - - const content = target.value; - target.value = content.slice(0, selectionStart) + markdownTags[markdown][0] + selectedText + markdownTags[markdown][1] + content.slice(selectionEnd); - - delayed(function() { - setCaretPosition(selectionStart + markdownTags[markdown][0].length + selectedText.length + markdownTags[markdown][1].length); - }); -} - -//============================================================================== -// Keep server-side session active if the user is writing a long text -//============================================================================== -setInterval(function() { - const Request = new XMLHttpRequest(); - Request.open("HEAD", "", true); - Request.send(); -}, 300000); - -//============================================================================== -// Confirmation message for delete button -//============================================================================== -if(document.getElementById("delete-button")) { - document.getElementById("delete-button").onclick = function(e) { - return confirm(e.target.getAttribute("data-text")); - }; -} - -//============================================================================== -// Insert or remove tab indent in editor if [+] is pressed -//============================================================================== -(function() { - if(document.getElementById("content-editor")) { - const element = document.getElementById("content-editor"); - element.addEventListener("keydown", function(e) { - if(e.keyCode === 9 && !e.ctrlKey) { - const selectionStart = element.selectionStart; - const selectionEnd = element.selectionEnd; - - const content = element.value; - - if(e.shiftKey) { - if(content.substring(selectionStart, selectionStart -1) === "\t") { - element.value = content.substring(0, selectionStart - 1) + content.substring(selectionEnd); - setCaretPosition(selectionStart - 1); - } - } - - else { - element.value = content.substring(0, selectionStart) + "\t" + content.substring(selectionEnd); - setCaretPosition(selectionStart + 1); - } - - e.preventDefault(); - } - }, false); - } -})(); - -//============================================================================== -// Emoticon button list -//============================================================================== -(function() { - if(document.getElementById("emoticon-list")) { - const list = document.getElementById("emoticon-list"); - const node = document.getElementById("content-editor"); - const items = list.getElementsByTagName("li"); - - for(let i = 0; i < items.length; ++i) { - items[i].onmousedown = function(e) { - insertEmoticon(node, e.target.getAttribute("data-emoticon")); - }; - } - } -})(); - -//============================================================================== -// Markdown button list -//============================================================================== -(function() { - if(document.getElementById("markdown-list")) { - const list = document.getElementById("markdown-list"); - const node = document.getElementById("content-editor"); - const items = list.getElementsByTagName("li"); - - for(let i = 0; i < items.length; ++i) { - items[i].onmousedown = function(e) { - insertMarkdown(node, e.target.getAttribute("data-markdown")); - }; - } - } -})(); \ No newline at end of file -- cgit v1.2.3