// TODO: merge into react app let _configCopy; function toggleDropdown(type) { const _dropdown = $('.dropdown-menu.' + (type === 'lite' ? 'lite' : 'native')); if (_dropdown.hasClass('hide')) { _dropdown.removeClass('hide'); } else { _dropdown.addClass('hide'); } $('.dropdown-menu.' + (type === 'lite' ? 'native' : 'lite')).addClass('hide');; } function initSettingsForm() { const remote = require('electron').remote; let appConf = remote.getCurrentWindow().appConfig; let appConfSchema = remote.getCurrentWindow().appConfigSchema; _configCopy = Object.assign({}, appConf); let _htmlOut = ''; for (let key in appConf) { if (appConfSchema[key] && appConfSchema[key].initDisplay) { _htmlOut = ` ${_htmlOut} `; } else if (appConfSchema[key].type === 'string' || appConfSchema[key].type === 'folder') { _htmlOut = ` ${_htmlOut} `; } else if (appConfSchema[key].type === 'boolean') { _htmlOut = `${_htmlOut} `; } } } _htmlOut = ` ${_htmlOut}
${appConfSchema[key].displayName}`; if (appConfSchema[key].info) { _htmlOut = ` ${_htmlOut}
`; } if (appConfSchema[key].type === 'number') { _htmlOut = ` ${_htmlOut}
`; $('#agamaConfigBlock').html(_htmlOut); } function hideToastImmediate() { $('#toast-container').addClass('hide'); } function hideToast() { setTimeout(function() { $('#toast-container').addClass('hide'); }, 5000); } function showToast(type, message) { $('#toast-container .toast').removeClass('toast-success').removeClass('toast-error'); $('#toast-container .toast').addClass(`toast-${type}`); $('#toast-container .toast-message').html(message); $('#toast-container').removeClass('hide'); hideToast(); } function setDefaultAppSettings() { const remote = require('electron').remote; remote.getCurrentWindow().setDefaultAppSettings(); remote.getCurrentWindow().appConfig = remote.getCurrentWindow().defaultAppSettings; initSettingsForm(); showToast('success', 'App settings are reset to default'); } function testBins(binName) { const remote = require('electron').remote; remote.getCurrentWindow().testBins(binName). then(function(res) { $('#debugOut').html(JSON.stringify(res, null, '\t')); }); } function handleSaveSettings() { if (_configCopy.dataDir && _configCopy.dataDir.length) { const remote = require('electron').remote; remote.getCurrentWindow().testLocation(_configCopy.dataDir) .then(function(res) { if (res === -1) { showToast('error', 'Komodo datadir path is invalid'); } else if (res === false) { showToast('error', 'Komodo datadir path is not a directory'); } else { // save settings remote.getCurrentWindow().updateAppSettings(_configCopy); remote.getCurrentWindow().appConfig = _configCopy; showToast('success', 'Settings saved'); } }); } else { // save settings const remote = require('electron').remote; remote.getCurrentWindow().updateAppSettings(_configCopy); remote.getCurrentWindow().appConfig = _configCopy; showToast('success', 'Settings saved'); } } function handleInput(key) { const _value = $(`#${key}`).val(); _configCopy[key] = _value; } function settingsToggle(key) { const _value = $(`#${key} .cb`).prop('checked'); _configCopy[key] = _value; } function closeSettingsWindow() { const remote = require('electron').remote; const window = remote.getCurrentWindow(); toggleDropdown(); window.destroyAppSettingsWindow(); } function reloadSettingsWindow() { const remote = require('electron').remote; const window = remote.getCurrentWindow(); window.reloadSettingsWindow(); } function openSettingsWindow() { const remote = require('electron').remote; const window = remote.getCurrentWindow(); $('.dropdown-menu.lite').addClass('hide'); $('.dropdown-menu.native').addClass('hide'); window.createAppSettingsWindow(); } function startKMDPassive() { const remote = require('electron').remote; const window = remote.getCurrentWindow(); $('.dropdown-menu.lite').addClass('hide'); $('.dropdown-menu.native').addClass('hide'); disableModeButtons(); window.startKMDNative('KMD', true); window.createWindow('open'); window.hide(); } function startKMDPassive() { const remote = require('electron').remote; const window = remote.getCurrentWindow(); $('.dropdown-menu.lite').addClass('hide'); $('.dropdown-menu.native').addClass('hide'); disableModeButtons(); window.startKMDNative('KMD', true); window.createWindow('open'); window.hide(); } function startSPV(coin) { const remote = require('electron').remote; const window = remote.getCurrentWindow(); $('.dropdown-menu.lite').addClass('hide'); $('.dropdown-menu.native').addClass('hide'); disableModeButtons(); window.startSPV(coin); window.createWindow('open'); window.hide(); } function closeMainWindow(isKmdOnly, isCustom) { const remote = require('electron').remote; const window = remote.getCurrentWindow(); $('.dropdown-menu.lite').addClass('hide'); $('.dropdown-menu.native').addClass('hide'); disableModeButtons(); if (!isCustom) { window.startKMDNative(isKmdOnly ? 'KMD' : null); setTimeout(function() { window.createWindow('open'); window.hide(); }, 3000); } else { window.createWindow('open'); window.hide(); } } function quitApp() { const remote = require('electron').remote; const window = remote.getCurrentWindow(); window.forseCloseApp(); } function disableModeButtons() { $('#nativeOnlyBtn').attr('disabled', true); $('#normalStartBtn').attr('disabled', true); $('#settingsBtn').attr('disabled', true); $('#nativeOnlyBtnCarret').attr('disabled', true); $('#spvBtn').attr('disabled', true); $('#spvBtnCarret').attr('disabled', true); } function normalStart() { const remote = require('electron').remote; let appConf = remote.getCurrentWindow().appConfig; appConf.iguanaLessMode = false; $('.dropdown-menu.lite').addClass('hide'); $('.dropdown-menu.native').addClass('hide'); disableModeButtons(); } function init() { const remote = require('electron').remote; var window = remote.getCurrentWindow(); var appConf = remote.getCurrentWindow().appConfig; if (!appConf.experimentalFeatures) { $('#spvBtn').hide(); $('#spvBtnCarret').hide(); $('.dropdown-menu.native').css('right', '165px'); $('#nativeOnlyBtnCarret').css('margin-right', '0'); $('#settingsBtn').css('margin', '0'); } }