www_archline_hu/cadline/backend/maintenance/tests/scripts/scripts.js
LÁZÁR Imre AI Agent 3d4158c3ac feat(cadline): add common_cadline_libraries + maintenance backend
common_cadline_libraries (CRM hardlock/db/users classes; upstream cadline_web/cadcommonlib), maintenance/ (ARCHLine.XP license backend; upstream cadline_web/maintenance), maintenance2/. Vetted live files (byte-truth); upstream repos in PROVENANCE.md. NOTE: could be git submodules — kept as live files for byte-fidelity.

Signed-off-by: LÁZÁR Imre <imre@illusion.hu>
Assisted-by: claude-code@claude-opus-4-8
2026-07-16 11:34:30 +02:00

198 lines
6.3 KiB
JavaScript

function showError(msg) {
$('#loading').hide();
$('#ListContainer').empty();
$('#ListContainer').append("<ul><li><span class='entry text-bg-danger'>" + msg + "</span></li></ul>");
}
function testAborted() {
$('#Summary').html("<span class='text-bg-danger'>This test was ABORTED</span><br/><br/><br/>");
$('#Summary').show();
}
String.prototype.capitalize = function () {
return this.charAt(0).toUpperCase() + this.slice(1);
}
jQuery.expr[':'].regex = function (elem, index, match) {
var matchParams = match[3].split(','),
validLabels = /^(data|css):/,
attr = {
method: matchParams[0].match(validLabels) ?
matchParams[0].split(':')[0] : 'attr',
property: matchParams.shift().replace(validLabels, '')
},
regexFlags = 'ig',
regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g, ''), regexFlags);
return regex.test(jQuery(elem)[attr.method](attr.property));
}
function isTestAttribute(str) {
var regex = /^@\?_#\$\$(\w+)\$\~(.*)/g;
var match = regex.exec(str);
return match != null;
}
function testAttributeName(str) {
var regex = /^@\?_#\$\$(\w+)\$\~(.*)/g;
var match = regex.exec(str);
var attrName = match[1];
return attrName;
}
function testAttributeValue(str) {
var regex = /^@\?_#\$\$(\w+)\$\~(.*)/g;
var match = regex.exec(str);
var attrValue = match[2];
return attrValue;
}
var is_aborted = false;
function xmlParser(xml, parent) {
var successful = true;
$(xml).contents().each(function (i, el) {
var nodename = el.nodeName.toUpperCase();
if (nodename == "TESTLOG") {
var ul = $('<ul class="treeview">').appendTo(parent);
xmlParser($(el), ul);
} else
if (nodename == "TESTSUITE") {
var li = $('<li>').html("<span class='suite'>Suite: " + $(el).attr('name') + "</span>").appendTo(parent);
if ($(el).attr('skipped') != 'yes') {
var c = $('<ul>').appendTo(li);
var succ = xmlParser($(el), c);
if (succ) {
li.children('span').first().addClass('text-bg-success');
} else {
li.children('span').first().addClass('text-bg-danger');
}
successful = succ && successful;
} else {
li.children('span').first().addClass('text-bg-secondary');
li.addClass('skipped');
}
} else
if (nodename == "TESTCASE") {
var li = $("<li class='closed'>").html("<span class='case'>Case: " + $(el).attr('name') + "</span>").appendTo(parent);
//c attributumok feldolgozasa
var div = $('<div style="padding: 1rem 1rem 0rem 1rem;">').addClass('boxshadow');
$(el).children("Message").each(function (i, msg) {
var txt = $(msg).text();
if (isTestAttribute(txt)) {
var attrName = testAttributeName(txt);
var attrValue = testAttributeValue(txt);
var tag = "<b>" + attrName + ": </b>" + attrValue;
div.append($('<p>').html(tag));
}
});
var c = $('<ul>').appendTo(li);
if ($(div).children().length > 0) {
div.appendTo(c);
}
var succ = xmlParser($(el), c);
if (succ) {
li.children('span').first().addClass('text-bg-success');
} else {
li.children('span').first().addClass('text-bg-danger');
}
successful = succ && successful;
} else
if (nodename == "INFO") {
var li = $('<li>').html("<span class='entry text-bg-success'>" + $(el).text() + "</span>").appendTo(parent);
successful = true && successful;
} else
if (nodename == "ERROR" || nodename == "EXCEPTION") {
var li = $('<li>').html("<span class='entry text-bg-danger'>" + $(el).text() + "</span>").appendTo(parent);
li.attr('data-jstree', '{"icon":"images/error.png"}');
var file = "<b>File: </b>" + $(el).attr('file');
var line = "<b>Line: </b>" + $(el).attr('line');
var div = $('<div style="padding: 1rem 1rem 0rem 1rem;">').addClass('boxshadow').appendTo(li);
div.append($('<p>').html(line)).append($('<p>').html(file));
successful = false && successful;
} else
if (nodename == "MESSAGE") {
var txt = $(el).text();
if (txt == 'Test is aborted') {
is_aborted = true;
}
if (!isTestAttribute(txt)) {
var li = $('<li>').html("<span class='entry text-bg-warning'>" + txt + "</span>").appendTo(parent);
}
}
});
return successful;
}
function createTreeView() {
$('#ListContainer>ul').treeview({
animated: "normal",
collapsed: false
});
}
function prepareDisplay() {
$('#ListContainer').empty();
$('#loading').show();
$('#Summary').hide();
$('#Summary').html("");
}
function showResultXml(xml) {
showResult(function (display) {
display(xml);
});
}
function showResult() {
prepareDisplay();
let id = $('#test_id').val();
$.ajax({
url: 'https://www.archline.hu/maintenance/tests/get_xml.php?id=' + id,
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
cache: false
}).done(function (xml) {
var parseXml;
if (window.DOMParser) {
parseXml = function (xmlStr) {
return (new window.DOMParser()).parseFromString(xmlStr, "text/xml");
};
} else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) {
parseXml = function (xmlStr) {
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlStr);
return xmlDoc;
};
} else {
parseXml = function () { return null; }
}
var xmlDoc = parseXml(xml);
xmlParser(xmlDoc, $('#ListContainer'));
createTreeView();
$('#loading').hide();
}).fail(function (jqXHR, textStatus, errorThrown) {
showError("No test result was generated due to build system failure.");
});
}
$(function () {
$("body").on("drop", function (e) {
console.log(e);
});
showResult();
});