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.
Fipamo/brain/routes/back/dash_settings.js

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;