import { ServerSettings } from '../database/config.js'; import { Alert, getLanguage, Navbar } from '../utils/system.js'; export const Settings = async function(req,res){ let custom_link = await ServerSettings.findOne({ where: {key: 'custom_link'}}); let link_url = await ServerSettings.findOne({ where: {key: 'link_url'}}); let user_registration = await ServerSettings.findOne({ where: {key: 'user_registration'}}); let registration_secret = await ServerSettings.findOne({ where: {key: 'registration_secret'}}); let authentication = await ServerSettings.findOne({ where: {key: 'authentication'}}); let custom_link_enabled = ''; try { if (custom_link.value == true) { custom_link_enabled = 'checked'; } } catch { console.log('Custom Link: No Value Set'); } let user_registration_enabled = ''; try { if (user_registration.value == true) { user_registration_enabled = 'checked'; } } catch { console.log('User Registration: No Value Set'); } let link_url_value = ''; try { link_url_value = link_url.value; } catch { console.log('Link URL: No Value Set'); } let registration_secret_value = ''; try { registration_secret_value = registration_secret.value; } catch { console.log('Registration Secret: No Value Set'); } res.render("settings",{ alert: '', username: req.session.username, role: req.session.role, user_registration: user_registration_enabled, registration_secret: registration_secret_value, custom_link: custom_link_enabled, link_url: link_url_value, authentication: authentication.value, navbar: await Navbar(req), }); } export const updateSettings = async function (req, res) { let { user_registration, registration_secret, custom_link, link_url, authentication } = req.body; let { host2, tag2, ip2, port2 } = req.body; let { host3, tag3, ip3, port3 } = req.body; let { host4, tag4, ip4, port4 } = req.body; let trigger_name = req.header('hx-trigger-name'); let trigger_id = req.header('hx-trigger'); // If the trigger is 'submit', return the button if (trigger_id == 'submit'){ res.send(``); return; } // Continues on if the trigger is 'settings // Custom link if (custom_link) { let exists = await ServerSettings.findOne({ where: {key: 'custom_link'}}); if (exists) { await ServerSettings.update({value: true}, {where: {key: 'custom_link'}}); } else { await ServerSettings.create({ key: 'custom_link', value: true}); } let exists2 = await ServerSettings.findOne({ where: {key: 'link_url'}}); if (exists2) { await ServerSettings.update({value: link_url}, {where: {key: 'link_url'}}); } else { await ServerSettings.create({ key: 'link_url', value: link_url}); } console.log('Custom link enabled'); } else if (!custom_link) { let exists = await ServerSettings.findOne({ where: {key: 'custom_link'}}); if (exists) { await ServerSettings.update({value: false}, {where: {key: 'custom_link'}}); } else { await ServerSettings.create({ key: 'custom_link', value: false}); } let exists2 = await ServerSettings.findOne({ where: {key: 'link_url'}}); if (exists2) { await ServerSettings.update({value: ''}, {where: {key: 'link_url'}}); } else { await ServerSettings.create({ key: 'link_url', value: ''}); } console.log('Custom links off'); } // User registration if (user_registration) { let exists = await ServerSettings.findOne({ where: {key: 'user_registration'}}); if (exists) { const setting = await ServerSettings.update({value: true}, {where: {key: 'user_registration'}}); } else { const newSetting = await ServerSettings.create({ key: 'user_registration', value: true}); } let exists2 = await ServerSettings.findOne({ where: {key: 'registration_secret'}}); if (exists2) { await ServerSettings.update({value: registration_secret}, {where: {key: 'registration_secret'}}); } else { await ServerSettings.create({ key: 'registration_secret', value: registration_secret}); } console.log('registration on'); } else if (!user_registration) { let exists = await ServerSettings.findOne({ where: {key: 'user_registration'}}); if (exists) { await ServerSettings.update({value: false}, {where: {key: 'user_registration'}}); } else { await ServerSettings.create({ key: 'user_registration', value: false}); } let exists2 = await ServerSettings.findOne({ where: {key: 'registration_secret'}}); if (exists2) { await ServerSettings.update({value: ''}, {where: {key: 'registration_secret'}}); } else { await ServerSettings.create({ key: 'registration_secret', value: ''}); } console.log('registration off'); } // Authentication if (authentication) { let exists = await ServerSettings.findOne({ where: {key: 'authentication'}}); if (exists) { await ServerSettings.update({value: authentication}, {where: {key: 'authentication'}}); } else { await ServerSettings.create({ key: 'authentication', value: authentication}); } console.log('Authentication on'); } else if (!authentication) { let exists = await ServerSettings.findOne({ where: {key: 'authentication'}}); if (exists) { await ServerSettings.update({value: 'default'}, {where: {key: 'authentication'}}); } else { await ServerSettings.create({ key: 'authentication', value: 'off'}); } console.log('Authentication off'); } // Host 2 if (host2) { let exists = await ServerSettings.findOne({ where: {key: 'host2'}}); if (exists) { const setting = await ServerSettings.update({value: `${tag2},${ip2},${port2}`}, {where: {key: 'host2'}}); } else { const newSetting = await ServerSettings.create({ key: 'host2', value: `${tag2},${ip2},${port2}`}); } console.log('host2 on'); } else if (!host2) { let exists = await ServerSettings.findOne({ where: {key: 'host2'}}); if (exists) { const setting = await ServerSettings.update({value: ''}, {where: {key: 'host2'}}); } else { const newSetting = await ServerSettings.create({ key: 'host2', value: ''}); } console.log('host2 off'); } // // Host 3 if (host3) { let exists = await ServerSettings.findOne({ where: {key: 'host3'}}); if (exists) { const setting = await ServerSettings.update({value: `${tag3},${ip3},${port3}`}, {where: {key: 'host3'}}); } else { const newSetting = await ServerSettings.create({ key: 'host3', value: `${tag3},${ip3},${port3}`}); } console.log('host3 on'); } else if (!host3) { let exists = await ServerSettings.findOne({ where: {key: 'host3'}}); if (exists) { const setting = await ServerSettings.update({value: ''}, {where: {key: 'host3'}}); } else { const newSetting = await ServerSettings.create({ key: 'host3', value: ''}); } console.log('host3 off'); } // Host 4 if (host4) { let exists = await ServerSettings.findOne({ where: {key: 'host4'}}); if (exists) { const setting = await ServerSettings.update({value: `${tag4},${ip4},${port4}`}, {where: {key: 'host4'}}); } else { const newSetting = await ServerSettings.create({ key: 'host4', value: `${tag4},${ip4},${port4}`}); } console.log('host4 on'); } else if (!host4) { let exists = await ServerSettings.findOne({ where: {key: 'host4'}}); if (exists) { const setting = await ServerSettings.update({value: ''}, {where: {key: 'host4'}}); } else { const newSetting = await ServerSettings.create({ key: 'host4', value: ''}); } console.log('host4 off'); } console.log('Settings updated'); res.send(``); }