commit mix - code incomplet
@ -15,14 +15,13 @@ import std/json
|
|||||||
import httpcore
|
import httpcore
|
||||||
import strutils
|
import strutils
|
||||||
import strformat
|
import strformat
|
||||||
import std/times
|
|
||||||
import std/options
|
import std/options
|
||||||
import std/httpclient
|
import std/httpclient
|
||||||
import std/asyncdispatch
|
import std/asyncdispatch
|
||||||
|
|
||||||
import utils # Joplin utils procedures and types
|
import utils # Joplin utils procedures and types
|
||||||
|
|
||||||
from os import sleep
|
# from os import sleep
|
||||||
from posix import read, write, fdatasync, close
|
from posix import read, write, fdatasync, close
|
||||||
|
|
||||||
# --==--==--==--==--==--==--==--==--==--==-- #
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
@ -38,7 +38,7 @@ type DashbordData* = object
|
|||||||
category*: seq[string]
|
category*: seq[string]
|
||||||
icon*: seq[string]
|
icon*: seq[string]
|
||||||
open_method*: seq[string]
|
open_method*: seq[string]
|
||||||
tag*: seq[string]
|
tag*: seq[seq[string]]
|
||||||
hotkey*: seq[string]
|
hotkey*: seq[string]
|
||||||
color*: seq[string]
|
color*: seq[string]
|
||||||
|
|
||||||
@ -75,6 +75,7 @@ type ColomnRightData* = ref object of RootObj
|
|||||||
proc getDashbordData*(): Future[DashbordData] {.async.} =
|
proc getDashbordData*(): Future[DashbordData] {.async.} =
|
||||||
|
|
||||||
var ddata: DashbordData
|
var ddata: DashbordData
|
||||||
|
var tagslist: seq[string]
|
||||||
|
|
||||||
let
|
let
|
||||||
data = parseExcel("data/dashbord.xlsx", header = true)
|
data = parseExcel("data/dashbord.xlsx", header = true)
|
||||||
@ -101,7 +102,10 @@ proc getDashbordData*(): Future[DashbordData] {.async.} =
|
|||||||
ddata.category.add(rows[i][10])
|
ddata.category.add(rows[i][10])
|
||||||
ddata.icon.add(rows[i][11])
|
ddata.icon.add(rows[i][11])
|
||||||
ddata.open_method.add(rows[i][12])
|
ddata.open_method.add(rows[i][12])
|
||||||
ddata.tag.add(rows[i][13])
|
|
||||||
|
tagslist = rows[i][13].split(',')
|
||||||
|
|
||||||
|
ddata.tag.add(tagslist)
|
||||||
ddata.hotkey.add(rows[i][14])
|
ddata.hotkey.add(rows[i][14])
|
||||||
ddata.color.add(rows[i][15])
|
ddata.color.add(rows[i][15])
|
||||||
|
|
||||||
|
BIN
data/~$dashbord.xlsx
Normal file
10
main.nim
@ -260,8 +260,10 @@ when isMainModule:
|
|||||||
# ---------------------------- #
|
# ---------------------------- #
|
||||||
#include "tmpl/main.tmpl"
|
#include "tmpl/main.tmpl"
|
||||||
include "tmpl/user.nim"
|
include "tmpl/user.nim"
|
||||||
|
include "tmpl/dashboard.nim"
|
||||||
include "tmpl/website.nim"
|
include "tmpl/website.nim"
|
||||||
|
|
||||||
|
|
||||||
# Tests pages include
|
# Tests pages include
|
||||||
# ---------------------------- #
|
# ---------------------------- #
|
||||||
include "tmpl/tests/test_homepage.nim"
|
include "tmpl/tests/test_homepage.nim"
|
||||||
@ -354,6 +356,10 @@ routes:
|
|||||||
echo "=> Section dashbord"
|
echo "=> Section dashbord"
|
||||||
#url_note = "/secret?msg=dashbord"
|
#url_note = "/secret?msg=dashbord"
|
||||||
cld.option = dashbord
|
cld.option = dashbord
|
||||||
|
cld.dashbord = waitFor getDashbordData()
|
||||||
|
# resp test_bouton(cld)
|
||||||
|
#resp dashbord(cld)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
elif @"msg" == "sendFeedBack":
|
elif @"msg" == "sendFeedBack":
|
||||||
@ -458,10 +464,6 @@ routes:
|
|||||||
get "/test_bouton":
|
get "/test_bouton":
|
||||||
createTFD()
|
createTFD()
|
||||||
cld.dashbord = waitFor getDashbordData()
|
cld.dashbord = waitFor getDashbordData()
|
||||||
|
|
||||||
#dashData.title.add("test de titre ...")
|
|
||||||
# echo dashData.title[0]
|
|
||||||
|
|
||||||
resp test_bouton(cld)
|
resp test_bouton(cld)
|
||||||
|
|
||||||
# Test geting all tags as JSON output
|
# Test geting all tags as JSON output
|
||||||
|
@ -1,699 +0,0 @@
|
|||||||
@charset "UTF-8";
|
|
||||||
body {
|
|
||||||
margin: auto;
|
|
||||||
font-family: Tahoma, sans-serif;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.disabled {
|
|
||||||
opacity: .5;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ellipsis {
|
|
||||||
display: block;
|
|
||||||
white-space: nowrap;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel {
|
|
||||||
padding: 5px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.apps {
|
|
||||||
margin: auto;
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.footer.version {
|
|
||||||
font-size: 10px;
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.footer.sorts {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dialog>div {
|
|
||||||
margin: 5px 20px;
|
|
||||||
padding: 1px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dialog>div.center {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dialog>div>button {
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
padding: 5px;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.headline {
|
|
||||||
padding: 5px;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logout {
|
|
||||||
text-align: center;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: auto;
|
|
||||||
grid-gap: 10px;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 10px;
|
|
||||||
margin: auto;
|
|
||||||
width: 95%;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (min-width: 800px) {
|
|
||||||
.content {
|
|
||||||
grid-template-columns: auto auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (min-width: 1200px) {
|
|
||||||
.content {
|
|
||||||
grid-template-columns: auto auto auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (min-width: 1600px) {
|
|
||||||
.content {
|
|
||||||
grid-template-columns: auto auto auto auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
body {
|
|
||||||
background-color: #333;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.content>div {
|
|
||||||
max-width: 350px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gwt-Button {
|
|
||||||
margin: 0px;
|
|
||||||
border: none;
|
|
||||||
padding: 6px;
|
|
||||||
cursor: pointer;
|
|
||||||
border-radius: 6px;
|
|
||||||
min-width: 28px;
|
|
||||||
min-height: 28px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gwt-Anchor.spacer,
|
|
||||||
.gwt-Button.spacer {
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gwt-Button:disabled {
|
|
||||||
cursor: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gwt-DialogBox {
|
|
||||||
border-radius: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gwt-DialogBox .Caption {
|
|
||||||
padding: 4px 8px 4px 4px;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gwt-DialogBox .dialogTopLeftInner {
|
|
||||||
width: 10px;
|
|
||||||
height: 8px;
|
|
||||||
zoom: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gwt-DialogBox .dialogTopRightInner {
|
|
||||||
width: 12px;
|
|
||||||
zoom: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gwt-DialogBox .dialogBottomLeftInner {
|
|
||||||
width: 10px;
|
|
||||||
height: 12px;
|
|
||||||
zoom: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gwt-DialogBox .dialogBottomRightInner {
|
|
||||||
width: 12px;
|
|
||||||
height: 12px;
|
|
||||||
zoom: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gwt-DialogBox .dialogMiddleCenter {
|
|
||||||
padding: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** Light theme */
|
|
||||||
|
|
||||||
body.light {
|
|
||||||
background: #f5f5f5 url("images/Background.png") no-repeat center fixed;
|
|
||||||
background-size: contain;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light a {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light a:hover {
|
|
||||||
color: #248bfb;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light a.pagination:hover {
|
|
||||||
color: #248bfb;
|
|
||||||
background: #ececec;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light a.pagination.current {
|
|
||||||
color: #248bfb;
|
|
||||||
background: #ececec;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .title {
|
|
||||||
background-color: #248bfb;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .content {
|
|
||||||
background-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .gwt-Button {
|
|
||||||
border: 1px solid navy;
|
|
||||||
background-color: #248bfb;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .gwt-Button:hover {
|
|
||||||
background-color: #0362cb;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .gwt-Button:disabled {
|
|
||||||
border-color: #aaa;
|
|
||||||
background-color: #ccc;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .gwt-Button.sort:disabled {
|
|
||||||
border-color: green;
|
|
||||||
background-color: #03cb62;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .gwt-DialogBox {
|
|
||||||
background-color: #248bfb;
|
|
||||||
border: 3px solid #abd2fe;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .gwt-DialogBox .Caption {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .gwt-DialogBox .dialogMiddleCenter {
|
|
||||||
background: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .gwt-PopupPanelGlass {
|
|
||||||
background-color: black;
|
|
||||||
opacity: 0.3;
|
|
||||||
filter: alpha(opacity=30);
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .content>div {
|
|
||||||
border: 1px solid #f5f5f5;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** Dark theme */
|
|
||||||
|
|
||||||
body.dark {
|
|
||||||
background: #272c30 url("images/Background-Dark.png") no-repeat center fixed;
|
|
||||||
background-size: contain;
|
|
||||||
color: #95c7fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark a {
|
|
||||||
color: #95c7fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark a:hover {
|
|
||||||
color: #e7e9eb;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark a.pagination:hover {
|
|
||||||
color: #e7e9eb;
|
|
||||||
background: #95a0aa;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark a.pagination.current {
|
|
||||||
color: #e7e9eb;
|
|
||||||
background: #95a0aa;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .title {
|
|
||||||
background-color: #024793;
|
|
||||||
color: #95c7fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .content {
|
|
||||||
background-color: #202326;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .gwt-Button {
|
|
||||||
border: 1px solid black;
|
|
||||||
background-color: #95a0aa;
|
|
||||||
color: #04356b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .gwt-Button:hover {
|
|
||||||
background-color: #bec5cb;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .gwt-Button:disabled {
|
|
||||||
border-color: #666;
|
|
||||||
background-color: #333;
|
|
||||||
color: #248bfb;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .gwt-Button.sort:disabled {
|
|
||||||
color: #03cb62;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .gwt-DialogBox {
|
|
||||||
background-color: #555;
|
|
||||||
border: 3px solid #999;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .gwt-DialogBox .Caption {
|
|
||||||
color: #95c7fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .gwt-DialogBox .dialogMiddleCenter {
|
|
||||||
background: #272c30;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .gwt-PopupPanelGlass {
|
|
||||||
background-color: black;
|
|
||||||
opacity: 0.5;
|
|
||||||
filter: alpha(opacity=50);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .content>div {
|
|
||||||
border: 1px solid #b9b9b9;
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid-container-title {
|
|
||||||
grid-area: title;
|
|
||||||
text-align: center;
|
|
||||||
font-size: min(max(5vw, 10px), 24px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid-container-title.jp {
|
|
||||||
font-size: min(max(3.75vw, 6px), 21px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid-container-logo {
|
|
||||||
grid-area: logo;
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid-container-description {
|
|
||||||
grid-area: description;
|
|
||||||
font-size: min(max(3.25vw, 8px), 18px);
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid-container-description.jp {
|
|
||||||
font-size: min(max(3vw, 5px), 15px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid-container-languages {
|
|
||||||
grid-area: languages;
|
|
||||||
font-size: min(max(3vw, 7px), 16px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid-container-languages.jp {
|
|
||||||
font-size: min(max(2.75vw, 5px), 13px);
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-areas: 'logo title' 'logo description' 'logo languages';
|
|
||||||
gap: 2px;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** Glow */
|
|
||||||
|
|
||||||
|
|
||||||
/** https://webdeasy.de/en/top-css-buttons-en */
|
|
||||||
|
|
||||||
.glow-on-hover {
|
|
||||||
display: inline-block;
|
|
||||||
width: 90vw;
|
|
||||||
max-width: 400px;
|
|
||||||
height: 45vw;
|
|
||||||
max-height: 200px;
|
|
||||||
margin: 5px;
|
|
||||||
border: 1px solid #111;
|
|
||||||
outline: none;
|
|
||||||
cursor: pointer;
|
|
||||||
position: relative;
|
|
||||||
z-index: 0;
|
|
||||||
border-radius: 10px;
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .glow-on-hover {
|
|
||||||
color: white;
|
|
||||||
background-color: rgba(36, 139, 251, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .glow-on-hover {
|
|
||||||
color: #95c7fd;
|
|
||||||
background-color: rgba(190, 197, 203, 0.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
.glow-on-hover:before {
|
|
||||||
content: '';
|
|
||||||
background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000);
|
|
||||||
position: absolute;
|
|
||||||
top: -2px;
|
|
||||||
left: -2px;
|
|
||||||
background-size: 400%;
|
|
||||||
z-index: -1;
|
|
||||||
filter: blur(5px);
|
|
||||||
width: calc(100% + 4px);
|
|
||||||
height: calc(100% + 4px);
|
|
||||||
animation: glowing 20s linear infinite;
|
|
||||||
opacity: 0;
|
|
||||||
transition: opacity .3s ease-in-out;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.glow-on-hover:active {
|
|
||||||
color: #888888
|
|
||||||
}
|
|
||||||
|
|
||||||
.glow-on-hover:active:after {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.glow-on-hover:hover:before {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.glow-on-hover:after {
|
|
||||||
z-index: -1;
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light .glow-on-hover:hover:after {
|
|
||||||
background-color: rgba(0, 33, 122, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .glow-on-hover:hover:after {
|
|
||||||
background-color: rgba(25, 25, 25, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes glowing {
|
|
||||||
0% {
|
|
||||||
background-position: 0 0;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
background-position: 400% 0;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
background-position: 0 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
div.crossfade {
|
|
||||||
position: relative;
|
|
||||||
width: min(32.4vw, 144px);
|
|
||||||
height: min(32.4vw, 144px);
|
|
||||||
}
|
|
||||||
|
|
||||||
div.crossfade>img {
|
|
||||||
position: absolute;
|
|
||||||
top: -1px;
|
|
||||||
bottom: 0;
|
|
||||||
left: -1px;
|
|
||||||
right: 0;
|
|
||||||
width: min(32.4vw, 144px);
|
|
||||||
height: min(32.4vw, 144px);
|
|
||||||
}
|
|
||||||
|
|
||||||
div.crossfade>img.bottom {
|
|
||||||
animation-name: fade-bottom;
|
|
||||||
animation-timing-function: ease-in-out;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-duration: 5s;
|
|
||||||
animation-direction: alternate;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.crossfade>img.top {
|
|
||||||
animation-name: fade-top;
|
|
||||||
animation-timing-function: ease-in-out;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-duration: 5s;
|
|
||||||
animation-direction: alternate;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes fade-bottom {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
25% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
75% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes fade-top {
|
|
||||||
0% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
25% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
75% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* loading.css */
|
|
||||||
|
|
||||||
#fountainG {
|
|
||||||
position: relative;
|
|
||||||
width: 234px;
|
|
||||||
height: 38px;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fountainG {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
background-color: rgb(255, 255, 255);
|
|
||||||
width: 28px;
|
|
||||||
height: 28px;
|
|
||||||
animation-name: bounce_fountainG;
|
|
||||||
-o-animation-name: bounce_fountainG;
|
|
||||||
-ms-animation-name: bounce_fountainG;
|
|
||||||
-webkit-animation-name: bounce_fountainG;
|
|
||||||
-moz-animation-name: bounce_fountainG;
|
|
||||||
animation-duration: 0.975s;
|
|
||||||
-o-animation-duration: 0.975s;
|
|
||||||
-ms-animation-duration: 0.975s;
|
|
||||||
-webkit-animation-duration: 0.975s;
|
|
||||||
-moz-animation-duration: 0.975s;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
-o-animation-iteration-count: infinite;
|
|
||||||
-ms-animation-iteration-count: infinite;
|
|
||||||
-webkit-animation-iteration-count: infinite;
|
|
||||||
-moz-animation-iteration-count: infinite;
|
|
||||||
animation-direction: normal;
|
|
||||||
-o-animation-direction: normal;
|
|
||||||
-ms-animation-direction: normal;
|
|
||||||
-webkit-animation-direction: normal;
|
|
||||||
-moz-animation-direction: normal;
|
|
||||||
transform: scale(.3);
|
|
||||||
-o-transform: scale(.3);
|
|
||||||
-ms-transform: scale(.3);
|
|
||||||
-webkit-transform: scale(.3);
|
|
||||||
-moz-transform: scale(.3);
|
|
||||||
border-radius: 19px;
|
|
||||||
-o-border-radius: 19px;
|
|
||||||
-ms-border-radius: 19px;
|
|
||||||
-webkit-border-radius: 19px;
|
|
||||||
-moz-border-radius: 19px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fountainG_1 {
|
|
||||||
left: 0;
|
|
||||||
animation-delay: 0.386s;
|
|
||||||
-o-animation-delay: 0.386s;
|
|
||||||
-ms-animation-delay: 0.386s;
|
|
||||||
-webkit-animation-delay: 0.386s;
|
|
||||||
-moz-animation-delay: 0.386s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fountainG_2 {
|
|
||||||
left: 29px;
|
|
||||||
animation-delay: 0.4825s;
|
|
||||||
-o-animation-delay: 0.4825s;
|
|
||||||
-ms-animation-delay: 0.4825s;
|
|
||||||
-webkit-animation-delay: 0.4825s;
|
|
||||||
-moz-animation-delay: 0.4825s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fountainG_3 {
|
|
||||||
left: 58px;
|
|
||||||
animation-delay: 0.589s;
|
|
||||||
-o-animation-delay: 0.589s;
|
|
||||||
-ms-animation-delay: 0.589s;
|
|
||||||
-webkit-animation-delay: 0.589s;
|
|
||||||
-moz-animation-delay: 0.589s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fountainG_4 {
|
|
||||||
left: 88px;
|
|
||||||
animation-delay: 0.6855s;
|
|
||||||
-o-animation-delay: 0.6855s;
|
|
||||||
-ms-animation-delay: 0.6855s;
|
|
||||||
-webkit-animation-delay: 0.6855s;
|
|
||||||
-moz-animation-delay: 0.6855s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fountainG_5 {
|
|
||||||
left: 117px;
|
|
||||||
animation-delay: 0.782s;
|
|
||||||
-o-animation-delay: 0.782s;
|
|
||||||
-ms-animation-delay: 0.782s;
|
|
||||||
-webkit-animation-delay: 0.782s;
|
|
||||||
-moz-animation-delay: 0.782s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fountainG_6 {
|
|
||||||
left: 146px;
|
|
||||||
animation-delay: 0.8785s;
|
|
||||||
-o-animation-delay: 0.8785s;
|
|
||||||
-ms-animation-delay: 0.8785s;
|
|
||||||
-webkit-animation-delay: 0.8785s;
|
|
||||||
-moz-animation-delay: 0.8785s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fountainG_7 {
|
|
||||||
left: 175px;
|
|
||||||
animation-delay: 0.975s;
|
|
||||||
-o-animation-delay: 0.975s;
|
|
||||||
-ms-animation-delay: 0.975s;
|
|
||||||
-webkit-animation-delay: 0.975s;
|
|
||||||
-moz-animation-delay: 0.975s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#fountainG_8 {
|
|
||||||
left: 205px;
|
|
||||||
animation-delay: 1.0715s;
|
|
||||||
-o-animation-delay: 1.0715s;
|
|
||||||
-ms-animation-delay: 1.0715s;
|
|
||||||
-webkit-animation-delay: 1.0715s;
|
|
||||||
-moz-animation-delay: 1.0715s;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes bounce_fountainG {
|
|
||||||
0% {
|
|
||||||
transform: scale(1);
|
|
||||||
background-color: rgb(255, 0, 0);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: scale(.3);
|
|
||||||
background-color: rgb(255, 255, 255);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@-o-keyframes bounce_fountainG {
|
|
||||||
0% {
|
|
||||||
-o-transform: scale(1);
|
|
||||||
background-color: rgb(255, 0, 0);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
-o-transform: scale(.3);
|
|
||||||
background-color: rgb(255, 255, 255);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@-ms-keyframes bounce_fountainG {
|
|
||||||
0% {
|
|
||||||
-ms-transform: scale(1);
|
|
||||||
background-color: rgb(255, 0, 0);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
-ms-transform: scale(.3);
|
|
||||||
background-color: rgb(255, 255, 255);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes bounce_fountainG {
|
|
||||||
0% {
|
|
||||||
-webkit-transform: scale(1);
|
|
||||||
background-color: rgb(255, 0, 0);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
-webkit-transform: scale(.3);
|
|
||||||
background-color: rgb(255, 255, 255);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@-moz-keyframes bounce_fountainG {
|
|
||||||
0% {
|
|
||||||
-moz-transform: scale(1);
|
|
||||||
background-color: rgb(255, 0, 0);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
-moz-transform: scale(.3);
|
|
||||||
background-color: rgb(255, 255, 255);
|
|
||||||
}
|
|
||||||
}
|
|
352
public/css/dashboard.css
Normal file
@ -0,0 +1,352 @@
|
|||||||
|
/*//////////////////////////////////////////////////////////////////
|
||||||
|
[ FIN ]*/
|
||||||
|
|
||||||
|
@charset "UTF-8";
|
||||||
|
body {
|
||||||
|
margin: auto;
|
||||||
|
font-family: Tahoma, sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*//////////////////////////////////////////////////////////////////
|
||||||
|
[ Page layout ]*/
|
||||||
|
|
||||||
|
.panel {
|
||||||
|
padding: 5px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.apps {
|
||||||
|
margin: auto;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.footer.version {
|
||||||
|
font-size: 12px;
|
||||||
|
margin-top: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (min-width: 800px) {
|
||||||
|
.content {
|
||||||
|
grid-template-columns: auto auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (min-width: 1200px) {
|
||||||
|
.content {
|
||||||
|
grid-template-columns: auto auto auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (min-width: 1600px) {
|
||||||
|
.content {
|
||||||
|
grid-template-columns: auto auto auto auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*//////////////////////////////////////////////////////////////////
|
||||||
|
[ Button grid layout ]*/
|
||||||
|
|
||||||
|
.grid-container {
|
||||||
|
display: grid;
|
||||||
|
/* grid-template-areas: 'logo title' 'logo description' 'logo infos' 'logo status'; */
|
||||||
|
grid-template-areas:
|
||||||
|
'logo title'
|
||||||
|
'logo description'
|
||||||
|
'logo info'
|
||||||
|
'status tags';
|
||||||
|
gap: 2px;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-container-title {
|
||||||
|
grid-area: title;
|
||||||
|
text-align: right;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-right: 2px;
|
||||||
|
font-size: min(max(3vw, 8px), 18px);
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 1;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
overflow: hidden;
|
||||||
|
max-width: 25ch;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-container-title.jp {
|
||||||
|
font-size: min(max(3.75vw, 6px), 21px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-container-logo {
|
||||||
|
grid-area: logo;
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-container-description {
|
||||||
|
grid-area: description;
|
||||||
|
text-align: right;
|
||||||
|
font-size: min(max(3vw, 8px), 15px);
|
||||||
|
font-style: italic;
|
||||||
|
padding: 0.5px;
|
||||||
|
padding-right: 2px;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-container-info {
|
||||||
|
grid-area: info;
|
||||||
|
text-align: right;
|
||||||
|
padding: 0.25px;
|
||||||
|
padding-right: 2px;
|
||||||
|
text-align: right;
|
||||||
|
font-size: 15px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-container-tags {
|
||||||
|
grid-area: tags;
|
||||||
|
text-align: right;
|
||||||
|
padding: 0.5px;
|
||||||
|
padding-right: 2px;
|
||||||
|
padding-top: 3px;
|
||||||
|
fill: blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-container-status {
|
||||||
|
grid-area: status;
|
||||||
|
text-align: left;
|
||||||
|
padding: 2px;
|
||||||
|
padding-left: 20px;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-line-clamp: 1;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
overflow: hidden;
|
||||||
|
max-width: 25ch;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*//////////////////////////////////////////////////////////////////
|
||||||
|
[ Icons ]*/
|
||||||
|
|
||||||
|
.dashboard-logo {
|
||||||
|
padding: 0.5px;
|
||||||
|
padding-left: 4px;
|
||||||
|
width: min(3.24vw, 14px);
|
||||||
|
height: min(3.24vw, 14px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.lock {
|
||||||
|
padding: 0.8px;
|
||||||
|
/* padding-top: 5px; */
|
||||||
|
width: min(3.24vw, 20px);
|
||||||
|
height: min(3.24vw, 20px);
|
||||||
|
fill: green;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lockopen {
|
||||||
|
padding: 0.8px;
|
||||||
|
/* padding-top: 5px; */
|
||||||
|
width: min(3.24vw, 20px);
|
||||||
|
height: min(3.24vw, 20px);
|
||||||
|
fill: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-logo {
|
||||||
|
padding: 0.8px;
|
||||||
|
/* padding-top: 5px; */
|
||||||
|
width: min(3.24vw, 20px);
|
||||||
|
height: min(3.24vw, 20px);
|
||||||
|
fill: blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*//////////////////////////////////////////////////////////////////
|
||||||
|
[ Glow ] https://webdeasy.de/en/top-css-buttons-en */
|
||||||
|
|
||||||
|
.glow-on-hover {
|
||||||
|
display: inline-block;
|
||||||
|
width: 90vw;
|
||||||
|
max-width: 400px;
|
||||||
|
height: 45vw;
|
||||||
|
max-height: 200px;
|
||||||
|
margin: 5px;
|
||||||
|
border: 1px solid #111;
|
||||||
|
outline: none;
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
z-index: 0;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* .light .glow-on-hover {
|
||||||
|
color: white;
|
||||||
|
background-color: rgba(41, 109, 181, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .glow-on-hover {
|
||||||
|
color: #95c7fd;
|
||||||
|
background-color: rgba(190, 197, 203, 0.3);
|
||||||
|
} */
|
||||||
|
|
||||||
|
.glow-on-hover:before {
|
||||||
|
content: '';
|
||||||
|
/* background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); */
|
||||||
|
background: linear-gradient(45deg,#052479, #0b36ac, #1b58fe, #3c6ffa, #5580f7, #6c93fe, #91adf9, #b7c9fc, #91adf9, #6c93fe, #5580f7, #3c6ffa, #1b58fe, #0b36ac, #052479, #091c4f);
|
||||||
|
position: absolute;
|
||||||
|
top: -2px;
|
||||||
|
left: -2px;
|
||||||
|
background-size: 400%;
|
||||||
|
z-index: -1;
|
||||||
|
filter: blur(5px);
|
||||||
|
width: calc(100% + 4px);
|
||||||
|
height: calc(100% + 4px);
|
||||||
|
animation: glowing 20s linear infinite;
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity .3s ease-in-out;
|
||||||
|
border-radius: 10px;
|
||||||
|
color: white;
|
||||||
|
background-color: rgba(36, 139, 251, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.glow-on-hover:active {
|
||||||
|
color: #888888
|
||||||
|
}
|
||||||
|
|
||||||
|
.glow-on-hover:active:after {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.glow-on-hover:hover:before {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.glow-on-hover:after {
|
||||||
|
z-index: -1;
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.glow-on-hover:hover:after {
|
||||||
|
color: white;
|
||||||
|
background-color: rgb(41, 139, 214)
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .glow-on-hover:hover:after {
|
||||||
|
background-color: rgba(25, 25, 25, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes glowing {
|
||||||
|
0% {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
background-position: 400% 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
background-position: 0 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*//////////////////////////////////////////////////////////////////
|
||||||
|
[ Cross fade image Brands - Bookmark ]*/
|
||||||
|
div.crossfade {
|
||||||
|
position: relative;
|
||||||
|
width: min(32.4vw, 124px);
|
||||||
|
height: min(32.4vw, 124px);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.crossfade > img {
|
||||||
|
position: absolute;
|
||||||
|
top: -1px;
|
||||||
|
bottom: 0;
|
||||||
|
left: -1px;
|
||||||
|
right: 0;
|
||||||
|
width: min(32.4vw, 124px);
|
||||||
|
height: min(32.4vw, 124px);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
div.crossfade > img {
|
||||||
|
position:absolute;
|
||||||
|
left:0;
|
||||||
|
-webkit-transition: all 1s ease-in-out;
|
||||||
|
-moz-transition: all 1s ease-in-out;
|
||||||
|
-o-transition: all 1s ease-in-out;
|
||||||
|
transition: all 1s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.crossfade > img.bookmark {
|
||||||
|
-webkit-transform:scale(0,0);
|
||||||
|
-moz-transform:scale(0,0);
|
||||||
|
-o-transform:scale(0,0);
|
||||||
|
transform:scale(0,0);
|
||||||
|
opacity:0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
div.crossfade:hover img.bookmark, div.crossfade.hover_effect img.bookmark {
|
||||||
|
opacity:1;
|
||||||
|
-webkit-transform:scale(1,1);
|
||||||
|
-webkit-transform-origin: top right;
|
||||||
|
-moz-transform:scale(1,1);
|
||||||
|
-moz-transform-origin: top right;
|
||||||
|
-o-transform:scale(1,1);
|
||||||
|
-o-transform-origin: top right;
|
||||||
|
transform:scale(1,1);
|
||||||
|
transform-origin: top right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.crossfade:hover img.brands, div.crossfade.hover_effect img.brands {
|
||||||
|
-webkit-transform:scale(0,0);
|
||||||
|
-webkit-transform-origin: bottom left;
|
||||||
|
-moz-transform:scale(0,0);
|
||||||
|
-moz-transform-origin: bottom left;
|
||||||
|
-o-transform:scale(0,0);
|
||||||
|
-o-transform-origin: bottom left;
|
||||||
|
transform:scale(0,0);
|
||||||
|
transform-origin: bottom left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@keyframes fade-bottom {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
25% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
75% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade-top {
|
||||||
|
0% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
25% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
75% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*//////////////////////////////////////////////////////////////////
|
||||||
|
[ FIN ]*/
|
@ -1,7 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////////
|
||||||
[ FONT ]*/
|
[ FONT ]*/
|
||||||
|
|
||||||
@ -25,9 +21,6 @@
|
|||||||
src: url('../fonts/poppins/Poppins-SemiBold.ttf');
|
src: url('../fonts/poppins/Poppins-SemiBold.ttf');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////////
|
||||||
[ RESTYLE TAG ]*/
|
[ RESTYLE TAG ]*/
|
||||||
|
|
||||||
@ -489,6 +482,8 @@ iframe {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*//////////////////////////////////////////////////////////////////
|
||||||
|
[ FIN ]*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -119,6 +119,19 @@ a {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Search bar */
|
||||||
|
.search-wrapper {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: .25rem;
|
||||||
|
padding:3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Clear floats after the columns */
|
/* Clear floats after the columns */
|
||||||
|
|
||||||
.row:after {
|
.row:after {
|
||||||
|
BIN
public/images/icons/Book_02-512.webp
Normal file
After Width: | Height: | Size: 4.7 KiB |
45
public/images/svg/Shaarli.svg
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg fill="green" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 278.457 278.457" style="enable-background:new 0 0 278.457 278.457;" xml:space="preserve">
|
||||||
|
<path d="M277.478,106.28c-2.353-7.24-8.611-12.517-16.146-13.611l-71.979-10.46l-32.19-65.224
|
||||||
|
c-3.369-6.826-10.321-11.148-17.935-11.148s-14.565,4.322-17.935,11.148l-32.19,65.224l-71.979,10.46
|
||||||
|
C9.591,93.763,3.332,99.039,0.979,106.28s-0.391,15.188,5.062,20.502l52.084,50.77L45.83,249.24
|
||||||
|
c-1.287,7.503,1.797,15.087,7.956,19.562c6.16,4.474,14.324,5.065,21.063,1.522l64.38-33.847l64.38,33.847
|
||||||
|
c2.926,1.538,6.121,2.297,9.305,2.297c4.146,0,8.273-1.288,11.758-3.819c6.159-4.475,9.243-12.059,7.956-19.562l-12.295-71.688
|
||||||
|
l52.084-50.77C277.868,121.468,279.83,113.52,277.478,106.28z M184.883,156.247c-4.714,4.594-6.865,11.214-5.752,17.702l7.222,42.11
|
||||||
|
l-37.817-19.882c-2.913-1.531-6.109-2.297-9.307-2.297s-6.394,0.766-9.307,2.297L92.104,216.06l7.222-42.11
|
||||||
|
c1.113-6.488-1.038-13.108-5.752-17.702l-30.595-29.822l42.281-6.145c6.515-0.946,12.146-5.038,15.059-10.94l18.909-38.313
|
||||||
|
l18.909,38.313c2.913,5.902,8.544,9.994,15.059,10.94l42.281,6.145L184.883,156.247z"/>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
2
public/images/svg/bookmark.svg
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 569 B |
1
public/images/svg/emby.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg width="24px" height="24px" viewBox="0 0 24 24" role="img" xmlns="http://www.w3.org/2000/svg"><path d="M11.041 0c-.007 0-1.456 1.43-3.219 3.176L4.615 6.352l.512.513.512.512-2.819 2.791L0 12.961l1.83 1.848a3468.32 3468.32 0 0 0 3.182 3.209l1.351 1.359.508-.496c.28-.273.515-.498.524-.498.008 0 1.266 1.264 2.794 2.808L12.97 24l.187-.182c.23-.225 5.007-4.95 5.717-5.656l.52-.516-.502-.513c-.276-.282-.5-.52-.496-.53.003-.009 1.264-1.26 2.802-2.783 1.538-1.522 2.8-2.776 2.803-2.785.005-.012-3.617-3.684-6.107-6.193L17.65 4.6l-.505.505c-.279.278-.517.501-.53.497-.013-.005-1.27-1.267-2.793-2.805A449.655 449.655 0 0 0 11.041 0zM9.223 7.367c.091.038 7.951 4.608 7.957 4.627.003.013-1.781 1.056-3.965 2.32a999.898 999.898 0 0 1-3.996 2.307c-.019.006-.026-1.266-.026-4.629 0-3.7.007-4.634.03-4.625z"/></svg>
|
After Width: | Height: | Size: 805 B |
147
public/images/svg/filebrowser.svg
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xml:space="preserve"
|
||||||
|
width="560"
|
||||||
|
height="560"
|
||||||
|
version="1.1"
|
||||||
|
style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
|
||||||
|
viewBox="0 0 560 560"
|
||||||
|
id="svg44"
|
||||||
|
sodipodi:docname="icon_raw.svg"
|
||||||
|
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||||
|
inkscape:export-filename="/home/umarcor/filebrowser/logo/icon_raw.svg.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"><metadata
|
||||||
|
id="metadata48"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1366"
|
||||||
|
inkscape:window-height="711"
|
||||||
|
id="namedview46"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.33714286"
|
||||||
|
inkscape:cx="-172.33051"
|
||||||
|
inkscape:cy="280"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="20"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg44" />
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<style
|
||||||
|
type="text/css"
|
||||||
|
id="style2">
|
||||||
|
<![CDATA[
|
||||||
|
.fil1 {fill:#FEFEFE}
|
||||||
|
.fil6 {fill:#006498}
|
||||||
|
.fil7 {fill:#0EA5EB}
|
||||||
|
.fil8 {fill:#2979FF}
|
||||||
|
.fil3 {fill:#2BBCFF}
|
||||||
|
.fil0 {fill:#455A64}
|
||||||
|
.fil4 {fill:#53C6FC}
|
||||||
|
.fil5 {fill:#BDEAFF}
|
||||||
|
.fil2 {fill:#332C2B;fill-opacity:0.149020}
|
||||||
|
]]>
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
id="g85"
|
||||||
|
transform="translate(-70,-70)"><path
|
||||||
|
class="fil1"
|
||||||
|
d="M 350,71 C 504,71 629,196 629,350 629,504 504,629 350,629 196,629 71,504 71,350 71,196 196,71 350,71 Z"
|
||||||
|
id="path9"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#fefefe" /><path
|
||||||
|
class="fil2"
|
||||||
|
d="M 475,236 593,387 C 596,503 444,639 301,585 L 225,486 339,330 c 0,0 138,-95 136,-94 z"
|
||||||
|
id="path11"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#332c2b;fill-opacity:0.14902003" /><path
|
||||||
|
class="fil3"
|
||||||
|
d="m 231,211 h 208 l 38,24 v 246 c 0,5 -3,8 -8,8 H 231 c -5,0 -8,-3 -8,-8 V 219 c 0,-5 3,-8 8,-8 z"
|
||||||
|
id="path13"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#2bbcff" /><path
|
||||||
|
class="fil4"
|
||||||
|
d="m 231,211 h 208 l 38,24 v 2 L 440,214 H 231 c -4,0 -7,3 -7,7 v 263 c -1,-1 -1,-2 -1,-3 V 219 c 0,-5 3,-8 8,-8 z"
|
||||||
|
id="path15"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#53c6fc" /><polygon
|
||||||
|
class="fil5"
|
||||||
|
points="305,212 418,212 418,310 305,310 "
|
||||||
|
id="polygon17"
|
||||||
|
style="fill:#bdeaff" /><path
|
||||||
|
class="fil5"
|
||||||
|
d="m 255,363 h 189 c 3,0 5,2 5,4 V 483 H 250 V 367 c 0,-2 2,-4 5,-4 z"
|
||||||
|
id="path19"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#bdeaff" /><polygon
|
||||||
|
class="fil6"
|
||||||
|
points="250,470 449,470 449,483 250,483 "
|
||||||
|
id="polygon21"
|
||||||
|
style="fill:#006498" /><path
|
||||||
|
class="fil6"
|
||||||
|
d="m 380,226 h 10 c 3,0 6,2 6,5 v 40 c 0,3 -3,6 -6,6 h -10 c -3,0 -6,-3 -6,-6 v -40 c 0,-3 3,-5 6,-5 z"
|
||||||
|
id="path23"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#006498" /><path
|
||||||
|
class="fil1"
|
||||||
|
d="m 254,226 c 10,0 17,7 17,17 0,9 -7,16 -17,16 -9,0 -17,-7 -17,-16 0,-10 8,-17 17,-17 z"
|
||||||
|
id="path25"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#fefefe" /><path
|
||||||
|
class="fil6"
|
||||||
|
d="m 267,448 h 165 c 2,0 3,1 3,3 v 0 c 0,1 -1,3 -3,3 H 267 c -2,0 -3,-2 -3,-3 v 0 c 0,-2 1,-3 3,-3 z"
|
||||||
|
id="path27"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#006498" /><path
|
||||||
|
class="fil6"
|
||||||
|
d="m 267,415 h 165 c 2,0 3,1 3,3 v 0 c 0,1 -1,2 -3,2 H 267 c -2,0 -3,-1 -3,-2 v 0 c 0,-2 1,-3 3,-3 z"
|
||||||
|
id="path29"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#006498" /><path
|
||||||
|
class="fil6"
|
||||||
|
d="m 267,381 h 165 c 2,0 3,2 3,3 v 0 c 0,2 -1,3 -3,3 H 267 c -2,0 -3,-1 -3,-3 v 0 c 0,-1 1,-3 3,-3 z"
|
||||||
|
id="path31"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#006498" /><path
|
||||||
|
class="fil1"
|
||||||
|
d="m 236,472 c 3,0 5,2 5,5 0,2 -2,4 -5,4 -3,0 -5,-2 -5,-4 0,-3 2,-5 5,-5 z"
|
||||||
|
id="path33"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#fefefe" /><path
|
||||||
|
class="fil1"
|
||||||
|
d="m 463,472 c 3,0 5,2 5,5 0,2 -2,4 -5,4 -3,0 -5,-2 -5,-4 0,-3 2,-5 5,-5 z"
|
||||||
|
id="path35"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#fefefe" /><polygon
|
||||||
|
class="fil6"
|
||||||
|
points="305,212 284,212 284,310 305,310 "
|
||||||
|
id="polygon37"
|
||||||
|
style="fill:#006498" /><path
|
||||||
|
class="fil7"
|
||||||
|
d="m 477,479 v 2 c 0,5 -3,8 -8,8 H 231 c -5,0 -8,-3 -8,-8 v -2 c 0,4 3,8 8,8 h 238 c 5,0 8,-4 8,-8 z"
|
||||||
|
id="path39"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#0ea5eb" /><path
|
||||||
|
class="fil8"
|
||||||
|
d="M 350,70 C 505,70 630,195 630,350 630,505 505,630 350,630 195,630 70,505 70,350 70,195 195,70 350,70 Z m 0,46 C 479,116 584,221 584,350 584,479 479,584 350,584 221,584 116,479 116,350 116,221 221,116 350,116 Z"
|
||||||
|
id="path41"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#2979ff" /></g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 5.4 KiB |
141
public/images/svg/internet.svg
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 392.533 392.533" style="enable-background:new 0 0 392.533 392.533;" xml:space="preserve">
|
||||||
|
<path style="fill:#FFC10D;" d="M359.822,147.329H32.711c-6.012,0-10.925,4.848-10.925,10.925v75.96
|
||||||
|
c0,6.012,4.848,10.925,10.925,10.925h327.111c6.012,0,10.925-4.848,10.925-10.925v-75.96
|
||||||
|
C370.747,152.242,365.834,147.329,359.822,147.329z"/>
|
||||||
|
<g>
|
||||||
|
<path style="fill:#FFFFFF;" d="M104.404,125.543c2.521-13.446,5.689-26.117,9.438-37.818c-15.903-2.004-31.806-4.59-47.774-7.628
|
||||||
|
c-11.895,13.382-21.786,28.574-29.285,45.446H104.404z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M185.341,92.768c-16.485-0.259-32.84-1.164-49.196-2.651c-3.685,10.796-6.982,22.691-9.503,35.362
|
||||||
|
h58.828V92.703h-0.129V92.768z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M85.463,61.608c12.024,2.069,24.113,3.814,36.267,5.172c6.206-14.287,13.317-26.57,21.269-36.655
|
||||||
|
C121.859,36.913,102.4,47.644,85.463,61.608z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M185.341,23.79c-15.127,5.301-29.349,21.463-40.663,45.253c13.511,1.099,27.022,1.681,40.663,1.939
|
||||||
|
V23.79z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M278.691,87.79c3.814,11.636,6.853,24.242,9.438,37.818h67.62
|
||||||
|
c-7.499-16.873-17.39-32.065-29.285-45.446C310.562,83.265,294.659,85.851,278.691,87.79z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M307.071,61.608c-16.937-13.899-36.396-24.63-57.471-31.354
|
||||||
|
c7.952,10.02,15.063,22.303,21.269,36.655C282.958,65.358,295.046,63.677,307.071,61.608z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M256.388,90.182c-16.356,1.487-32.84,2.392-49.196,2.651v32.776h58.828
|
||||||
|
C263.434,112.873,260.202,100.978,256.388,90.182z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M207.192,70.982c13.511-0.259,27.152-0.84,40.663-1.939c-11.313-23.725-25.471-39.952-40.663-45.253
|
||||||
|
V70.982z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M288.129,266.99c-2.521,13.447-5.689,26.117-9.438,37.818c15.903,2.004,31.806,4.59,47.774,7.628
|
||||||
|
c11.895-13.382,21.786-28.574,29.285-45.446L288.129,266.99L288.129,266.99z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M207.192,368.743c15.127-5.301,29.349-21.463,40.663-45.253
|
||||||
|
c-13.511-1.099-27.022-1.681-40.663-1.939V368.743z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M207.192,299.766c16.485,0.259,32.84,1.164,49.196,2.65c3.685-10.796,6.982-22.691,9.503-35.362
|
||||||
|
h-58.828v32.776h0.129V299.766z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M307.071,330.925c-12.024-2.069-24.113-3.814-36.267-5.172
|
||||||
|
c-6.206,14.287-13.317,26.57-21.269,36.655C270.675,355.62,290.133,344.889,307.071,330.925z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M185.341,321.552c-13.511,0.259-27.152,0.84-40.663,1.939
|
||||||
|
c11.313,23.725,25.471,39.952,40.663,45.253V321.552z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M36.848,266.99c7.499,16.873,17.39,32.065,29.285,45.447c15.838-3.103,31.741-5.689,47.774-7.628
|
||||||
|
c-3.814-11.636-6.853-24.242-9.438-37.689h-67.62V266.99z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M136.145,302.352c16.356-1.487,32.84-2.392,49.196-2.65v-32.776h-58.828
|
||||||
|
C129.099,279.661,132.331,291.556,136.145,302.352z"/>
|
||||||
|
<path style="fill:#FFFFFF;" d="M121.729,325.754c-12.024,1.422-24.178,3.103-36.267,5.172
|
||||||
|
c16.937,13.899,36.396,24.63,57.471,31.354C134.982,352.388,127.806,340.04,121.729,325.754z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path style="fill:#194F82;" d="M383.03,135.305C355.62,53.204,279.855,0,196.267,0C112.42,0,37.236,53.139,9.826,134.917
|
||||||
|
C3.814,140.865,0,149.139,0,158.255v75.96c0,8.792,3.556,16.873,9.244,22.82c29.608,82.812,103.046,135.499,187.022,135.499
|
||||||
|
c83.846,0,159.741-53.85,186.44-134.917c6.012-5.947,9.826-14.222,9.826-23.337v-75.96
|
||||||
|
C392.533,149.269,388.913,141.188,383.03,135.305z M355.685,125.543h-67.62c-2.521-13.446-5.689-26.117-9.438-37.818
|
||||||
|
c15.903-2.004,31.806-4.59,47.774-7.628C338.295,93.479,348.25,108.735,355.685,125.543z M307.071,61.608
|
||||||
|
c-12.024,2.069-24.113,3.814-36.267,5.172c-6.077-14.287-13.317-26.57-21.269-36.655C270.675,36.913,290.133,47.644,307.071,61.608
|
||||||
|
z M207.192,23.79c15.127,5.301,29.349,21.463,40.663,45.253c-13.511,1.099-27.152,1.681-40.663,1.939V23.79z M207.063,92.768h0.065
|
||||||
|
c16.485-0.259,32.84-1.164,49.196-2.651c3.685,10.796,6.982,22.691,9.503,35.362h-58.828V92.768H207.063z M185.341,23.79v47.192
|
||||||
|
c-13.511-0.259-27.152-0.84-40.663-1.939C155.992,45.253,170.214,29.156,185.341,23.79z M185.277,92.768v32.776h-58.699
|
||||||
|
c2.521-12.671,5.818-24.566,9.503-35.362C152.436,91.669,168.921,92.574,185.277,92.768z M142.933,30.125
|
||||||
|
c-7.952,10.02-15.063,22.303-21.269,36.655c-12.024-1.422-24.178-3.103-36.267-5.172C102.4,47.644,121.859,36.913,142.933,30.125z
|
||||||
|
M66.133,80.097c15.838,3.103,31.741,5.689,47.774,7.628c-3.814,11.636-6.853,24.242-9.438,37.818h-67.62
|
||||||
|
C44.283,108.735,54.238,93.479,66.133,80.097z M36.848,266.99h67.62c2.521,13.447,5.689,26.117,9.438,37.689
|
||||||
|
c-15.903,2.004-31.806,4.59-47.774,7.628C54.238,299.055,44.283,283.798,36.848,266.99z M85.463,330.925
|
||||||
|
c12.024-2.069,24.113-3.814,36.267-5.172c6.206,14.287,13.317,26.57,21.269,36.655C121.859,355.62,102.4,344.889,85.463,330.925z
|
||||||
|
M185.341,368.743c-15.127-5.301-29.349-21.463-40.663-45.253c13.511-1.099,27.152-1.681,40.663-1.939V368.743z M185.471,299.766
|
||||||
|
h-0.065c-16.485,0.259-32.84,1.164-49.196,2.65c-3.685-10.796-6.982-22.691-9.503-35.362h58.828v32.711H185.471z M207.192,368.743
|
||||||
|
v-47.192c13.511,0.259,27.152,0.84,40.663,1.939C236.541,347.281,222.319,363.378,207.192,368.743z M207.257,299.766V266.99h58.699
|
||||||
|
c-2.521,12.671-5.818,24.566-9.503,35.362C240.097,300.865,223.612,299.96,207.257,299.766z M249.6,362.408
|
||||||
|
c7.952-10.02,15.063-22.303,21.269-36.655c12.024,1.422,24.178,3.103,36.267,5.172C290.133,344.889,270.675,355.62,249.6,362.408z
|
||||||
|
M326.4,312.436c-15.838-3.103-31.741-5.689-47.774-7.628c3.814-11.636,6.853-24.242,9.438-37.818h67.62
|
||||||
|
C348.25,283.798,338.295,299.055,326.4,312.436z M359.822,245.204H32.711c-6.012,0-10.925-4.848-10.925-10.925v-75.96
|
||||||
|
c0-6.012,4.848-10.925,10.925-10.925h327.111c6.012,0,10.925,4.848,10.925,10.925v75.96h0.065
|
||||||
|
C370.747,240.291,365.899,245.204,359.822,245.204z"/>
|
||||||
|
<polygon style="fill:#194F82;" points="120.76,202.085 109.899,168.21 94.836,168.21 83.911,202.085 72.986,168.21 56.889,168.21
|
||||||
|
75.895,224.259 92.057,224.259 102.4,193.745 112.679,224.259 128.905,224.259 147.911,168.21 131.685,168.21 "/>
|
||||||
|
<polygon style="fill:#194F82;" points="214.562,202.15 203.701,168.275 188.638,168.275 177.713,202.15 166.853,168.275
|
||||||
|
150.691,168.275 169.697,224.259 185.859,224.259 196.267,193.81 206.481,224.323 222.707,224.323 241.713,168.275
|
||||||
|
225.487,168.275 "/>
|
||||||
|
<polygon style="fill:#194F82;" points="308.493,202.085 297.568,168.21 282.505,168.21 271.58,202.085 260.719,168.21
|
||||||
|
244.558,168.21 263.564,224.259 279.725,224.259 290.069,193.745 300.347,224.259 316.574,224.259 335.58,168.21 319.354,168.21
|
||||||
|
"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path style="fill:#56ACE0;" d="M270.675,326.141c0.129-0.065,0.323-0.259,0.453-0.323c-0.065,0-0.259,0-0.323,0
|
||||||
|
C270.739,325.947,270.739,326.012,270.675,326.141z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M121.406,325.754c0.129,0.065,0.323,0.259,0.453,0.323c-0.065-0.129-0.065-0.259-0.129-0.388
|
||||||
|
C121.6,325.754,121.471,325.754,121.406,325.754z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M271.127,66.78c-0.129-0.065-0.323-0.259-0.453-0.323c0.065,0.129,0.065,0.259,0.129,0.388
|
||||||
|
C270.933,66.78,271.063,66.78,271.127,66.78z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M121.859,66.392c-0.129,0.065-0.323,0.259-0.453,0.323c0.065,0,0.259,0,0.323,0
|
||||||
|
C121.794,66.586,121.794,66.521,121.859,66.392z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M70.723,266.99c7.24,14.933,16.743,28.38,28.057,39.887c5.042-0.776,10.02-1.552,15.127-2.133
|
||||||
|
c-3.814-11.636-6.853-24.242-9.438-37.689H70.723V266.99z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M70.723,266.99L70.723,266.99L70.723,266.99z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M185.277,266.99h-58.699c2.521,12.671,5.818,24.566,9.503,35.362
|
||||||
|
c16.356-1.487,32.84-2.392,49.196-2.65V266.99z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M288.129,267.055v-0.065c-2.521,13.447-5.689,26.117-9.438,37.818
|
||||||
|
c5.042,0.646,10.02,1.422,15.127,2.133c11.313-11.507,20.816-24.954,28.057-39.887H288.129z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M144.743,69.107c13.511,1.099,27.152,1.681,40.663,1.939V44.154
|
||||||
|
c-10.279,0.84-20.234,2.844-29.802,5.947C151.725,55.725,148.04,61.996,144.743,69.107z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M207.192,348.444c10.279-0.84,20.234-2.844,29.802-5.947c3.814-5.624,7.499-11.895,10.796-19.006
|
||||||
|
c-13.511-1.099-27.152-1.681-40.663-1.939v26.893H207.192z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M207.192,299.766c16.485,0.259,32.84,1.164,49.196,2.65c3.814-10.796,6.982-22.691,9.568-35.362
|
||||||
|
h-58.828v32.711H207.192z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M207.257,92.768v32.776h58.699c-2.521-12.671-5.818-24.566-9.503-35.362
|
||||||
|
C240.097,91.669,223.612,92.574,207.257,92.768z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M236.994,50.036c-9.568-3.103-19.523-5.107-29.802-5.947v26.893
|
||||||
|
c13.511-0.259,27.152-0.84,40.663-1.939C244.493,62.061,240.808,55.725,236.994,50.036z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M155.539,342.497c9.568,3.103,19.523,5.107,29.802,5.947v-26.893
|
||||||
|
c-13.576,0.259-27.152,0.84-40.663,1.939C148.04,330.473,151.79,336.808,155.539,342.497z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M321.81,125.608v-0.065c-7.24-14.933-16.743-28.38-28.057-39.887
|
||||||
|
c-5.042,0.776-10.02,1.552-15.127,2.133c3.814,11.636,6.853,24.242,9.438,37.818H321.81z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M104.404,125.543c2.521-13.446,5.689-26.117,9.438-37.818c-5.042-0.646-10.02-1.422-15.127-2.133
|
||||||
|
c-11.313,11.507-20.816,24.954-28.057,39.887h33.745C104.404,125.479,104.404,125.543,104.404,125.543z"/>
|
||||||
|
<path style="fill:#56ACE0;" d="M126.578,125.543h58.828V92.768c-16.485-0.259-32.84-1.164-49.196-2.651
|
||||||
|
C132.331,100.978,129.099,112.873,126.578,125.543z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 9.6 KiB |
1
public/images/svg/nginx.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><title>file_type_nginx</title><path d="M15.948,2h.065a10.418,10.418,0,0,1,.972.528Q22.414,5.65,27.843,8.774a.792.792,0,0,1,.414.788c-.008,4.389,0,8.777-.005,13.164a.813.813,0,0,1-.356.507q-5.773,3.324-11.547,6.644a.587.587,0,0,1-.657.037Q9.912,26.6,4.143,23.274a.7.7,0,0,1-.4-.666q0-6.582,0-13.163a.693.693,0,0,1,.387-.67Q9.552,5.657,14.974,2.535c.322-.184.638-.379.974-.535" style="fill:#019639"/><path d="M8.767,10.538q0,5.429,0,10.859a1.509,1.509,0,0,0,.427,1.087,1.647,1.647,0,0,0,2.06.206,1.564,1.564,0,0,0,.685-1.293c0-2.62-.005-5.24,0-7.86q3.583,4.29,7.181,8.568a2.833,2.833,0,0,0,2.6.782,1.561,1.561,0,0,0,1.251-1.371q.008-5.541,0-11.081a1.582,1.582,0,0,0-3.152,0c0,2.662-.016,5.321,0,7.982-2.346-2.766-4.663-5.556-7-8.332A2.817,2.817,0,0,0,10.17,9.033,1.579,1.579,0,0,0,8.767,10.538Z" style="fill:#fff"/></svg>
|
After Width: | Height: | Size: 906 B |
1
public/images/svg/qbittorrent.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0"?><svg fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"> <path d="M 25 2 C 12.309 2 2 12.309 2 25 C 2 37.691 12.309 48 25 48 C 37.691 48 48 37.691 48 25 C 48 12.309 37.691 2 25 2 z M 25 4 C 36.612 4 46.003906 13.391 46.003906 25 C 46.003906 36.612 36.613 46.003906 25 46.003906 C 13.392 46.003906 4 36.612 4 25 C 4 13.392 13.392 4 25 4 z M 26.785156 12.037109 L 26.785156 31.732422 L 28.292969 31.732422 L 28.734375 29.947266 L 28.886719 29.947266 C 29.392719 30.639266 30.016766 31.154187 30.759766 31.492188 C 31.510766 31.821188 32.337234 31.986328 33.240234 31.986328 C 35.046234 31.986328 36.45575 31.356609 37.46875 30.099609 C 38.48975 28.834609 39.001953 27.061203 39.001953 24.783203 C 39.001953 22.505203 38.495422 20.746859 37.482422 19.505859 C 36.477422 18.256859 35.063234 17.632812 33.240234 17.632812 C 31.316234 17.632812 29.864719 18.324984 28.886719 19.708984 L 28.785156 19.708984 C 28.852156 18.856984 28.886719 17.894266 28.886719 16.822266 L 28.886719 12.037109 L 26.785156 12.037109 z M 16.746094 17.607422 C 14.940094 17.607422 13.532531 18.245531 12.519531 19.519531 C 11.506531 20.793531 11 22.565938 11 24.835938 C 11 27.089938 11.501859 28.844562 12.505859 30.101562 C 13.509859 31.358562 14.906313 31.986328 16.695312 31.986328 C 18.645313 31.986328 20.105172 31.283047 21.076172 29.873047 L 21.240234 29.873047 C 21.147234 30.464047 21.101562 31.181391 21.101562 32.025391 L 21.101562 37.962891 L 23.203125 37.962891 L 23.203125 17.861328 L 21.544922 17.861328 L 21.240234 19.759766 L 21.126953 19.759766 C 20.105953 18.324766 18.645094 17.607422 16.746094 17.607422 z M 16.986328 19.367188 C 18.413328 19.367188 19.455281 19.793484 20.113281 20.646484 C 20.771281 21.499484 21.101562 22.894938 21.101562 24.835938 L 21.101562 25.304688 C 21.059563 27.084688 20.717172 28.350562 20.076172 29.101562 C 19.435172 29.852562 18.414672 30.228516 17.013672 30.228516 C 15.747672 30.228516 14.788672 29.771328 14.138672 28.861328 C 13.497672 27.941328 13.177734 26.608328 13.177734 24.861328 C 13.177734 23.114328 13.502344 21.764547 14.152344 20.810547 C 14.810344 19.848547 15.754328 19.367188 16.986328 19.367188 z M 32.9375 19.392578 C 34.2625 19.392578 35.241 19.834703 35.875 20.720703 C 36.508 21.606703 36.824219 22.953766 36.824219 24.759766 C 36.824219 26.522766 36.508 27.877266 35.875 28.822266 C 35.242 29.759266 34.279281 30.226562 32.988281 30.226562 C 31.553281 30.226562 30.511328 29.809609 29.861328 28.974609 C 29.211328 28.130609 28.886719 26.732203 28.886719 24.783203 C 28.886719 22.834203 29.202938 21.451812 29.835938 20.632812 C 30.468937 19.805813 31.5025 19.392578 32.9375 19.392578 z"/></svg>
|
After Width: | Height: | Size: 2.7 KiB |
6
public/js/all.min.js
vendored
Normal file
@ -1,89 +1,105 @@
|
|||||||
|
|
||||||
(function ($) {
|
(function ($) {
|
||||||
"use strict";
|
("use strict");
|
||||||
|
|
||||||
|
/*==================================================================
|
||||||
/*==================================================================
|
|
||||||
[ Focus input ]*/
|
[ Focus input ]*/
|
||||||
$('.input100').each(function(){
|
$(".input100").each(function () {
|
||||||
$(this).on('blur', function(){
|
$(this).on("blur", function () {
|
||||||
if($(this).val().trim() != "") {
|
if ($(this).val().trim() != "") {
|
||||||
$(this).addClass('has-val');
|
$(this).addClass("has-val");
|
||||||
}
|
} else {
|
||||||
else {
|
$(this).removeClass("has-val");
|
||||||
$(this).removeClass('has-val');
|
}
|
||||||
}
|
});
|
||||||
})
|
});
|
||||||
})
|
|
||||||
|
/*==================================================================
|
||||||
|
|
||||||
/*==================================================================
|
|
||||||
[ Validate ]*/
|
[ Validate ]*/
|
||||||
var input = $('.validate-input .input100');
|
var input = $(".validate-input .input100");
|
||||||
|
|
||||||
$('.validate-form').on('submit',function(){
|
$(".validate-form").on("submit", function () {
|
||||||
var check = true;
|
var check = true;
|
||||||
|
|
||||||
for(var i=0; i<input.length; i++) {
|
for (var i = 0; i < input.length; i++) {
|
||||||
if(validate(input[i]) == false){
|
if (validate(input[i]) == false) {
|
||||||
showValidate(input[i]);
|
showValidate(input[i]);
|
||||||
check=false;
|
check = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return check;
|
return check;
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".validate-form .input100").each(function () {
|
||||||
|
$(this).focus(function () {
|
||||||
|
hideValidate(this);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function validate(input) {
|
||||||
$('.validate-form .input100').each(function(){
|
if ($(input).attr("type") == "email" || $(input).attr("name") == "email") {
|
||||||
$(this).focus(function(){
|
if (
|
||||||
hideValidate(this);
|
$(input)
|
||||||
});
|
.val()
|
||||||
});
|
.trim()
|
||||||
|
.match(
|
||||||
function validate (input) {
|
/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/
|
||||||
if($(input).attr('type') == 'email' || $(input).attr('name') == 'email') {
|
) == null
|
||||||
if($(input).val().trim().match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/) == null) {
|
) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
if ($(input).val().trim() == "") {
|
||||||
if($(input).val().trim() == ''){
|
return false;
|
||||||
return false;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function showValidate(input) {
|
function showValidate(input) {
|
||||||
var thisAlert = $(input).parent();
|
var thisAlert = $(input).parent();
|
||||||
|
|
||||||
$(thisAlert).addClass('alert-validate');
|
$(thisAlert).addClass("alert-validate");
|
||||||
}
|
}
|
||||||
|
|
||||||
function hideValidate(input) {
|
function hideValidate(input) {
|
||||||
var thisAlert = $(input).parent();
|
var thisAlert = $(input).parent();
|
||||||
|
|
||||||
$(thisAlert).removeClass('alert-validate');
|
$(thisAlert).removeClass("alert-validate");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*==================================================================
|
/*==================================================================
|
||||||
[ Show pass ]*/
|
[ Show pass ]*/
|
||||||
var showPass = 0;
|
var showPass = 0;
|
||||||
$('.btn-show-pass').on('click', function(){
|
$(".btn-show-pass").on("click", function () {
|
||||||
if(showPass == 0) {
|
if (showPass == 0) {
|
||||||
$(this).next('input').attr('type','text');
|
$(this).next("input").attr("type", "text");
|
||||||
$(this).find('i').removeClass('zmdi-eye');
|
$(this).find("i").removeClass("zmdi-eye");
|
||||||
$(this).find('i').addClass('zmdi-eye-off');
|
$(this).find("i").addClass("zmdi-eye-off");
|
||||||
showPass = 1;
|
showPass = 1;
|
||||||
}
|
} else {
|
||||||
else {
|
$(this).next("input").attr("type", "password");
|
||||||
$(this).next('input').attr('type','password');
|
$(this).find("i").addClass("zmdi-eye");
|
||||||
$(this).find('i').addClass('zmdi-eye');
|
$(this).find("i").removeClass("zmdi-eye-off");
|
||||||
$(this).find('i').removeClass('zmdi-eye-off');
|
showPass = 0;
|
||||||
showPass = 0;
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
/*==================================================================
|
||||||
})(jQuery);
|
[ Open Window on link with id="openWindow" ]*/
|
||||||
|
document.addEventListener("click", FromIdNavigateTo, false);
|
||||||
|
function FromIdNavigateTo(event) {
|
||||||
|
if (event.target.matches("#openWindow")) {
|
||||||
|
// console("Open link on open Window");
|
||||||
|
window.open(
|
||||||
|
event.target.href,
|
||||||
|
"_blank",
|
||||||
|
"menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=yes,dependent,width=800,height=620,left=0,top=0"
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
// console("Open link on new tab");
|
||||||
|
open(event.target.href, "_blank");
|
||||||
|
}
|
||||||
|
event.preventDefault();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
})(jQuery);
|
||||||
|
108
tmpl/dashboard.nim
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
#? stdtmpl | standard
|
||||||
|
#
|
||||||
|
# import snippet_icons
|
||||||
|
#proc dashboardHtml(columnLeftInfo: var ColomnLeftData): string =
|
||||||
|
# result = ""
|
||||||
|
<div class="panel">
|
||||||
|
<div style="overflow: auto; position: relative; zoom: 1; height: 731px;">
|
||||||
|
<div style="position: relative; zoom: 1;">
|
||||||
|
<div class="apps">
|
||||||
|
# var count: int = 1
|
||||||
|
# var i: int
|
||||||
|
# for i in 0 .. (columnLeftInfo.dashbord.position.len() - 1) :
|
||||||
|
# count += 1
|
||||||
|
<button type="button" class="glow-on-hover">
|
||||||
|
|
||||||
|
<div class="grid-container">
|
||||||
|
|
||||||
|
<div class="grid-container-title">
|
||||||
|
${columnLeftInfo.dashbord.title[i]}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
# if columnLeftInfo.dashbord.ext_link[i] != "":
|
||||||
|
<a class="grid-container-logo" href="${columnLeftInfo.dashbord.ext_link[i]}">
|
||||||
|
# elif columnLeftInfo.dashbord.int_link[i] != "":
|
||||||
|
<a class="grid-container-logo" href="${columnLeftInfo.dashbord.int_link[i]}">
|
||||||
|
# else :
|
||||||
|
<a class="grid-container-logo">
|
||||||
|
# end if
|
||||||
|
|
||||||
|
<div class="grid-container-logo crossfade">
|
||||||
|
|
||||||
|
# if columnLeftInfo.dashbord.icon[i] == "":
|
||||||
|
<img src="images\svg\internet.svg" class="brands"/>
|
||||||
|
# else:
|
||||||
|
<img src="images\svg\${columnLeftInfo.dashbord.icon[i]}.svg" class="brands"/>
|
||||||
|
# end if
|
||||||
|
|
||||||
|
<img src="images\svg\bookmark.svg" class="bookmark"/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<div class="grid-container-description">
|
||||||
|
<p class="grid-container-description">${columnLeftInfo.dashbord.description[i]}</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid-container-info">
|
||||||
|
# if columnLeftInfo.dashbord.server[i] != "":
|
||||||
|
Serveur : ${columnLeftInfo.dashbord.server[i]}<br>
|
||||||
|
# end if
|
||||||
|
# if columnLeftInfo.dashbord.ip[i] != "":
|
||||||
|
IP : ${columnLeftInfo.dashbord.ip[i]}<br>
|
||||||
|
# end if
|
||||||
|
# if columnLeftInfo.dashbord.port[i] > 0:
|
||||||
|
Port : ${columnLeftInfo.dashbord.port[i]}<br>
|
||||||
|
# end if
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid-container-tags">
|
||||||
|
# if columnLeftInfo.dashbord.tag[i].len() > 0:
|
||||||
|
# var icon_tag = Tag_icon()
|
||||||
|
# for j in 0 .. (columnLeftInfo.dashbord.tag[i].len() - 1) :
|
||||||
|
# if columnLeftInfo.dashbord.tag[i][j] != "":
|
||||||
|
${icon_tag}
|
||||||
|
${columnLeftInfo.dashbord.tag[i][j]}
|
||||||
|
# end if
|
||||||
|
# end for
|
||||||
|
# end if
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="grid-container-status">
|
||||||
|
# if columnLeftInfo.dashbord.ssl[i] == true:
|
||||||
|
# var icon_lock = Lock_icon()
|
||||||
|
${icon_lock}
|
||||||
|
# else:
|
||||||
|
# var icon_lockopen = Lockopen_icon()
|
||||||
|
${icon_lockopen}
|
||||||
|
# end if
|
||||||
|
|
||||||
|
# if columnLeftInfo.dashbord.ext_link[i] != "":
|
||||||
|
# var icon_internet = Internet_icon()
|
||||||
|
<a href="${columnLeftInfo.dashbord.ext_link[i]}" class="status-logo" target="_blank">
|
||||||
|
${icon_internet}</a>
|
||||||
|
# end if
|
||||||
|
|
||||||
|
# if columnLeftInfo.dashbord.int_link[i] != "":
|
||||||
|
# var icon_localnetwork = LocalNetwork_icon()
|
||||||
|
<a href="${columnLeftInfo.dashbord.int_link[i]}" class="status-logo" target="_blank">
|
||||||
|
${icon_localnetwork}</a>
|
||||||
|
# end if
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</button>
|
||||||
|
# end for
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
<div class="footer version">
|
||||||
|
<div class="footer-Label">The NewWebJoplin V15 le 2022-10-28 10:56 par Bruno Charest.</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
#end proc
|
@ -212,3 +212,61 @@ proc SendFeedback_icon*(): string = tmpli html"""
|
|||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
# SVG : Bookmark icon
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
proc Bookmark_icon*(): string = tmpli html"""
|
||||||
|
<svg class="bookmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M0 96C0 43 43 0 96 0h96V190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5V0h32 32c17.7 0 32 14.3 32 32V352c0 17.7-14.3 32-32 32v64c17.7 0 32 14.3 32 32s-14.3 32-32 32H384 96c-53 0-96-43-96-96V96zM64 416c0 17.7 14.3 32 32 32H352V384H96c-17.7 0-32 14.3-32 32z"/>
|
||||||
|
</svg>
|
||||||
|
"""
|
||||||
|
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
# SVG : Docker icon
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
proc Docker_icon*(): string = tmpli html"""
|
||||||
|
<svg class="docker" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z"/>
|
||||||
|
</svg>
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
# SVG : Lock icon
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
proc Lock_icon*(): string = tmpli html"""
|
||||||
|
<svg class="lock" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z"/>
|
||||||
|
</svg>
|
||||||
|
"""
|
||||||
|
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
# SVG : Lock-open icon
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
proc Lockopen_icon*(): string = tmpli html"""
|
||||||
|
<svg class="lockopen" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z"/>
|
||||||
|
</svg>
|
||||||
|
"""
|
||||||
|
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
# SVG : tag icon
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
proc Tag_icon*(): string = tmpli html"""
|
||||||
|
<svg class="dashboard-logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M0 80V229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7H48C21.5 32 0 53.5 0 80zm112 96c-17.7 0-32-14.3-32-32s14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32z"/>
|
||||||
|
</svg>
|
||||||
|
"""
|
||||||
|
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
# SVG : internet icon
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
proc Internet_icon*(): string = tmpli html"""
|
||||||
|
<svg class="status-logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5v39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9v39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7v-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1H257c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zm48 0c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0S512 114.6 512 256z"/>
|
||||||
|
</svg>
|
||||||
|
"""
|
||||||
|
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
# SVG : LocalNetwork icon
|
||||||
|
# --==--==--==--==--==--==--==--==--==--==-- #
|
||||||
|
proc LocalNetwork_icon*(): string = tmpli html"""
|
||||||
|
<svg class="status-logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--! Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc. --><path d="M256 64H384v64H256V64zM240 0c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48h48v32H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96v32H80c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H240c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H192V288H448v32H400c-26.5 0-48 21.5-48 48v96c0 26.5 21.5 48 48 48H560c26.5 0 48-21.5 48-48V368c0-26.5-21.5-48-48-48H512V288h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H352V192h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48H240zM96 448V384H224v64H96zm320-64H544v64H416V384z"/>
|
||||||
|
</svg>
|
||||||
|
"""
|
@ -1,5 +1,5 @@
|
|||||||
#? stdtmpl | standard
|
#? stdtmpl | standard
|
||||||
#
|
# import ../snippet_icons
|
||||||
#proc test_bouton(columnLeftInfo: var ColomnLeftData): string =
|
#proc test_bouton(columnLeftInfo: var ColomnLeftData): string =
|
||||||
# result = ""
|
# result = ""
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
@ -9,20 +9,22 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>Document</title>
|
<title>Bonton Dashboard</title>
|
||||||
<link rel="stylesheet" href="css/bouton.css">
|
<link rel="stylesheet" href="css/dashboard.css">
|
||||||
|
|
||||||
<link href="js/viewtree/skin-win8/ui.fancytree.css" class="skinswitcher" rel="stylesheet">
|
<link href="js/viewtree/skin-win8/ui.fancytree.css" class="skinswitcher" rel="stylesheet">
|
||||||
|
|
||||||
<script src="js/viewtree.js" defer></script>
|
|
||||||
<script src="//code.jquery.com/jquery-3.6.0.min.js"></script>
|
<script src="//code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||||
<script src="js/viewtree/jquery.fancytree-all-deps.min.js"></script>
|
<script src="js/viewtree/jquery.fancytree-all-deps.min.js"></script>
|
||||||
|
<script src="js/main.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h2>TEST Bouton Dashbord</h2>
|
<h2>TEST Bouton Dashbord</h2>
|
||||||
<div>
|
<div>
|
||||||
<a href="/test" class="test_ping"><h4>Back to Test Home page ...</h4></a>
|
<a href="/test" class="bouton_dashbord"><h4>Back to Test Home page ...</h4></a>
|
||||||
|
<a id="openWindow" href="http://www.yahoo.com">yahoo</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="panel">
|
<div class="panel">
|
||||||
<div style="overflow: auto; position: relative; zoom: 1; height: 731px;">
|
<div style="overflow: auto; position: relative; zoom: 1; height: 731px;">
|
||||||
@ -32,26 +34,87 @@
|
|||||||
# var i: int
|
# var i: int
|
||||||
# for i in 0 .. (columnLeftInfo.dashbord.position.len() - 1) :
|
# for i in 0 .. (columnLeftInfo.dashbord.position.len() - 1) :
|
||||||
# count += 1
|
# count += 1
|
||||||
# if columnLeftInfo.dashbord.ext_link[i] == "" and columnLeftInfo.dashbord.int_link[i] == "":
|
<button type="button" id="openWindow" class="glow-on-hover">
|
||||||
<button type="button" class="glow-on-hover" onclick="window.location.href='';">
|
|
||||||
# elif columnLeftInfo.dashbord.ext_link[i] == "":
|
|
||||||
<button type="button" class="glow-on-hover" onclick="window.location.href='${columnLeftInfo.dashbord.int_link[i]}';">
|
|
||||||
# else:
|
|
||||||
<button type="button" class="glow-on-hover" onclick="window.location.href='${columnLeftInfo.dashbord.ext_link[i]}';">
|
|
||||||
# end if
|
|
||||||
|
|
||||||
<div class="grid-container">
|
<div class="grid-container">
|
||||||
<div class="grid-container-title">${columnLeftInfo.dashbord.title[i]}</div>
|
|
||||||
<div class="grid-container-logo crossfade">
|
<div class="grid-container-title">
|
||||||
|
${columnLeftInfo.dashbord.title[i]}
|
||||||
<i class="fa fa-bookmark-o fa x5" aria-hidden="true"></i>
|
|
||||||
<img class="top" alt="Logo" src="images/bookmarks.jpg">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="grid-container-description">${columnLeftInfo.dashbord.description[i]}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
# if columnLeftInfo.dashbord.ext_link[i] != "":
|
||||||
|
<a id="openWindow" class="grid-container-logo" href="${columnLeftInfo.dashbord.ext_link[i]}">
|
||||||
|
# elif columnLeftInfo.dashbord.int_link[i] != "":
|
||||||
|
<a id="openWindow" class="grid-container-logo" href="${columnLeftInfo.dashbord.int_link[i]}">
|
||||||
|
# else :
|
||||||
|
<a class="grid-container-logo">
|
||||||
|
# end if
|
||||||
|
|
||||||
|
<div class="grid-container-logo crossfade">
|
||||||
|
|
||||||
|
# if columnLeftInfo.dashbord.icon[i] == "":
|
||||||
|
<img src="images\svg\internet.svg" class="brands"/>
|
||||||
|
# else:
|
||||||
|
<img src="images\svg\${columnLeftInfo.dashbord.icon[i]}.svg" class="brands"/>
|
||||||
|
# end if
|
||||||
|
|
||||||
|
<img src="images\svg\bookmark.svg" class="bookmark"/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<div class="grid-container-description">
|
||||||
|
<p class="grid-container-description">${columnLeftInfo.dashbord.description[i]}</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid-container-info">
|
||||||
|
# if columnLeftInfo.dashbord.server[i] != "":
|
||||||
|
Serveur : ${columnLeftInfo.dashbord.server[i]}<br>
|
||||||
|
# end if
|
||||||
|
# if columnLeftInfo.dashbord.ip[i] != "":
|
||||||
|
IP : ${columnLeftInfo.dashbord.ip[i]}<br>
|
||||||
|
# end if
|
||||||
|
# if columnLeftInfo.dashbord.port[i] > 0:
|
||||||
|
Port : ${columnLeftInfo.dashbord.port[i]}<br>
|
||||||
|
# end if
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid-container-tags">
|
||||||
|
# if columnLeftInfo.dashbord.tag[i].len() > 0:
|
||||||
|
# var icon_tag = Tag_icon()
|
||||||
|
# for j in 0 .. (columnLeftInfo.dashbord.tag[i].len() - 1) :
|
||||||
|
# if columnLeftInfo.dashbord.tag[i][j] != "":
|
||||||
|
${icon_tag}
|
||||||
|
${columnLeftInfo.dashbord.tag[i][j]}
|
||||||
|
# end if
|
||||||
|
# end for
|
||||||
|
# end if
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="grid-container-status">
|
||||||
|
# if columnLeftInfo.dashbord.ssl[i] == true:
|
||||||
|
# var icon_lock = Lock_icon()
|
||||||
|
${icon_lock}
|
||||||
|
# else:
|
||||||
|
# var icon_lockopen = Lockopen_icon()
|
||||||
|
${icon_lockopen}
|
||||||
|
# end if
|
||||||
|
|
||||||
|
# if columnLeftInfo.dashbord.ext_link[i] != "":
|
||||||
|
# var icon_internet = Internet_icon()
|
||||||
|
<a href="${columnLeftInfo.dashbord.ext_link[i]}" class="status-logo" target="_blank">
|
||||||
|
${icon_internet}</a>
|
||||||
|
# end if
|
||||||
|
|
||||||
|
# if columnLeftInfo.dashbord.int_link[i] != "":
|
||||||
|
# var icon_localnetwork = LocalNetwork_icon()
|
||||||
|
<a href="${columnLeftInfo.dashbord.int_link[i]}" class="status-logo" target="_blank">
|
||||||
|
${icon_localnetwork}</a>
|
||||||
|
# end if
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</button>
|
</button>
|
||||||
# end for
|
# end for
|
||||||
</div>
|
</div>
|
||||||
@ -62,7 +125,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
</div>
|
</div>
|
||||||
<div class="footer version">
|
<div class="footer version">
|
||||||
<div class="gwt-Label">The NewWebJoplin V15 le 2022-10-28 10:56 par Bruno Charest.</div>
|
<div class="footer-Label">The NewWebJoplin V15 le 2022-10-28 10:56 par Bruno Charest.</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
@ -19,7 +19,8 @@
|
|||||||
<a href="/test_notebooks" class="test_notebooks"><h3>Test joplin Notebooks</h3></a>
|
<a href="/test_notebooks" class="test_notebooks"><h3>Test joplin Notebooks</h3></a>
|
||||||
<a href="/test_notes" class="test_notes"><h3>Test Joplin Notes</h3></a>
|
<a href="/test_notes" class="test_notes"><h3>Test Joplin Notes</h3></a>
|
||||||
<a href="/test_tags" class="test_tags"><h3>Test Joplin Tags</h3></a>
|
<a href="/test_tags" class="test_tags"><h3>Test Joplin Tags</h3></a>
|
||||||
<a href="/test_viewtree" class="test_viewtree"><h3>Test View Tree</h3></a><a href="/test_bouton" class="test_bouton"><h3>Test Bouton</h3></a>
|
<a href="/test_viewtree" class="test_viewtree"><h3>Test View Tree</h3></a>
|
||||||
|
<a href="/test_bouton" class="test_bouton"><h3>Test Bouton</h3></a>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
<title>Joplin-TheNewWeb</title>
|
<title>Joplin-TheNewWeb</title>
|
||||||
<link rel="stylesheet" href="css/styles.css">
|
<link rel="stylesheet" href="css/styles.css">
|
||||||
<link rel="stylesheet" href="css/notif-bell.css">
|
<link rel="stylesheet" href="css/notif-bell.css">
|
||||||
|
<link rel="stylesheet" href="css/dashboard.css">
|
||||||
<script src="js/script.js" defer></script>
|
<script src="js/script.js" defer></script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
@ -32,13 +33,15 @@
|
|||||||
<body>
|
<body>
|
||||||
<header class="header">
|
<header class="header">
|
||||||
<button class="menu-icon-btn" data-menu-icon-btn>
|
<button class="menu-icon-btn" data-menu-icon-btn>
|
||||||
|
|
||||||
# var icon_menu = Menu_icon()
|
# var icon_menu = Menu_icon()
|
||||||
${icon_menu}
|
${icon_menu}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
<div class="search-wrapper">
|
||||||
|
<label for="search"></label>
|
||||||
|
<input type="search" id="search" data-search>
|
||||||
|
</div>
|
||||||
|
|
||||||
<button class="notifBell-btn" data-notifBell-btn>
|
<button class="notifBell-btn" data-notifBell-btn>
|
||||||
# var notifBell = show_notification_bell(1)
|
# var notifBell = show_notification_bell(1)
|
||||||
${notifBell}
|
${notifBell}
|
||||||
@ -279,7 +282,8 @@
|
|||||||
<div class="force-overflow">
|
<div class="force-overflow">
|
||||||
<div class="ColomnLeftJoplinDashboard">
|
<div class="ColomnLeftJoplinDashboard">
|
||||||
|
|
||||||
<p>DASHBORD</p>
|
# var dashboardHTML = dashboardHtml(columnLeftInfo)
|
||||||
|
${dashboardHTML}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|