Source: resources/js/settings_src.js

'use strict';

var jsonFormElements = require('./jsonformelements'),
	tabMap = {
		'0': 'application-settings',
		'1': 'theme-settings',
		'2': 'restart',
		'3': 'help'
	},
	themesettingsConfiguration,
	themesettingsReadOnly,
	appsettingsConfiguration,
	appsettingsReadOnly;

var handleSettingsTabChange = function (currentTab) {
	// console.log('currentTab', currentTab);
	window.location.hash = tabMap[currentTab];
	styleWindowResizeEventHandler();
};

var elementSelectors = function () {
	themesettingsConfiguration = document.getElementById('themesettings-config');
	themesettingsReadOnly = document.getElementById('themesettings-readonly');
	appsettingsConfiguration = document.getElementById('appsettings-config');
	appsettingsReadOnly = document.getElementById('appsettings-readonly');
};

var eventHandlers = function () {
	window.StylieTab['periodic-settings-tabs'].on('tabsShowIndex', handleSettingsTabChange);
	if (window.location.hash) {
		for (var x in tabMap) {
			if (window.location.hash.replace('#', '') === tabMap[x]) {
				window.StylieTab['periodic-settings-tabs'].showTab(x);
			}
		}
	}
};

/**
 * resize codemirror on window resize
 */
var styleWindowResizeEventHandler = function () {
	if (window.codeMirrors) {
		for (var y in window.codeMirrors) {
			window.codeMirrors[y].refresh();
			window.codeMirrors[y].setSize('auto', '80%');
		}
	}
};
// window.backupcompleted = function () {
// 	window.endPreloader();
// 	window.showStylieNotification({
// 		message: 'downloaded back up file'
// 	});
// };


var initAdvancedCodemirror = function () {
	if (window.StylieTab && window.StylieTab['periodic-settings-tabs-config']) {
		window.StylieTab['periodic-settings-tabs-config'].on('tabsShowIndex', function (idex) {
			if (idex === 0 && window.codeMirrors && window.codeMirrors['themesettings-codemirror']) {
				window.codeMirrors['themesettings-codemirror'].refresh();
			}
			else if (idex === 1 && window.codeMirrors && window.codeMirrors['globalconfig-codemirror']) {
				window.codeMirrors['globalconfig-codemirror'].refresh();
			}
			else if (idex === 2 && window.codeMirrors && window.codeMirrors['envconfig-codemirror']) {
				window.codeMirrors['envconfig-codemirror'].refresh();
			}
			else if (idex === 3 && window.codeMirrors && window.codeMirrors['defaultconfig-codemirror']) {
				window.codeMirrors['defaultconfig-codemirror'].refresh();
			}
		});
	}
};

var init = function () {
	elementSelectors();
	eventHandlers();

	if (window.appsettings) {
		appsettingsConfiguration.innerHTML = jsonFormElements({
			jsonobject: window.appsettings.configuration,
			idnameprepend: 'asc'
		});
		// appsettingsReadOnly.innerHTML = jsonFormElements({
		// 	jsonobject: window.appsettings.readonly,
		// 	readonly: true,
		// 	idnameprepend: 'asro'
		// });
	}
	if (window.themesettings) {

		// themesettingsConfiguration.innerHTML = jsonFormElements({
		// 	jsonobject: window.themesettings.configuration,
		// 	idnameprepend: 'tsc'
		// });
		themesettingsReadOnly.innerHTML = jsonFormElements({
			jsonobject: window.themesettings.readonly,
			readonly: true,
			idnameprepend: 'tsro'
		});
	}
	initAdvancedCodemirror();
	styleWindowResizeEventHandler();

};

if (typeof window.domLoadEventFired !== 'undefined') {
	init();
}
else {
	window.addEventListener('load', init, false);
}