mirror of
https://github.com/bunkerity/bunkerweb
synced 2026-05-24 09:28:37 +00:00
start adding aria
This commit is contained in:
parent
7fbf17a0ea
commit
e3d21c647a
17 changed files with 225 additions and 131 deletions
|
|
@ -26,10 +26,16 @@ class Menu {
|
|||
|
||||
toggle() {
|
||||
this.sidebarEl.classList.toggle("-translate-x-full");
|
||||
if (this.sidebarEl.classList.contains("-translate-x-full")) {
|
||||
this.sidebarEl.setAttribute("aria-expanded", "false");
|
||||
} else {
|
||||
this.sidebarEl.setAttribute("aria-expanded", "true");
|
||||
}
|
||||
}
|
||||
|
||||
close() {
|
||||
this.sidebarEl.classList.add("-translate-x-full");
|
||||
this.sidebarEl.setAttribute("aria-expanded", "false");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -66,7 +72,7 @@ class News {
|
|||
news.photo.url,
|
||||
news.excerpt,
|
||||
news.tags,
|
||||
news.date,
|
||||
news.date
|
||||
);
|
||||
let cleanHTML = DOMPurify.sanitize(cardHTML);
|
||||
//add to DOM
|
||||
|
|
@ -131,16 +137,23 @@ class Sidebar {
|
|||
this.closeBtn = document.querySelector(btnCloseAtt);
|
||||
this.openBtn.addEventListener("click", this.open.bind(this));
|
||||
this.closeBtn.addEventListener("click", this.close.bind(this));
|
||||
init();
|
||||
}
|
||||
|
||||
init() {
|
||||
this.sidebarEl.setAttribute("aria-expand", "false");
|
||||
}
|
||||
|
||||
open() {
|
||||
this.sidebarEl.classList.add("translate-x-0");
|
||||
this.sidebarEl.classList.remove("translate-x-90");
|
||||
this.sidebarEl.setAttribute("aria-expand", "true");
|
||||
}
|
||||
|
||||
close() {
|
||||
this.sidebarEl.classList.add("translate-x-90");
|
||||
this.sidebarEl.classList.remove("translate-x-0");
|
||||
this.sidebarEl.setAttribute("aria-expand", "false");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -180,7 +193,7 @@ class darkMode {
|
|||
};
|
||||
const send = await fetch(
|
||||
`${location.href.split("/").slice(0, -1).join("/")}/darkmode`,
|
||||
data,
|
||||
data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -220,7 +233,7 @@ class FlashMsg {
|
|||
flashEl.remove();
|
||||
//update count
|
||||
this.flashCount.textContent = document.querySelectorAll(
|
||||
"[data-flash-message]",
|
||||
"[data-flash-message]"
|
||||
).length;
|
||||
}
|
||||
} catch (err) {}
|
||||
|
|
@ -313,7 +326,7 @@ class Banner {
|
|||
this.bannerEl.querySelector(
|
||||
`[role="listitem"][data-id="${
|
||||
+visibleEl.getAttribute("data-id") + 1
|
||||
}"]`,
|
||||
}"]`
|
||||
) || this.bannerEl.querySelector(`[role="listitem"][data-id="0"]`);
|
||||
|
||||
// Hide current one
|
||||
|
|
@ -382,7 +395,7 @@ const setMenu = new Menu();
|
|||
const setNewsSidebar = new Sidebar(
|
||||
"[data-sidebar-info]",
|
||||
"[data-sidebar-info-open]",
|
||||
"[data-sidebar-info-close]",
|
||||
"[data-sidebar-info-close]"
|
||||
);
|
||||
|
||||
const setCheckbox = new Checkbox();
|
||||
|
|
@ -393,7 +406,7 @@ const setDisabledPop = new DisabledPop();
|
|||
const setFlashSidebar = new Sidebar(
|
||||
"[data-flash-sidebar]",
|
||||
"[data-flash-sidebar-open]",
|
||||
"[data-flash-sidebar-close]",
|
||||
"[data-flash-sidebar-close]"
|
||||
);
|
||||
const setNews = new News();
|
||||
const setDarkM = new darkMode();
|
||||
|
|
|
|||
18
src/ui/templates/file_manager.html
vendored
18
src/ui/templates/file_manager.html
vendored
|
|
@ -45,7 +45,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
class="leading-normal text-sm"
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
|
||||
class="dark:text-gray-500 text-gray-600 after:float-right after:pl-2 after:text-gray-600 dark:after:text-gray-500 after:content-['/']"
|
||||
>
|
||||
{{current_endpoint}}
|
||||
|
|
@ -63,7 +63,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
data-{{current_endpoint}}-add-folder
|
||||
class="rounded transition hidden flex-col items-center mx-2 p-2 md:py-4 md:px-6 relative cursor-pointer hover:bg-gray-100 dark:hover:bg-slate-800"
|
||||
>
|
||||
<button type="button">
|
||||
<button >
|
||||
<svg
|
||||
class="relative dark:brightness-125 h-8 w-8 lg:h-9 lg:w-9 fill-primary stroke-gray-100 dark:stroke-gray-600"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -90,7 +90,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
data-{{current_endpoint}}-add-file
|
||||
class="rounded transition hidden flex-col items-center mx-2 p-2 md:py-4 md:px-6 relative cursor-pointer hover:bg-gray-100 dark:hover:bg-slate-800"
|
||||
>
|
||||
<button type="button">
|
||||
<button >
|
||||
<svg
|
||||
class="-translate-x-1 relative dark:brightness-125 h-8 w-8 lg:h-9 lg:w-9 fill-primary stroke-gray-100 dark:stroke-gray-600"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -226,7 +226,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
<!-- view button-->
|
||||
<button
|
||||
role="tab"
|
||||
type="button"
|
||||
|
||||
value="view"
|
||||
data-{{current_endpoint}}-action-dropdown-btn="{{child['name']}}"
|
||||
class="duration-300 border-gray-300 hover:brightness-90 bg-white text-white my-0 relative px-6 py-2 text-center align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300 w-full border-t rounded-t border-b border-l border-r hover:bg-gray-100"
|
||||
|
|
@ -265,7 +265,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
child['type'] == "folder" and child['can_edit'] == True %}
|
||||
<button
|
||||
role="tab"
|
||||
type="button"
|
||||
|
||||
value="edit"
|
||||
data-{{current_endpoint}}-action-dropdown-btn="{{child['name']}}"
|
||||
class="duration-300 border-gray-300 hover:brightness-90 bg-white my-0 relative px-6 py-2 text-center align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 w-full border-b border-l border-r hover:bg-gray-100"
|
||||
|
|
@ -290,7 +290,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
{% if current_endpoint == "cache" %}
|
||||
<button
|
||||
role="tab"
|
||||
type="button"
|
||||
|
||||
value="download"
|
||||
data-{{current_endpoint}}-download="{{child['name'].split('/')[0]}}"
|
||||
data-{{current_endpoint}}-file="{{child['name'].split('/')[1]}}"
|
||||
|
|
@ -313,7 +313,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
{%else%}
|
||||
<button
|
||||
role="tab"
|
||||
type="button"
|
||||
|
||||
value="download"
|
||||
data-{{current_endpoint}}-action-dropdown-btn="{{child['name']}}"
|
||||
class="duration-300 border-gray-300 hover:brightness-90 bg-white text-white my-0 relative px-6 py-2 text-center align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300 w-full border-b border-l border-r hover:bg-gray-100"
|
||||
|
|
@ -339,7 +339,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
{% if child['can_delete'] == True %}
|
||||
<button
|
||||
role="tab"
|
||||
type="button"
|
||||
|
||||
value="delete"
|
||||
data-{{current_endpoint}}-action-dropdown-btn="{{child['name']}}"
|
||||
class="bg-white duration-300 border-gray-300 hover:brightness-90 text-white my-0 relative px-6 py-2 text-center align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300 w-full border-b border-l border-r hover:bg-gray-100"
|
||||
|
|
@ -431,7 +431,7 @@ data-{{current_endpoint}}-modal
|
|||
<div class="mt-4 w-full justify-end flex">
|
||||
<button
|
||||
data-{{current_endpoint}}-modal-close
|
||||
type="button"
|
||||
|
||||
class="close-btn text-xs mr-2"
|
||||
>
|
||||
Close
|
||||
|
|
|
|||
30
src/ui/templates/flashs.html
vendored
30
src/ui/templates/flashs.html
vendored
|
|
@ -5,7 +5,8 @@
|
|||
class="transition-all group group-hover hover:brightness-75 dark:hover:brightness-105 fixed top-[4.5rem] right-20 sm:right-24 xl:right-24 z-990"
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
aria-controls="sidebar-flash"
|
||||
aria-label="Open flash action sidebar"
|
||||
data-flash-sidebar-open
|
||||
class="transition scale-90 sm:scale-100 dark:brightness-95 p-3 text-xl bg-white shadow-sm cursor-pointer rounded-circle text-slate-700"
|
||||
>
|
||||
|
|
@ -31,20 +32,23 @@
|
|||
|
||||
<!-- right sidebar -->
|
||||
<aside
|
||||
id="sidebar-flash"
|
||||
data-flash-sidebar
|
||||
aria-expanded="false"
|
||||
class="translate-x-90 -right-0 transition z-sticky dark:bg-slate-850 dark:brightness-110 shadow-3xl max-w-full w-90 ease fixed top-0 left-auto flex h-full min-w-0 flex-col break-words rounded-none border-0 bg-white bg-clip-border px-0.5"
|
||||
>
|
||||
<!-- close btn-->
|
||||
<svg
|
||||
data-flash-sidebar-close
|
||||
class="cursor-pointer fill-gray-600 dark:fill-gray-300 dark:opacity-80 absolute h-8 w-8 top-4 right-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 320 512"
|
||||
>
|
||||
<path
|
||||
d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z"
|
||||
/>
|
||||
</svg>
|
||||
<button aria-label="close flash sidebar" data-flash-sidebar-close>
|
||||
<svg
|
||||
class="pointer-events-none fill-gray-600 dark:fill-gray-300 dark:opacity-80 absolute h-8 w-8 top-4 right-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 320 512"
|
||||
>
|
||||
<path
|
||||
d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
<!-- close btn-->
|
||||
|
||||
<!-- header -->
|
||||
|
|
@ -74,6 +78,8 @@
|
|||
<!-- flash message-->
|
||||
{% for category, message in messages %}
|
||||
<div
|
||||
role="alert"
|
||||
aria-description="flash feedback message"
|
||||
data-flash-message
|
||||
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"
|
||||
>
|
||||
|
|
@ -84,8 +90,8 @@
|
|||
<h5 class="text-lg mb-0 text-white">Success</h5>
|
||||
{%endif%}
|
||||
<button
|
||||
aria-label="close flash message"
|
||||
data-close-flash-message
|
||||
type="button"
|
||||
class="absolute right-8 top-2"
|
||||
>
|
||||
<svg
|
||||
|
|
|
|||
2
src/ui/templates/global_config.html
vendored
2
src/ui/templates/global_config.html
vendored
|
|
@ -7,7 +7,7 @@
|
|||
<h5 class="transition duration-300 ease-in-out 0 ml-2 font-bold text-md uppercase dark:text-white/90 mb-0">CONFIGS</h5>
|
||||
<!-- search inpt-->
|
||||
<div class="flex relative col-span-12 sm:col-span-6 lg:col-span-4 3xl:col-span-3">
|
||||
|
||||
<label class="sr-only" for="settings-filter">filter settings</label>
|
||||
<input
|
||||
type="text"
|
||||
id="settings-filter"
|
||||
|
|
|
|||
12
src/ui/templates/home.html
vendored
12
src/ui/templates/home.html
vendored
|
|
@ -36,6 +36,8 @@
|
|||
<!-- end text -->
|
||||
<!-- icon -->
|
||||
<div
|
||||
role="img"
|
||||
aria-label="version"
|
||||
class="dark:brightness-90 inline-block w-12 h-12 text-center rounded-circle bg-secondary"
|
||||
>
|
||||
<svg
|
||||
|
|
@ -75,6 +77,8 @@
|
|||
<!-- end text -->
|
||||
<!-- icon -->
|
||||
<div
|
||||
role="img"
|
||||
aria-label="instances"
|
||||
class="dark:brightness-90 inline-block w-12 h-12 text-center rounded-circle bg-red-500"
|
||||
>
|
||||
<svg
|
||||
|
|
@ -122,6 +126,8 @@
|
|||
<!-- end text -->
|
||||
<!-- icon -->
|
||||
<div
|
||||
role="img"
|
||||
aria-label="services"
|
||||
class="dark:brightness-90 inline-block w-12 h-12 text-center rounded-circle bg-orange-500"
|
||||
>
|
||||
<svg
|
||||
|
|
@ -162,7 +168,11 @@
|
|||
</div>
|
||||
<!-- end text -->
|
||||
<!-- icon -->
|
||||
<div class="inline-block w-12 h-12 text-center rounded-circle bg-yellow-500">
|
||||
<div
|
||||
role="img"
|
||||
aria-label="plugins"
|
||||
class="inline-block w-12 h-12 text-center rounded-circle bg-yellow-500"
|
||||
>
|
||||
<svg
|
||||
class="scale-50 -translate-y-1.5 leading-none text-lg relative fill-white"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
|
|||
4
src/ui/templates/instances.html
vendored
4
src/ui/templates/instances.html
vendored
|
|
@ -31,9 +31,10 @@ instances_batched %}
|
|||
<!-- end state and title-->
|
||||
|
||||
<!-- detail list -->
|
||||
<div class="grid grid-cols-1 gap-2 mt-4 mb-6 ml-1">
|
||||
<div role="grid" class="grid grid-cols-1 gap-2 mt-4 mb-6 ml-1">
|
||||
<!-- detail -->
|
||||
<div
|
||||
role="gridcell"
|
||||
class="flex flex-col items-center sm:flex-row col-span-1 py-1 sm:py-0"
|
||||
>
|
||||
<p
|
||||
|
|
@ -50,6 +51,7 @@ instances_batched %}
|
|||
<!-- end detail -->
|
||||
<!-- detail -->
|
||||
<div
|
||||
role="gridcell"
|
||||
class="flex flex-col items-center sm:flex-row col-span-1 py-1 sm:py-0"
|
||||
>
|
||||
<p
|
||||
|
|
|
|||
36
src/ui/templates/jobs.html
vendored
36
src/ui/templates/jobs.html
vendored
|
|
@ -46,6 +46,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
>
|
||||
Search
|
||||
</h5>
|
||||
<label for="keyword" class="sr-only">search</label>
|
||||
<input
|
||||
type="text"
|
||||
id="keyword"
|
||||
|
|
@ -66,11 +67,12 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
Success state
|
||||
</h5>
|
||||
<button
|
||||
aria-controls="filter-state"
|
||||
data-{{current_endpoint}}-setting-select="success"
|
||||
type="button"
|
||||
class="disabled:opacity-75 dark:disabled:text-gray-300 disabled:text-gray-700 disabled:bg-gray-400 disabled:border-gray-400 dark:disabled:bg-gray-800 dark:disabled:border-gray-800 duration-300 ease-in-out dark:opacity-90 dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300 focus:border-green-500 flex justify-between align-middle items-center text-left text-sm leading-5.6 ease w-full rounded-lg border border-solid border-gray-300 bg-white bg-clip-padding px-1.5 py-1 md:px-3 font-normal text-gray-700 transition-all placeholder:text-gray-500"
|
||||
>
|
||||
<span
|
||||
aria-label="current filter state value"
|
||||
id="{{current_endpoint}}-success"
|
||||
data-name="{{current_endpoint}}-success"
|
||||
data-{{current_endpoint}}-setting-select-text="success"
|
||||
|
|
@ -91,28 +93,30 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
<!-- end chevron -->
|
||||
<!-- dropdown-->
|
||||
<div
|
||||
id="filter-state"
|
||||
role="listbox"
|
||||
data-{{current_endpoint}}-setting-select-dropdown="success"
|
||||
class="hidden z-100 absolute h-full flex-col w-full translate-y-16"
|
||||
>
|
||||
<button
|
||||
role="option"
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="success"
|
||||
type="button"
|
||||
value="all"
|
||||
class="border-t rounded-t border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:text-gray-300 dark:bg-primary bg-primary text-gray-300"
|
||||
>
|
||||
all
|
||||
</button>
|
||||
<button
|
||||
role="option"
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="success"
|
||||
type="button"
|
||||
value="false"
|
||||
class="border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
false
|
||||
</button>
|
||||
<button
|
||||
role="option"
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="success"
|
||||
type="button"
|
||||
value="true"
|
||||
class="rounded-b border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
|
|
@ -130,11 +134,12 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
Reload state
|
||||
</h5>
|
||||
<button
|
||||
aria-controls="filter-reload"
|
||||
data-{{current_endpoint}}-setting-select="reload"
|
||||
type="button"
|
||||
class="disabled:opacity-75 dark:disabled:text-gray-300 disabled:text-gray-700 disabled:bg-gray-400 disabled:border-gray-400 dark:disabled:bg-gray-800 dark:disabled:border-gray-800 duration-300 ease-in-out dark:opacity-90 dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300 focus:border-green-500 flex justify-between align-middle items-center text-left text-sm leading-5.6 ease w-full rounded-lg border border-solid border-gray-300 bg-white bg-clip-padding px-1.5 py-1 md:px-3 font-normal text-gray-700 transition-all placeholder:text-gray-500"
|
||||
>
|
||||
<span
|
||||
aria-label="current reload filter value"
|
||||
id="{{current_endpoint}}-reload"
|
||||
data-name="{{current_endpoint}}-reload"
|
||||
data-{{current_endpoint}}-setting-select-text="reload"
|
||||
|
|
@ -155,28 +160,30 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
<!-- end chevron -->
|
||||
<!-- dropdown-->
|
||||
<div
|
||||
id="filter-reload"
|
||||
role="listbox"
|
||||
data-{{current_endpoint}}-setting-select-dropdown="reload"
|
||||
class="hidden z-100 absolute h-full flex-col w-full translate-y-16"
|
||||
>
|
||||
<button
|
||||
role="option"
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="reload"
|
||||
type="button"
|
||||
value="all"
|
||||
class="border-t rounded-t border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:text-gray-300 dark:bg-primary bg-primary text-gray-300"
|
||||
>
|
||||
all
|
||||
</button>
|
||||
<button
|
||||
role="option"
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="reload"
|
||||
type="button"
|
||||
value="false"
|
||||
class="border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
false
|
||||
</button>
|
||||
<button
|
||||
role="option"
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="reload"
|
||||
type="button"
|
||||
value="true"
|
||||
class="rounded-b border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
|
|
@ -229,25 +236,29 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
</p>
|
||||
<!-- end header-->
|
||||
<!-- list -->
|
||||
<ul class="col-span-12 w-full" data-{{current_endpoint}}-list>
|
||||
<ul role="grid" class="col-span-12 w-full" data-{{current_endpoint}}-list>
|
||||
{% for job_name, value in jobs.items() %}
|
||||
<!-- job item-->
|
||||
<li
|
||||
role="row"
|
||||
class="items-center grid grid-cols-12 border-b border-gray-300 py-2.5"
|
||||
>
|
||||
<p
|
||||
role="gridcell"
|
||||
class="dark:text-gray-400 dark:opacity-80 text-sm col-span-3 m-0 my-1"
|
||||
data-{{current_endpoint}}-name
|
||||
>
|
||||
{{job_name}}
|
||||
</p>
|
||||
<p
|
||||
role="gridcell"
|
||||
class="dark:text-gray-400 dark:opacity-80 text-sm col-span-3 m-0 my-1"
|
||||
data-{{current_endpoint}}-last_run
|
||||
>
|
||||
{{value['last_run']}}
|
||||
</p>
|
||||
<p
|
||||
role="gridcell"
|
||||
class="dark:text-gray-400 dark:opacity-80 text-sm col-span-1 m-0 my-1"
|
||||
data-{{current_endpoint}}-every
|
||||
>
|
||||
|
|
@ -255,6 +266,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
</p>
|
||||
{% if value["reload"] %}
|
||||
<p
|
||||
role="gridcell"
|
||||
class="ml-6 dark:text-gray-400 dark:opacity-80 text-sm col-span-1 m-0 my-1"
|
||||
data-{{current_endpoint}}-reload="true"
|
||||
>
|
||||
|
|
@ -271,6 +283,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
|
||||
{%endif %} {% if not value["reload"] %}
|
||||
<p
|
||||
role="gridcell"
|
||||
class="ml-6 dark:text-gray-400 dark:opacity-80 text-sm col-span-1 m-0 my-1"
|
||||
data-{{current_endpoint}}-reload="false"
|
||||
>
|
||||
|
|
@ -286,6 +299,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
</p>
|
||||
{% endif %} {% if value["success"] %}
|
||||
<p
|
||||
role="gridcell"
|
||||
class="ml-6 dark:text-gray-400 dark:opacity-80 text-sm col-span-1 m-0 my-1"
|
||||
data-{{current_endpoint}}-success="true"
|
||||
>
|
||||
|
|
@ -301,6 +315,7 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
</p>
|
||||
{% elif not value["success"] %}
|
||||
<p
|
||||
role="gridcell"
|
||||
class="ml-6 dark:text-gray-400 dark:opacity-80 text-sm col-span-1 m-0 my-1"
|
||||
data-{{current_endpoint}}-success="false"
|
||||
>
|
||||
|
|
@ -316,13 +331,13 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
</p>
|
||||
{% endif %}
|
||||
<div
|
||||
role="gridcell"
|
||||
class="relative dark:text-gray-400 text-sm col-span-3 m-0 my-1"
|
||||
data-{{current_endpoint}}-files
|
||||
>
|
||||
{% if value['cache']%}
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select="{{job_name}}"
|
||||
type="button"
|
||||
class="py-1 text-sm disabled:opacity-75 dark:disabled:text-gray-300 disabled:text-gray-700 disabled:bg-gray-400 disabled:border-gray-400 dark:disabled:bg-gray-800 dark:disabled:border-gray-800 duration-300 ease-in-out dark:opacity-90 dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300 focus:border-green-500 flex justify-between align-middle items-center text-left leading-6 ease w-full rounded-lg border border-solid border-gray-300 bg-white bg-clip-padding px-1.5 md:px-3 font-normal text-gray-700 transition-all placeholder:text-gray-500"
|
||||
>
|
||||
<span
|
||||
|
|
@ -354,7 +369,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip() %}
|
|||
data-{{current_endpoint}}-download="{{job_name}}"
|
||||
data-{{current_endpoint}}-file="{{file['file_name']}}"
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="{{job_name}}"
|
||||
type="button"
|
||||
value="list"
|
||||
class="{% if loop.index == loop.length %}rounded-b-lg {% endif %}{% if loop.first %}rounded-t-lg{% endif %} border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:text-gray-300 bg-white dark:bg-slate-700 text-gray-700"
|
||||
>
|
||||
|
|
|
|||
3
src/ui/templates/login.html
vendored
3
src/ui/templates/login.html
vendored
|
|
@ -28,13 +28,14 @@
|
|||
<!-- flash message-->
|
||||
{% for category, message in messages %}
|
||||
<div
|
||||
role="alert"
|
||||
aria-description="login message alert"
|
||||
data-flash-message
|
||||
class="p-4 mb-1 md:mb-3 md:mr-3 z-[1001] flex flex-col fixed bottom-0 right-0 w-full md:w-1/2 max-w-[300px] min-h-20 bg-white rounded-lg dark:brightness-110 hover:scale-102 transition shadow-md break-words dark:bg-slate-850 dark:shadow-dark-xl bg-clip-border"
|
||||
>
|
||||
<button
|
||||
data-close-flash-message
|
||||
role="close alert message"
|
||||
type="button"
|
||||
class="absolute right-7 top-1.5"
|
||||
>
|
||||
<svg
|
||||
|
|
|
|||
11
src/ui/templates/logs.html
vendored
11
src/ui/templates/logs.html
vendored
|
|
@ -17,7 +17,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
</h5>
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select="instances"
|
||||
type="button"
|
||||
class="disabled:opacity-75 dark:disabled:text-gray-300 disabled:text-gray-700 disabled:bg-gray-400 disabled:border-gray-400 dark:disabled:bg-gray-800 dark:disabled:border-gray-800 duration-300 ease-in-out dark:opacity-90 dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300 focus:border-green-500 flex justify-between align-middle items-center text-left text-sm leading-5.6 ease w-full rounded-lg border border-solid border-gray-300 bg-white bg-clip-padding px-1.5 py-1 md:px-3 font-normal text-gray-700 transition-all placeholder:text-gray-500"
|
||||
>
|
||||
<span
|
||||
|
|
@ -50,7 +49,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
{% for instance in instances %}
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="instances"
|
||||
type="button"
|
||||
value="{{instance.name}}"
|
||||
data-_type="{{instance._type}}"
|
||||
class="{% if loop.index == 1 %} border-t rounded-t {% endif %} {% if loop.index == loop.length %}rounded-b {% endif %} border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
|
|
@ -154,7 +152,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
<div class="col-span-12 w-full justify-center flex mt-2">
|
||||
<button
|
||||
data-submit-date
|
||||
type="button"
|
||||
id="submit-settings"
|
||||
class="tracking-widest dark:brightness-125 hover:brightness-75 inline-block px-6 py-3 font-bold text-center text-white uppercase align-middle transition-all rounded-lg cursor-pointer bg-gradient-to-tl bg-primary leading-normal text-xs ease-in shadow-xs bg-150 bg-x-25 hover:-translate-y-px active:opacity-85 hover:shadow-md"
|
||||
>
|
||||
|
|
@ -162,7 +159,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
</button>
|
||||
<button
|
||||
data-submit-live="no"
|
||||
type="button"
|
||||
id="submit-settings"
|
||||
class="hidden tracking-widest dark:brightness-125 hover:brightness-75 inline-block px-6 py-3 font-bold text-center text-white uppercase align-middle transition-all rounded-lg cursor-pointer bg-gradient-to-tl bg-primary leading-normal text-xs ease-in shadow-xs bg-150 bg-x-25 hover:-translate-y-px active:opacity-85 hover:shadow-md"
|
||||
>
|
||||
|
|
@ -207,7 +203,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
</h5>
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select="types"
|
||||
type="button"
|
||||
class="disabled:opacity-75 dark:disabled:text-gray-300 disabled:text-gray-700 disabled:bg-gray-400 disabled:border-gray-400 dark:disabled:bg-gray-800 dark:disabled:border-gray-800 duration-300 ease-in-out dark:opacity-90 dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300 focus:border-green-500 flex justify-between align-middle items-center text-left text-sm leading-5.6 ease w-full rounded-lg border border-solid border-gray-300 bg-white bg-clip-padding px-1.5 py-1 md:px-3 font-normal text-gray-700 transition-all placeholder:text-gray-500"
|
||||
>
|
||||
<span
|
||||
|
|
@ -236,7 +231,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
>
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="types"
|
||||
type="button"
|
||||
value="all"
|
||||
class="border-t rounded-t border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:text-gray-300 dark:bg-primary bg-primary text-gray-300"
|
||||
>
|
||||
|
|
@ -244,7 +238,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
</button>
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="types"
|
||||
type="button"
|
||||
value="message"
|
||||
class="border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
|
|
@ -252,7 +245,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
</button>
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="types"
|
||||
type="button"
|
||||
value="error"
|
||||
class="border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
|
|
@ -260,7 +252,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
</button>
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="types"
|
||||
type="button"
|
||||
value="warn"
|
||||
class="border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
|
|
@ -268,7 +259,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
</button>
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="types"
|
||||
type="button"
|
||||
value="info"
|
||||
class="border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
|
|
@ -276,7 +266,6 @@ url_for(request.endpoint)[1:].split("/")[-1].strip().replace('_', '-') %}
|
|||
</button>
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="types"
|
||||
type="button"
|
||||
value="misc"
|
||||
class="rounded-b border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
|
|
|
|||
46
src/ui/templates/menu.html
vendored
46
src/ui/templates/menu.html
vendored
|
|
@ -3,7 +3,8 @@
|
|||
|
||||
<!-- float button-->
|
||||
<button
|
||||
type="button"
|
||||
aria-controls="sidebar-menu"
|
||||
aria-label="Open menu sidebar"
|
||||
data-sidebar-menu-toggle
|
||||
class="transition-all scale-90 sm:scale-100 dark:brightness-95 dark:hover:brightness-105 hover:brightness-75 xl:hidden fixed p-3 text-xl bg-white shadow-sm cursor-pointer top-16 sm:top-[4.5rem] right-5 sm:right-6 z-990 rounded-circle text-slate-700"
|
||||
>
|
||||
|
|
@ -25,24 +26,27 @@
|
|||
data-sidebar-menu
|
||||
class="transition-all mt-[4.5rem] fixed flex inset-y-0 flex-wrap justify-between w-full p-0 my-4 overflow-y-auto antialiased duration-200 -translate-x-full bg-white border-0 shadow-xl dark:shadow-none dark:bg-slate-850 dark:brightness-110 max-w-64 z-[1000] xl:ml-6 rounded-2xl xl:left-0 xl:translate-x-0"
|
||||
aria-expanded="false"
|
||||
id="sidebar-menu"
|
||||
>
|
||||
<!-- close btn-->
|
||||
<svg
|
||||
data-sidebar-menu-close
|
||||
class="xl:hidden cursor-pointer fill-gray-600 dark:fill-gray-300 dark:opacity-80 absolute h-6 w-6 top-4 right-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 320 512"
|
||||
>
|
||||
<path
|
||||
d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z"
|
||||
/>
|
||||
</svg>
|
||||
<button aria-label="close menu sidebar" data-sidebar-menu-close>
|
||||
<svg
|
||||
class="xl:hidden pointer-events-none fill-gray-600 dark:fill-gray-300 dark:opacity-80 absolute h-6 w-6 top-4 right-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 320 512"
|
||||
>
|
||||
<path
|
||||
d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
<!-- close btn-->
|
||||
<!-- top sidebar -->
|
||||
<div class="w-full">
|
||||
<!-- logo and version -->
|
||||
<div class="h-19">
|
||||
<a
|
||||
aria-label="link to home"
|
||||
class="flex justify-center px-8 py-6 m-0 text-sm whitespace-nowrap dark:text-white text-slate-700"
|
||||
href="{% if current_endpoint == 'home' %}javascript:void(0){% else %}loading?next={{ url_for('home') }}{% endif %}"
|
||||
>
|
||||
|
|
@ -479,7 +483,10 @@
|
|||
<!-- social-->
|
||||
<ul class="flex justify-center align-middle w-full mb-4">
|
||||
<li class="mx-2 w-6">
|
||||
<a href="https://twitter.com/bunkerity" target="_blank"
|
||||
<a
|
||||
aria-label="link to twitter"
|
||||
href="https://twitter.com/bunkerity"
|
||||
target="_blank"
|
||||
><svg
|
||||
class="hover:opacity-80"
|
||||
fill="#1DA1F2"
|
||||
|
|
@ -492,7 +499,10 @@
|
|||
></a>
|
||||
</li>
|
||||
<li class="mx-2.5 w-6">
|
||||
<a href="https://www.linkedin.com/company/bunkerity/" target="_blank"
|
||||
<a
|
||||
aria-label="link to linkedin"
|
||||
href="https://www.linkedin.com/company/bunkerity/"
|
||||
target="_blank"
|
||||
><svg
|
||||
fill="#0A63BC"
|
||||
class="hover:opacity-80 dark:brightness-110"
|
||||
|
|
@ -505,7 +515,10 @@
|
|||
></a>
|
||||
</li>
|
||||
<li class="mx-2.5 w-6 -translate-y-1">
|
||||
<a href="https://discord.gg/fTf46FmtyD" target="_blank"
|
||||
<a
|
||||
aria-label="link to discord"
|
||||
href="https://discord.gg/fTf46FmtyD"
|
||||
target="_blank"
|
||||
><svg
|
||||
class="translate-y-1 hover:opacity-80"
|
||||
fill="#5562EA"
|
||||
|
|
@ -518,7 +531,10 @@
|
|||
></a>
|
||||
</li>
|
||||
<li class="mx-2.5 w-6">
|
||||
<a href="https://github.com/bunkerity" target="_blank"
|
||||
<a
|
||||
aria-label="link to github"
|
||||
href="https://github.com/bunkerity"
|
||||
target="_blank"
|
||||
><svg
|
||||
class="hover:opacity-80 dark:fill-gray-600"
|
||||
fill="#171A1F"
|
||||
|
|
|
|||
32
src/ui/templates/news.html
vendored
32
src/ui/templates/news.html
vendored
|
|
@ -1,7 +1,8 @@
|
|||
<!-- float button-->
|
||||
<button
|
||||
type="button"
|
||||
data-sidebar-info-open
|
||||
aria-controls="sidebar-news"
|
||||
aria-label="Open news sidebar"
|
||||
class="transition-all scale-90 sm:scale-100 dark:brightness-95 dark:hover:brightness-105 hover:brightness-75 fixed p-3 text-xl bg-white shadow-sm cursor-pointer top-[4.5rem] right-5 sm:right-40 xl:right-6 z-990 rounded-circle text-slate-700"
|
||||
>
|
||||
<svg
|
||||
|
|
@ -18,20 +19,23 @@
|
|||
|
||||
<!-- right sidebar -->
|
||||
<aside
|
||||
id="sidebar-news"
|
||||
aria-expanded="false"
|
||||
data-sidebar-info
|
||||
class="translate-x-90 -right-0 transition z-sticky dark:bg-slate-850 dark:brightness-110 shadow-3xl max-w-full w-90 ease fixed top-0 left-auto flex h-full min-w-0 flex-col break-words rounded-none border-0 bg-white bg-clip-border px-0.5"
|
||||
>
|
||||
<!-- close btn-->
|
||||
<svg
|
||||
data-sidebar-info-close
|
||||
class="cursor-pointer fill-gray-600 dark:fill-gray-300 dark:opacity-80 absolute h-8 w-8 top-4 right-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 320 512"
|
||||
>
|
||||
<path
|
||||
d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z"
|
||||
/>
|
||||
</svg>
|
||||
<button aria-label="close news sidebar" data-sidebar-info-close>
|
||||
<svg
|
||||
class="pointer-events-none fill-gray-600 dark:fill-gray-300 dark:opacity-80 absolute h-8 w-8 top-4 right-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 320 512"
|
||||
>
|
||||
<path
|
||||
d="M310.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 210.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L114.7 256 9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 301.3 265.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L205.3 256 310.6 150.6z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
<!-- close btn-->
|
||||
|
||||
<!-- header -->
|
||||
|
|
@ -43,6 +47,7 @@
|
|||
<!-- close button -->
|
||||
<div class="float-right mt-6">
|
||||
<button
|
||||
aria-label="close news sidebar"
|
||||
data-sidebar-info-close
|
||||
class="inline-block p-0 mb-4 text-sm font-bold leading-normal text-center uppercase align-middle transition-all ease-in bg-transparent border-0 rounded-lg shadow-none cursor-pointer hover:-translate-y-px tracking-tight-rem bg-150 bg-x-25 active:opacity-85 dark:text-white text-slate-700"
|
||||
>
|
||||
|
|
@ -78,6 +83,7 @@
|
|||
>
|
||||
<h5 class="mb-4 dark:text-white font-bold">JOIN THE NEWSLETTER</h5>
|
||||
<div class="flex">
|
||||
<label for="EMAIL" class="hidden">EMAIL</label>
|
||||
<input
|
||||
type="text"
|
||||
id="newsletter-email"
|
||||
|
|
@ -94,12 +100,15 @@
|
|||
data-checkbox-handler="newsletter-check"
|
||||
class="relative mb-7 md:mb-0"
|
||||
>
|
||||
<label class="hidden" for="newsletter-check">agree privacy</label>
|
||||
<input
|
||||
id="newsletter-check"
|
||||
name="newsletter-check"
|
||||
class="mr-2 relative cursor-pointer dark:border-slate-600 dark:bg-slate-700 z-10 checked:z-0 w-5 h-5 ease text-base rounded-1.4 checked:bg-primary checked:border-primary dark:checked:bg-primary dark:checked:border-primary duration-250 float-left mt-1 appearance-none border border-gray-300 bg-white bg-contain bg-center bg-no-repeat align-top transition-all disabled:bg-gray-400 disabled:border-gray-400 dark:disabled:bg-gray-800 dark:disabled:border-gray-800 disabled:text-gray-700 dark:disabled:text-gray-300"
|
||||
type="checkbox"
|
||||
data-pattern="^(yes|no)$"
|
||||
value="no"
|
||||
required
|
||||
/>
|
||||
<svg
|
||||
data-checkbox-handler="newsletter-check"
|
||||
|
|
@ -126,7 +135,6 @@
|
|||
<button
|
||||
type="submit"
|
||||
formtarget="_blank"
|
||||
type="button"
|
||||
class="dark:brightness-125 hover:brightness-75 w-full inline-block px-6 py-3 font-bold text-center text-white uppercase align-middle transition-all rounded-lg cursor-pointer bg-gradient-to-tl bg-primary leading-normal text-xs ease-in tracking-wide shadow-xs bg-150 bg-x-25 hover:-translate-y-px active:opacity-85 hover:shadow-md"
|
||||
>
|
||||
Subscribe
|
||||
|
|
|
|||
15
src/ui/templates/plugins.html
vendored
15
src/ui/templates/plugins.html
vendored
|
|
@ -124,6 +124,7 @@ include "plugins_modal.html" %}
|
|||
>
|
||||
Search
|
||||
</h5>
|
||||
<label for="keyword" class="sr-only">search</label>
|
||||
<input
|
||||
type="text"
|
||||
id="keyword"
|
||||
|
|
@ -144,10 +145,11 @@ include "plugins_modal.html" %}
|
|||
</h5>
|
||||
<button
|
||||
data-{{current_endpoint}}-setting-select="types"
|
||||
type="button"
|
||||
aria-controls="filter-types"
|
||||
class="disabled:opacity-75 dark:disabled:text-gray-300 disabled:text-gray-700 disabled:bg-gray-400 disabled:border-gray-400 dark:disabled:bg-gray-800 dark:disabled:border-gray-800 duration-300 ease-in-out dark:opacity-90 dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300 focus:border-green-500 flex justify-between align-middle items-center text-left text-sm leading-5.6 ease w-full rounded-lg border border-solid border-gray-300 bg-white bg-clip-padding px-1.5 py-1 md:px-3 font-normal text-gray-700 transition-all placeholder:text-gray-500"
|
||||
>
|
||||
<span
|
||||
aria-label="current type"
|
||||
id="types"
|
||||
data-name="types"
|
||||
data-{{current_endpoint}}-setting-select-text="types"
|
||||
|
|
@ -168,28 +170,30 @@ include "plugins_modal.html" %}
|
|||
<!-- end chevron -->
|
||||
<!-- dropdown-->
|
||||
<div
|
||||
id="filter-types"
|
||||
role="listbox"
|
||||
data-{{current_endpoint}}-setting-select-dropdown="types"
|
||||
class="hidden z-100 absolute h-full flex-col w-full translate-y-16"
|
||||
>
|
||||
<button
|
||||
role="option"
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="types"
|
||||
type="button"
|
||||
value="all"
|
||||
class="border-t rounded-t border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:text-gray-300 dark:bg-primary bg-primary text-gray-300"
|
||||
>
|
||||
all
|
||||
</button>
|
||||
<button
|
||||
role="option"
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="types"
|
||||
type="button"
|
||||
value="internal"
|
||||
class="border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
internal
|
||||
</button>
|
||||
<button
|
||||
role="option"
|
||||
data-{{current_endpoint}}-setting-select-dropdown-btn="types"
|
||||
type="button"
|
||||
value="external"
|
||||
class="border-b border-l border-r border-gray-300 dark:hover:brightness-90 hover:brightness-90 bg-white text-gray-700 my-0 relative py-2 px-3 text-left align-middle transition-all rounded-none cursor-pointer leading-normal text-sm ease-in tracking-tight-rem dark:border-slate-600 dark:bg-slate-700 dark:text-gray-300"
|
||||
>
|
||||
|
|
@ -223,6 +227,7 @@ include "plugins_modal.html" %}
|
|||
<div class="flex items-center">
|
||||
{% if plugin['page']%}
|
||||
<a
|
||||
aria-label="plugin page link"
|
||||
class="hover:-translate-y-px"
|
||||
href="{{request.url_root}}plugins?plugin_id={{plugin['id']}}"
|
||||
>
|
||||
|
|
@ -240,7 +245,7 @@ include "plugins_modal.html" %}
|
|||
<button
|
||||
data-{{current_endpoint}}-action="delete"
|
||||
name="{{plugin['id']}}"
|
||||
type="button"
|
||||
aria-label="delete plugin"
|
||||
class="z-20 mx-2 inline-block font-bold text-left text-white uppercase align-middle transition-all cursor-pointer text-xs ease-in tracking-tight-rem hover:-translate-y-px"
|
||||
>
|
||||
<svg
|
||||
|
|
|
|||
8
src/ui/templates/plugins_modal.html
vendored
8
src/ui/templates/plugins_modal.html
vendored
|
|
@ -14,7 +14,11 @@
|
|||
>
|
||||
DELETE PLUGINS
|
||||
</p>
|
||||
<button class="-translate-y-1" type="button" data-plugins-modal-close>
|
||||
<button
|
||||
aria-label="close modal"
|
||||
class="-translate-y-1"
|
||||
data-plugins-modal-close
|
||||
>
|
||||
<svg
|
||||
class="transition duration-300 ease-in-out dark:opacity-90 h-6 w-6 sm:h-7 sm:w-7 fill-slate-800 dark:fill-gray-300"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -39,6 +43,7 @@
|
|||
<input type="hidden" value="delete" name="operation" id="operation" />
|
||||
<div>
|
||||
<p
|
||||
aria-description="delete plugin message"
|
||||
data-plugins-modal-text
|
||||
class="text-center mx-2 mb-2 mt-8 font-semibold font-sans leading-normal uppercase text-sm"
|
||||
></p>
|
||||
|
|
@ -47,7 +52,6 @@
|
|||
<div class="w-full justify-center flex mt-10">
|
||||
<button
|
||||
data-plugins-modal-close
|
||||
type="button"
|
||||
class="dark:brightness-90 mr-3 inline-block px-6 py-3 font-bold text-center text-white uppercase align-middle transition-all rounded-lg cursor-pointer bg-red-500 hover:bg-red-500/80 focus:bg-red-500/80 leading-normal text-md ease-in tracking-tight-rem shadow-xs bg-150 bg-x-25 hover:-translate-y-px active:opacity-85 hover:shadow-md"
|
||||
>
|
||||
Close
|
||||
|
|
|
|||
48
src/ui/templates/services.html
vendored
48
src/ui/templates/services.html
vendored
|
|
@ -38,14 +38,12 @@
|
|||
</h5>
|
||||
<h6 class="text-center sm:text-left mb-2 font-semibold text-gray-600 dark:text-white/80">{{ service["SERVER_NAME"]['method'] }}</h5>
|
||||
|
||||
|
||||
|
||||
<!-- detail list -->
|
||||
<div
|
||||
<div role="grid"
|
||||
class="w-full grid grid-cols-12 justify-items-center sm:justify-items-start gap-2 mt-4 mb-6 ml-3 sm:ml-1"
|
||||
>
|
||||
<!-- detail -->
|
||||
<div class="flex items-center col-span-12 sm:col-span-6">
|
||||
<div role="gridcell" class="flex items-center col-span-12 sm:col-span-6">
|
||||
<p
|
||||
class="transition duration-300 ease-in-out dark:opacity-90 font-bold mb-0 font-sans text-sm leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
|
|
@ -55,6 +53,7 @@
|
|||
class="transition duration-300 ease-in-out dark:opacity-90 pl-2 mb-0 font-sans text-sm font-semibold leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
{% if service['USE_REVERSE_PROXY']['value'] == 'yes' %}
|
||||
<span class="sr-only">yes</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-green-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -65,6 +64,7 @@
|
|||
/>
|
||||
</svg>
|
||||
{% else %}
|
||||
<span class="sr-only">no</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-red-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -80,7 +80,7 @@
|
|||
</div>
|
||||
<!-- end detail -->
|
||||
<!-- detail -->
|
||||
<div class="flex items-center col-span-12 sm:col-span-6">
|
||||
<div role="gridcell" class="flex items-center col-span-12 sm:col-span-6">
|
||||
<p
|
||||
class="transition duration-300 ease-in-out dark:opacity-90 font-bold mb-0 font-sans text-sm leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
|
|
@ -90,6 +90,8 @@
|
|||
class="transition duration-300 ease-in-out dark:opacity-90 pl-2 mb-0 font-sans text-sm font-semibold leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
{% if service['SERVE_FILES']['value'] == 'yes' %}
|
||||
<span class="sr-only">yes</span>
|
||||
|
||||
<svg
|
||||
class="h-4 w-4 fill-green-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -100,6 +102,8 @@
|
|||
/>
|
||||
</svg>
|
||||
{% else %}
|
||||
<span class="sr-only">no</span>
|
||||
|
||||
<svg
|
||||
class="h-4 w-4 fill-red-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -114,7 +118,7 @@
|
|||
</div>
|
||||
<!-- end detail -->
|
||||
<!-- detail -->
|
||||
<div class="flex items-center col-span-12 sm:col-span-6">
|
||||
<div role="gridcell" class="flex items-center col-span-12 sm:col-span-6">
|
||||
<p
|
||||
class="transition duration-300 ease-in-out dark:opacity-90 font-bold mb-0 font-sans text-sm leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
|
|
@ -124,6 +128,7 @@
|
|||
class="transition duration-300 ease-in-out dark:opacity-90 pl-2 mb-0 font-sans text-sm font-semibold leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
{% if service['REMOTE_PHP']['value'] != '' %}
|
||||
<span class="sr-only">yes</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-green-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -134,6 +139,7 @@
|
|||
/>
|
||||
</svg>
|
||||
{% else %}
|
||||
<span class="sr-only">no</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-red-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -148,7 +154,7 @@
|
|||
</div>
|
||||
<!-- end detail -->
|
||||
<!-- detail -->
|
||||
<div class="flex items-center col-span-12 sm:col-span-6">
|
||||
<div role="gridcell" class="flex items-center col-span-12 sm:col-span-6">
|
||||
<p
|
||||
class="transition duration-300 ease-in-out dark:opacity-90 font-bold mb-0 font-sans text-sm leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
|
|
@ -158,6 +164,7 @@
|
|||
class="transition duration-300 ease-in-out dark:opacity-90 pl-2 mb-0 font-sans text-sm font-semibold leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
{% if service['AUTO_LETS_ENCRYPT']['value'] == 'yes' or service['USE_CUSTOM_SSL']['value'] == 'yes' or service['GENERATE_SELF_SIGNED_SSL']['value'] == 'yes' %}
|
||||
<span class="sr-only">yes</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-green-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -168,6 +175,7 @@
|
|||
/>
|
||||
</svg>
|
||||
{% else %}
|
||||
<span class="sr-only">no</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-red-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -182,7 +190,7 @@
|
|||
</div>
|
||||
<!-- end detail -->
|
||||
<!-- detail -->
|
||||
<div class="flex items-center col-span-12 sm:col-span-6">
|
||||
<div role="gridcell" class="flex items-center col-span-12 sm:col-span-6">
|
||||
<p
|
||||
class="transition duration-300 ease-in-out dark:opacity-90 font-bold mb-0 font-sans text-sm leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
|
|
@ -192,6 +200,7 @@
|
|||
class="transition duration-300 ease-in-out dark:opacity-90 pl-2 mb-0 font-sans text-sm font-semibold leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
{% if service['USE_MODSECURITY']['value'] == 'yes' %}
|
||||
<span class="sr-only">yes</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-green-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -202,6 +211,7 @@
|
|||
/>
|
||||
</svg>
|
||||
{% else %}
|
||||
<span class="sr-only">no</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-red-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -216,7 +226,7 @@
|
|||
</div>
|
||||
<!-- end detail -->
|
||||
<!-- detail -->
|
||||
<div class="flex items-center col-span-12 sm:col-span-6">
|
||||
<div role="gridcell" class="flex items-center col-span-12 sm:col-span-6">
|
||||
<p
|
||||
class="transition duration-300 ease-in-out dark:opacity-90 font-bold mb-0 font-sans text-sm leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
|
|
@ -226,6 +236,7 @@
|
|||
class="transition duration-300 ease-in-out dark:opacity-90 pl-2 mb-0 font-sans text-sm font-semibold leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
{% if service['USE_BAD_BEHAVIOR']['value'] == 'yes' %}
|
||||
<span class="sr-only">yes</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-green-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -236,6 +247,7 @@
|
|||
/>
|
||||
</svg>
|
||||
{% else %}
|
||||
<span class="sr-only">no</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-red-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -250,7 +262,7 @@
|
|||
</div>
|
||||
<!-- end detail -->
|
||||
<!-- detail -->
|
||||
<div class="flex items-center col-span-12 sm:col-span-6">
|
||||
<div role="gridcell" class="flex items-center col-span-12 sm:col-span-6">
|
||||
<p
|
||||
class="transition duration-300 ease-in-out dark:opacity-90 font-bold mb-0 font-sans text-sm leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
|
|
@ -259,7 +271,9 @@
|
|||
<p
|
||||
class="transition duration-300 ease-in-out dark:opacity-90 pl-2 mb-0 font-sans text-sm font-semibold leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
{% if service['USE_LIMIT_REQ']['value'] == 'yes' %}
|
||||
{% if service['USE_LIMIT_REQ']['value'] == 'yes' %}$
|
||||
<span class="sr-only">yes</span>
|
||||
|
||||
<svg
|
||||
class="h-4 w-4 fill-green-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -270,6 +284,8 @@
|
|||
/>
|
||||
</svg>
|
||||
{% else %}
|
||||
<span class="sr-only">no</span>
|
||||
|
||||
<svg
|
||||
class="h-4 w-4 fill-red-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -284,7 +300,7 @@
|
|||
</div>
|
||||
<!-- end detail -->
|
||||
<!-- detail -->
|
||||
<div class="flex items-center col-span-12 sm:col-span-6">
|
||||
<div role="gridcell" class="flex items-center col-span-12 sm:col-span-6">
|
||||
<p
|
||||
class="font-bold mb-0 font-sans text-sm leading-normal uppercase dark:text-gray-500"
|
||||
>
|
||||
|
|
@ -294,6 +310,7 @@
|
|||
class="transition duration-300 ease-in-out dark:opacity-90 pl-2 mb-0 font-sans text-sm font-semibold leading-normal uppercase dark:text-gray-500 "
|
||||
>
|
||||
{% if service['USE_DNSBL']['value'] == 'yes' %}
|
||||
<span class="sr-only">yes</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-green-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -304,6 +321,7 @@
|
|||
/>
|
||||
</svg>
|
||||
{% else %}
|
||||
<span class="sr-only">no</span>
|
||||
<svg
|
||||
class="h-4 w-4 fill-red-500"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -322,7 +340,7 @@
|
|||
|
||||
<!-- button list-->
|
||||
<div class="relative w-full flex justify-center sm:justify-end">
|
||||
<a href="http://{{service["SERVER_NAME"]['value']}}"
|
||||
<a aria-label="access service url" href="http://{{service["SERVER_NAME"]['value']}}"
|
||||
target="_blank"
|
||||
class="dark:brightness-90 z-20 mx-1 bg-sky-500 hover:bg-sky-500/80 focus:bg-sky-500/80 inline-block p-3 font-bold text-center text-white uppercase align-middle transition-all rounded-lg cursor-pointer leading-normal text-xs ease-in tracking-tight-rem shadow-xs bg-150 bg-x-25 active:opacity-85 hover:shadow-md"
|
||||
>
|
||||
|
|
@ -340,7 +358,7 @@
|
|||
|
||||
<button
|
||||
data-services-action="edit"
|
||||
type="button"
|
||||
aria-label="edit service settings"
|
||||
data-services-name="{{service["SERVER_NAME"]['value']}}"
|
||||
|
||||
class="dark:brightness-90 z-20 mx-1 bg-yellow-500 hover:bg-yellow-500/80 focus:bg-yellow-500/80 inline-block p-3 font-bold text-center text-white uppercase align-middle transition-all rounded-lg cursor-pointer leading-normal text-xs ease-in tracking-tight-rem shadow-xs bg-150 bg-x-25 active:opacity-85 hover:shadow-md"
|
||||
|
|
@ -355,7 +373,7 @@
|
|||
{% if service["SERVER_NAME"]['method'] == "ui" %}
|
||||
<button
|
||||
data-services-action="delete"
|
||||
type="button"
|
||||
aria-label="delete service"
|
||||
data-services-name="{{service["SERVER_NAME"]['value']}}"
|
||||
class="dark:brightness-90 z-20 mx-1 bg-red-500 hover:bg-red-500/80 focus:bg-red-500/80 inline-block p-3 font-bold text-center text-white uppercase align-middle transition-all rounded-lg cursor-pointer leading-normal text-xs ease-in tracking-tight-rem shadow-xs bg-150 bg-x-25 active:opacity-85 hover:shadow-md"
|
||||
>
|
||||
|
|
|
|||
7
src/ui/templates/services_modal.html
vendored
7
src/ui/templates/services_modal.html
vendored
|
|
@ -15,7 +15,11 @@
|
|||
>
|
||||
SERVICE MODAL
|
||||
</p>
|
||||
<button class="-translate-y-1" type="button" data-services-modal-close>
|
||||
<button
|
||||
class="-translate-y-1"
|
||||
aria-label="close modal"
|
||||
data-services-modal-close
|
||||
>
|
||||
<svg
|
||||
class="transition duration-300 ease-in-out dark:opacity-90 h-6 w-6 sm:h-7 sm:w-7 fill-slate-800 dark:fill-gray-300"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
|
|
@ -40,6 +44,7 @@
|
|||
<div
|
||||
class="flex relative col-span-12 sm:col-span-6 lg:col-span-4 3xl:col-span-3"
|
||||
>
|
||||
<label class="sr-only" for="settings-filter">search</label>
|
||||
<input
|
||||
type="text"
|
||||
id="settings-filter"
|
||||
|
|
|
|||
42
src/ui/templates/settings_plugins.html
vendored
42
src/ui/templates/settings_plugins.html
vendored
|
|
@ -50,7 +50,7 @@ data-plugin-item="{{plugin['id']}}"
|
|||
/>
|
||||
</svg>
|
||||
<!-- popover -->
|
||||
<div class="popover-settings-container hidden"
|
||||
<div role="alert" aria-description="show detail" class="popover-settings-container hidden"
|
||||
data-popover-content="{{ value["label"] }}"
|
||||
>
|
||||
<p class="popover-settings-text" >{{value['help']}}
|
||||
|
|
@ -63,6 +63,7 @@ data-plugin-item="{{plugin['id']}}"
|
|||
<!-- input -->
|
||||
{% if value["type"] != "select" and value["type"] != "check" %}
|
||||
<div class="relative flex items-center">
|
||||
<label class="sr-only" for="{{setting}}">{{setting}}</label>
|
||||
<input
|
||||
{% if setting == "SERVER_NAME" %}required{%endif%}
|
||||
data-default-value="{{global_config[setting]['value']}}" data-default-method="{{global_config[setting]['method']}}"
|
||||
|
|
@ -99,22 +100,22 @@ data-plugin-item="{{plugin['id']}}"
|
|||
|
||||
<!--custom-->
|
||||
<div data-select-container class="relative">
|
||||
<button
|
||||
<button
|
||||
{% if global_config[setting]['method'] != 'ui' and global_config[setting]['method'] != 'default' %} disabled {% endif %} data-setting-select="{{value['id']}}"
|
||||
data-default-value="{{global_config[setting]['value']}}"
|
||||
data-default-method="{{global_config[setting]['method']}}"
|
||||
type="button"
|
||||
aria-controls="{{settings}}-dropdown"
|
||||
class="custom-select-btn"
|
||||
>
|
||||
{% for item in value['select'] %} {% if global_config[setting]['value'] and
|
||||
global_config[setting]['value'] == item %}
|
||||
<span
|
||||
<span
|
||||
data-setting-select-text="{{value['id']}}"
|
||||
data-value="{{global_config[setting]['value']}}"
|
||||
>{{global_config[setting]['value']}}</span
|
||||
>
|
||||
{% elif not global_config[setting]['value'] and value['default'] == item %}
|
||||
<span
|
||||
<span aria-label="current value"
|
||||
data-setting-select-text="{{value['id']}}"
|
||||
data-value="{{value['default']}}"
|
||||
>{{value['default']}}</span
|
||||
|
|
@ -135,14 +136,15 @@ data-plugin-item="{{plugin['id']}}"
|
|||
</button>
|
||||
<!-- dropdown-->
|
||||
<div
|
||||
id="{{settings}}-dropdown"
|
||||
role="listbox"
|
||||
data-setting-select-dropdown="{{value['id']}}"
|
||||
class="hidden z-[20] absolute h-full flex-col w-full mt-2"
|
||||
>
|
||||
{% for item in value['select'] %} {% if global_config[setting]['value'] and
|
||||
global_config[setting]['value'] == item or not global_config[setting]['value']
|
||||
and value['default'] == item %}
|
||||
<button
|
||||
type="button"
|
||||
<button role="option"
|
||||
value="{{item}}"
|
||||
data-setting-select-dropdown-btn="{{value['id']}}"
|
||||
type="button"
|
||||
|
|
@ -151,8 +153,7 @@ data-plugin-item="{{plugin['id']}}"
|
|||
{{item}}
|
||||
</button>
|
||||
{% else %}
|
||||
<button
|
||||
type="button"
|
||||
<button role="option"
|
||||
value="{{item}}"
|
||||
data-setting-select-dropdown-btn="{{value['id']}}"
|
||||
type="button"
|
||||
|
|
@ -170,6 +171,7 @@ data-plugin-item="{{plugin['id']}}"
|
|||
<!-- checkbox -->
|
||||
{% if value["type"] == "check" %}
|
||||
<div data-checkbox-handler="{{value['id']}}" class="relative mb-7 md:mb-0 z-10 ">
|
||||
<label class="sr-only" for="{{setting}}">{{setting}}</label>
|
||||
<input id="{{setting}}" name="{{setting}}"
|
||||
data-default-method="{% if setting in ["AUTOCONF_MODE", "SWARM_MODE", "KUBERNETES_MODE"] %}mode{% else %}{{global_config[setting]['method']}}{% endif %}"
|
||||
data-default-value="{{global_config[setting]['value']}}"
|
||||
|
|
@ -200,7 +202,7 @@ data-plugin-item="{{plugin['id']}}"
|
|||
<!-- end checkbox -->
|
||||
|
||||
<!-- invalid feedback -->
|
||||
<div class="hidden text-sm dark:text-red-500">
|
||||
<div role="alert" aria-label="show when invalid input" class="hidden text-sm dark:text-red-500">
|
||||
{{value['label']}} is invalid and must match this pattern:
|
||||
{{value['regex']|safe}}
|
||||
</div>
|
||||
|
|
@ -266,7 +268,7 @@ data-plugin-item="{{plugin['id']}}"
|
|||
/>
|
||||
</svg>
|
||||
<!-- popover -->
|
||||
<div class="popover-settings-container hidden"
|
||||
<div role="alert" aria-description="show detail" class="popover-settings-container hidden"
|
||||
data-popover-content="{{ value["label"] }}"
|
||||
>
|
||||
<p class="popover-settings-text" >{{value['help']}}
|
||||
|
|
@ -279,6 +281,7 @@ data-plugin-item="{{plugin['id']}}"
|
|||
<!-- input -->
|
||||
{% if value["type"] != "select" and value["type"] != "check" %}
|
||||
<div class="relative flex items-center">
|
||||
<label class="sr-only" for="{{setting}}_SCHEMA">{{setting}}</label>
|
||||
<input
|
||||
data-default-value="{{value['default']}}" data-default-method="default" id="{{setting}}_SCHEMA" name="{{setting}}_SCHEMA"
|
||||
class="regular-input"
|
||||
|
|
@ -315,11 +318,11 @@ data-plugin-item="{{plugin['id']}}"
|
|||
<button
|
||||
data-setting-select="{{value['id']}}"
|
||||
data-default-value="{{value['default']}}"
|
||||
type="button"
|
||||
aria-controls="{{settings}}-dropdown"
|
||||
class="custom-select-btn"
|
||||
>
|
||||
{% for item in value['select'] %} {% if value['default'] == item %}
|
||||
<span
|
||||
<span aria-label="current value"
|
||||
data-setting-select-text="{{value['id']}}"
|
||||
data-value="{{value['default']}}"
|
||||
>{{value['default']}}</span
|
||||
|
|
@ -339,26 +342,24 @@ data-plugin-item="{{plugin['id']}}"
|
|||
<!-- end chevron -->
|
||||
</button>
|
||||
<!-- dropdown-->
|
||||
<div
|
||||
<div id="{{settings}}-dropdown"
|
||||
role="listbox"
|
||||
data-setting-select-dropdown="{{value['id']}}"
|
||||
class="hidden z-[20] absolute h-full flex-col w-full mt-2"
|
||||
>
|
||||
{% for item in value['select'] %} {% if value['default'] == item %}
|
||||
<button
|
||||
type="button"
|
||||
<button role="option"
|
||||
value="{{item}}"
|
||||
data-setting-select-dropdown-btn="{{value['id']}}"
|
||||
type="button"
|
||||
class="active custom-dropdown-btn {% if loop.index == 1 %} border-t rounded-t {% endif %} {% if loop.index == loop.length %}rounded-b {% endif %}"
|
||||
>
|
||||
{{item}}
|
||||
</button>
|
||||
{% else %}
|
||||
<button
|
||||
type="button"
|
||||
role="option"
|
||||
value="{{item}}"
|
||||
data-setting-select-dropdown-btn="{{value['id']}}"
|
||||
type="button"
|
||||
class="custom-dropdown-btn {% if loop.index == 1 %} border-t rounded-t {% endif %} {% if loop.index == loop.length %}rounded-b {% endif %}"
|
||||
>
|
||||
{{item}}
|
||||
|
|
@ -373,6 +374,7 @@ data-plugin-item="{{plugin['id']}}"
|
|||
<!-- checkbox -->
|
||||
{% if value["type"] == "check" %}
|
||||
<div data-checkbox-handler="{{value['id']}}" class="relative mb-7 md:mb-0">
|
||||
<label class="sr-only" for="{{setting}}_SCHEMA">{{setting}}</label>
|
||||
<input id="{{setting}}_SCHEMA" name="{{setting}}_SCHEMA"
|
||||
data-default-method="default"
|
||||
data-default-value="{{value['default']}}" {% if value['default'] == 'yes' %} checked {%
|
||||
|
|
@ -394,7 +396,7 @@ data-plugin-item="{{plugin['id']}}"
|
|||
<!-- end checkbox -->
|
||||
|
||||
<!-- invalid feedback -->
|
||||
<div class="hidden text-sm dark:text-red-500">
|
||||
<div role="alert" aria-label="show when invalid" class="hidden text-sm dark:text-red-500">
|
||||
{{value['label']}} is invalid and must match this pattern:
|
||||
{{value['regex']|safe}}
|
||||
</div>
|
||||
|
|
|
|||
17
src/ui/templates/settings_tabs.html
vendored
17
src/ui/templates/settings_tabs.html
vendored
|
|
@ -11,7 +11,7 @@
|
|||
and check_settings(plugin["settings"], "global") %}
|
||||
<button role="tab"
|
||||
data-tab-handler="{{ plugin['id'] }}"
|
||||
type="button"
|
||||
|
||||
class="{% if loop.first %}active{% endif %} settings-tabs-tab-btn"
|
||||
>
|
||||
<span class="w-full flex justify-between items-center">
|
||||
|
|
@ -46,10 +46,10 @@
|
|||
<div class="md:hidden relative col-span-12 h-full">
|
||||
<button
|
||||
data-tab-dropdown-btn
|
||||
type="button"
|
||||
aria-controls="tab-dropdown-mobile"
|
||||
class="settings-tabs-mobile-btn"
|
||||
>
|
||||
<span class="settings-tabs-mobile-btn-text">{% if current_endpoint == "global-config" %}general {% endif %} </span>
|
||||
<span aria-label="current tab" class="settings-tabs-mobile-btn-text">{% if current_endpoint == "global-config" %}general {% endif %} </span>
|
||||
<!-- chevron -->
|
||||
<svg
|
||||
|
||||
|
|
@ -64,7 +64,8 @@
|
|||
<!-- end chevron -->
|
||||
</button>
|
||||
<!-- dropdown-->
|
||||
<div
|
||||
<div id="tab-dropdown-mobile" role="listbox"
|
||||
|
||||
data-tab-dropdown
|
||||
class="hidden z-100 absolute flex-col w-full overflow-hidden overflow-y-auto max-h-90"
|
||||
>
|
||||
|
|
@ -74,18 +75,18 @@
|
|||
and check_settings(plugin["settings"], "global") %}
|
||||
|
||||
{% if loop.first %}
|
||||
<button
|
||||
<button role="option"
|
||||
data-tab-handler-mobile="{{ plugin['id'] }}"
|
||||
type="button"
|
||||
|
||||
data-select="false"
|
||||
id="edit-{{current_endpoint}}-{{ plugin['id'] }}-tab"
|
||||
class="active first settings-tabs-mobile-dropdown-btn">
|
||||
{{ plugin["name"] }}
|
||||
</button>
|
||||
{% else %}
|
||||
<button
|
||||
<button role="option"
|
||||
data-tab-handler-mobile="{{ plugin['id'] }}"
|
||||
type="button"
|
||||
|
||||
data-select="false"
|
||||
id="edit-{{current_endpoint}}-{{ plugin['id'] }}-tab"
|
||||
class="settings-tabs-mobile-dropdown-btn {% if loop.index == loop.length %}rounded-b {% endif %}">
|
||||
|
|
|
|||
Loading…
Reference in a new issue