mirror of
https://github.com/OliveTin/OliveTin
synced 2026-08-28 21:46:37 +00:00
87 lines
2.6 KiB
JavaScript
87 lines
2.6 KiB
JavaScript
'use strict'
|
|
|
|
import { marshalActionButtonsJsonToHtml, marshalLogsJsonToHtml } from './js/marshaller.js'
|
|
|
|
function showSection (name) {
|
|
for (const otherName of ['Actions', 'Logs']) {
|
|
document.getElementById('show' + otherName).classList.remove('activeSection')
|
|
document.getElementById('content' + otherName).hidden = true
|
|
}
|
|
|
|
document.getElementById('show' + name).classList.add('activeSection')
|
|
document.getElementById('content' + name).hidden = false
|
|
}
|
|
|
|
function setupSections () {
|
|
document.getElementById('showActions').onclick = () => { showSection('Actions') }
|
|
document.getElementById('showLogs').onclick = () => { showSection('Logs') }
|
|
|
|
showSection('Actions')
|
|
}
|
|
|
|
function fetchGetDashboardComponents () {
|
|
window.fetch(window.restBaseUrl + 'GetDashboardComponents', {
|
|
cors: 'cors'
|
|
}).then(res => {
|
|
return res.json()
|
|
}).then(res => {
|
|
marshalActionButtonsJsonToHtml(res)
|
|
}).catch(err => {
|
|
window.showBigError('fetch-buttons', 'getting buttons', err, 'blat')
|
|
})
|
|
}
|
|
|
|
function fetchGetLogs () {
|
|
window.fetch(window.restBaseUrl + 'GetLogs', {
|
|
cors: 'cors'
|
|
}).then(res => {
|
|
return res.json()
|
|
}).then(res => {
|
|
marshalLogsJsonToHtml(res)
|
|
}).catch(err => {
|
|
window.showBigError('fetch-buttons', 'getting buttons', err, 'blat')
|
|
})
|
|
}
|
|
|
|
function processWebuiSettingsJson (settings) {
|
|
window.restBaseUrl = settings.Rest
|
|
|
|
if (settings.ThemeName) {
|
|
const themeCss = document.createElement('link')
|
|
themeCss.setAttribute('rel', 'stylesheet')
|
|
themeCss.setAttribute('type', 'text/css')
|
|
themeCss.setAttribute('href', '/themes/' + settings.ThemeName + '/theme.css')
|
|
|
|
document.head.appendChild(themeCss)
|
|
}
|
|
|
|
document.querySelector('#currentVersion').innerText = 'Version: ' + settings.CurrentVersion
|
|
|
|
if (settings.ShowNewVersions && settings.AvailableVersion !== 'none') {
|
|
document.querySelector('#available-version').innerText = 'New Version Available: ' + settings.AvailableVersion
|
|
document.querySelector('#available-version').hidden = false
|
|
}
|
|
|
|
document.querySelector('#section-switcher').hidden = !settings.ShowNavigation
|
|
document.querySelector('footer[title="footer"]').hidden = !settings.ShowFooter
|
|
}
|
|
|
|
function main () {
|
|
setupSections()
|
|
|
|
window.fetch('webUiSettings.json').then(res => {
|
|
return res.json()
|
|
}).then(res => {
|
|
processWebuiSettingsJson(res)
|
|
|
|
fetchGetDashboardComponents()
|
|
fetchGetLogs()
|
|
|
|
window.buttonInterval = setInterval(fetchGetDashboardComponents, 3000)
|
|
}).catch(err => {
|
|
window.showBigError('fetch-webui-settings', 'getting webui settings', err)
|
|
})
|
|
}
|
|
|
|
main() // call self
|