diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/pkgsubmit.js | 207 |
1 files changed, 124 insertions, 83 deletions
diff --git a/js/pkgsubmit.js b/js/pkgsubmit.js index daa1f2e..8534195 100644 --- a/js/pkgsubmit.js +++ b/js/pkgsubmit.js @@ -1,3 +1,26 @@ +/** + * Mageia build-system quick status report script. + * Javascript utilities. + * + * @copyright Copyright (C) 2012 Mageia.Org + * + * @author Romain d'Alverny + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU GPL v2 + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License aspublished by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. +*/ + +/** + * Is the file in path expected to be in text/plain or not? + * We just know what .log, .done and .youri files are. + * + * @param string path + * + * @return boolean +*/ function isLogFile(path) { var ext = path.split(".").pop(); @@ -8,6 +31,16 @@ function isLogFile(path) { return false; } +/** + * Is the file in path expected to be a short one (1, 2 lines at most) + * or not? + * + * We just know that status.log and whatever.done files are one-liners. + * + * @param string path + * + * @return boolean +*/ function isShortFile(path) { var ext = path.split(".").pop(); @@ -60,94 +93,102 @@ function highlight_text(text) { }); } -$(function () { - - $('.status-link').on("click", function (ev) { - if (!ev.metaKey) { - ev.preventDefault(); - - var key = $(this).attr("href"); - var elId = 'e' + key.replace(/\/|\./g, '-'); - var el = $("#" + elId); - - if (el.length == 0) { - $(this).parent().parent().after($("<tr />", - { - class: "build-files-list", - id: elId, - html: '<td colspan="5">loading</td>' - } - )); - $.get( - "/log_files.php", - {"k": $(this).attr("href")}, - function (data) { - $("#" + elId).html('<td colspan="5">' + data + '</td>'); - } - ); - } else { - el.toggle(); - } +/** +*/ +function build_log_files_list(ev) { + if (!ev.metaKey) { + ev.preventDefault(); + + var key = $(this).attr("href"); + var elId = 'e' + key.replace(/\/|\./g, '-'); + var el = $("#" + elId); + + if (el.length == 0) { + $(this).parent().parent().after($("<tr />", + { + class: "build-files-list", + id: elId, + html: '<td colspan="5">loading</td>' + } + )); + $.get( + "/log_files.php", + {"k": $(this).attr("href")}, + function (data) { + $("#" + elId).html('<td colspan="5">' + data + '</td>'); + } + ); + } else { + el.toggle(); } - }); + } +} - $("table#submitted-packages tbody").on("click", "tr td li a.view-inline", function (ev) { +/** +*/ +function show_log_file(ev) { - if (isLogFile($(this).attr("href"))) { - return true; - } + if (isLogFile($(this).attr("href"))) { + return true; + } - if (!ev.metaKey) { - ev.preventDefault(); - - var elId = 'view-' + $(this).attr("href").replace(/\/|\./g, '-'); - var cId = elId + '-container'; - var c = $("#" + cId); - var el = $("#" + elId); - - if (c.length == 0) { - $(this).after($("<div />", { - id: cId - }) - .addClass(isShortFile($(this).attr("href")) ? "short" : "") - .append($("<div />", { - id: elId, - class: "file-view", - html: "loading..." - })) - ); - - $.get( - "/" + $(this).attr("href"), - {}, - function (data) { - $("#" + elId).html(highlight_text(data)) - .before( - $("<div />", { - class: "controls" + if (!ev.metaKey) { + ev.preventDefault(); + + var elId = 'view-' + $(this).attr("href").replace(/\/|\./g, '-'); + var cId = elId + '-container'; + var c = $("#" + cId); + var el = $("#" + elId); + + if (c.length == 0) { + $(this).after($("<div />", { + id: cId + }) + .addClass(isShortFile($(this).attr("href")) ? "short" : "") + .append($("<div />", { + id: elId, + class: "file-view", + html: "loading..." + })) + ); + + $.get( + "/" + $(this).attr("href"), + {}, + function (data) { + $("#" + elId).html(highlight_text(data)) + .before( + $("<div />", { + class: "controls" + }) + .append($("<button />", { + class: "gototop", + html: "top" + }).on("click", function (ev) { + $("#" + elId).animate({ scrollTop: 0 }, 200); }) - .append($("<button />", { - class: "gototop", - html: "top" - }).on("click", function (ev) { - $("#" + elId).animate({ scrollTop: 0 }, 200); - }) - ) - .append($("<button />", { - class: "gotobo", - html: "bottom" - }).on("click", function (ev) { - var d = $("#" + elId); - d.animate({ scrollTop: d.prop("scrollHeight") }, 200); - }) - ) ) - .animate({ scrollTop: $("#" + elId).prop("scrollHeight") }, 1000); - } - ); - } else { - c.toggle(); - } + .append($("<button />", { + class: "gotobo", + html: "bottom" + }).on("click", function (ev) { + var d = $("#" + elId); + d.animate({ scrollTop: d.prop("scrollHeight") }, 200); + }) + ) + ) + .animate({ scrollTop: $("#" + elId).prop("scrollHeight") }, 1000); + } + ); + } else { + c.toggle(); } - }); + } +} + +$(function () { + + $('.status-link').on("click", build_log_files_list); + + $("table#submitted-packages tbody").on("click", "tr td li a.view-inline", show_log_file); });
\ No newline at end of file |