summaryrefslogtreecommitdiff
path: root/media/archweb.js
diff options
context:
space:
mode:
Diffstat (limited to 'media/archweb.js')
-rw-r--r--media/archweb.js103
1 files changed, 65 insertions, 38 deletions
diff --git a/media/archweb.js b/media/archweb.js
index 1c80ab64..330eeff9 100644
--- a/media/archweb.js
+++ b/media/archweb.js
@@ -1,6 +1,6 @@
/* tablesorter custom parsers for various pages:
* devel/index.html, mirrors/status.html, todolists/view.html */
-if(typeof $.tablesorter !== "undefined") {
+if (typeof $.tablesorter !== 'undefined') {
$.tablesorter.addParser({
id: 'pkgcount',
is: function(s) { return false; },
@@ -14,21 +14,20 @@ if(typeof $.tablesorter !== "undefined") {
id: 'todostatus',
is: function(s) { return false; },
format: function(s) {
- return s.match(/incomplete/) ? 1 : 0;
+ return s.match(/incomplete/i) ? 1 : 0;
},
type: 'numeric'
});
$.tablesorter.addParser({
/* sorts numeric, but put '', 'unknown', and '∞' last. */
id: 'mostlydigit',
- is: function(s,table) {
- var special = ['', 'unknown', '∞'];
+ special: ['', 'unknown', '∞'],
+ is: function(s, table) {
var c = table.config;
- return ($.inArray(s, special) > -1) || $.tablesorter.isDigit(s,c);
+ return ($.inArray(s, this.special) > -1) || $.tablesorter.isDigit(s, c);
},
format: function(s) {
- var special = ['', 'unknown', '∞'];
- if($.inArray(s, special) > -1) return Number.MAX_VALUE;
+ if ($.inArray(s, this.special) > -1) return Number.MAX_VALUE;
return $.tablesorter.formatFloat(s);
},
type: 'numeric'
@@ -37,14 +36,14 @@ if(typeof $.tablesorter !== "undefined") {
/* sorts duration; put '', 'unknown', and '∞' last. */
id: 'duration',
re: /^([0-9]+):([0-5][0-9])$/,
+ special: ['', 'unknown', '∞'],
is: function(s) {
- var special = ['', 'unknown', '∞'];
- return ($.inArray(s, special) > -1) || this.re.test(s);
+ return ($.inArray(s, this.special) > -1) || this.re.test(s);
},
format: function(s) {
- var special = ['', 'unknown', '∞'];
- if($.inArray(s, special) > -1) return Number.MAX_VALUE;
+ if ($.inArray(s, this.special) > -1) return Number.MAX_VALUE;
var matches = this.re.exec(s);
+ if (!matches) return Number.MAX_VALUE;
return matches[1] * 60 + matches[2];
},
type: 'numeric'
@@ -52,17 +51,18 @@ if(typeof $.tablesorter !== "undefined") {
$.tablesorter.addParser({
id: 'longDateTime',
re: /^(\d{4})-(\d{2})-(\d{2}) ([012]\d):([0-5]\d)(:([0-5]\d))?( (\w+))?$/,
- is: function (s) {
+ is: function(s) {
return this.re.test(s);
},
- format: function (s) {
+ format: function(s) {
var matches = this.re.exec(s);
+ if (!matches) return 0;
/* skip group 6, group 7 is optional seconds */
- if(matches[7] == undefined) matches[7] = "0";
+ if (matches[7] == undefined) matches[7] = '0';
return $.tablesorter.formatFloat(new Date(
matches[1],matches[2],matches[3],matches[4],matches[5],matches[7]).getTime());
},
- type: "numeric"
+ type: 'numeric'
});
}
@@ -92,18 +92,18 @@ function ajaxifyFiles() {
}
/* packages/differences.html */
-filter_packages = function() {
+function filter_packages() {
// start with all rows, and then remove ones we shouldn't show
- var rows = $("#tbody_differences").children();
+ var rows = $('#tbody_differences').children();
var all_rows = rows;
- if(!$('#id_multilib').is(':checked')) {
- rows = rows.not(".multilib").not(".multilib-testing");
+ if (!$('#id_multilib').is(':checked')) {
+ rows = rows.not('.multilib').not('.multilib-testing');
}
- var arch = $("#id_archonly").val();
- if(arch !== "all") {
- rows = rows.filter("." + arch);
+ var arch = $('#id_archonly').val();
+ if (arch !== 'all') {
+ rows = rows.filter('.' + arch);
}
- if(!$('#id_minor').is(':checked')) {
+ if (!$('#id_minor').is(':checked')) {
// this check is done last because it is the most expensive
var pat = /(.*)-(.+)/;
rows = rows.filter(function(index) {
@@ -111,15 +111,15 @@ filter_packages = function() {
// all this just to get the split version out of the table cell
var ver_a = cells.eq(2).find('span').text().match(pat);
- if(!ver_a) return true;
+ if (!ver_a) return true;
var ver_b = cells.eq(3).find('span').text().match(pat);
- if(!ver_b) return true;
+ if (!ver_b) return true;
// first check pkgver
- if(ver_a[1] !== ver_b[1]) return true;
+ if (ver_a[1] !== ver_b[1]) return true;
// pkgver matched, so see if rounded pkgrel matches
- if(Math.floor(parseFloat(ver_a[2])) ==
+ if (Math.floor(parseFloat(ver_a[2])) ==
Math.floor(parseFloat(ver_b[2]))) return false;
// pkgrel didn't match, so keep the row
return true;
@@ -129,24 +129,51 @@ filter_packages = function() {
all_rows.hide();
rows.show();
// make sure we update the odd/even styling from sorting
- $('.results').trigger("applyWidgets");
-};
-filter_reset = function() {
- $('#id_archonly').val("both");
- $('#id_multilib').removeAttr("checked");
- $('#id_minor').removeAttr("checked");
+ $('.results').trigger('applyWidgets');
+}
+function filter_reset() {
+ $('#id_archonly').val('both');
+ $('#id_multilib').removeAttr('checked');
+ $('#id_minor').removeAttr('checked');
filter_packages();
-};
+}
/* todolists/view.html */
-todolist_flag = function() {
+function todolist_flag() {
var link = this;
$.getJSON(link.href, function(data) {
if (data.complete) {
- $(link).text('Complete').addClass('complete').removeClass('incomplete');
+ $(link).text('Complete').addClass(
+ 'complete').removeClass('incomplete');
} else {
- $(link).text('Incomplete').addClass('incomplete').removeClass('complete');
+ $(link).text('Incomplete').addClass(
+ 'incomplete').removeClass('complete');
}
+ /* let tablesorter know the cell value has changed */
+ $('.results').trigger('updateCell', $(link).closest('td'));
});
return false;
-};
+}
+
+/* signoffs.html */
+function signoff_package() {
+ var link = this;
+ $.getJSON(link.href, function(data) {
+ if (data.created) {
+ var signoff = $('<li>').addClass('signed-username').text(data.user);
+ $(link).append(signoff);
+ }
+ /* update the approved column to reflect reality */
+ if (data.approved) {
+ var approved = $(link).closest('tr').children('.signoff-no');
+ approved.text('Yes').addClass(
+ 'signoff-yes').removeClass('signoff-no');
+ } else {
+ var approved = $(link).closest('tr').children('.signoff-yes');
+ approved.text('No').addClass(
+ 'signoff-no').removeClass('signoff-yes');
+ }
+ $('.results').trigger('updateCell', approved);
+ });
+ return false;
+}