Added configurable link section to Navbar
This commit is contained in:
parent
d41e9d1df9
commit
c82299f94b
16 changed files with 36 additions and 25 deletions
|
|
@ -26,5 +26,5 @@ module.exports = async function(req, res){
|
||||||
res.status(404);
|
res.status(404);
|
||||||
|
|
||||||
//Render page
|
//Render page
|
||||||
return res.render('404', {instance: config.instanceName, user: req.session.user, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('404', {instance: config.instanceName, links: config.links, user: req.session.user, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
|
|
@ -24,5 +24,5 @@ const csrfUtils = require('../utils/csrfUtils');
|
||||||
//register page functions
|
//register page functions
|
||||||
module.exports.get = async function(req, res){
|
module.exports.get = async function(req, res){
|
||||||
//Render page
|
//Render page
|
||||||
return res.render('about', {aboutText: config.aboutText, instance: config.instanceName, user: req.session.user, version: package.canopyDisplayVersion, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('about', {aboutText: config.aboutText, instance: config.instanceName, links: config.links, user: req.session.user, version: package.canopyDisplayVersion, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
|
|
@ -42,7 +42,7 @@ module.exports.get = async function(req, res){
|
||||||
|
|
||||||
//Render out the page
|
//Render out the page
|
||||||
return res.render('adminPanel', {
|
return res.render('adminPanel', {
|
||||||
instance: config.instanceName,
|
instance: config.instanceName, links: config.links,
|
||||||
user: req.session.user,
|
user: req.session.user,
|
||||||
rankEnum: permissionModel.rankEnum,
|
rankEnum: permissionModel.rankEnum,
|
||||||
chanGuide: chanGuide,
|
chanGuide: chanGuide,
|
||||||
|
|
|
||||||
|
|
@ -22,5 +22,5 @@ const csrfUtils = require('../utils/csrfUtils');
|
||||||
|
|
||||||
//channel functions
|
//channel functions
|
||||||
module.exports.get = function(req, res){
|
module.exports.get = function(req, res){
|
||||||
res.render('channel', {instance: config.instanceName, user: req.session.user, csrfToken: csrfUtils.generateToken(req)});
|
res.render('channel', {instance: config.instanceName, links: config.links, user: req.session.user, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
|
|
@ -42,7 +42,7 @@ module.exports.get = async function(req, res){
|
||||||
throw loggerUtils.exceptionSmith("Channel not found.", "queue");
|
throw loggerUtils.exceptionSmith("Channel not found.", "queue");
|
||||||
}
|
}
|
||||||
|
|
||||||
return res.render('channelSettings', {instance: config.instanceName, user: req.session.user, channel: chanDB, reqRank, rankEnum: permissionModel.rankEnum, csrfToken: csrfUtils.generateToken(req), unescape: validator.unescape});
|
return res.render('channelSettings', {instance: config.instanceName, links: config.links, user: req.session.user, channel: chanDB, reqRank, rankEnum: permissionModel.rankEnum, csrfToken: csrfUtils.generateToken(req), unescape: validator.unescape});
|
||||||
}catch(err){
|
}catch(err){
|
||||||
return exceptionHandler(res, err);
|
return exceptionHandler(res, err);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,18 +40,18 @@ module.exports.get = async function(req, res){
|
||||||
|
|
||||||
//If we have an invalid request
|
//If we have an invalid request
|
||||||
if(requestDB == null){
|
if(requestDB == null){
|
||||||
return res.render('emailChange', {instance: config.instanceName, user: req.session.user, csrfToken: csrfUtils.generateToken(req), valid: false});
|
return res.render('emailChange', {instance: config.instanceName, links: config.links, user: req.session.user, csrfToken: csrfUtils.generateToken(req), valid: false});
|
||||||
}
|
}
|
||||||
|
|
||||||
//Speak of our success (don't wait for the emails to be sent)
|
//Speak of our success (don't wait for the emails to be sent)
|
||||||
res.render('emailChange', {instance: config.instanceName, user: req.session.user, csrfToken: csrfUtils.generateToken(req), valid: true});
|
res.render('emailChange', {instance: config.instanceName, links: config.links, user: req.session.user, csrfToken: csrfUtils.generateToken(req), valid: true});
|
||||||
|
|
||||||
//Consume the request
|
//Consume the request
|
||||||
await requestDB.consume();
|
await requestDB.consume();
|
||||||
}else{
|
}else{
|
||||||
return res.render('emailChange', {instance: config.instanceName, user: req.session.user, csrfToken: csrfUtils.generateToken(req), valid: false});
|
return res.render('emailChange', {instance: config.instanceName, links: config.links, user: req.session.user, csrfToken: csrfUtils.generateToken(req), valid: false});
|
||||||
}
|
}
|
||||||
}catch(err){
|
}catch(err){
|
||||||
return res.render('emailChange', {instance: config.instanceName, user: req.session.user, csrfToken: csrfUtils.generateToken(req), valid: false});
|
return res.render('emailChange', {instance: config.instanceName, links: config.links, user: req.session.user, csrfToken: csrfUtils.generateToken(req), valid: false});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -24,5 +24,5 @@ const csrfUtils = require('../utils/csrfUtils');
|
||||||
//register page functions
|
//register page functions
|
||||||
module.exports.get = async function(req, res){
|
module.exports.get = async function(req, res){
|
||||||
//Render page
|
//Render page
|
||||||
return res.render('hrt', {instance: config.instanceName, user: req.session.user, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('hrt', {instance: config.instanceName, links: config.links, user: req.session.user, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
|
|
@ -29,7 +29,7 @@ const {exceptionHandler, errorHandler} = require('../utils/loggerUtils');
|
||||||
module.exports.get = async function(req, res){
|
module.exports.get = async function(req, res){
|
||||||
try{
|
try{
|
||||||
const chanGuide = await channelModel.getChannelList();
|
const chanGuide = await channelModel.getChannelList();
|
||||||
return res.render('index', {instance: config.instanceName, user: req.session.user, chanGuide: chanGuide, csrfToken: csrfUtils.generateToken(req), unescape: validator.unescape});
|
return res.render('index', {instance: config.instanceName, links: config.links, user: req.session.user, chanGuide: chanGuide, csrfToken: csrfUtils.generateToken(req), unescape: validator.unescape});
|
||||||
}catch(err){
|
}catch(err){
|
||||||
return exceptionHandler(res, err);
|
return exceptionHandler(res, err);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ module.exports.get = async function(req, res){
|
||||||
//if we have previous attempts for this user
|
//if we have previous attempts for this user
|
||||||
if(attempts != null){
|
if(attempts != null){
|
||||||
if(attempts.count > sessionUtils.maxAttempts){
|
if(attempts.count > sessionUtils.maxAttempts){
|
||||||
return res.render('lockedAccount', {instance: config.instanceName, user: req.session.user, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('lockedAccount', {instance: config.instanceName, links: config.links, user: req.session.user, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
|
|
||||||
//If the users login's are being throttled
|
//If the users login's are being throttled
|
||||||
|
|
@ -56,16 +56,16 @@ module.exports.get = async function(req, res){
|
||||||
const challenge = await altchaUtils.genCaptcha(difficulty, user);
|
const challenge = await altchaUtils.genCaptcha(difficulty, user);
|
||||||
|
|
||||||
//Render page
|
//Render page
|
||||||
return res.render('login', {instance: config.instanceName, user: req.session.user, challenge, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('login', {instance: config.instanceName, links: config.links, user: req.session.user, challenge, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
//otherwise
|
//otherwise
|
||||||
}else{
|
}else{
|
||||||
//Render generic page
|
//Render generic page
|
||||||
return res.render('login', {instance: config.instanceName, user: req.session.user, challenge: null, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('login', {instance: config.instanceName, links: config.links, user: req.session.user, challenge: null, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
//if we received invalid input
|
//if we received invalid input
|
||||||
}else{
|
}else{
|
||||||
//Render pretend nothing happened, send out a generic page
|
//Render pretend nothing happened, send out a generic page
|
||||||
return res.render('login', {instance: config.instanceName, user: req.session.user, challenge: null, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('login', {instance: config.instanceName, links: config.links, user: req.session.user, challenge: null, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -27,5 +27,5 @@ module.exports.get = async function(req, res){
|
||||||
const challenge = await altchaUtils.genCaptcha();
|
const challenge = await altchaUtils.genCaptcha();
|
||||||
|
|
||||||
//Render page
|
//Render page
|
||||||
return res.render('migrate', {instance: config.instanceName, user: req.session.user, challenge, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('migrate', {instance: config.instanceName, links: config.links, user: req.session.user, challenge, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
|
|
@ -27,5 +27,5 @@ module.exports.get = async function(req, res){
|
||||||
const challenge = await altchaUtils.genCaptcha();
|
const challenge = await altchaUtils.genCaptcha();
|
||||||
|
|
||||||
//render the page
|
//render the page
|
||||||
return res.render('newChannel', {instance: config.instanceName, user: req.session.user, challenge, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('newChannel', {instance: config.instanceName, links: config.links, user: req.session.user, challenge, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
|
|
@ -19,5 +19,5 @@ const config = require('../../../config.json');
|
||||||
|
|
||||||
//popout panel container functions
|
//popout panel container functions
|
||||||
module.exports.get = async function(req, res){
|
module.exports.get = async function(req, res){
|
||||||
res.render('popoutContainer', {instance: config.instanceName});
|
res.render('popoutContainer', {instance: config.instanceName, links: config.links});
|
||||||
}
|
}
|
||||||
|
|
@ -47,11 +47,11 @@ module.exports.get = async function(req, res){
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//Render page
|
//Render page
|
||||||
return res.render('passwordReset', {instance: config.instanceName, user: req.session.user, challenge, token, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('passwordReset', {instance: config.instanceName, links: config.links, user: req.session.user, challenge, token, csrfToken: csrfUtils.generateToken(req)});
|
||||||
//If we didn't get a valid token
|
//If we didn't get a valid token
|
||||||
}else{
|
}else{
|
||||||
//otherwise render generic page
|
//otherwise render generic page
|
||||||
return res.render('passwordReset', {instance: config.instanceName, user: req.session.user, challenge, token: null, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('passwordReset', {instance: config.instanceName, links: config.links, user: req.session.user, challenge, token: null, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
}catch(err){
|
}catch(err){
|
||||||
return exceptionHandler(res, err);
|
return exceptionHandler(res, err);
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ module.exports.get = async function(req, res){
|
||||||
const presence = await presenceUtils.getPresence(profile.user);
|
const presence = await presenceUtils.getPresence(profile.user);
|
||||||
|
|
||||||
res.render('profile', {
|
res.render('profile', {
|
||||||
instance: config.instanceName,
|
instance: config.instanceName, links: config.links,
|
||||||
user: req.session.user,
|
user: req.session.user,
|
||||||
profile,
|
profile,
|
||||||
selfProfile,
|
selfProfile,
|
||||||
|
|
@ -52,7 +52,7 @@ module.exports.get = async function(req, res){
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
res.render('profile', {
|
res.render('profile', {
|
||||||
instance: config.instanceName,
|
instance: config.instanceName, links: config.links,
|
||||||
user: req.session.user,
|
user: req.session.user,
|
||||||
profile: null,
|
profile: null,
|
||||||
selfProfile: false,
|
selfProfile: false,
|
||||||
|
|
|
||||||
|
|
@ -27,5 +27,5 @@ module.exports.get = async function(req, res){
|
||||||
const challenge = await altchaUtils.genCaptcha();
|
const challenge = await altchaUtils.genCaptcha();
|
||||||
|
|
||||||
//Render page
|
//Render page
|
||||||
return res.render('register', {instance: config.instanceName, user: req.session.user, challenge, csrfToken: csrfUtils.generateToken(req)});
|
return res.render('register', {instance: config.instanceName, links: config.links, user: req.session.user, challenge, csrfToken: csrfUtils.generateToken(req)});
|
||||||
}
|
}
|
||||||
|
|
@ -20,13 +20,24 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. %>
|
||||||
</span>
|
</span>
|
||||||
<span class="navbar-item" id="right-controls">
|
<span class="navbar-item" id="right-controls">
|
||||||
<% if(user){ %>
|
<% if(user){ %>
|
||||||
<p class="navbar-item">Welcome, <a class="navbar-item" id="username" href="/profile"><%= user.user %></a> - <% if(user.rank == "admin"){ %><a href="/adminPanel" title="Admin Panel" class="bi bi-server navbar-item"></a> - <% } %> <a class="navbar-item" href="/about">About</a> - <a class="navbar-item" href="javascript:" id="logout-button">Logout</a></p>
|
<p class="navbar-item">Welcome, <a class="navbar-item" id="username" href="/profile"><%= user.user %></a> - <% if(user.rank == "admin"){ %>
|
||||||
|
<a href="/adminPanel" title="Admin Panel" class="bi bi-server navbar-item"></a> -
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<% for(link of Object.keys(links)){ %>
|
||||||
|
<a target="_blank" class="navbar-item" href="<%- links[link] %>"><%= link %></a> -
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<a class="navbar-item" href="javascript:" id="logout-button">Logout</a></p>
|
||||||
<% }else{ %>
|
<% }else{ %>
|
||||||
<p class="navbar-item">Remember Me:</p>
|
<p class="navbar-item">Remember Me:</p>
|
||||||
<input class="navbar-item login-prompt" id="remember-me" type="checkbox">
|
<input class="navbar-item login-prompt" id="remember-me" type="checkbox">
|
||||||
<input class="navbar-item login-prompt" id="username-prompt" placeholder="username">
|
<input class="navbar-item login-prompt" id="username-prompt" placeholder="username">
|
||||||
<input class="navbar-item login-prompt" id="password-prompt" placeholder="password" type="password">
|
<input class="navbar-item login-prompt" id="password-prompt" placeholder="password" type="password">
|
||||||
<p class="navbar-item"><a class="navbar-item" href="javascript:" id="login-button">Login</a> - <a class="navbar-item" href="/passwordReset">Forgot Password</a> - <a class="navbar-item" href="/register">Register</a> - <a class="navbar-item" href="/about">About</a></p>
|
<p class="navbar-item"><a class="navbar-item" href="javascript:" id="login-button">Login</a> - <a class="navbar-item" href="/passwordReset">Forgot Password</a> - <a class="navbar-item" href="/register">Register</a>
|
||||||
|
<% for(link of Object.keys(links)){ %>
|
||||||
|
- <a target="_blank" class="navbar-item" href="<%- links[link] %>"><%= link %></a>
|
||||||
|
<% } %></p>
|
||||||
<% } %>
|
<% } %>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue