// +----------------------------------------------------------------------+
// | OpenConf |
// +----------------------------------------------------------------------+
// | Copyright (c) 2002-2014 Zakon Group LLC. All Rights Reserved. |
// +----------------------------------------------------------------------+
// | This source file is subject to the OpenConf License, available on |
// | the OpenConf web site: www.OpenConf.com |
// +----------------------------------------------------------------------+
// init http request
var config_http = false;
try {
config_http = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
config_http = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
config_http = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
config_http = false;
}
}
}
// number of notices awaiting call back
var OC_notices = 0;
// notice div ID (see init())
var OC_notice = false;
// default timeout
var TimeOut = 2000;
function oc_init() {
OC_notice = document.getElementById("oc_notice");
}
function hideNotice() {
OC_notices--;
if (OC_notices <= 0) {
document.getElementById("oc_notice").style.display = "none";
}
}
function showNotice(noticeClass, noticeHTML, noticeTimeout) {
OC_notice.className = noticeClass;
OC_notice.innerHTML = noticeHTML;
TimeOut = noticeTimeout;
// display notice
OC_notice.style.display = "block";
// set timeout to hide notice box, but only after last notice done displaying
OC_notices++;
setTimeout('hideNotice()', TimeOut);
}
function clearFields() {
document.getElementById('fields').style.display = 'none';
document.getElementById('name').innerHTML = '';
document.getElementById('description').innherHTML = '';
document.getElementById('parse').innherHTML = '';
document.getElementById('value').value = '';
}
function updateSettingValueCallback() {
if (config_http.readyState == 4) {
// Check for invalid response - likely due to time out?
if ((config_http.status != 200) || (config_http.responseText == '')) {
showNotice('ocerror', 'Unable to update setting.
Use standard configuration page or edit value in database config table', 30000);
} else { // display server response as appropriate
var Response = eval("(" + config_http.responseText + ")");
if (Response['error'] == '') {
if (Response['success']) {
showNotice('ocnotice', Response['success'], 3000);
} else {
showNotice('ocerror', 'Unable to update setting', 5000);
}
} else {
showNotice('ocerror', Response['error'], 5000);
}
}
}
}
function updateSettingValue(octoken) {
if (config_http) {
var params = "m=" + encodeURIComponent(document.getElementById('module').value) +
"&s=" + encodeURIComponent(document.getElementById('setting').value) +
"&v=" + encodeURIComponent(document.getElementById('value').value) +
"&token=" + encodeURIComponent(octoken);
config_http.open("POST","set_config_adv-update.php", true);
config_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
config_http.setRequestHeader("Content-length", params.length);
config_http.setRequestHeader("Connection", "close");
config_http.onreadystatechange = updateSettingValueCallback;
config_http.send(params);
return(false);
} else {
return(true);
}
}
function updateSettingCallback() {
if (config_http.readyState == 4) {
// Check for invalid response - likely due to time out?
if ((config_http.status != 200) || (config_http.responseText == '')) {
showNotice('ocerror', 'Unable to retrieve module settings.
Use standard configuration page or edit value in database config table', 30000);
} else { // display server response as appropriate
var Response = eval("(" + config_http.responseText + ")");
if (Response['error'] == "") {
if (Response['setting']) {
document.getElementById('name').innerHTML = Response['setting']['name'];
document.getElementById('description').innerHTML = Response['setting']['description'];
if (Response['setting']['parse'] == 1) {
document.getElementById('parse').innerHTML = 'Yes';
} else {
document.getElementById('parse').innerHTML = 'No';
}
document.getElementById('value').value = Response['setting']['value'];
document.getElementById('fields').style.display = 'block';
}
} else {
showNotice('ocerror', Response['error'], 5000);
}
}
}
}
function updateSetting(obj, octoken) {
clearFields();
document.getElementById("oc_notice").style.display = "none";
if (obj.value != '') {
if (config_http) {
var params = "m=" + encodeURIComponent(document.getElementById('module').value) +
"&s=" + encodeURIComponent(obj.value) +
"&token=" + encodeURIComponent(octoken);
config_http.open("POST","set_config_adv-setting.php", true);
config_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
config_http.setRequestHeader("Content-length", params.length);
config_http.setRequestHeader("Connection", "close");
config_http.onreadystatechange = updateSettingCallback;
config_http.send(params);
} else {
alert('Your browser has denied this operation. Please use standard config form, or edit values in the database config table');
return(false);
}
}
}
function updateModuleCallback() {
if (config_http.readyState == 4) {
// Check for invalid response - likely due to time out?
if (config_http.status != 200) {
showNotice('ocerror', 'Unable to retrieve module settings. Use standard configuration page or edit value in database config table', 30000);
} else { // display server response as appropriate
var Response = eval("(" + config_http.responseText + ")");
if (Response['error'] == "") {
if (Response['settings']) {
var i = 1;
for (v in Response['settings']) {
document.getElementById('setting').options[i++] = new Option(Response['settings'][v], Response['settings'][v], false, false);
}
document.getElementById('settingMenu').style.display = "block";
}
} else {
showNotice('ocerror', Response['error'], 5000);
}
}
}
}
function updateModule(obj, octoken) {
clearFields();
document.getElementById("oc_notice").style.display = "none";
document.getElementById("settingMenu").style.display = "none";
var settingObj = document.getElementById('setting');
settingObj.options.length = 1;
if (obj.value != '') {
if (config_http) {
var params = "m=" + encodeURIComponent(obj.value) +
"&token=" + encodeURIComponent(octoken);
config_http.open("POST","set_config_adv-module.php", true);
config_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
config_http.setRequestHeader("Content-length", params.length);
config_http.setRequestHeader("Connection", "close");
config_http.onreadystatechange = updateModuleCallback;
config_http.send(params);
} else {
alert('Your browser has denied this operation. Please use standard config form, or edit values in the database config table');
return(false);
}
}
}