You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.6 KiB
JavaScript
71 lines
1.6 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const FileHound = require('filehound');
|
|
const Models = require('../../models');
|
|
const fs = require('fs-extra');
|
|
var settings = [];
|
|
//--------------------------
|
|
// SETTINGS
|
|
//--------------------------
|
|
router.get('/', function(req, res) {
|
|
fs.readJson('config/site-settings.json')
|
|
.then(obj => {
|
|
settings = obj;
|
|
})
|
|
.catch(() => {
|
|
//console.error(err)
|
|
});
|
|
let themes = [];
|
|
FileHound.create()
|
|
.paths('themes')
|
|
.ext('json')
|
|
.find()
|
|
.then(files => {
|
|
files.forEach(file => {
|
|
fs.readJson(file)
|
|
.then(theme => {
|
|
if (theme.name == settings.theme) {
|
|
themes.push({
|
|
theme: theme,
|
|
current: 'true'
|
|
});
|
|
} else {
|
|
themes.push({
|
|
theme: theme,
|
|
current: 'false'
|
|
});
|
|
}
|
|
})
|
|
.catch(() => {
|
|
//console.error(err)
|
|
});
|
|
});
|
|
if (req.session.user) {
|
|
let memberInfo = [];
|
|
Models.User.findById(req.session.user.id).then(user => {
|
|
memberInfo.push({
|
|
handle: user.handle,
|
|
email: user.email,
|
|
avi: user.avatar
|
|
});
|
|
themes.sort(function(a, b) {
|
|
var textA = a.theme.name.toUpperCase();
|
|
var textB = b.theme.name.toUpperCase();
|
|
return textA < textB ? -1 : textA > textB ? 1 : 0;
|
|
});
|
|
res.render('dash/settings', {
|
|
title: 'Dashboard | Settings',
|
|
welcome: 'Your Settings',
|
|
user_status: true,
|
|
themes: themes,
|
|
settings: settings,
|
|
member: memberInfo[0]
|
|
});
|
|
});
|
|
} else {
|
|
res.redirect('/@/dashboard');
|
|
}
|
|
});
|
|
});
|
|
module.exports = router;
|