User:Proteins/quickdiffs.js: Difference between revisions

Content deleted Content added
Proteins (talk | contribs)
add parsing for the other header texts
m Maintenance: Fixing deprecated call to addPortletLink (mw:ResourceLoader/Migration_guide_(users)#addPortletLink)
 
(6 intermediate revisions by one other user not shown)
Line 1:
//<pre>
// Summarizes the differences between two page versions in pop-up windows
// Perhaps calculate fractional change in document?
/*/
// To use this script, add "importScript('User:Proteins/quickdiffs.js');" to your monobook.js subpage
// under your user page, as you can see at User:Proteins/monobook.js
 
 
function quickDiffs() {
Line 213 ⟶ 217:
}
 
// Get the header texts for older version
mw_diff_otitle1_text = "";
mw_diff_otitle1 = document.getElementById('mw-diff-otitle1');
Line 231 ⟶ 235:
} // closes check for child node
} // closes check for mw_diff_otitle1 node
// window.alert("The mw_diff_otitle1_text is " + mw_diff_otitle1_text + "\n");
 
mw_diff_otitle2_text = "";
Line 244 ⟶ 248:
mw_diff_otitle2_text = mw_diff_otitle2_child.innerHTML;
} // closes check for child node
} // closes check for mw_diff_otitle1mw_diff_otitle2 node
// window.alert("The mw_diff_otitle2_text is " + mw_diff_otitle2_text + "\n");
 
mw_diff_otitle3_text = "";
Line 253 ⟶ 257:
} else {
mw_diff_otitle3_text = mw_diff_otitle3.innerHTML;
mw_diff_otitle3_text = mw_diff_otitle3_text.replace(/&gt;/ig, ">");
mw_diff_otitle3_text = mw_diff_otitle3_text.replace(/&lt;/ig, "<");
mw_diff_otitle3_text = mw_diff_otitle3_text.replace(/(<([^>]+)>)/ig,"");
} // closes check for mw_diff_otitle3 node
// window.alert("The mw_diff_otitle3_text is " + mw_diff_otitle3_text + "\n");
 
// Possibly add code for mw_diff_otitle4 here, but seems unneeded
/*
 
mw_diff_otitle4_text = "";
 
mw_diff_otitle4 = document.getElementById('mw-diff-otitle4');
// Get header texts for newer version
if (!mw_diff_otitle4) {
mw_diff_ntitle1_text = "";
window.alert("ERROR: This article has no element with id \"mw-diff-otitle4\".\n\n");
mw_diff_otitle4mw_diff_ntitle1 = document.getElementById('mw-diff-otitle4ntitle1');
if (!mw_diff_ntitle1) {
window.alert("ERROR: This article has no element with id \"mw-diff-otitle4ntitle1\".\n\n");
} else {
mw_diff_otitle4_childmw_diff_ntitle1_child = mw_diff_otitle4mw_diff_ntitle1.firstChild;
if (!mw_diff_otitle4_childmw_diff_ntitle1_child) {
window.alert("ERROR: The \"mw-diff-otitle4ntitle1\" element has no child node.\n\n");
} else {
mw_diff_otitle4_grandchildmw_diff_ntitle1_grandchild = mw_diff_otitle4_childmw_diff_ntitle1_child.firstChild;
if (!mw_diff_otitle4_grandchildmw_diff_ntitle1_grandchild) {
window.alert("ERROR: The \"mw-diff-otitle4ntitle1\" element has no grandchild node.\n\n");
} else {
mw_diff_otitle4_textmw_diff_ntitle1_text = mw_diff_otitle1_grandchildmw_diff_ntitle1_grandchild.innerHTML;
} // closes check for grandchild node
} // closes check for child node
} // closes check for mw_diff_otitle4mw_diff_ntitle1 node
// window.alert("The mw_diff_otitle4_textmw_diff_ntitle1_text is " + mw_diff_otitle4_textmw_diff_ntitle1_text + "\n");
*/
 
mw_diff_ntitle2_text = "";
// Loop over the rows in the difference table
mw_diff_ntitle2 = document.getElementById('mw-diff-ntitle2');
if (!mw_diff_ntitle2) {
window.alert("ERROR: This article has no element with id \"mw-diff-ntitle2\".\n\n");
} else {
mw_diff_ntitle2_child = mw_diff_ntitle2.firstChild;
if (!mw_diff_ntitle2_child) {
window.alert("ERROR: The \"mw-diff-ntitle2\" element has no child node.\n\n");
} else {
mw_diff_ntitle2_text = mw_diff_ntitle2_child.innerHTML;
} // closes check for child node
} // closes check for mw_diff_ntitle2 node
// window.alert("The mw_diff_ntitle2_text is " + mw_diff_ntitle2_text + "\n");
 
mw_diff_ntitle3_text = "";
mw_diff_ntitle3 = document.getElementById('mw-diff-ntitle3');
if (!mw_diff_ntitle3) {
window.alert("ERROR: This article has no element with id \"mw-diff-ntitle3\".\n\n");
} else {
mw_diff_ntitle3_text = mw_diff_ntitle3.innerHTML;
mw_diff_ntitle3_text = mw_diff_ntitle3_text.replace(/&gt;/ig, ">");
mw_diff_ntitle3_text = mw_diff_ntitle3_text.replace(/&lt;/ig, "<");
mw_diff_ntitle3_text = mw_diff_ntitle3_text.replace(/(<([^>]+)>)/ig,"");
} // closes check for mw_diff_ntitle3 node
// window.alert("The mw_diff_ntitle3_text is " + mw_diff_ntitle3_text + "\n");
 
// Possibly add code for mw_diff_ntitle4 here, but seems unneeded
 
 
// Loop over the rows in the difference table
num_alert_strings = 0;
alert_string_list[0] = "NONE";
Line 375 ⟶ 412:
temp_added_line = temp_added_line.replace(/\s+/ig, " ");
} else { temp_added_line = ""; }
if (temp_added_line == prev_deleted_line) { num_diff_addedlines = 0; continue; }
if (temp_added_line.replace(/\s/ig, "").length < 1) { num_diff_addedlines = 0; continue; }
 
added_span_nodes = temp_table_datum.getElementsByTagName("SPAN");
if (!added_span_nodes) { num_added_spans = 0; continue; }
Line 417 ⟶ 454:
temp_deleted_line = temp_deleted_line.replace(/\s+/ig, " ");
} else { temp_deleted_line = ""; }
if (temp_deleted_line == prev_added_line) { num_diff_addedlines = 0; continue; }
if (temp_deleted_line.replace(/\s/ig, "").length < 1) { num_diff_deletedlines = 0; continue; }
 
deleted_span_nodes = temp_table_datum.getElementsByTagName("SPAN");
if (!deleted_span_nodes) { num_deleted_spans = 0; continue; }
Line 442 ⟶ 479:
} // closes loop over the data within a table row
 
if ((num_diff_addedlines > 0) && (temp_added_line) && (num_diff_deletedlines > 0) && (temp_deleted_line)) {
current_new_line_number++;
current_old_line_number++;
Line 495 ⟶ 532:
current_old_line_number++;
} // closes classification change as addition, deletion or replacement
 
prev_added_line = temp_added_line;
prev_deleted_line = temp_deleted_line;
} // closes loop over the table rows
 
Line 559 ⟶ 593:
addOnloadHook(function () {
mw.util.addPortletLink('p-cactions', 'javascript:quickDiffs()', 'qd', 'ca-diffquickdiff', 'Summarizes the differences between two page versions', 'b', '');
});