import ApiUtils, { REQUEST_TYPE_POST, CONTENT_TYPE_JSON } from '../../../src/com/utils/APIUtils'; import * as DataEvent from '../../../src/com/events/DataEvent'; const api = new ApiUtils(); export default class SettingsActions { //-------------------------- // constructor //-------------------------- constructor() {} //-------------------------- // methods //-------------------------- save() { let handle = document.getElementById('settings-handle').value; let email = document.getElementById('settings-email').value; let url = document.getElementById('settings-url').value; let title = document.getElementById('settings-title').value; let desc = document.getElementById('settings-desc').value; let privacy = document.getElementById('privacy-toggle').getAttribute('data-private'); let render = document.getElementById('render-toggle').getAttribute('data-render'); let background = document.getElementById('background').src; let selected = ''; let selects = document.querySelectorAll('.theme-select'); let smtpDomain = document.getElementById('smtp-domain').value; let smtpEmail = document.getElementById('smtp-email').value; let smtpPass = document.getElementById('smtp-pass').value; let mgDomain = document.getElementById('mg-domain').value; let mgKey = document.getElementById('mg-key').value; let mailActive = ''; let mailOptions = document.querySelectorAll('.mail-option'); var i, count; for (i = 0, count = selects.length; i < count; i++) { if (selects[i].getAttribute('data-enabled') == 'true') selected = selects[i].id; } for (i = 0, count = mailOptions.length; i < count; i++) { if (mailOptions[i].getAttribute('data-enabled') == 'true') mailActive = mailOptions[i].id; } let settingsData = { global: { base_url: url, title: title, descriptions: desc, background: background, private: privacy, renderOnSave: render, theme: selected }, member: { handle: handle, email: email }, email: { active: mailActive, smtp: { domain: smtpDomain, email: smtpEmail, password: smtpPass }, mailgun: { domain: mgDomain, key: mgKey } } }; return new Promise(function(resolve, reject) { api.request( '/api/v1/settings/sync', DataEvent.SETTINGS_UPDATED, REQUEST_TYPE_POST, CONTENT_TYPE_JSON, settingsData ) .then(response => { //console.log("RESPONSE", response) resolve(response); }) .catch(err => { reject(err); }); }); } //-------------------------- // event handlers //-------------------------- }