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.
78 lines
2.1 KiB
JavaScript
78 lines
2.1 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('site-settings.json').then(obj =>
|
|
{
|
|
settings = obj;
|
|
}).catch(err =>
|
|
{
|
|
//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(err =>
|
|
{
|
|
//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',
|
|
themes: themes,
|
|
settings: settings,
|
|
member: memberInfo[0]
|
|
});
|
|
})
|
|
}
|
|
else
|
|
{
|
|
res.redirect('/@/dashboard');
|
|
}
|
|
});
|
|
});
|
|
module.exports = router; |