Added dynamic container to improve settings page rendering when undersized.
This commit is contained in:
parent
864304f13b
commit
59fe38a5fe
|
|
@ -57,7 +57,6 @@ module.exports.post = async function(req, res){
|
||||||
res.status(400);
|
res.status(400);
|
||||||
return res.send({errors: validResult.array()})
|
return res.send({errors: validResult.array()})
|
||||||
}
|
}
|
||||||
|
|
||||||
}catch(err){
|
}catch(err){
|
||||||
return exceptionHandler(res, err);
|
return exceptionHandler(res, err);
|
||||||
}
|
}
|
||||||
|
|
@ -87,7 +86,6 @@ module.exports.delete = async function(req, res){
|
||||||
res.status(400);
|
res.status(400);
|
||||||
return res.send({errors: validResult.array()})
|
return res.send({errors: validResult.array()})
|
||||||
}
|
}
|
||||||
|
|
||||||
}catch(err){
|
}catch(err){
|
||||||
return exceptionHandler(res, err);
|
return exceptionHandler(res, err);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,34 +15,36 @@ You should have received a copy of the GNU Affero General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
||||||
<div id="admin-channel-list-div" class="admin-list-div">
|
<div id="admin-channel-list-div" class="admin-list-div">
|
||||||
<h3>Channel List:</h3>
|
<h3>Channel List:</h3>
|
||||||
<table id="admin-channel-list-table" class="admin-list-table">
|
<div class="dynamic-container">
|
||||||
<tr id="admin-channel-list-entry-title" class="admin-list-entry-title-row">
|
<table id="admin-channel-list-table" class="admin-list-table">
|
||||||
<td id="admin-channel-list-entry-img-title" class=" admin-list-entry-title admin-list-entry-item admin-list-entry-img-title">
|
<tr id="admin-channel-list-entry-title" class="admin-list-entry-title-row">
|
||||||
<h3>Img</h3>
|
<td id="admin-channel-list-entry-img-title" class=" admin-list-entry-title admin-list-entry-item admin-list-entry-img-title">
|
||||||
</td>
|
<h3>Img</h3>
|
||||||
<td id="admin-channel-list-entry-name-title" class=" admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>Name</h3>
|
<td id="admin-channel-list-entry-name-title" class=" admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>Name</h3>
|
||||||
<td id="admin-channel-list-entry-description-title" class=" admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>Description</h3>
|
<td id="admin-channel-list-entry-description-title" class=" admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>Description</h3>
|
||||||
</tr>
|
</td>
|
||||||
<% chanGuide.forEach((channel) => { %>
|
</tr>
|
||||||
<tr id="admin-channel-list-entry-<%- channel.name %>" class="">
|
<% chanGuide.forEach((channel) => { %>
|
||||||
<td id="admin-channel-list-entry-img-<%- channel.name %>" class=" admin-list-entry-item">
|
<tr id="admin-channel-list-entry-<%- channel.name %>" class="">
|
||||||
<a href="/c/<%- channel.name %>" class=" admin-list-entry-item">
|
<td id="admin-channel-list-entry-img-<%- channel.name %>" class=" admin-list-entry-item">
|
||||||
<img id="admin-channel-list-entry-img-<%- channel.name %>" class=" admin-list-entry-item" src="<%- channel.thumbnail %>">
|
<a href="/c/<%- channel.name %>" class=" admin-list-entry-item">
|
||||||
</a>
|
<img id="admin-channel-list-entry-img-<%- channel.name %>" class=" admin-list-entry-item" src="<%- channel.thumbnail %>">
|
||||||
</td>
|
</a>
|
||||||
<td id="admin-channel-list-entry-name-<%- channel.name %>" class=" admin-list-entry-item not-first-col">
|
</td>
|
||||||
<a href="/c/<%- channel.name %>" class=" admin-list-entry-item">
|
<td id="admin-channel-list-entry-name-<%- channel.name %>" class=" admin-list-entry-item not-first-col">
|
||||||
<%- channel.name %>
|
<a href="/c/<%- channel.name %>" class=" admin-list-entry-item">
|
||||||
</a>
|
<%- channel.name %>
|
||||||
</td>
|
</a>
|
||||||
<td id="admin-channel-list-entry-description-<%- channel.name %>" class="large admin-list-entry-item not-first-col">
|
</td>
|
||||||
<%- channel.description %>
|
<td id="admin-channel-list-entry-description-<%- channel.name %>" class="large admin-list-entry-item not-first-col">
|
||||||
</td>
|
<%- channel.description %>
|
||||||
</tr>
|
</td>
|
||||||
<% }); %>
|
</tr>
|
||||||
</table>
|
<% }); %>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -15,31 +15,33 @@ You should have received a copy of the GNU Affero General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
||||||
<div id="admin-perm-list-div" class="admin-list-div">
|
<div id="admin-perm-list-div" class="admin-list-div">
|
||||||
<h3>Permissions:</h3>
|
<h3>Permissions:</h3>
|
||||||
<form action="javascript:" id="admin-perm-list-field" class="admin-list-field">
|
<div class="dynamic-container">
|
||||||
<% Object.keys(permList).forEach((key)=>{ %>
|
<form action="javascript:" id="admin-perm-list-field" class="admin-list-field">
|
||||||
<% if(key != "channelOverrides"){ %>
|
<% Object.keys(permList).forEach((key)=>{ %>
|
||||||
<span class="admin-list-field-container">
|
<% if(key != "channelOverrides"){ %>
|
||||||
<label id="admin-perm-list-label-<%- key %>" class="admin-list-label admin-perm-list" for="admin-perm-list-rank-select-<%- key %>"><%- key %>: </label>
|
<span class="admin-list-field-container">
|
||||||
<select id="admin-perm-list-rank-select-<%- key %>" name="admin-perm-list-rank-select-<%- key %>" class="admin-list-select admin-perm-list-rank-select">
|
<label id="admin-perm-list-label-<%- key %>" class="admin-list-label admin-perm-list" for="admin-perm-list-rank-select-<%- key %>"><%- key %>: </label>
|
||||||
<%rankEnum.slice().reverse().forEach((rank)=>{ %>
|
<select id="admin-perm-list-rank-select-<%- key %>" name="admin-perm-list-rank-select-<%- key %>" class="admin-list-select admin-perm-list-rank-select">
|
||||||
<option <%if(permList[key] == rank){%> selected <%}%> value="<%- rank %>"><%- rank %></option>
|
<%rankEnum.slice().reverse().forEach((rank)=>{ %>
|
||||||
<% }); %>
|
<option <%if(permList[key] == rank){%> selected <%}%> value="<%- rank %>"><%- rank %></option>
|
||||||
</select>
|
<% }); %>
|
||||||
</span>
|
</select>
|
||||||
<% } %>
|
</span>
|
||||||
<% }); %>
|
<% } %>
|
||||||
<h4 class="admin-list-field-container">Channel Overrides:</h4>
|
<% }); %>
|
||||||
<% Object.keys(permList.channelOverrides).forEach((key)=>{ %>
|
<h4 class="admin-list-field-container">Channel Overrides:</h4>
|
||||||
<% if(key != "channelOverrides"){ %>
|
<% Object.keys(permList.channelOverrides).forEach((key)=>{ %>
|
||||||
<span class="admin-list-field-container">
|
<% if(key != "channelOverrides"){ %>
|
||||||
<label id="admin-chan-perm-list-label-<%- key %>" class="admin-list-label admin-chan-perm-list" for="admin-chan-perm-list-rank-select-<%- key %>"><%- key %>: </label>
|
<span class="admin-list-field-container">
|
||||||
<select id="admin-chan-perm-list-rank-select-<%- key %>" name="admin-chan-perm-list-rank-select-<%- key %>" class="admin-list-select admin-chan-perm-list-rank-select">
|
<label id="admin-chan-perm-list-label-<%- key %>" class="admin-list-label admin-chan-perm-list" for="admin-chan-perm-list-rank-select-<%- key %>"><%- key %>: </label>
|
||||||
<%rankEnum.slice().reverse().forEach((rank)=>{ %>
|
<select id="admin-chan-perm-list-rank-select-<%- key %>" name="admin-chan-perm-list-rank-select-<%- key %>" class="admin-list-select admin-chan-perm-list-rank-select">
|
||||||
<option <%if(permList.channelOverrides[key] == rank){%> selected <%}%> value="<%- rank %>"><%- rank %></option>
|
<%rankEnum.slice().reverse().forEach((rank)=>{ %>
|
||||||
<% }); %>
|
<option <%if(permList.channelOverrides[key] == rank){%> selected <%}%> value="<%- rank %>"><%- rank %></option>
|
||||||
</select>
|
<% }); %>
|
||||||
</span>
|
</select>
|
||||||
<% } %>
|
</span>
|
||||||
<% }); %>
|
<% } %>
|
||||||
</form>
|
<% }); %>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
18
src/views/partial/adminPanel/tokeCommandList.ejs
Normal file
18
src/views/partial/adminPanel/tokeCommandList.ejs
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
<!--Canopy - The next generation of stoner streaming software
|
||||||
|
Copyright (C) 2024 Rainbownapkin and the TTN Community
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as
|
||||||
|
published by the Free Software Foundation, either version 3 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
||||||
|
<div id="admin-channel-list-div" class="admin-list-div">
|
||||||
|
<h3>Toke Command List:</h3>
|
||||||
|
</div>
|
||||||
|
|
@ -15,32 +15,34 @@ You should have received a copy of the GNU Affero General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
||||||
<div id="admin-ban-list-div" class="admin-list-div">
|
<div id="admin-ban-list-div" class="admin-list-div">
|
||||||
<h3>User Ban List:</h3>
|
<h3>User Ban List:</h3>
|
||||||
<table id="admin-ban-list-table" class="admin-list-table">
|
<div class="dynamic-container">
|
||||||
<tr id="admin-ban-list-entry-title" class="admin-list-entry-title-row">
|
<table id="admin-ban-list-table" class="admin-list-table">
|
||||||
<td id="admin-ban-list-entry-img-title" class="admin-list-entry-title admin-list-entry-item admin-list-entry-img-title">
|
<tr id="admin-ban-list-entry-title" class="admin-list-entry-title-row">
|
||||||
<h3>Img</h3>
|
<td id="admin-ban-list-entry-img-title" class="admin-list-entry-title admin-list-entry-item admin-list-entry-img-title">
|
||||||
</td>
|
<h3>Img</h3>
|
||||||
<td id="admin-ban-list-entry-id-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>ID</h3>
|
<td id="admin-ban-list-entry-id-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>ID</h3>
|
||||||
<td id="admin-ban-list-entry-name-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>Name</h3>
|
<td id="admin-ban-list-entry-name-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>Name</h3>
|
||||||
<td id="admin-ban-list-entry-date-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>Sign-Up<br>Date</h3>
|
<td id="admin-ban-list-entry-date-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>Sign-Up<br>Date</h3>
|
||||||
<td id="admin-ban-list-entry-ban-date-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>Ban<br>Date</h3>
|
<td id="admin-ban-list-entry-ban-date-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>Ban<br>Date</h3>
|
||||||
<td id="admin-ban-list-entry-expiration-date-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>Expires</h3>
|
<td id="admin-ban-list-entry-expiration-date-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>Expires</h3>
|
||||||
<td id="admin-ban-list-entry-expiration-type-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>Expiration<br>Action</h3>
|
<td id="admin-ban-list-entry-expiration-type-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>Expiration<br>Action</h3>
|
||||||
<td id="admin-ban-list-entry-actions-type-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
|
<td id="admin-ban-list-entry-actions-type-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
|
||||||
</tr>
|
</td>
|
||||||
</table>
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -15,69 +15,71 @@ You should have received a copy of the GNU Affero General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
||||||
<div id="admin-user-list-div" class="admin-list-div">
|
<div id="admin-user-list-div" class="admin-list-div">
|
||||||
<h3>User List:</h3>
|
<h3>User List:</h3>
|
||||||
<table id="admin-user-list-table" class="admin-list-table">
|
<div class="dynamic-container">
|
||||||
<tr id="admin-user-list-entry-title" class="admin-list-entry-title-row">
|
<table id="admin-user-list-table" class="admin-list-table">
|
||||||
<td id="admin-user-list-entry-img-title" class="admin-list-entry-title admin-list-entry-item admin-list-entry-img-title">
|
<tr id="admin-user-list-entry-title" class="admin-list-entry-title-row">
|
||||||
<h3>Img</h3>
|
<td id="admin-user-list-entry-img-title" class="admin-list-entry-title admin-list-entry-item admin-list-entry-img-title">
|
||||||
</td>
|
<h3>Img</h3>
|
||||||
<td id="admin-user-list-entry-id-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>ID</h3>
|
<td id="admin-user-list-entry-id-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>ID</h3>
|
||||||
<td id="admin-user-list-entry-name-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>Name</h3>
|
<td id="admin-user-list-entry-name-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>Name</h3>
|
||||||
<td id="admin-user-list-entry-rank-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>Rank</h3>
|
<td id="admin-user-list-entry-rank-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>Rank</h3>
|
||||||
<td id="admin-user-list-entry-mail-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>E-Mail</h3>
|
<td id="admin-user-list-entry-mail-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>E-Mail</h3>
|
||||||
<td id="admin-user-list-entry-date-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
<h3>Sign-Up<br>Date</h3>
|
<td id="admin-user-list-entry-date-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
<h3>Sign-Up<br>Date</h3>
|
||||||
<td id="admin-user-list-entry-control-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
</td>
|
||||||
|
<td id="admin-user-list-entry-control-title" class="admin-list-entry-title admin-list-entry-item not-first-col">
|
||||||
</td>
|
|
||||||
</tr>
|
</td>
|
||||||
<% userList.forEach((curUser) => { %>
|
</tr>
|
||||||
<tr id="admin-user-list-entry-<%- curUser.user %>" class="admin-list-entry">
|
<% userList.forEach((curUser) => { %>
|
||||||
<td id="admin-user-list-entry-img-<%- curUser.user %>" class="admin-list-entry-item">
|
<tr id="admin-user-list-entry-<%- curUser.user %>" class="admin-list-entry">
|
||||||
<a href="/profile/<%- curUser.user %>" class="admin-list-entry-item">
|
<td id="admin-user-list-entry-img-<%- curUser.user %>" class="admin-list-entry-item">
|
||||||
<img id="admin-user-list-entry-img-<%- curUser.user %>" class="admin-list-entry-item" src="<%- curUser.img %>">
|
<a href="/profile/<%- curUser.user %>" class="admin-list-entry-item">
|
||||||
</a>
|
<img id="admin-user-list-entry-img-<%- curUser.user %>" class="admin-list-entry-item" src="<%- curUser.img %>">
|
||||||
</td>
|
</a>
|
||||||
<td id="admin-user-list-entry-id-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
</td>
|
||||||
<a href="/profile/<%- curUser.user %>" class="admin-list-entry-item">
|
<td id="admin-user-list-entry-id-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
||||||
<%- curUser.id %>
|
<a href="/profile/<%- curUser.user %>" class="admin-list-entry-item">
|
||||||
</a>
|
<%- curUser.id %>
|
||||||
</td>
|
</a>
|
||||||
<td id="admin-user-list-entry-name-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
</td>
|
||||||
<a href="/profile/<%- curUser.user %>" class="admin-list-entry-item">
|
<td id="admin-user-list-entry-name-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
||||||
<%- curUser.user %>
|
<a href="/profile/<%- curUser.user %>" class="admin-list-entry-item">
|
||||||
</a>
|
<%- curUser.user %>
|
||||||
</td>
|
</a>
|
||||||
<td id="admin-user-list-entry-rank-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
</td>
|
||||||
<% if(rankEnum.indexOf(curUser.rank) < rankEnum.indexOf(user.rank)){%>
|
<td id="admin-user-list-entry-rank-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
||||||
<select id="admin-user-list-rank-select-<%- curUser.user %>" class="admin-user-list-rank-select">
|
<% if(rankEnum.indexOf(curUser.rank) < rankEnum.indexOf(user.rank)){%>
|
||||||
<%rankEnum.slice().reverse().forEach((rank)=>{ %>
|
<select id="admin-user-list-rank-select-<%- curUser.user %>" class="admin-user-list-rank-select">
|
||||||
<option <%if(curUser.rank == rank){%> selected <%}%> value="<%- rank %>"><%- rank %></option>
|
<%rankEnum.slice().reverse().forEach((rank)=>{ %>
|
||||||
<% }); %>
|
<option <%if(curUser.rank == rank){%> selected <%}%> value="<%- rank %>"><%- rank %></option>
|
||||||
</select>
|
<% }); %>
|
||||||
<% }else{ %>
|
</select>
|
||||||
<%- curUser.rank %>
|
<% }else{ %>
|
||||||
<% } %>
|
<%- curUser.rank %>
|
||||||
</td>
|
<% } %>
|
||||||
<td id="admin-user-list-entry-email-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
</td>
|
||||||
<%- curUser.email ? curUser.email : "N/A" %>
|
<td id="admin-user-list-entry-email-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
||||||
</td>
|
<%- curUser.email ? curUser.email : "N/A" %>
|
||||||
<td id="admin-user-list-entry-date-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
</td>
|
||||||
<%- curUser.date.toUTCString() %>
|
<td id="admin-user-list-entry-date-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
||||||
</td>
|
<%- curUser.date.toUTCString() %>
|
||||||
<td id="admin-user-list-entry-action-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
</td>
|
||||||
<!-- It's either this or add whitespce >:( -->
|
<td id="admin-user-list-entry-action-<%- curUser.user %>" class="admin-list-entry-item not-first-col">
|
||||||
<i class="bi-radioactive admin-user-list-icon admin-user-list-nuke-icon" id="admin-user-list-nuke-icon-<%- curUser.user %>" title="Nuke Account: <%- curUser.user %>"></i><i class="bi-fire admin-user-list-icon admin-user-list-ban-icon" id="admin-user-list-ban-icon-<%- curUser.user %>" title="Ban User: <%- curUser.user %>"></i><i class="bi-arrow-clockwise admin-user-list-icon admin-user-list-pw-reset-icon" id="admin-user-list-pw-reset-icon-<%- curUser.user %>" title="Generate Password Reset Link for <%- curUser.user %>"></i>
|
<!-- It's either this or add whitespce >:( -->
|
||||||
</td>
|
<i class="bi-radioactive admin-user-list-icon admin-user-list-nuke-icon" id="admin-user-list-nuke-icon-<%- curUser.user %>" title="Nuke Account: <%- curUser.user %>"></i><i class="bi-fire admin-user-list-icon admin-user-list-ban-icon" id="admin-user-list-ban-icon-<%- curUser.user %>" title="Ban User: <%- curUser.user %>"></i><i class="bi-arrow-clockwise admin-user-list-icon admin-user-list-pw-reset-icon" id="admin-user-list-pw-reset-icon-<%- curUser.user %>" title="Generate Password Reset Link for <%- curUser.user %>"></i>
|
||||||
</tr>
|
</td>
|
||||||
<% }); %>
|
</tr>
|
||||||
</table>
|
<% }); %>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -19,16 +19,18 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
||||||
<input placeholder="Add Username..." id="new-ban-input" class="control-prompt">
|
<input placeholder="Add Username..." id="new-ban-input" class="control-prompt">
|
||||||
<button id="new-ban-button" class="danger-button">Ban</button>
|
<button id="new-ban-button" class="danger-button">Ban</button>
|
||||||
</div>
|
</div>
|
||||||
<table id="admin-ban-list-table" class="admin-list-table">
|
<div class="dynamic-container">
|
||||||
<tr class="admin-list-entry-title-row">
|
<table id="admin-ban-list-table" class="admin-list-table">
|
||||||
<td class="admin-list-entry-item admin-list-entry-img-title"><h3>Img</h3></td>
|
<tr class="admin-list-entry-title-row">
|
||||||
<td id="admin-user-list-entry-id-title" class="admin-list-entry-item not-first-col"><h3>ID</h3></td>
|
<td class="admin-list-entry-item admin-list-entry-img-title"><h3>Img</h3></td>
|
||||||
<td class="admin-list-entry-item not-first-col"><h3>Name</h3></td>
|
<td id="admin-user-list-entry-id-title" class="admin-list-entry-item not-first-col"><h3>ID</h3></td>
|
||||||
<td class="admin-list-entry-item not-first-col"><h3>Ban<br>Alts</h3></td>
|
<td class="admin-list-entry-item not-first-col"><h3>Name</h3></td>
|
||||||
<td id="channel-user-list-entry-ban-date-title" class="admin-list-entry-item not-first-col"><h3>Ban Date</h3></td>
|
<td class="admin-list-entry-item not-first-col"><h3>Ban<br>Alts</h3></td>
|
||||||
<td id="channel-user-list-entry-expiration-date-title" class="admin-list-entry-item not-first-col"><h3>Expires</h3></td>
|
<td id="channel-user-list-entry-ban-date-title" class="admin-list-entry-item not-first-col"><h3>Ban Date</h3></td>
|
||||||
<td id="channel-user-list-entry-actions-title" class="admin-list-entry-item not-first-col"> </td>
|
<td id="channel-user-list-entry-expiration-date-title" class="admin-list-entry-item not-first-col"><h3>Expires</h3></td>
|
||||||
</tr>
|
<td id="channel-user-list-entry-actions-title" class="admin-list-entry-item not-first-col"> </td>
|
||||||
<!-- This is getting filled via AJAX since we need to refresh it when new users are added anywho. -->
|
</tr>
|
||||||
</table>
|
<!-- This is getting filled via AJAX since we need to refresh it when new users are added anywho. -->
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -15,18 +15,20 @@ You should have received a copy of the GNU Affero General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
||||||
<div class="admin-list-div">
|
<div class="admin-list-div">
|
||||||
<h3> Permissions:</h3>
|
<h3> Permissions:</h3>
|
||||||
<form action="javascript:" class="admin-list-field">
|
<div class="dynamic-container">
|
||||||
<% Object.keys(channel.permissions.toObject()).forEach((key)=>{ %>
|
<form action="javascript:" class="admin-list-field">
|
||||||
<% if(key != "channelOverrides"){ %>
|
<% Object.keys(channel.permissions.toObject()).forEach((key)=>{ %>
|
||||||
<span class="admin-list-field-container">
|
<% if(key != "channelOverrides"){ %>
|
||||||
<label id="admin-perm-list-label-<%- key %>" class="admin-list-label admin-perm-list" for="admin-perm-list-rank-select-<%- key %>"><%- key %>: </label>
|
<span class="admin-list-field-container">
|
||||||
<select id="admin-perm-list-rank-select-<%- key %>" name="admin-perm-list-rank-select-<%- key %>" class="channel-perm-select admin-list-select admin-perm-list-rank-select">
|
<label id="admin-perm-list-label-<%- key %>" class="admin-list-label admin-perm-list" for="admin-perm-list-rank-select-<%- key %>"><%- key %>: </label>
|
||||||
<%rankEnum.slice().reverse().forEach((rank)=>{ %>
|
<select id="admin-perm-list-rank-select-<%- key %>" name="admin-perm-list-rank-select-<%- key %>" class="channel-perm-select admin-list-select admin-perm-list-rank-select">
|
||||||
<option <%if(channel.permissions.toObject()[key] == rank){%> selected <%}%> value="<%- rank %>"><%- rank %></option>
|
<%rankEnum.slice().reverse().forEach((rank)=>{ %>
|
||||||
<% }); %>
|
<option <%if(channel.permissions.toObject()[key] == rank){%> selected <%}%> value="<%- rank %>"><%- rank %></option>
|
||||||
</select>
|
<% }); %>
|
||||||
</span>
|
</select>
|
||||||
<% } %>
|
</span>
|
||||||
<% }); %>
|
<% } %>
|
||||||
</form>
|
<% }); %>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -15,12 +15,14 @@ You should have received a copy of the GNU Affero General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
||||||
<div class="admin-list-div">
|
<div class="admin-list-div">
|
||||||
<h3>Channel Preferences:</h3>
|
<h3>Channel Preferences:</h3>
|
||||||
<form action="javascript:" class="admin-list-field">
|
<div class="dynamic-container">
|
||||||
<% Object.keys(channel.settings).forEach((key) => { %>
|
<form action="javascript:" class="admin-list-field">
|
||||||
<span class="admin-list-field-container">
|
<% Object.keys(channel.settings).forEach((key) => { %>
|
||||||
<label class="admin-list-label"><%- key %>:</label>
|
<span class="admin-list-field-container">
|
||||||
<input id=<%- `channel-preference-${key}` %> class="channel-preference-list-item" type="checkbox" <% if(channel.settings[key]){ %> checked <% } %>>
|
<label class="admin-list-label"><%- key %>:</label>
|
||||||
</span>
|
<input id=<%- `channel-preference-${key}` %> class="channel-preference-list-item" type="checkbox" <% if(channel.settings[key]){ %> checked <% } %>>
|
||||||
<% }); %>
|
</span>
|
||||||
</form>
|
<% }); %>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -24,13 +24,15 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.-->
|
||||||
<% }); %>
|
<% }); %>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<table class="admin-list-table">
|
<div class="dynamic-container">
|
||||||
<tr class="admin-list-entry-title-row">
|
<table class="admin-list-table">
|
||||||
<td class="admin-list-entry-item admin-list-entry-img-title"><h3>Img</h3></td>
|
<tr class="admin-list-entry-title-row">
|
||||||
<td id="admin-user-list-entry-id-title" class="admin-list-entry-item not-first-col"><h3>ID</h3></td>
|
<td class="admin-list-entry-item admin-list-entry-img-title"><h3>Img</h3></td>
|
||||||
<td class="admin-list-entry-item not-first-col"><h3>Name</h3></td>
|
<td id="admin-user-list-entry-id-title" class="admin-list-entry-item not-first-col"><h3>ID</h3></td>
|
||||||
<td id="channel-user-list-entry-rank-title" class="admin-list-entry-item not-first-col"><h3>Rank</h3></td>
|
<td class="admin-list-entry-item not-first-col"><h3>Name</h3></td>
|
||||||
</tr>
|
<td id="channel-user-list-entry-rank-title" class="admin-list-entry-item not-first-col"><h3>Rank</h3></td>
|
||||||
<!-- This is getting filled via AJAX since we need to refresh it when new users are added anywho. -->
|
</tr>
|
||||||
</table>
|
<!-- This is getting filled via AJAX since we need to refresh it when new users are added anywho. -->
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -30,10 +30,12 @@ body{
|
||||||
form{
|
form{
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
padding: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
table{
|
table{
|
||||||
border-spacing: 0px;
|
border-spacing: 0px;
|
||||||
|
width: 100%
|
||||||
}
|
}
|
||||||
|
|
||||||
td{
|
td{
|
||||||
|
|
@ -65,6 +67,10 @@ input.control-prompt{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.dynamic-container{
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
/* Navbar */
|
/* Navbar */
|
||||||
#navbar{
|
#navbar{
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
||||||
|
|
@ -137,16 +137,13 @@ button:active{
|
||||||
background-color: var(--focus0-alt1);
|
background-color: var(--focus0-alt1);
|
||||||
}
|
}
|
||||||
|
|
||||||
table, form{
|
.dynamic-container{
|
||||||
background-color: var(--bg1);
|
background-color: var(--bg1);
|
||||||
color: var(--accent1);
|
color: var(--accent1);
|
||||||
box-shadow: 3px 3px 1px var(--bg1-alt0) inset;
|
box-shadow: 3px 3px 1px var(--bg1-alt0) inset;
|
||||||
border-radius: 1em;
|
border-radius: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
form{
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
tr{
|
tr{
|
||||||
box-shadow: var(--accent1) 0px 1em 1px -2em, var(--accent1) 0px -1em 1px -1em;
|
box-shadow: var(--accent1) 0px 1em 1px -2em, var(--accent1) 0px -1em 1px -1em;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue