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:
parent
428e74ae60
commit
9bc0ae8bed
3 changed files with 215 additions and 122 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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,74 +43,27 @@
|
||||||
|
|
||||||
</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')
|
<div>
|
||||||
<button id="api-access-toggle" title="allow external api" data-enabled="true">
|
@if($mailOption == "option-none" or $mailOption == "")
|
||||||
<svg id="nav-menu-icon" class="icon">
|
<a href="#" class="mail-option" id="option-none" data-enabled="true">NONE</a>
|
||||||
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-landline"/>
|
@else
|
||||||
</svg>
|
<a href="#" class="mail-option" id="option-none" data-enabled="false">NONE</a>
|
||||||
<span id="api-status">API ACCESS ENABLED</span>
|
@endif
|
||||||
</button>
|
@if($mailOption == "option-mg" or $mailOption == "")
|
||||||
@else
|
<a href="#" class="mail-option" id="option-mg" data-enabled="true">MAILGUN</a>
|
||||||
<button id="api-access-toggle" title="allow external api" data-enabled="false">
|
@else
|
||||||
<svg id="nav-menu-icon" class="icon">
|
<a href="#" class="mail-option" id="option-mg" data-enabled="false">MAILGUN</a>
|
||||||
<use id="nav-menu-icon" xlink:href="/assets/images/global/sprite.svg#entypo-landline"/>
|
@endif
|
||||||
</svg>
|
@if($mailOption == "option-smtp" or $mailOption == "")
|
||||||
<span id="api-status">API ACCESS NOT ENABLED</span>
|
<a href="#" class="mail-option" id="option-smtp" data-enabled="true">SMTP</a>
|
||||||
</button>
|
@else
|
||||||
|
<a href="#" class="mail-option" id="option-smtp" data-enabled="false">SMTP</a>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
|
||||||
@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>
|
|
||||||
<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 == "")
|
|
||||||
<a href="#" class="mail-option" id="option-none" data-enabled="true">NONE</a>
|
|
||||||
@else
|
|
||||||
<a href="#" class="mail-option" id="option-none" data-enabled="false">NONE</a>
|
|
||||||
@endif
|
|
||||||
@if($mailOption == "option-mg" or $mailOption == "")
|
|
||||||
<a href="#" class="mail-option" id="option-mg" data-enabled="true">MAILGUN</a>
|
|
||||||
@else
|
|
||||||
<a href="#" class="mail-option" id="option-mg" data-enabled="false">MAILGUN</a>
|
|
||||||
@endif
|
|
||||||
@if($mailOption == "option-smtp" or $mailOption == "")
|
|
||||||
<a href="#" class="mail-option" id="option-smtp" data-enabled="true">SMTP</a>
|
|
||||||
@else
|
|
||||||
<a href="#" class="mail-option" id="option-smtp" data-enabled="false">SMTP</a>
|
|
||||||
@endif
|
|
||||||
@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/>
|
||||||
|
|
Loading…
Reference in a new issue