diff options
author | Dan McGee <dan@archlinux.org> | 2012-12-12 03:53:50 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2012-12-12 03:54:35 +0100 |
commit | 040e0ddea591702856ce7d737bf4ea31f60a89e5 (patch) | |
tree | 32088e4dc6979477498ad43384ae76ff9f4e0d04 | |
parent | 911d6067bc62c02b9a4a63f4e6278d7118999869 (diff) | |
download | archweb-040e0ddea591702856ce7d737bf4ea31f60a89e5.tar.gz archweb-040e0ddea591702856ce7d737bf4ea31f60a89e5.tar.xz |
Collapse really long signoff specifications using JS
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | sitestatic/archweb.js | 31 | ||||
-rw-r--r-- | templates/packages/signoffs.html | 5 |
2 files changed, 33 insertions, 3 deletions
diff --git a/sitestatic/archweb.js b/sitestatic/archweb.js index a0c5713..42efb3f 100644 --- a/sitestatic/archweb.js +++ b/sitestatic/archweb.js @@ -301,7 +301,7 @@ function filter_packages_reset() { /* todolists/view.html */ function todolist_flag() { - // TODO: fix usage of this + // TODO: fix usage of this var link = this; $.getJSON(link.href, function(data) { if (data.complete) { @@ -353,7 +353,7 @@ function filter_pkgs_reset(callback) { /* signoffs.html */ function signoff_package() { - // TODO: fix usage of this + // TODO: fix usage of this var link = this; $.getJSON(link.href, function(data) { link = $(link); @@ -436,6 +436,33 @@ function filter_signoffs_reset() { filter_signoffs(); } +function collapseNotes(elements) { + // Remove any trailing <br/> tags from the note contents + $(elements).children('br').filter(':last-child').filter(function(i, e) { return !e.nextSibling; }).remove(); + + var maxElements = 8; + $(elements).each(function(idx, ele) { + ele = $(ele); + // Hide everything past a given limit. Don't do anything if we don't + // have enough items, or the link already exists. + var contents = ele.contents(); + if (contents.length <= maxElements || ele.find('a.morelink').length > 0) { + return; + } + contents.slice(maxElements).wrapAll('<div class="hide"/>'); + ele.append('<br/><a class="morelink" href="#">Show Moreā¦</a>'); + + // add link and wire it up to show the hidden items + ele.find('a.morelink').click(function(event) { + event.preventDefault(); + ele.find('div.hide').show(); + $(this).remove(); + // remove trailing line break between text and our link + $(this).contents().last().filter('br').remove(); + }); + }); +} + /* visualizations */ function format_filesize(size, decimals) { /*var labels = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];*/ diff --git a/templates/packages/signoffs.html b/templates/packages/signoffs.html index b673723..20371f9 100644 --- a/templates/packages/signoffs.html +++ b/templates/packages/signoffs.html @@ -69,7 +69,7 @@ {% endif %} {% endif %} <td>{% include "packages/signoff_cell.html" %}</td> - <td class="wrap">{% if not group.default_spec %}{% with group.specification as spec %}{% comment %} + <td class="wrap note">{% if not group.default_spec %}{% with group.specification as spec %}{% comment %} {% endcomment %}{% if spec.required != 2 %}Required signoffs: {{ spec.required }}<br/>{% endif %}{% comment %} {% endcomment %}{% if not spec.enabled %}Signoffs are not currently enabled<br/>{% endif %}{% comment %} {% endcomment %}{% if spec.known_bad %}Package is known to be bad<br/>{% endif %}{% comment %} @@ -95,5 +95,8 @@ $(document).ready(function() { // fire function on page load to ensure the current form selections take effect filter_signoffs(); }); +$(document).ready(function() { + collapseNotes('.note'); +}); </script> {% endblock %} |