From f2e28e89f8689746123dfac52fd1c24e78eb83a9 Mon Sep 17 00:00:00 2001 From: Thomas Sileo Date: Mon, 18 Jul 2022 21:07:36 +0200 Subject: [PATCH] Fix emoji JS in the admin --- app/static/new.js | 32 ++++++++++++++++++++++++++++++++ app/templates/admin_new.html | 35 +---------------------------------- 2 files changed, 33 insertions(+), 34 deletions(-) create mode 100644 app/static/new.js diff --git a/app/static/new.js b/app/static/new.js new file mode 100644 index 0000000..e46e9e7 --- /dev/null +++ b/app/static/new.js @@ -0,0 +1,32 @@ +// The new post textarea +var ta = document.getElementsByTagName("textarea")[0]; +// Helper for inserting text (emojis) in the textarea +function insertAtCursor (textToInsert) { + ta.focus(); + const isSuccess = document.execCommand("insertText", false, textToInsert); + + // Firefox (non-standard method) + if (!isSuccess) { + // Credits to https://www.everythingfrontend.com/posts/insert-text-into-textarea-at-cursor-position.html + // get current text of the input + const value = ta.value; + // save selection start and end position + const start = ta.selectionStart; + const end = ta.selectionEnd; + // update the value with our text inserted + ta.value = value.slice(0, start) + textToInsert + value.slice(end); + // update cursor to be at the end of insertion + ta.selectionStart = ta.selectionEnd = start + textToInsert.length; + } +} +// Emoji click callback func +var ji = function (ev) { + insertAtCursor(ev.target.attributes.alt.value + " "); + ta.focus() + //console.log(document.execCommand('insertText', false /*no UI*/, ev.target.attributes.alt.value)); +} +// Enable the click for each emojis +var items = document.getElementsByClassName("ji") +for (var i = 0; i < items.length; i++) { + items[i].addEventListener('click', ji); +} diff --git a/app/templates/admin_new.html b/app/templates/admin_new.html index af0c8b5..7788c00 100644 --- a/app/templates/admin_new.html +++ b/app/templates/admin_new.html @@ -46,38 +46,5 @@

- + {% endblock %}