Lang-8 - "All Corrections" View Enhancer

Easier to read and view corrections in the "All Corrections" view. - https://greasyfork.org/en/users/3656-kaiko

Fra 27.07.2015. Se den seneste versjonen.

// ==UserScript==
// @name        Lang-8 - "All Corrections" View Enhancer
// @namespace   Lang8LTR
// @description	Easier to read and view corrections in the "All Corrections" view. - https://greasyfork.org/en/users/3656-kaiko
// @include     http://lang-8.com/*/journals/*
// @include     https://lang-8.com/*/journals/*
// @version     1
// @grant       none
// ==/UserScript==

function resizeAllCorrectionsWindow(){
	var allCorrectionsParent = document.getElementById("allCorrectionsPanel_c");
	var allCorrections = document.getElementById("allCorrectionsPanel");
	var heightBox = allCorrections.getElementsByClassName("bd")[0];
	if (allCorrectionsParent){
		//Resize the window
		allCorrections.style.width = window.innerWidth/1.5 + "px";
		heightBox.style.height = window.innerHeight/1.5 + "px";
		//ReCenter it
		allCorrectionsParent.style.left = window.innerWidth/6.2 + "px";
		allCorrectionsParent.style.top = window.innerHeight/7 + "px";
	}
}

window.onresize = resizeAllCorrectionsWindow;


document.getElementById("showAll").onclick = function showallexecuteLineThroughRemoval() {
	var allCorrectionsParent = document.getElementById("allCorrectionsPanel_c");
	var allCorrections = document.getElementById("allCorrectionsPanel");
	var heightBox = allCorrections.getElementsByClassName("bd")[0];
	resizeAllCorrectionsWindow();
	
	//Remove some unnecessary spacing
	var toRep = heightBox.innerHTML;
	var toRepB = toRep.replace(/<br>/g, "");
	var toRepC = toRepB.replace(/<p><\/p>/g, "");
	var toRepD = toRepC.replace("Title", "Title<br>");
	var toRepE = toRepD.replace("Main Body", "<br>");
	heightBox.innerHTML = toRepE;
	//Break up our corrections with a background
	var bb = allCorrections.getElementsByClassName("correction_field");
	for (i = 0; i < bb.length; ++i) {
		bb[i].style.backgroundColor = "#E5E5E5"
	}
	//Remove "All Corrections" line-through
	var b = allCorrections.getElementsByTagName("span");
	for (i = 0; i < b.length; ++i) {
		if (b[i].style.textDecorationLine){
			b[i].innerHTML = "";
		}
	}
	//Remove duplicate non-corrected lines from our entry, for further readability and less confusion
	//Hacked-in absurdly as Lang-8's developers didn't correctly use tags around our written text, and corrections.
	var bc = allCorrections.textContent;
	var bd = allCorrections.getElementsByClassName("correction");
	for (i = 0; i < bd.length; ++i) {
		var re = new RegExp(bd[i].textContent, 'g');
		var matchCount  = bc.match(re).length;
		if (matchCount >= 2){
			console.log(matchCount +"	Diff is:	"+bd[i].textContent);
			bd[i].textContent = "CORRECT";
		}
	}
	//Remove default NoCorrectionNecessary message
	var c = allCorrections.getElementsByClassName("corrected perfect");
	for (i = 0; i < c.length; ++i) {
		c[i].innerHTML = "";
	}
	//Reinsert comment image next to comments since they don't always have one
	var d = allCorrections.getElementsByClassName("correction_comment");
	for (i = 0; i < d.length; ++i) {
		d[i].innerHTML = '<img alt="Comment" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAANlBMVEV9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3AS/7wAAAAEXRSTlMACTReYWJmdpaf7e7v8PHy93y2WnUAAAA2SURBVHjancc3DgAgEMTAJeew//8sFKcTNVPZ8IOiO1SqBj6+ZlBNhEWxPK5MFgORd4RKVuIAotwHM1W7LmAAAAAASUVORK5CYII" />' + " " + d[i].innerHTML + "<br />";
		d[i].className = '';
	}
	//Remove empty 'correct' fields
	var e = allCorrections.getElementsByClassName("correct");
	for (i = 0; i < e.length; ++i) {
		if (e[i].textContent == ''){
			e[i].className = '';
		}
	}
};

window.onload = function onloadexecuteLineThroughRemoval(){
	//Remove correction posts' themselves' line-through
	var a = document.getElementsByClassName("sline");
	for (i = 0; i < a.length; ++i) {
		a[i].innerHTML='';
	}
}