NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Task expandNEW
// @namespace revos
// @description Expand task in list
// @version 0.01
// @author revos
// @include http://wmmail.ru/index.php?cf=uzd-viewtask*
// @include http://www.wmmail.ru/index.php?cf=uzd-viewtask*
// @license MIT
// @run-at document-end
// ==/UserScript==
function expand(id) {
var comurl = "a[href='index.php?cf=uzd-commentzd&zdid="+id+"']";
var el = document.getElementById("uzd"+id);
if (el.nextSibling.id === "") {el.nextSibling.remove(); el.querySelector(comurl).nextSibling.innerHTML = "Развернуть";} else {
function makeRequest (uzd) {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open("GET", "/index.php?cf=uzd-readtask&zdid="+uzd);
xhr.onload = function () {
if (this.status >= 200 && this.status < 300) {
resolve(xhr.response);
} else {
reject({
status: this.status,
statusText: xhr.statusText
});
}
};
xhr.onerror = function () {
reject({
status: this.status,
statusText: xhr.statusText
});
};
xhr.send();
});
}
var tr = document.createElement("tr");
var td = document.createElement("td");
tr.appendChild(td);
td.colSpan = 4
makeRequest(id).then(res => {var div = document.createElement("div");
function form() {
var el = document.getElementById("uzd"+id).nextSibling;
var form = el.querySelectorAll("form")[1];
setTimeout(function() {function sendform(number) {
return new Promise(function (resolve, reject) {var form = el.querySelectorAll("form")[1];
form.setAttribute("target", "_blank"); form.submit();
var data = new FormData(form);
var req = new XMLHttpRequest(); req.open("POST", "/index.php", true);
req.onload = resolve;
req.onerror = reject;
req.send(data);
});
};sendform(2).then(e => {var lit = document.createElement("div"); lit.innerHTML = e.target.response; el.innerHTML = lit.querySelector("div.top_fon > div > table > tbody > tr > td > table:nth-child(4)").lastChild.firstChild.innerHTML; el.children[0].remove();el.children[1].remove();el.children[0].colSpan = 4;});}, 2000)
}
var code = "eval((" + form.toString().replace(/id/g, id)+")())";
div.innerHTML = res;var task = div.querySelector("div > div.top_fon > div > table > tbody > tr > td > table:nth-child(4) > tbody > tr:nth-child(1) > td:nth-child(2) > table:nth-child(4) > tbody"); var ttask = task.querySelector('input[onclick="setInterval(function fresh() {location.reload();} , 1000);"]'); if(ttask) {ttask.setAttribute( "onClick", code );}td.appendChild(task); var line = document.createElement("tr");
line.setAttribute("class", "line");
td.firstChild.appendChild(line)
var dots = document.createElement("td");
dots.setAttribute("class", "nobdr");
dots.colSpan = 4;
line.appendChild(dots);});
var comurl = "a[href='index.php?cf=uzd-commentzd&zdid="+id+"']";
el.parentNode.insertBefore(tr, el.nextSibling);el.querySelector(comurl).nextSibling.innerHTML = "Свернуть";}}
function addLink(id) {var link = document.createElement('a');
var el = document.getElementById("uzd"+id);
var linkText = document.createTextNode("Развернуть");
link.appendChild(linkText);
link.title = "Развернуть";
link.href = "javascript:void(0);";
link.setAttribute("onclick", "expand("+id+")");
var comurl = "a[href='index.php?cf=uzd-commentzd&zdid="+id+"']";
el.querySelector(comurl).parentNode.insertBefore(link, el.querySelector(comurl).nextSibling);
link.setAttribute("style", "margin-left: 20px");}
var nodes = document.getElementsByClassName("col2");
var snodes = [...nodes].map(item => item.nextElementSibling);
if(nodes[0].previousElementSibling.id === "") {} else {snodes.unshift(nodes[0].previousElementSibling)}
var arr = [...nodes];
arr = [...arr].map((e, i) => i < arr.length ? [e, snodes[i]] : [e]).reduce((a, b) => a.concat(b));
if (arr[arr.length-1].id == "") {arr.pop()}
for (var i = 0; i < arr.length; i++) {
if (arr[i].id !== "") {
addLink(arr[i].id.substring(3)); }
}
function addJS_Node (text, s_URL, funcToRun, runOnLoad) {
var D = document;
var scriptNode = D.createElement ('script');
if (runOnLoad) {
scriptNode.addEventListener ("load", runOnLoad, false);
}
scriptNode.type = "text/javascript";
if (text) scriptNode.textContent = text;
if (s_URL) scriptNode.src = s_URL;
if (funcToRun) scriptNode.textContent = '(' + funcToRun.toString() + ')()';
var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
targ.appendChild (scriptNode);
};
addJS_Node(expand);