site features tab restyled

the section housing site features has been restyled and brough into
alignment with the new design

still needs responsive work
This commit is contained in:
ro 2024-05-24 16:22:11 -06:00
parent 428e74ae60
commit 9bc0ae8bed
No known key found for this signature in database
GPG key ID: 29B551CDBD4D3B50
3 changed files with 215 additions and 122 deletions

View file

@ -25,7 +25,6 @@ article.settings div.tab-toolbar button {
article.settings section.settings-tabs section.section-tab { article.settings section.settings-tabs section.section-tab {
width: 100%; width: 100%;
min-height: 400px; min-height: 400px;
background: var(--secondary);
color: var(--secondary); color: var(--secondary);
} }
@ -40,58 +39,63 @@ article.settings section.settings-tabs section.section-tab {
visibility: hidden; visibility: hidden;
} }
section#member-profile { /*
MEMBER PROFILE TAB
*/
section#site-profile {
display: grid; display: grid;
grid-template-columns: 1fr 1fr 1fr; grid-template-columns: 1fr 1fr 1fr;
grid-auto-columns: auto; grid-auto-columns: auto;
gap: 15px; gap: 15px;
width: 100%; width: 100%;
max-width: 900px; max-width: 900px;
margin: 0 auto; margin: 10px auto;
border-radius: 3px; border-radius: 3px;
background: var(--secondary);
} }
section#member-profile > div:nth-child(1) { section#site-profile > div:nth-child(1) {
grid-column: 1/2; grid-column: 1/2;
grid-row: 1/2; grid-row: 1/2;
height: 250px; height: 250px;
} }
section#member-profile > div:nth-child(2) { section#site-profile > div:nth-child(2) {
grid-column: 2/4; grid-column: 2/4;
grid-row: 1/2; grid-row: 1/2;
} }
section#member-profile > div:nth-child(3) { section#site-profile > div:nth-child(3) {
grid-column: 1/2; grid-column: 1/2;
grid-row: 2/3; grid-row: 2/3;
padding-left: 10px; padding-left: 10px;
} }
section#member-profile > div:nth-child(4) { section#site-profile > div:nth-child(4) {
grid-column: 2/3; grid-column: 2/3;
grid-row: 2/3; grid-row: 2/3;
} }
section#member-profile > div:nth-child(4) a { section#site-profile > div:nth-child(4) a {
font-weight: bold; font-weight: bold;
text-decoration: underline; text-decoration: underline;
color: var(--primary-highlight); color: var(--primary-highlight);
} }
section#member-profile > div:nth-child(5) { section#site-profile > div:nth-child(5) {
grid-column: 3/4; grid-column: 3/4;
grid-row: 2/3; grid-row: 2/3;
padding-right: 10px; padding-right: 10px;
} }
section#member-profile > div:nth-child(6) { section#site-profile > div:nth-child(6) {
grid-column: 1/4; grid-column: 1/4;
grid-row: 3/4; grid-row: 3/4;
padding: 0 10px; padding: 0 10px;
} }
section#member-profile > div:nth-child(6) div { section#site-profile > div:nth-child(6) div {
display: inline-block; display: inline-block;
color: var(--secondary); color: var(--secondary);
word-wrap: break-word; word-wrap: break-word;
@ -99,7 +103,7 @@ section#member-profile > div:nth-child(6) div {
width: 49.6%; width: 49.6%;
} }
section#member-profile > div:nth-child(6) div > span { section#site-profile > div:nth-child(6) div > span {
display: block; display: block;
background: var(--primary); background: var(--primary);
color: var(--secondary); color: var(--secondary);
@ -108,49 +112,143 @@ section#member-profile > div:nth-child(6) div > span {
margin-bottom: 10px; margin-bottom: 10px;
} }
section#member-profile > div textarea { section#site-profile > div textarea {
width: 98.4%; width: 98.4%;
height: 85%; height: 85%;
} }
section#member-profile > div[class="member-avatar"] div, section#site-profile > div[class="member-avatar"] div,
section#member-profile > div[class="site-background"] div { section#site-profile > div[class="site-background"] div {
height: 100%; height: 100%;
border-radius: 3px; border-radius: 3px;
} }
section#member-profile div input[type="file"] { section#site-profile div input[type="file"] {
display: none; display: none;
visibility: hidden; visibility: hidden;
} }
section#member-profile div input[type="text"] { section#site-profile div input[type="text"] {
width: 98.4%; width: 98.4%;
height: 40px; height: 40px;
margin-bottom: 10px; margin-bottom: 10px;
} }
article[class="settings"] button { /*
SITE FEATURES TAB
*/
section#site-features > div.features-mail {
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-columns: auto;
gap: 15px;
width: 100%; width: 100%;
text-align: left; max-width: 880px;
height: 50px; margin: 10px auto 10px auto;
border-radius: 3px;
background: var(--secondary);
padding: 10px;
}
section#site-features > div.features-mail input {
width: 98.4%;
height: 40px;
padding-left: 5px;
margin-bottom: 10px;
}
section#site-features > div.features-mail a {
margin-right: 3px;
color: var(--primary);
display: inline-block;
height: 40px;
padding: 15px 0 0;
}
section#site-features > div.features-mail button {
width: 100%;
height: 40px;
margin-bottom: 5px; margin-bottom: 5px;
} }
article[class="settings"] button > span { section#site-features div.site-options button,
section#site-features div.site-maintenance button {
width: 90%;
height: 40px;
margin-bottom: 5px;
}
section#site-features button span {
font-size: 0.8em; font-size: 0.8em;
display: inline; display: inline;
top: -10px;
position: relative; position: relative;
} }
section[class="member-settings"] > div[class="features"] button[data-enabled="true"] { section#site-features > div.features-mail a[data-enabled="true"] {
color: var(--secondary-highlight);
font-weight: bold;
}
section#site-features > div.features-mail div[data-enabled="false"] {
visibility: hidden;
display: none;
}
section#site-features > div[class="features"] button[data-enabled="true"] {
color: var(--white); color: var(--white);
} }
section[class="member-settings"] > div[class="features"] button[data-enabled="false"] { section#site-features > div.site-options {
color: var(--primary); display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-columns: auto;
gap: 15px;
width: 100%;
max-width: 900px;
margin: 0 auto 10px auto;
border-radius: 3px;
}
section#site-features div.option-container {
background: var(--secondary); background: var(--secondary);
padding: 10px;
border-radius: 3px;
}
section#site-features div.option-container span {
display: block;
width: 100%;
text-align: center;
font-size: 0.8em;
}
section#site-features div.option-container svg {
fill: var(--primary);
position: relative;
top: 7px;
}
section#site-features > div.site-options button[data-enabled="true"] {
color: var(--primary-highlight);
background: var(--primary);
}
section#site-features > div.site-options button[data-enabled="false"] {
color: var(--secondary);
background: var(--secondary-highlight);
}
section#site-features > div.site-maintenance {
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-columns: auto;
gap: 15px;
width: 100%;
max-width: 900px;
margin: 0 auto 10px auto;
border-radius: 3px;
color: var(--primary);
} }
section[class="member-settings"] > div[class="theme"] button[data-enabled="true"] { section[class="member-settings"] > div[class="theme"] button[data-enabled="true"] {
@ -182,33 +280,6 @@ section[class="member-settings"] > div[class="theme"] button[data-enabled="false
padding: 3px; padding: 3px;
} }
section[class="member-settings"] > div[class="mail"] a {
margin-right: 3px;
color: var(--secondary);
display: inline-block;
height: 40px;
padding: 15px 0 0;
border-top: var(--primary) 1px solid;
}
section[class="member-settings"] > div[class="mail"] a[data-enabled="true"] {
color: var(--primary-highlight);
font-weight: bold;
border-top: var(--secondary-highlight) 1px solid;
}
section[class="member-settings"] > div[class="mail"] div[data-enabled="false"] {
visibility: hidden;
display: none;
}
section[class="member-settings"] > div[class="mail"] input {
width: 98.4%;
height: 40px;
padding-left: 5px;
margin-bottom: 10px;
}
section[class="data-settings"] { section[class="data-settings"] {
color: var(--white); color: var(--white);
} }

View file

@ -95,7 +95,7 @@ export default class SettingsIndex {
let tabs = document.querySelectorAll('.section-tab'); let tabs = document.querySelectorAll('.section-tab');
for (i = 0, length = tabBtn.length; i < length; i++) { for (i = 0, length = tabBtn.length; i < length; i++) {
tabBtn[i].addEventListener('click', e => { tabBtn[i].addEventListener('click', e => {
let tab = 'member-' + e.target.id; let tab = 'site-' + e.target.id;
for (i = 0, length = tabs.length; i < length; i++) { for (i = 0, length = tabs.length; i < length; i++) {
let tabID = tabs[i].id; let tabID = tabs[i].id;
if (tab == tabID) { if (tab == tabID) {

View file

@ -10,7 +10,7 @@
<button id="themes" class="tab-button">THEMES</button> <button id="themes" class="tab-button">THEMES</button>
</div> </div>
<section class="settings-tabs"> <section class="settings-tabs">
<section id="member-profile" class="section-tab show"> <section id="site-profile" class="section-tab hide">
<div class="member-avatar"> <div class="member-avatar">
<div class="avatar" style="background: url({{ $member['avatar'] }} ) no-repeat center center / cover"></div> <div class="avatar" style="background: url({{ $member['avatar'] }} ) no-repeat center center / cover"></div>
<input id="avatar-upload" type="file" name="avatar-upload"/> <input id="avatar-upload" type="file" name="avatar-upload"/>
@ -43,59 +43,10 @@
</div> </div>
</section> </section>
<section id="member-features" class="section-tab hide"> <section id="site-features" class="section-tab show">
MEMBER FEATURES <div class="features-mail">
<div class="features"> <label>SYSTEM EMAIL</label>
@if(isset($apiStatus) && $apiStatus == 'true')
<button id="api-access-toggle" title="allow external api" data-enabled="true">
<svg id="nav-menu-icon" class="icon">
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-landline"/>
</svg>
<span id="api-status">API ACCESS ENABLED</span>
</button>
@else
<button id="api-access-toggle" title="allow external api" data-enabled="false">
<svg id="nav-menu-icon" class="icon">
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-landline"/>
</svg>
<span id="api-status">API ACCESS NOT ENABLED</span>
</button>
@endif
@if(isset($dynamicRenderStatus) && $dynamicRenderStatus == 'true')
<button id="dynamic-render-toggle" title="allow external api" data-enabled="true">
<svg id="nav-menu-icon" class="icon">
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-cycle"/>
</svg>
<span id="dynamic-render-status">DYNAMIC PAGE RENDERING</span>
</button>
@else
<button id="dynamic-render-toggle" title="allow external api" data-enabled="false">
<svg id="nav-menu-icon" class="icon">
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-cycle"/>
</svg>
<span id="dynamic-render-status">STATIC PAGE RENDERING</span>
</button>
@endif
</div>
<div> <div>
<button id="create-backup">
<svg id="nav-menu-icon" class="icon">
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-back-in-time"/>
</svg>
<span>CREATE BACKUP</span>
</button><br/>
@if($lastBackup != '')
LAST BACK UP<br/>
<a href="/api/v1/backup/download">{{ $lastBackup }}</a><br/>
@else
<span>span No back ups. Frowny face.</span>
@endif
</div>
<div class="mail">
<label>Email</label><br/>
@if($mailOption == "option-none" or $mailOption == "") @if($mailOption == "option-none" or $mailOption == "")
<a href="#" class="mail-option" id="option-none" data-enabled="true">NONE</a> <a href="#" class="mail-option" id="option-none" data-enabled="true">NONE</a>
@else @else
@ -111,6 +62,8 @@
@else @else
<a href="#" class="mail-option" id="option-smtp" data-enabled="false">SMTP</a> <a href="#" class="mail-option" id="option-smtp" data-enabled="false">SMTP</a>
@endif @endif
</div>
@include('forms.mailforms') @include('forms.mailforms')
<button id="send-mail"> <button id="send-mail">
<svg id="nav-menu-icon" class="icon"> <svg id="nav-menu-icon" class="icon">
@ -119,8 +72,77 @@
<span>TEST MAIL</span> <span>TEST MAIL</span>
</button> </button>
</div> </div>
<div class="site-options">
<div class="option-container">
<svg id="nav-menu-icon" class="icon">
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-landline"/>
</svg>
@if(isset($apiStatus) && $apiStatus == 'true')
<button id="api-access-toggle" title="allow external api" data-enabled="true">
<span id="api-status">API ACCESS ENABLED</span>
</button>
@else
<button id="api-access-toggle" title="allow external api" data-enabled="false">
<span id="api-status">API ACCESS NOT ENABLED</span>
</button>
@endif
</div>
<div class="option-container">
<svg id="nav-menu-icon" class="icon">
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-cycle"/>
</svg>
@if(isset($dynamicRenderStatus) && $dynamicRenderStatus == 'true')
<button id="dynamic-render-toggle" title="allow external api" data-enabled="true">
<span id="dynamic-render-status">DYNAMIC PAGE RENDERING</span>
</button>
@else
<button id="dynamic-render-toggle" title="allow external api" data-enabled="false">
<span id="dynamic-render-status">STATIC PAGE RENDERING</span>
</button>
@endif
</div>
</div>
<div class="site-maintenance">
<div class="option-container">
<svg id="nav-menu-icon" class="icon">
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-copy"/>
</svg>
<button id="create-backup">
<span>CONTENT BACKUP</span>
</button>
<span>
@if($lastBackup != '')
LAST BACK UP
<a href="/api/v1/backup/download">{{ $lastBackup }}</a><br/>
@else
<span>span No back ups. Frowny face.</span>
@endif
<span>
</div>
<div class="option-container">
<svg id="nav-menu-icon" class="icon">
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-images"/>
</svg>
<button id="create-file-backup">
<span>FILE BACKUP</span>
</button>
<span>COMING SOON</span>
</div>
<div class="option-container">
<svg id="nav-menu-icon" class="icon">
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-back-in-time"/>
</svg>
<button id="reset-to-default">
<span>RESET TO DEFAULT</span>
</button>
<span>COMING SOON</span>
</div>
</div>
</section> </section>
<section id="member-themes" class="section-tab hide"> <section id="site-themes" class="section-tab hide">
MEMBER THEMES MEMBER THEMES
<div class="theme"> <div class="theme">
<label>Themes</label><br/> <label>Themes</label><br/>