Change UI of pywallter
This commit is contained in:
parent
4b4a6fd295
commit
b0190336b0
4
static/default.min.css
vendored
Normal file
4
static/default.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
319
static/icons.css
Normal file
319
static/icons.css
Normal file
@ -0,0 +1,319 @@
|
||||
/* Icons find on https://icon-sets.iconify.design/weui/ */
|
||||
|
||||
.home-filled {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' fill-rule='evenodd' d='M13.5 21v-4h-3v4H7a1 1 0 0 1-1-1v-6H3.414a1 1 0 0 1-.707-1.707l8.586-8.586a1 1 0 0 1 1.414 0l8.586 8.586A1 1 0 0 1 20.586 14H18v6a1 1 0 0 1-1 1z'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.logout {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h6.403v1H5.616q-.231 0-.424.192T5 5.616v12.769q0 .23.192.423t.423.192h6.404v1zm10.846-4.461l-.702-.72l2.319-2.319H9.192v-1h8.887l-2.32-2.32l.702-.718L20 12z'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.lists-rounded {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M8.885 19q-.44 0-.74-.299t-.299-.74t.3-.739t.739-.299h11.077q.44 0 .739.299q.299.3.299.74t-.299.739t-.74.299zm0-5.962q-.44 0-.74-.299T7.846 12t.3-.74t.739-.298h11.077q.44 0 .739.299T21 12t-.299.74t-.74.298zm0-5.961q-.44 0-.74-.299q-.299-.3-.299-.74t.3-.739T8.884 5h11.077q.44 0 .739.299t.299.74t-.299.739t-.74.299zm-4.846 0q-.441 0-.74-.299Q3 6.478 3 6.038t.299-.739t.74-.299q.44 0 .739.299t.299.74t-.299.739q-.3.299-.74.299m0 5.962q-.44 0-.739-.3T3 12t.299-.74t.74-.298t.739.299t.299.739t-.299.74q-.3.298-.74.298m0 5.962q-.44 0-.739-.299T3 17.961t.299-.739t.74-.299t.739.299q.299.3.299.74t-.299.739t-.74.299'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
/* Blog */
|
||||
.blog {
|
||||
display: inline-block;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23000' d='M224 24c0-13.3 10.7-24 24-24c145.8 0 264 118.2 264 264c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-119.3-96.7-216-216-216c-13.3 0-24-10.7-24-24M80 96c26.5 0 48 21.5 48 48v224c0 26.5 21.5 48 48 48s48-21.5 48-48s-21.5-48-48-48c-8.8 0-16-7.2-16-16v-64c0-8.8 7.2-16 16-16c79.5 0 144 64.5 144 144s-64.5 144-144 144S32 447.5 32 368V144c0-26.5 21.5-48 48-48m168 0c92.8 0 168 75.2 168 168c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3-53.7-120-120-120c-13.3 0-24-10.7-24-24s10.7-24 24-24'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.new-article-blog {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath stroke-linecap='round' d='M22 10.5V12c0 4.714 0 7.071-1.465 8.535C19.072 22 16.714 22 12 22s-7.071 0-8.536-1.465C2 19.072 2 16.714 2 12s0-7.071 1.464-8.536C4.93 2 7.286 2 12 2h1.5'/%3E%3Cpath d='m16.652 3.455l.649-.649A2.753 2.753 0 0 1 21.194 6.7l-.65.649m-3.892-3.893s.081 1.379 1.298 2.595c1.216 1.217 2.595 1.298 2.595 1.298m-3.893-3.893L10.687 9.42c-.404.404-.606.606-.78.829q-.308.395-.524.848c-.121.255-.211.526-.392 1.068L8.412 13.9m12.133-6.552l-5.965 5.965c-.404.404-.606.606-.829.78a4.6 4.6 0 0 1-.848.524c-.255.121-.526.211-1.068.392l-1.735.579m0 0l-1.123.374a.742.742 0 0 1-.939-.94l.374-1.122m1.688 1.688L8.412 13.9'/%3E%3C/g%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.list-articles-blog {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h5q.425 0 .713.288T11 4t-.288.713T10 5H5v14h14v-5q0-.425.288-.712T20 13t.713.288T21 14v5q0 .825-.587 1.413T19 21zM16 8h-2q-.425 0-.712-.288T13 7t.288-.712T14 6h2V4q0-.425.288-.712T17 3t.713.288T18 4v2h2q.425 0 .713.288T21 7t-.288.713T20 8h-2v2q0 .425-.288.713T17 11t-.712-.288T16 10z'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.custom-blog {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5 20q-.825 0-1.412-.587T3 18V4q0-.825.588-1.412T5 2h14q.825 0 1.413.588T21 4v5.65q-.475-.225-.975-.363T19 9.076V4H5v9h4.2q.225.675.75 1.175t1.175.7q-.075.5-.1 1.013t.05 1.012q-.9-.175-1.687-.663T8 15H5v3h6.325q.175.55.4 1.05t.55.95zm0-2h6.325zm12.025 3l-.3-1.5q-.3-.125-.563-.262t-.537-.338l-1.45.45l-1-1.7l1.15-1q-.05-.3-.05-.65t.05-.65l-1.15-1l1-1.7l1.45.45q.275-.2.538-.337t.562-.263l.3-1.5h2l.3 1.5q.3.125.563.263t.537.337l1.45-.45l1 1.7l-1.15 1q.05.3.05.65t-.05.65l1.15 1l-1 1.7l-1.45-.45q-.275.2-.537.338t-.563.262l-.3 1.5zm1-3q.825 0 1.413-.587T20.025 16t-.587-1.412T18.025 14t-1.412.588T16.025 16t.588 1.413t1.412.587'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
|
||||
}
|
||||
|
||||
|
||||
.view-blog {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M20.188 10.934c.388.472.582.707.582 1.066s-.194.594-.582 1.066C18.768 14.79 15.636 18 12 18s-6.768-3.21-8.188-4.934c-.388-.472-.582-.707-.582-1.066s.194-.594.582-1.066C5.232 9.21 8.364 6 12 6s6.768 3.21 8.188 4.934Z'/%3E%3C/g%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
|
||||
/* files Section */
|
||||
|
||||
.folder-home {
|
||||
display: inline-block;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20 6h-8l-2-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2m-3 7v4h-2v-3h-2v3h-2v-4H9l5-4l5 4Z'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.mygallery {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M18 8a2 2 0 1 1-4 0a2 2 0 0 1 4 0'/%3E%3Cpath fill='%23000' fill-rule='evenodd' d='M11.943 1.25h.114c2.309 0 4.118 0 5.53.19c1.444.194 2.584.6 3.479 1.494c.895.895 1.3 2.035 1.494 3.48c.19 1.411.19 3.22.19 5.529v.088c0 1.909 0 3.471-.104 4.743c-.104 1.28-.317 2.347-.795 3.235q-.314.586-.785 1.057c-.895.895-2.035 1.3-3.48 1.494c-1.411.19-3.22.19-5.529.19h-.114c-2.309 0-4.118 0-5.53-.19c-1.444-.194-2.584-.6-3.479-1.494c-.793-.793-1.203-1.78-1.42-3.006c-.215-1.203-.254-2.7-.262-4.558Q1.25 12.792 1.25 12v-.058c0-2.309 0-4.118.19-5.53c.194-1.444.6-2.584 1.494-3.479c.895-.895 2.035-1.3 3.48-1.494c1.411-.19 3.22-.19 5.529-.19m-5.33 1.676c-1.278.172-2.049.5-2.618 1.069c-.57.57-.897 1.34-1.069 2.619c-.174 1.3-.176 3.008-.176 5.386v.844l1.001-.876a2.3 2.3 0 0 1 3.141.104l4.29 4.29a2 2 0 0 0 2.564.222l.298-.21a3 3 0 0 1 3.732.225l2.83 2.547c.286-.598.455-1.384.545-2.493c.098-1.205.099-2.707.099-4.653c0-2.378-.002-4.086-.176-5.386c-.172-1.279-.5-2.05-1.069-2.62c-.57-.569-1.34-.896-2.619-1.068c-1.3-.174-3.008-.176-5.386-.176s-4.086.002-5.386.176' clip-rule='evenodd'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.myfiles {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000'%3E%3Cpath d='M20 4v12h2V2H8v2z'/%3E%3Cpath fill-rule='evenodd' d='M2 8v14h14V8zm12 2H4v10h10z' clip-rule='evenodd'/%3E%3Cpath d='M17 7H5V5h14v14h-2z'/%3E%3C/g%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.send-files {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23000' d='M62.7 85.3H20V512h384v-42.7H62.7zM361.3 0v128h128zM340 0H105.3v426.7h384V149.3H340zm64 298.7h-64V384h-85.3v-85.3h-64L297.3 192z'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
/* Messaging */
|
||||
|
||||
.messaging {
|
||||
display: inline-block;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -2 24 24'%3E%3Cg fill='%23000'%3E%3Cpath d='M7.46 2.332C8.74.913 10.746 0 13 0c3.866 0 7 2.686 7 6c0 1.989-1.13 3.752-2.868 4.844L17 10.92v4.05a1 1 0 0 1-1.718.696l-1.14-1.174c1.069-1.264 1.698-2.816 1.698-4.493c0-4.067-3.698-7.395-8.38-7.667'/%3E%3Cpath d='m8.385 15.886l-3.667 3.78A1 1 0 0 1 3 18.97v-4.05l-.132-.076C1.129 13.752 0 11.989 0 10c0-3.314 3.134-6 7-6s7 2.686 7 6c0 2.726-2.121 5.028-5.026 5.758a8 8 0 0 1-.589.128'/%3E%3C/g%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.myalias {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M5.5 12.4L1.6 8.5l3.9-3.9l3.9 3.9zM9 22v-5q-1.525-.125-3.025-.363T3 16l.5-2q2.1.575 4.213.788T12 15t4.288-.213T20.5 14l.5 2q-1.475.4-2.975.638T15 17v5zM5.5 9.6l1.1-1.1l-1.1-1.1l-1.1 1.1zM12 7q-1.25 0-2.125-.875T9 4t.875-2.125T12 1t2.125.875T15 4t-.875 2.125T12 7m0 7q-.825 0-1.412-.587T10 12t.588-1.412T12 10t1.413.588T14 12t-.587 1.413T12 14m0-9q.425 0 .713-.288T13 4t-.288-.712T12 3t-.712.288T11 4t.288.713T12 5m5.05 7l-1.7-3l1.7-3h3.4l1.7 3l-1.7 3zm1.15-2h1.1l.55-1l-.55-1h-1.1l-.55 1zm.55-1'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.infos-messaging {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M13.5 10a1.5 1.5 0 0 1-1.5 1.5c-.84 0-1.5-.67-1.5-1.5A1.5 1.5 0 0 1 12 8.5a1.5 1.5 0 0 1 1.5 1.5M22 4v12a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2m-5.23 7.32l-1.07-.82c.01-.17.01-.34 0-.5c.02-.16.02-.33 0-.5l1.06-.82a.26.26 0 0 0 .06-.32l-1-1.73c-.06-.13-.19-.16-.32-.13l-1.23.5c-.27-.2-.54-.37-.85-.5l-.19-1.31A.235.235 0 0 0 13 5h-2c-.12 0-.23.09-.25.21l-.19 1.32c-.3.12-.59.28-.86.47l-1.24-.5c-.12-.04-.25 0-.31.11l-1 1.73c-.06.11-.04.24.06.32l1.06.84c-.04.32-.04.66 0 1l-1.06.82a.26.26 0 0 0-.06.32l1 1.73c.06.13.19.16.31.13L9.7 13c.26.2.54.37.85.5l.19 1.31c.03.12.14.19.26.19h2c.12 0 .23-.09.25-.21l.19-1.32c.3-.13.56-.29.84-.47l1.25.5c.12 0 .25 0 .31-.13l1-1.73a.25.25 0 0 0-.07-.32'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
|
||||
}
|
||||
|
||||
/* Profil */
|
||||
|
||||
.profile {
|
||||
display: inline-block;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none'%3E%3Cpath stroke='%23000' stroke-width='2' d='M21 12a8.96 8.96 0 0 1-1.526 5.016A8.99 8.99 0 0 1 12 21a8.99 8.99 0 0 1-7.474-3.984A9 9 0 1 1 21 12Z'/%3E%3Cpath fill='%23000' d='M13 9a1 1 0 0 1-1 1v2a3 3 0 0 0 3-3zm-1 1a1 1 0 0 1-1-1H9a3 3 0 0 0 3 3zm-1-1a1 1 0 0 1 1-1V6a3 3 0 0 0-3 3zm1-1a1 1 0 0 1 1 1h2a3 3 0 0 0-3-3zm-6.834 9.856l-.959-.285l-.155.523l.355.413zm13.668 0l.76.651l.354-.413l-.155-.523zM9 16h6v-2H9zm0-2a5 5 0 0 0-4.793 3.571l1.917.57A3 3 0 0 1 9 16zm3 6a7.98 7.98 0 0 1-6.075-2.795l-1.518 1.302A9.98 9.98 0 0 0 12 22zm3-4c1.357 0 2.506.902 2.876 2.142l1.916-.571A5 5 0 0 0 15 14zm3.075 1.205A7.98 7.98 0 0 1 12 20v2a9.98 9.98 0 0 0 7.593-3.493z'/%3E%3C/g%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.mypassword {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15'%3E%3Cpath fill='%23000' d='M11 11h-1v-1h1zm-3 0h1v-1H8zm5 0h-1v-1h1z'/%3E%3Cpath fill='%23000' fill-rule='evenodd' d='M3 6V3.5a3.5 3.5 0 1 1 7 0V6h1.5A1.5 1.5 0 0 1 13 7.5v.55a2.5 2.5 0 0 1 0 4.9v.55a1.5 1.5 0 0 1-1.5 1.5h-10A1.5 1.5 0 0 1 0 13.5v-6A1.5 1.5 0 0 1 1.5 6zm1-2.5a2.5 2.5 0 0 1 5 0V6H4zM8.5 9a1.5 1.5 0 1 0 0 3h4a1.5 1.5 0 0 0 0-3z' clip-rule='evenodd'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
|
||||
}
|
||||
|
||||
.configure-profile {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M16 15c4.009-.065 7-3.033 7-7c0-3.012-.997-2.015-2-1c-.991.98-3 3-3 3l-4-4s2.02-2.009 3-3c1.015-1.003 1.015-2-1-2c-3.967 0-6.947 2.991-7 7c.042.976 0 3 0 3c-1.885 1.897-4.34 4.353-6 6c-2.932 2.944 1.056 6.932 4 4c1.65-1.662 4.113-4.125 6-6c0 0 2.024-.042 3 0Z'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
|
||||
.user-delete {
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%23000' d='M10.596 0c3.226 0 5.842 2.566 5.842 5.732a5.68 5.68 0 0 1-2.047 4.359q.41.2.748.402q.727.435 1.51 1.079a.68.68 0 0 1 .088.969a.71.71 0 0 1-.988.086a11 11 0 0 0-1.34-.96a12 12 0 0 0-1.424-.703a5.9 5.9 0 0 1-2.39.5a5.9 5.9 0 0 1-2.615-.605l-.042.02c-1.977.756-3.42 1.874-4.35 3.358c-.935 1.489-1.317 3.153-1.146 5.014a.69.69 0 0 1-.636.746a.697.697 0 0 1-.761-.623c-.197-2.152.253-4.113 1.348-5.858c.964-1.536 2.38-2.73 4.23-3.581a5.66 5.66 0 0 1-1.87-4.203C4.753 2.566 7.37 0 10.596 0m7.223 14.24a.7.7 0 0 1 .978-.003c.27.266.27.698.002.965l-1.192 1.179l1.192 1.18a.675.675 0 0 1-.002.964a.7.7 0 0 1-.978-.001l-1.187-1.177l-1.187 1.177a.7.7 0 0 1-.891.073l-.086-.072a.675.675 0 0 1-.002-.964l1.19-1.18l-1.19-1.18a.675.675 0 0 1 .002-.964a.7.7 0 0 1 .977.002l1.187 1.176ZM10.596 1.375c-2.453 0-4.44 1.95-4.44 4.356s1.987 4.357 4.44 4.357c2.452 0 4.44-1.95 4.44-4.357s-1.988-4.356-4.44-4.356'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
|
||||
.invite {
|
||||
display: inline-block;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19 17v2H7v-2s0-4 6-4s6 4 6 4m-3-9a3 3 0 1 0-3 3a3 3 0 0 0 3-3m3.2 5.06A5.6 5.6 0 0 1 21 17v2h3v-2s0-3.45-4.8-3.94M18 5a2.9 2.9 0 0 0-.89.14a5 5 0 0 1 0 5.72A2.9 2.9 0 0 0 18 11a3 3 0 0 0 0-6M8 10H5V7H3v3H0v2h3v3h2v-3h3Z'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
|
||||
/* Gallery */
|
||||
|
||||
.trash {
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M14 11v6m-4-6v6M6 7v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7M4 7h16M7 7l2-4h6l2 4'/%3E%3C/svg%3E");
|
||||
background-color: currentColor;
|
||||
-webkit-mask-image: var(--svg);
|
||||
mask-image: var(--svg);
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
mask-repeat: no-repeat;
|
||||
-webkit-mask-size: 100% 100%;
|
||||
mask-size: 100% 100%;
|
||||
}
|
||||
|
||||
.control{
|
||||
margin:5px;
|
||||
}
|
||||
|
122
static/medias.js
Normal file
122
static/medias.js
Normal file
@ -0,0 +1,122 @@
|
||||
let cachedImageData = [];
|
||||
let isLoading = false;
|
||||
const targetHeight = 200;
|
||||
const spacing = 5;
|
||||
const preloadThreshold = 800;
|
||||
|
||||
|
||||
function appendRows(imageBatch) {
|
||||
const $container = $('#mediasContainer');
|
||||
const containerWidth = $container.width();
|
||||
let row = [];
|
||||
let rowWidth = 0;
|
||||
$.each(imageBatch, function (_, imgData) {
|
||||
const scaledWidth = targetHeight * imgData.ratio;
|
||||
row.push(imgData);
|
||||
rowWidth += scaledWidth + spacing;
|
||||
if (rowWidth >= containerWidth || imgData === imageBatch[imageBatch.length - 1]) {
|
||||
if (row.length === 1 && imgData === imageBatch[imageBatch.length - 1]) {
|
||||
row.pop();
|
||||
mediasQueryParams.offset -= 1;
|
||||
return false;
|
||||
}
|
||||
const totalRatio = row.reduce((sum, img) => sum + img.ratio, 0);
|
||||
const adjustedHeight = (containerWidth - spacing * (row.length - 1)) / totalRatio;
|
||||
const $rowDiv = $('<div>').addClass('mediasRow');
|
||||
$.each(row, function (_, imgData) {
|
||||
const $img = $('<img>')
|
||||
.addClass('border-primary')
|
||||
.attr('src', `/storage/medias/thumb_${imgData.filename}`)
|
||||
.attr('alt', `${imgData.hashtag} / 😻 ${imgData.like}`)
|
||||
.attr('title', `${imgData.hashtag} / 😻 ${imgData.like}`)
|
||||
.css({height: adjustedHeight + 'px',
|
||||
width: adjustedHeight * imgData.ratio + 'px',
|
||||
display: 'inline-block',
|
||||
cursor: 'pointer'});
|
||||
const $link = $('<a>')
|
||||
.attr('href', `/media/${imgData.filename}`)
|
||||
.append($img);
|
||||
$rowDiv.append($link);
|
||||
});
|
||||
$container.append($rowDiv);
|
||||
row = [];
|
||||
rowWidth = 0;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function relayoutAll() {
|
||||
const $container = $('#mediasContainer');
|
||||
const containerWidth = $container.width();
|
||||
$container.empty();
|
||||
let row = [];
|
||||
let rowWidth = 0;
|
||||
$.each(cachedImageData, function (_, imgData) {
|
||||
const scaledWidth = targetHeight * imgData.ratio;
|
||||
row.push(imgData);
|
||||
rowWidth += scaledWidth + spacing;
|
||||
if (rowWidth >= containerWidth || imgData === cachedImageData[cachedImageData.length - 1]) {
|
||||
if (row.length === 1 && imgData === cachedImageData[cachedImageData.length - 1]) {
|
||||
row.pop();
|
||||
mediasQueryParams.offset -= 1;
|
||||
return false;
|
||||
}
|
||||
const totalRatio = row.reduce((sum, img) => sum + img.ratio, 0);
|
||||
const adjustedHeight = (containerWidth - spacing * (row.length - 1)) / totalRatio;
|
||||
const $rowDiv = $('<div>').addClass('mediasRow');
|
||||
$.each(row, function (_, imgData) {
|
||||
const $img = $('<img>')
|
||||
.addClass('border-primary')
|
||||
.attr('src', `/storage/medias/thumb_${imgData.filename}`)
|
||||
.attr('alt', `${imgData.hashtag} / 😻 ${imgData.like}`)
|
||||
.attr('title', `${imgData.hashtag} / 😻 ${imgData.like}`)
|
||||
.css({ height: adjustedHeight + 'px',
|
||||
width: adjustedHeight * imgData.ratio + 'px',
|
||||
display: 'inline-block',
|
||||
cursor: 'pointer' });
|
||||
const $link = $('<a>')
|
||||
.attr('href', `/media/${imgData.filename}`)
|
||||
.append($img);
|
||||
$rowDiv.append($link);
|
||||
});
|
||||
$container.append($rowDiv);
|
||||
row = [];
|
||||
rowWidth = 0;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
let resizeTimeout;
|
||||
$(window).on('resize', function () {
|
||||
clearTimeout(resizeTimeout);
|
||||
resizeTimeout = setTimeout(relayoutAll, 150);
|
||||
});
|
||||
|
||||
$(window).on('scroll', function () {
|
||||
const scrollBottom = $(document).height() - $(window).scrollTop() - $(window).height();
|
||||
if (!isLoading && scrollBottom < preloadThreshold) {
|
||||
loadImages(
|
||||
).then(imageBatch => {
|
||||
appendRows(imageBatch);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$(document).ready(function () {
|
||||
loadImages(
|
||||
).then(imageBatch => {
|
||||
appendRows(imageBatch);
|
||||
});
|
||||
$('#popularityButton').on('click', function () {
|
||||
popularityButtonClicked($(this));
|
||||
});
|
||||
$('#filterButton').on('click', function () {
|
||||
filterButtonClicked($(this));
|
||||
});
|
||||
if (mediasQueryParams.order_by !== 'uid,desc') {
|
||||
toggleButtonClass($('#popularityButton'));
|
||||
}
|
||||
if (mediasQueryParams.hasOwnProperty('filter')) {
|
||||
toggleButtonClass($('#filterButton'));
|
||||
}
|
||||
});
|
153
static/pywallter.css
Normal file
153
static/pywallter.css
Normal file
@ -0,0 +1,153 @@
|
||||
|
||||
body
|
||||
{
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
|
||||
grid-template-rows: 0.1fr 1fr 0.1fr;
|
||||
gap: 3px 5px;
|
||||
grid-template-areas:
|
||||
"Menu Menu header header header header header"
|
||||
"Menu Menu main main main main main"
|
||||
"Menu Menu footer footer footer footer footer"
|
||||
}
|
||||
|
||||
|
||||
header{
|
||||
grid-area: header;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
body > main {
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
main
|
||||
{
|
||||
grid-area: main;
|
||||
text-align: justify;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
|
||||
body > main > h1, h2, h3, h4, h5
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
main > nav
|
||||
{
|
||||
margin-bottom: 4vw;
|
||||
}
|
||||
|
||||
|
||||
aside
|
||||
{
|
||||
grid-area: Menu;
|
||||
border-right: 5px solid;
|
||||
border-color: var(--pico-primary);
|
||||
margin-bottom: 10vw;
|
||||
max-width: 25vw;
|
||||
}
|
||||
|
||||
aside .logo
|
||||
{
|
||||
min-height: 7vw;
|
||||
}
|
||||
|
||||
|
||||
aside h4
|
||||
{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
|
||||
footer
|
||||
{
|
||||
grid-area: footer;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.center
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.flashed
|
||||
{
|
||||
list-style-type: none;
|
||||
position: center;
|
||||
margin: auto;
|
||||
margin-top: 5%;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.flashed p
|
||||
{
|
||||
font-family: sans-serif;
|
||||
text-align: center;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.success p
|
||||
{
|
||||
background-color: var(--pico-color-green-550);
|
||||
color: var(--pico-color-green-50);
|
||||
}
|
||||
|
||||
.error p {
|
||||
background-color: var(--pico-color-red-550);
|
||||
color: var(--pico-color-red-50);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Navigation */
|
||||
|
||||
header > nav {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
aside > nav {
|
||||
|
||||
padding-left: 1.5vw;
|
||||
}
|
||||
|
||||
aside ul {
|
||||
max-width: 96%;
|
||||
}
|
||||
|
||||
nav > ul:first-of-type, ul
|
||||
{
|
||||
margin-left: calc(var(--pico-nav-element-spacing-horizontal) * 1);
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Gallery */
|
||||
.gallery {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
gap: 5px;
|
||||
}
|
||||
|
||||
.picture{
|
||||
text-align: center;
|
||||
|
||||
|
||||
|
||||
|
||||
.danger {
|
||||
color: red;
|
||||
}
|
||||
|
||||
|
||||
.invert {
|
||||
background-color: var(--pico-color);
|
||||
color: var(--pico-color-grey-950);
|
||||
|
||||
}
|
||||
|
4
static/vendors/picocss/pico.colors.min.css
vendored
Normal file
4
static/vendors/picocss/pico.colors.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.amber.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.amber.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.blue.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.blue.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.amber.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.amber.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.blue.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.blue.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.cyan.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.cyan.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.fuchsia.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.fuchsia.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.green.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.green.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.grey.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.grey.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.indigo.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.indigo.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.jade.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.jade.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.lime.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.lime.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.orange.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.orange.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.pink.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.pink.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.pumpkin.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.pumpkin.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.purple.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.purple.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.red.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.red.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.sand.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.sand.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.slate.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.slate.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.violet.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.violet.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.yellow.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.yellow.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.conditional.zinc.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.conditional.zinc.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.cyan.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.cyan.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.fuchsia.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.fuchsia.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.green.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.green.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.grey.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.grey.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.indigo.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.indigo.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.jade.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.jade.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.lime.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.lime.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.orange.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.orange.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.pink.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.pink.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.pumpkin.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.pumpkin.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.purple.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.purple.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.red.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.red.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.sand.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.sand.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.slate.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.slate.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.violet.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.violet.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.yellow.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.yellow.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
4
static/vendors/picocss/pico.fluid.classless.zinc.min.css
vendored
Normal file
4
static/vendors/picocss/pico.fluid.classless.zinc.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
37
static/vendors/picocss/theme-switcher.js
vendored
Normal file
37
static/vendors/picocss/theme-switcher.js
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
/*!
|
||||
* Minimal theme switcher
|
||||
*
|
||||
* Pico.css - https://picocss.com
|
||||
* Copyright 2020 - Licensed under MIT
|
||||
*/
|
||||
|
||||
const themeSwitcher = {
|
||||
// Config
|
||||
buttonsTarget: "a[data-theme-switcher]",
|
||||
buttonAttribute: "data-theme-switcher",
|
||||
rootAttribute: "data-theme",
|
||||
|
||||
// Init
|
||||
init() {
|
||||
document.querySelectorAll(this.buttonsTarget).forEach(
|
||||
function (button) {
|
||||
button.addEventListener(
|
||||
"click",
|
||||
function (event) {
|
||||
event.preventDefault();
|
||||
document
|
||||
.querySelector("html")
|
||||
.setAttribute(
|
||||
this.rootAttribute,
|
||||
event.target.getAttribute(this.buttonAttribute)
|
||||
);
|
||||
}.bind(this),
|
||||
false
|
||||
);
|
||||
}.bind(this)
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
// Init
|
||||
themeSwitcher.init();
|
27
templates/_header.html
Normal file
27
templates/_header.html
Normal file
@ -0,0 +1,27 @@
|
||||
<header>
|
||||
<nav>
|
||||
<a href="/logs/">
|
||||
<button>
|
||||
Mes logs <br/>
|
||||
<span class="lists-rounded"></span>
|
||||
</button>
|
||||
</a>
|
||||
|
||||
<a href="/logout/">
|
||||
<button>
|
||||
Se déconnecter <br/>
|
||||
<span class="logout"></span>
|
||||
</button>
|
||||
</a>
|
||||
|
||||
<details class="dropdown">
|
||||
<summary role="button" class="secondary">Theme</summary>
|
||||
<ul>
|
||||
<li><a href="#" data-theme-switcher="auto">Auto</a></li>
|
||||
<li><a href="#" data-theme-switcher="light">Clair</a></li>
|
||||
<li><a href="#" data-theme-switcher="dark">Sombre</a></li>
|
||||
</ul>
|
||||
</details>
|
||||
</nav>
|
||||
|
||||
</header>
|
41
templates/homepage.html
Normal file
41
templates/homepage.html
Normal file
@ -0,0 +1,41 @@
|
||||
{% extends 'up_squelette.html' %}
|
||||
|
||||
|
||||
{% block main %}
|
||||
|
||||
|
||||
<div>
|
||||
|
||||
<h3> Bienvenue </h3>
|
||||
|
||||
<p>
|
||||
Si vous êtes sur cette page, c'est que vous diposez d'un compte sur ce serveur.
|
||||
Du coup, vous avez une adresse e-mail et une adresse XMPP que vous pouvez utiliser
|
||||
avec un client mail et avec un client XMPP (Bien évidemment)
|
||||
</p>
|
||||
|
||||
<p> Voici un exemple de <a href="https://www.thunderbird.net/fr/"> client mail </a>
|
||||
et <a href="https://gajim.org/">client XMPP </a> pour un ordinateur </p>
|
||||
|
||||
<p> un exemple de <a href="https://k9mail.app/"> client mail </a> et <a href="https://play.google.com/store/apps/details?id=org.snikket.android&hl=ln&gl=US">client XMPP</a>
|
||||
pour un téléphone sous Android </p>
|
||||
|
||||
<p> et un un exemple de<a href="https://support.apple.com/fr-fr/mail"> client mail</a> et <a href="https://itunes.apple.com/us/app/tigase-messenger/id1153516838"> client XMPP </a>sous iOS pour un iphone ou un Ipad </p>
|
||||
|
||||
{# on affiche les messages d'erreur puis les messages de succes #}
|
||||
{% for categorie in ['error', 'succes'] %}
|
||||
{% with msgs = get_flashed_messages(category_filter=[categorie]) %}
|
||||
{% if msgs %}
|
||||
<div class="flashed {{ categorie }}">
|
||||
{% for m in msgs %}
|
||||
<p>{{ m|safe }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
Loading…
x
Reference in New Issue
Block a user