(stdscr, options)
| 7785 | var profiles = Array.from(document.querySelectorAll('#userProfilesList option')).map(function(node){ return node.value; }).filter(Boolean); |
| 7786 | var currentName = document.getElementById('displayNameInput').value.trim(); |
| 7787 | if (currentName && profiles.indexOf(currentName) === -1) profiles.push(currentName); |
| 7788 | var payload = { |
| 7789 | display_name: currentName, |
| 7790 | wallpaper: document.getElementById('wallpaperInput').value.trim(), |
| 7791 | terminal_theme: document.getElementById('terminalThemeSelect').value, |
| 7792 | terminal_zoom: state.terminalZoom, |
| 7793 | sidebar_hidden: state.sidebarHidden, |
| 7794 | user_profiles: profiles, |
| 7795 | login_enabled: document.getElementById('loginEnabledChk').checked, |
| 7796 | login_password: document.getElementById('loginPasswordSetting').value, |
| 7797 | totp_enabled: document.getElementById('totpEnabledChk').checked, |
| 7798 | security_questions: [ |
| 7799 | { question: document.getElementById('securityQuestion1Setting').value, answer: document.getElementById('securityAnswer1Setting').value }, |
| 7800 | { question: document.getElementById('securityQuestion2Setting').value, answer: document.getElementById('securityAnswer2Setting').value }, |
| 7801 | { question: document.getElementById('securityQuestion3Setting').value, answer: document.getElementById('securityAnswer3Setting').value } |
| 7802 | ] |
| 7803 | }; |
| 7804 | var fileInput = document.getElementById('wallpaperUpload'); |
| 7805 | if (fileInput.files && fileInput.files[0]) { |
| 7806 | payload.wallpaper_upload = await readFileAsDataUrl(fileInput.files[0]); |
| 7807 | payload.wallpaper_filename = fileInput.files[0].name; |
| 7808 | } |
| 7809 | var data = await apiPost('/api/config', payload); |
| 7810 | state.config = data.config; |
| 7811 | if (state.info) state.info.display_name = data.config.display_name; |
| 7812 | applyWallpaper(state.config); |
| 7813 | applyTranslations(); |
| 7814 | renderSystem(); |
| 7815 | showToast(t('Settings saved')); |
| 7816 | } catch (err) { handleError(err); } |
| 7817 | } |
| 7818 | |
| 7819 | function readFileAsDataUrl(file) { |
| 7820 | return new Promise(function(resolve, reject) { |
| 7821 | var reader = new FileReader(); |
| 7822 | reader.onload = function(){ resolve(reader.result); }; |
| 7823 | reader.onerror = reject; |
| 7824 | reader.readAsDataURL(file); |
| 7825 | }); |
| 7826 | } |
| 7827 | |
| 7828 | function handleError(error) { |
| 7829 | console.error(error); |
| 7830 | showToast(error.message || String(error), true); |
| 7831 | hideLoading(); |
| 7832 | } |
| 7833 | |
| 7834 | function closeWebFaceView() { |
| 7835 | window.setTimeout(function(){ |
| 7836 | try { window.open('', '_self'); } catch (err) {} |
| 7837 | try { window.close(); } catch (err) {} |
| 7838 | window.location.replace('about:blank'); |
| 7839 | }, 220); |
| 7840 | } |
| 7841 | |
| 7842 | async function exitDedsecOs() { |
| 7843 | var question = currentLang() === 'el' |
| 7844 | ? 'Να κλείσει το DedSec OS, να τερματιστεί πρώτα το Termux API και μετά το ίδιο το Termux;' |
no test coverage detected