Jump to content

MediaWiki:Changelog.js

From UmsWiki
Revision as of 08:48, 11 August 2025 by Khm@inlogic.dk (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
(function ($) {
    "use strict";

    function createTable(id, hookObject) {
        var tableStart = "<div><table id=\"" + id + "\" style=\"word-wrap: break-word;width:100%;\" class=\"wikitable\">";
        var tableEnd = "</table></div>";
        var tableHeaders = ["Module", "Type", "Log", "Version", "Occurred errors"];
        var tableHead = createTableHeader(tableHeaders);

        hookObject.html(tableStart + tableHead + tableEnd);
    }

    function createTableHeader(headers) {
        var tableHeadStart = "<thead>";
        var tableHeadEnd = "</thead>";
        var tableHeadRowStart = "<tr>";
        var tableHeadRowEnd = "</tr>";
        var tableHeadCellStart = "<th align=\"left\" style=\"\">";
        var tableHeadCellEnd = "</th>";

        var output = tableHeadStart + tableHeadRowStart;

        jQuery.each(headers, function (i, item) {

            if (item === 'Module' || item === 'Type' || item === 'Version') {
                tableHeadCellStart = "<th align=\"left\" style=\"width:15%;\">";
            } else if (item === 'Log') {
                tableHeadCellStart = "<th align=\"left\" style=\"width:30%;\">";
            } else {
                tableHeadCellStart = "<th align=\"left\" style=\"width:25%;\">";
            }

            output = output + tableHeadCellStart + item + tableHeadCellEnd;
        });

        output = output + tableHeadRowEnd + tableHeadEnd;
        return output;
    }

    function addData(tableObject, category) {
        var rowStart = '<tr>';
        var rowEnd = '</tr>';
        var cellStart = '<td>';
        var cellStartWithColspan = '<td colspan="5">';
        var cellEnd = '</td>';
        var breakElement = '<br />';

        var url = "https://imp.inlogic.dk/api/changelog";

        if (category)
            url = url + "/" + category;

        $.ajax({
            url: url, success: function (data) {
                if (!$.trim(data)) {
                    tableObject.append(rowStart + cellStartWithColspan + "Ingen log fundet for den valgte kategori..." + cellEnd + rowEnd);
                } else {
                    $.each(data, function (i, item) {
			var logtype = "Add"
			if (item.logType == 1)
			{
				logtype = "Fix"
			}
			if (item.logType == 2)
			{
				logtype = "Change"
			}

                        if (item.ErrorMessage != '') {
                            tableObject.append(rowStart + cellStart + item.licenseModules.moduleName + cellEnd + cellStart + logtype + cellEnd + cellStart + item.logText + cellEnd + cellStart + item.buildVersion + cellEnd + cellStart + item.errorMessage + cellEnd + rowEnd);
                        }
                        else {
                            tableObject.append(rowStart + cellStart + item.licenseModules.moduleName + cellEnd + cellStart + logtype + cellEnd + cellStart + item.logText + cellEnd + cellStart + item.buildVersion + cellEnd + cellStart + cellEnd + rowEnd);
                        }
                    });
                }
            }
        });
    }

    createTable("backendTable", $("#backend"));
    addData($("#backendTable"), 1);

    createTable("frontendTable", $("#frontend"));
    addData($("#frontendTable"), 2);

    createTable("appTable", $("#app"));
    addData($("#appTable"), 3);

    createTable("absenceTable", $("#absence"));
    addData($("#absenceTable"), 4);

    createTable("professionalTable", $("#professional"));
    addData($("#professionalTable"), 5);

    createTable("guardianTable", $("#guardian"));
    addData($("#guardianTable"), 6);

    createTable("smsgatewayTable", $("#smsgatewayserver"));
    addData($("#smsgatewayTable"), 8);
})(jQuery);