summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2012-07-23 22:22:49 -0500
committerDan McGee <dan@archlinux.org>2012-07-23 22:22:49 -0500
commitb1206a4109d3b13b06c3116ef3a2dd6c9e125a1f (patch)
treed577e305025c1d2677cb6adb903a1127e69895e2
parent5b176fc672a89cc3711a6e581d076ad8be25c516 (diff)
Enable filtering of todolist packages
This matches the filtering options we have on the signoffs and package differences pages. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--sitestatic/archweb.js23
-rw-r--r--templates/packages/differences.html3
-rw-r--r--templates/todolists/view.html22
3 files changed, 44 insertions, 4 deletions
diff --git a/sitestatic/archweb.js b/sitestatic/archweb.js
index b04b1d01..e6d73414 100644
--- a/sitestatic/archweb.js
+++ b/sitestatic/archweb.js
@@ -279,6 +279,29 @@ function todolist_flag() {
return false;
}
+function filter_todolist() {
+ /* start with all rows, and then remove ones we shouldn't show */
+ var rows = $('#dev-todo-pkglist tbody').children();
+ var all_rows = rows;
+ /* apply the filters, cheaper ones first */
+ if ($('#id_mine_only').is(':checked')) {
+ rows = rows.filter('.mine');
+ }
+ if ($('#id_incomplete').is(':checked')) {
+ rows = rows.has('.incomplete');
+ }
+ /* hide all rows, then show the set we care about */
+ all_rows.hide();
+ rows.show();
+ /* make sure we update the odd/even styling from sorting */
+ $('.results').trigger('applyWidgets');
+}
+function filter_todolist_reset() {
+ $('#id_incomplete').removeAttr('checked');
+ $('#id_mine_only').removeAttr('checked');
+ filter_todolist();
+}
+
/* signoffs.html */
function signoff_package() {
var link = this;
diff --git a/templates/packages/differences.html b/templates/packages/differences.html
index 8d6887a3..b0c5b539 100644
--- a/templates/packages/differences.html
+++ b/templates/packages/differences.html
@@ -8,7 +8,7 @@
{% if differences %}
<div class="box">
<h2>Package Differences by Architecture</h2>
- <div id="differences-filter" class="filter-criteria">
+ <div class="filter-criteria">
<h3>Filter Differences View</h3>
<form id="diff_filter" method="post" action=".">
<fieldset>
@@ -29,7 +29,6 @@
</fieldset>
</form>
</div>
- {# TODO some sort of spacing here #}
<table id="table_differences" class="results">
<thead>
diff --git a/templates/todolists/view.html b/templates/todolists/view.html
index c774c9cd..69595e1a 100644
--- a/templates/todolists/view.html
+++ b/templates/todolists/view.html
@@ -29,6 +29,20 @@
<li><a href="pkgbases/{{ svn_root }}/">{{ svn_root }}</a></li>
{% endfor %}</ul>
+ <div class="filter-criteria">
+ <h3>Filter Todolist Packages</h3>
+ <form id="todolist_filter" method="post" action=".">
+ <fieldset>
+ <legend>Select filter criteria</legend>
+ <div><label for="id_mine_only" title="Show only packages maintained by me">Only Mine</label>
+ <input type="checkbox" name="mine_only" id="id_mine_only" value="mine_only"/></div>
+ <div><label for="id_incomplete" title="Packages not yet completed">Only Incomplete</label>
+ <input type="checkbox" name="incomplete" id="id_incomplete" value="incomplete"/></div>
+ <div ><label>&nbsp;</label><input title="Reset search criteria" type="button" id="criteria_reset" value="Reset"/></div>
+ </fieldset>
+ </form>
+ </div>
+
<table id="dev-todo-pkglist" class="results todo-table">
<thead>
<tr>
@@ -42,7 +56,7 @@
</thead>
<tbody>
{% for pkg in list.packages %}
- <tr class="{% cycle 'odd' 'even' %}">
+ <tr class="{% cycle 'odd' 'even' %}{% if user in pkg.pkg.maintainers %} mine{% endif %}">
<td>{{ pkg.pkg.arch.name }}</td>
<td>{{ pkg.pkg.repo.name|capfirst }}</td>
<td>{% pkg_details_link pkg.pkg %}</td>
@@ -74,12 +88,16 @@
<script type="text/javascript" src="{% static "archweb.js" %}"></script>
<script type="text/javascript">
$(document).ready(function() {
- $('a.status-link').click(todolist_flag);
$(".results").tablesorter({
widgets: ['zebra'],
sortList: [[2,0], [0,0]],
headers: { 5: { sorter: 'todostatus' } }
});
+ $('a.status-link').click(todolist_flag);
+ $('#todolist_filter input').change(filter_todolist);
+ $('#criteria_reset').click(filter_todolist_reset);
+ // fire function on page load to ensure the current form selections take effect
+ filter_todolist();
});
</script>
{% endblock %}