/* Question2Answer by Gideon Greenspan and contributors http://www.question2answer.org/ File: qa-content/qa-admin.js Description: Javascript for admin pages to handle Ajax-triggered operations This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. More about this license: http://www.question2answer.org/license.php */ var qa_recalc_running = 0; window.onbeforeunload = function(event) { if (qa_recalc_running > 0) { event = event || window.event; var message = qa_warning_recalc; event.returnValue = message; return message; } }; function qa_recalc_click(state, elem, value, noteid) { if (elem.qa_recalc_running) { elem.qa_recalc_stopped = true; } else { elem.qa_recalc_running = true; elem.qa_recalc_stopped = false; qa_recalc_running++; document.getElementById(noteid).innerHTML = ''; elem.qa_original_value = elem.value; if (value) elem.value = value; qa_recalc_update(elem, state, noteid); } return false; } function qa_recalc_update(elem, state, noteid) { if (state) { var recalcCode = elem.form.elements.code_recalc ? elem.form.elements.code_recalc.value : elem.form.elements.code.value; qa_ajax_post( 'recalc', {state: state, code: recalcCode}, function(lines) { if (lines[0] == '1') { if (lines[2]) document.getElementById(noteid).innerHTML = lines[2]; if (elem.qa_recalc_stopped) qa_recalc_cleanup(elem); else qa_recalc_update(elem, lines[1], noteid); } else if (lines[0] == '0') { document.getElementById(noteid).innerHTML = lines[1]; qa_recalc_cleanup(elem); } else { qa_ajax_error(); qa_recalc_cleanup(elem); } } ); } else { qa_recalc_cleanup(elem); } } function qa_recalc_cleanup(elem) { elem.value = elem.qa_original_value; elem.qa_recalc_running = null; qa_recalc_running--; } function qa_mailing_start(noteid, pauseid) { qa_ajax_post('mailing', {}, function(lines) { if (lines[0] == '1') { document.getElementById(noteid).innerHTML = lines[1]; window.setTimeout(function() { qa_mailing_start(noteid, pauseid); }, 1); // don't recurse } else if (lines[0] == '0') { document.getElementById(noteid).innerHTML = lines[1]; document.getElementById(pauseid).style.display = 'none'; } else { qa_ajax_error(); } } ); } function qa_admin_click(target) { var p = target.name.split('_'); var params = {entityid: p[1], action: p[2]}; params.code = target.form.elements.code.value; qa_ajax_post('click_admin', params, function(lines) { if (lines[0] == '1') qa_conceal(document.getElementById('p' + p[1]), 'admin'); else if (lines[0] == '0') { alert(lines[1]); qa_hide_waiting(target); } else qa_ajax_error(); } ); qa_show_waiting_after(target, false); return false; } function qa_version_check(uri, version, elem, isCore) { var params = {uri: uri, version: version, isCore: isCore}; qa_ajax_post('version', params, function(lines) { if (lines[0] == '1') document.getElementById(elem).innerHTML = lines[1]; } ); } function qa_get_enabled_plugins_hashes() { var hashes = []; $('[id^=plugin_enabled]:checked').each( function(idx, elem) { hashes.push(elem.id.replace("plugin_enabled_", "")); } ); $('[name=enabled_plugins_hashes]').val(hashes.join(';')); }