annotate forum/Themes/default/xml_board.js @ 82:6dd719d7c78b website

Add Sonic Annotator pages (probably best to host it here in future rather than with the omras2 site)
author Chris Cannam
date Mon, 20 Jan 2014 10:48:02 +0000
parents e3e11437ecea
children
rev   line source
Chris@76 1 var cur_topic_id, cur_msg_id, buff_subject, cur_subject_div, in_edit_mode = 0;
Chris@76 2 var hide_prefixes = Array();
Chris@76 3
Chris@76 4 function modify_topic(topic_id, first_msg_id, cur_session_id)
Chris@76 5 {
Chris@76 6 if (!window.XMLHttpRequest)
Chris@76 7 return;
Chris@76 8 if (typeof(window.opera) != "undefined")
Chris@76 9 {
Chris@76 10 var test = new XMLHttpRequest();
Chris@76 11 if (typeof(test.setRequestHeader) != "function")
Chris@76 12 return;
Chris@76 13 }
Chris@76 14
Chris@76 15 if (in_edit_mode == 1)
Chris@76 16 {
Chris@76 17 if (cur_topic_id == topic_id)
Chris@76 18 return;
Chris@76 19 else
Chris@76 20 modify_topic_cancel();
Chris@76 21 }
Chris@76 22
Chris@76 23 in_edit_mode = 1;
Chris@76 24 mouse_on_div = 1;
Chris@76 25 cur_topic_id = topic_id;
Chris@76 26
Chris@76 27 if (typeof window.ajax_indicator == "function")
Chris@76 28 ajax_indicator(true);
Chris@76 29
Chris@76 30 getXMLDocument(smf_scripturl + "?action=quotefast;quote=" + first_msg_id + ";sesc=" + cur_session_id + ";modify;xml", onDocReceived_modify_topic);
Chris@76 31 }
Chris@76 32
Chris@76 33 function onDocReceived_modify_topic(XMLDoc)
Chris@76 34 {
Chris@76 35 cur_msg_id = XMLDoc.getElementsByTagName("message")[0].getAttribute("id");
Chris@76 36
Chris@76 37 cur_subject_div = document.getElementById('msg_' + cur_msg_id.substr(4));
Chris@76 38 buff_subject = getInnerHTML(cur_subject_div);
Chris@76 39
Chris@76 40 // Here we hide any other things they want hiding on edit.
Chris@76 41 set_hidden_topic_areas('none');
Chris@76 42
Chris@76 43 modify_topic_show_edit(XMLDoc.getElementsByTagName("subject")[0].childNodes[0].nodeValue);
Chris@76 44
Chris@76 45 if (typeof window.ajax_indicator == "function")
Chris@76 46 ajax_indicator(false);
Chris@76 47 }
Chris@76 48
Chris@76 49 function modify_topic_cancel()
Chris@76 50 {
Chris@76 51 setInnerHTML(cur_subject_div, buff_subject);
Chris@76 52 set_hidden_topic_areas('');
Chris@76 53
Chris@76 54 in_edit_mode = 0;
Chris@76 55 return false;
Chris@76 56 }
Chris@76 57
Chris@76 58 function modify_topic_save(cur_session_id)
Chris@76 59 {
Chris@76 60 if (!in_edit_mode)
Chris@76 61 return true;
Chris@76 62
Chris@76 63 var i, x = new Array();
Chris@76 64 x[x.length] = 'subject=' + escape(textToEntities(document.forms.quickModForm['subject'].value)).replace(/\+/g, "%2B");
Chris@76 65 x[x.length] = 'topic=' + parseInt(document.forms.quickModForm.elements['topic'].value);
Chris@76 66 x[x.length] = 'msg=' + parseInt(document.forms.quickModForm.elements['msg'].value);
Chris@76 67
Chris@76 68 if (typeof window.ajax_indicator == "function")
Chris@76 69 ajax_indicator(true);
Chris@76 70
Chris@76 71 sendXMLDocument(smf_scripturl + "?action=jsmodify;topic=" + parseInt(document.forms.quickModForm.elements['topic'].value) + ";sesc=" + cur_session_id + ";xml", x.join("&"), modify_topic_done);
Chris@76 72
Chris@76 73 return false;
Chris@76 74 }
Chris@76 75
Chris@76 76 function modify_topic_done(XMLDoc)
Chris@76 77 {
Chris@76 78 if (!XMLDoc)
Chris@76 79 {
Chris@76 80 modify_topic_cancel();
Chris@76 81 return true;
Chris@76 82 }
Chris@76 83
Chris@76 84 var message = XMLDoc.getElementsByTagName("smf")[0].getElementsByTagName("message")[0];
Chris@76 85 var subject = message.getElementsByTagName("subject")[0];
Chris@76 86 var error = message.getElementsByTagName("error")[0];
Chris@76 87
Chris@76 88 if (typeof window.ajax_indicator == "function")
Chris@76 89 ajax_indicator(false);
Chris@76 90
Chris@76 91 if (!subject || error)
Chris@76 92 return false;
Chris@76 93
Chris@76 94 subjectText = subject.childNodes[0].nodeValue;
Chris@76 95
Chris@76 96 modify_topic_hide_edit(subjectText);
Chris@76 97
Chris@76 98 set_hidden_topic_areas('');
Chris@76 99
Chris@76 100 in_edit_mode = 0;
Chris@76 101
Chris@76 102 return false;
Chris@76 103 }
Chris@76 104
Chris@76 105 // Simply restore any hidden bits during topic editing.
Chris@76 106 function set_hidden_topic_areas(set_style)
Chris@76 107 {
Chris@76 108 for (var i = 0; i < hide_prefixes.length; i++)
Chris@76 109 {
Chris@76 110 if (document.getElementById(hide_prefixes[i] + cur_msg_id.substr(4)) != null)
Chris@76 111 document.getElementById(hide_prefixes[i] + cur_msg_id.substr(4)).style.display = set_style;
Chris@76 112 }
Chris@76 113 }