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 %}