From 6177dcecb872076a33c24f08b6de8d98ff3cf567 Mon Sep 17 00:00:00 2001 From: Kato Twofold Date: Wed, 1 Jun 2022 16:58:09 +0300 Subject: [PATCH] Appearance updates + Improved scroll bar look + Implemented a preview mode --- static/css/main.css | 49 ++++++++++++++++++++++++++++++++++++++- static/js/pad-scripts.js | 48 +++++++++++++++++++++++++++++++++++--- templates/pages/page.html | 24 ++++++++++++++++--- 3 files changed, 114 insertions(+), 7 deletions(-) diff --git a/static/css/main.css b/static/css/main.css index b5e498a..4ae39e4 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -35,6 +35,29 @@ main#main-card { right: .5rem; } +.hidden { + display: none !important; +} + +#pad-content-area { + position: relative; + + display: flex; + flex-flow: column; +} + +#pad-content-toggler { + position: absolute; + top: .5rem; + right: .5rem; + + user-select: none; +} + +#textarea-preview { + max-height: calc(20rem + 30vh); + overflow: auto; +} textarea:focus, input[type="text"]:focus, @@ -55,4 +78,28 @@ input[type="color"]:focus, border-color: none; box-shadow: none; outline: 0 none; -} \ No newline at end of file +} + + +/* ===== Scrollbar CSS ===== */ + /* Firefox */ + * { + scrollbar-width: thin; + scrollbar-color: #3b3b3b #ffffff00; + } + + /* Chrome, Edge, and Safari */ + *::-webkit-scrollbar { + width: 7px; + height: 7px; + } + + *::-webkit-scrollbar-track { + background: #ffffff00; + } + + *::-webkit-scrollbar-thumb { + background-color: #3b3b3b; + border-radius: 2px; + border: 1px solid #ffffff00; + } \ No newline at end of file diff --git a/static/js/pad-scripts.js b/static/js/pad-scripts.js index e8592b3..b66064c 100644 --- a/static/js/pad-scripts.js +++ b/static/js/pad-scripts.js @@ -16,6 +16,11 @@ function sendMyData(el) { el.setAttribute(`readonly`, `1`); + const textareaPreview = document.getElementById(`textarea-preview`) + if ( !!textareaPreview ) { + textareaPreview.textContent = el.value; + } + formData.set("content", el.value); updateStatus(`Attempting to save...`, `text-warning`); @@ -184,11 +189,39 @@ function generateQRCode() { MicroModal.show(`qrmodal`) } -document.addEventListener(`DOMContentLoaded`, e => { +function toggleTextareaPreview() { + setTextareaPreview( !document.getElementById(`pad-content-toggler`).classList.contains(`read-only`) ) +} - { // Textarea Focusing - const textarea = document.getElementById(`pad-content`); +// t == true - Read Only +// t == false - Edit mode +function setTextareaPreview( t = true ) { + const prev = document.getElementById(`textarea-preview`) + const textarea = document.getElementById(`pad-content`); + const toggler = document.getElementById(`pad-content-toggler`); + const togglerEdit = toggler.querySelector(`.edit-content-text`); + const togglerView = toggler.querySelector(`.view-content-text`); + + if ( t ) { + // Toggle read only + prev.classList.remove(`hidden`) + toggler.classList.add(`read-only`); + + togglerEdit.classList.remove(`hidden`); + togglerView.classList.add(`hidden`); + + textarea.classList.add(`hidden`); + } else { + // Toggle edit mode + prev.classList.add(`hidden`) + toggler.classList.remove(`read-only`); + + togglerEdit.classList.add(`hidden`); + togglerView.classList.remove(`hidden`); + + + textarea.classList.remove(`hidden`); // Focus textarea.focus(); // Scroll @@ -197,6 +230,15 @@ document.addEventListener(`DOMContentLoaded`, e => { textarea.setSelectionRange(textarea.value.length, textarea.value.length); } +} + +document.addEventListener(`DOMContentLoaded`, e => { + + { // Textarea Handling + const textarea = document.getElementById(`pad-content`); + setTextareaPreview( !!textarea.value ); + } + { // Archives renderArchivesSelection() } diff --git a/templates/pages/page.html b/templates/pages/page.html index 8e6f197..1323dfd 100644 --- a/templates/pages/page.html +++ b/templates/pages/page.html @@ -35,9 +35,27 @@

{{.title}}

- +
+
+ + + + + + +
+ + + + +
+