101 lines
2.7 KiB
JavaScript
101 lines
2.7 KiB
JavaScript
var cur_topic_id, cur_msg_id, buff_subject, cur_subject_div, in_edit_mode = 0;
|
|
var hide_prefixes = Array();
|
|
|
|
function modify_topic(topic_id, first_msg_id, cur_session_id)
|
|
{
|
|
if (!window.XMLHttpRequest)
|
|
return;
|
|
if (typeof(window.opera) != "undefined")
|
|
{
|
|
var test = new XMLHttpRequest();
|
|
if (typeof(test.setRequestHeader) != "function")
|
|
return;
|
|
}
|
|
cur_topic_id = topic_id;
|
|
|
|
if (in_edit_mode == 1)
|
|
modify_topic_cancel();
|
|
in_edit_mode = 1;
|
|
|
|
if (typeof window.ajax_indicator == "function")
|
|
ajax_indicator(true);
|
|
|
|
getXMLDocument(smf_scripturl + "?action=quotefast;quote=" + first_msg_id + ";sesc=" + cur_session_id + ";modify;xml", onDocReceived_modify_topic);
|
|
}
|
|
|
|
function onDocReceived_modify_topic(XMLDoc)
|
|
{
|
|
cur_msg_id = XMLDoc.getElementsByTagName("message")[0].getAttribute("id");
|
|
|
|
cur_subject_div = document.getElementById('msg_' + cur_msg_id.substr(4));
|
|
buff_subject = getInnerHTML(cur_subject_div);
|
|
|
|
// Here we hide any other things they want hiding on edit.
|
|
set_hidden_topic_areas('none');
|
|
|
|
modify_topic_show_edit(XMLDoc.getElementsByTagName("subject")[0].childNodes[0].nodeValue);
|
|
|
|
if (typeof window.ajax_indicator == "function")
|
|
ajax_indicator(false);
|
|
}
|
|
|
|
function modify_topic_cancel()
|
|
{
|
|
setInnerHTML(cur_subject_div, buff_subject);
|
|
set_hidden_topic_areas('');
|
|
|
|
in_edit_mode = 0;
|
|
return false;
|
|
}
|
|
|
|
function modify_topic_save(cur_session_id)
|
|
{
|
|
if (!in_edit_mode)
|
|
return true;
|
|
|
|
var i, x = new Array();
|
|
x[x.length] = 'subject=' + escape(textToEntities(document.forms.quickModForm['subject'].value)).replace(/\+/g, "%2B");
|
|
x[x.length] = 'topic=' + parseInt(document.forms.quickModForm.elements['topic'].value);
|
|
x[x.length] = 'msg=' + parseInt(document.forms.quickModForm.elements['msg'].value);
|
|
|
|
if (typeof window.ajax_indicator == "function")
|
|
ajax_indicator(true);
|
|
|
|
sendXMLDocument(smf_scripturl + "?action=jsmodify;topic=" + parseInt(document.forms.quickModForm.elements['topic'].value) + ";sesc=" + cur_session_id + ";xml", x.join("&"), modify_topic_done);
|
|
|
|
return false;
|
|
}
|
|
|
|
function modify_topic_done(XMLDoc)
|
|
{
|
|
if (!XMLDoc)
|
|
{
|
|
modify_topic_cancel();
|
|
return true;
|
|
}
|
|
|
|
var message = XMLDoc.getElementsByTagName("smf")[0].getElementsByTagName("message")[0];
|
|
var subject = message.getElementsByTagName("subject")[0].childNodes[0].nodeValue;
|
|
|
|
modify_topic_hide_edit(subject);
|
|
|
|
set_hidden_topic_areas('');
|
|
|
|
in_edit_mode = 0;
|
|
|
|
if (typeof window.ajax_indicator == "function")
|
|
ajax_indicator(false);
|
|
|
|
return false;
|
|
}
|
|
|
|
// Simply restore any hidden bits during topic editing.
|
|
function set_hidden_topic_areas(set_style)
|
|
{
|
|
for (var i = 0; i < hide_prefixes.length; i++)
|
|
{
|
|
if (document.getElementById(hide_prefixes[i] + cur_msg_id.substr(4)) != null)
|
|
document.getElementById(hide_prefixes[i] + cur_msg_id.substr(4)).style.display = set_style;
|
|
}
|
|
}
|