diff --git a/src/ui/static/css/dashboard.css b/src/ui/static/css/dashboard.css index 0417a7e7..99a7638a 100644 --- a/src/ui/static/css/dashboard.css +++ b/src/ui/static/css/dashboard.css @@ -997,6 +997,11 @@ h6 { margin-right: 1rem; } +.my-1\.5 { + margin-top: 0.375rem; + margin-bottom: 0.375rem; +} + .mb-2 { margin-bottom: 0.5rem; } @@ -1125,6 +1130,10 @@ h6 { margin-right: 1rem; } +.mb-1\.5 { + margin-bottom: 0.375rem; +} + .block { display: block; } @@ -1489,6 +1498,16 @@ h6 { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } +.translate-y-0\.5 { + --tw-translate-y: 0.125rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.translate-y-0 { + --tw-translate-y: 0px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + .rotate-12 { --tw-rotate: 12deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); @@ -1528,6 +1547,16 @@ h6 { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } +.scale-y-110 { + --tw-scale-y: 1.1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.scale-y-125 { + --tw-scale-y: 1.25; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + .transform { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } @@ -1767,6 +1796,10 @@ h6 { border-style: solid; } +.\!border-solid { + border-style: solid !important; +} + .border-dashed { border-style: dashed; } @@ -1862,6 +1895,10 @@ h6 { background-color: rgb(58 65 111 / 0.1); } +.bg-slate-700\/50 { + background-color: rgb(52 71 103 / 0.5); +} + .bg-none { background-image: none; } @@ -2714,6 +2751,11 @@ h6 { background-color: rgb(8 85 119 / 0.05); } +.hover\:bg-gray-200:hover { + --tw-bg-opacity: 1; + background-color: rgb(233 236 239 / var(--tw-bg-opacity)); +} + .hover\:bg-blue-500\/80:hover { background-color: rgb(94 114 228 / 0.8); } @@ -2822,6 +2864,10 @@ h6 { opacity: 0.85; } +.disabled\:cursor-not-allowed:disabled { + cursor: not-allowed; +} + .disabled\:border-gray-400:disabled { --tw-border-opacity: 1; border-color: rgb(206 212 218 / var(--tw-border-opacity)); @@ -2841,6 +2887,11 @@ h6 { opacity: 0.75; } +.disabled\:hover\:translate-y-0:hover:disabled { + --tw-translate-y: 0px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + .dark .dark\:inline { display: inline; } @@ -2901,6 +2952,10 @@ h6 { background-color: rgb(37 47 64 / var(--tw-bg-opacity)); } +.dark .dark\:bg-slate-700\/50 { + background-color: rgb(52 71 103 / 0.5); +} + .dark .dark\:bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); } @@ -2932,6 +2987,26 @@ h6 { fill: #495057; } +.dark .dark\:stroke-slate-700 { + stroke: #344767; +} + +.dark .dark\:stroke-gray-400 { + stroke: #ced4da; +} + +.dark .dark\:stroke-gray-700 { + stroke: #495057; +} + +.dark .dark\:stroke-gray-500 { + stroke: #adb5bd; +} + +.dark .dark\:stroke-gray-600 { + stroke: #6c757d; +} + .dark .dark\:text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity)); @@ -3042,6 +3117,15 @@ h6 { background-color: rgb(8 85 119 / 0.2); } +.dark .dark\:hover\:bg-slate-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(52 71 103 / var(--tw-bg-opacity)); +} + +.dark .dark\:hover\:bg-slate-700\/50:hover { + background-color: rgb(52 71 103 / 0.5); +} + .dark .dark\:hover\:brightness-100:hover { --tw-brightness: brightness(1); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); @@ -3428,11 +3512,6 @@ h6 { right: 1.5rem; } - .xl\:mx-4 { - margin-left: 1rem; - margin-right: 1rem; - } - .xl\:ml-68 { margin-left: 17rem; } @@ -3472,11 +3551,6 @@ h6 { grid-column: span 6 / span 6; } - .\32xl\:my-2 { - margin-top: 0.5rem; - margin-bottom: 0.5rem; - } - .\32xl\:mx-6 { margin-left: 1.5rem; margin-right: 1.5rem; diff --git a/src/ui/static/js/plugins.js b/src/ui/static/js/plugins.js index 030f8f7d..8bcc415a 100644 --- a/src/ui/static/js/plugins.js +++ b/src/ui/static/js/plugins.js @@ -259,12 +259,12 @@ class Upload { //dropzone logic this.dropZoneElement.addEventListener("dragover", (e) => { e.preventDefault(); - this.dropZoneElement.classList.add("bg-gray-100 dark:bg-gray-800"); + this.dragInStyle(); }); ["dragleave", "dragend"].forEach((type) => { this.dropZoneElement.addEventListener(type, (e) => { - this.dropZoneElement.classList.remove("bg-gray-100 dark:bg-gray-800"); + this.dragOutStyle(); }); }); @@ -272,15 +272,17 @@ class Upload { e.preventDefault(); this.fileInput.files = e.dataTransfer.files; this.fileInput.dispatchEvent(new Event("change")); - this.dropZoneElement.classList.remove("bg-gray-100 dark:bg-gray-800"); + this.dragOutStyle(); }); //when added file, set upload logic this.fileInput.addEventListener("change", () => { + this.dragOutStyle(); const timeout = 500; for (let i = 0; i < this.fileInput.files.length; i++) { setTimeout(() => this.uploadFile(this.fileInput.files[i]), timeout * i); } }); + //close fail/success log this.container.addEventListener("click", (e) => { try { @@ -292,6 +294,24 @@ class Upload { }); } + dragOutStyle() { + this.dropZoneElement.classList.remove( + "border-solid", + "bg-gray-100", + "dark:bg-slate-700/50" + ); + this.dropZoneElement.classList.add("border-dashed"); + } + + dragInStyle() { + this.dropZoneElement.classList.add( + "border-solid", + "bg-gray-100", + "dark:bg-slate-700/50" + ); + this.dropZoneElement.classList.remove("border-dashed"); + } + uploadFile(file) { let name = file.name; if (name.length >= 12) { @@ -304,7 +324,6 @@ class Upload { let fileSize; xhr.upload.addEventListener("progress", ({ loaded, total }) => { - let fileLoaded = Math.floor((loaded / total) * 100); let fileTotal = Math.floor(total / 1000); fileTotal < 1024 @@ -320,11 +339,19 @@ class Upload { xhr.addEventListener("readystatechange", () => { if (xhr.readyState === XMLHttpRequest.DONE) { this.progressArea.innerHTML = ""; - let uploadedHTML = - xhr.status == 201 - ? this.fileSuccess(name, fileSize) - : this.fileFail(name, fileSize); - this.uploadedArea.insertAdjacentHTML("afterbegin", uploadedHTML); + + if (xhr.status == 201) { + this.uploadedArea.insertAdjacentHTML( + "afterbegin", + this.fileSuccess(name, fileSize) + ); + this.allowReload(); + } else { + this.uploadedArea.insertAdjacentHTML( + "afterbegin", + this.fileFail(name, fileSize) + ); + } } }); @@ -334,68 +361,73 @@ class Upload { xhr.send(data); } + allowReload() { + const reloadBtn = document.querySelector("[plugin-reload-btn]"); + reloadBtn.removeAttribute("disabled"); + } + fileLoad(name, fileSize) { const str = `
-
- - ${name} - ${fileSize} - -
-
-`; +
+ + ${name} + ${fileSize} + +
+ + `; return str; } fileSuccess(name, fileSize) { const str = `
-
- - - - ${name} - ${fileSize} - -
-
-`; +
+ + + + ${name} + ${fileSize} + +
+ + `; return str; } fileFail(name, fileSize) { const str = `
-
- - - - ${name} - ${fileSize} - + + + + -
-
-`; + + + `; return str; } } diff --git a/src/ui/templates/file-manager.html b/src/ui/templates/file-manager.html index 78adbb9f..3550a308 100644 --- a/src/ui/templates/file-manager.html +++ b/src/ui/templates/file-manager.html @@ -66,7 +66,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %} > @@ -73,7 +73,8 @@ class="{% if category == 'error' %}bg-red-500 {%else%} bg-green-500 {%endif %} my-2 border relative p-4 w-11/12 min-h-20 rounded-lg hover:scale-102 transition shadow-md break-words dark:brightness-90" >
- {% if category == 'error' %} + {% if category == 'error' or "Please log in to access this page." in + message|safe %}
Error
{%else%}
Success
@@ -95,7 +96,9 @@
-

{{ message|safe }}

+

+ {{ message|safe }} {%if "log in" in message|safe%} test {%endif%} +

{% endfor %} diff --git a/src/ui/templates/jobs.html b/src/ui/templates/jobs.html index 4ed2c364..e13f2eb7 100644 --- a/src/ui/templates/jobs.html +++ b/src/ui/templates/jobs.html @@ -193,7 +193,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
-
{{current_endpoint}}
+
JOBS
@@ -232,28 +232,30 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}