diff options
Diffstat (limited to 'templates/todolists/view.html')
-rw-r--r-- | templates/todolists/view.html | 84 |
1 files changed, 60 insertions, 24 deletions
diff --git a/templates/todolists/view.html b/templates/todolists/view.html index e53ead82..644e78b0 100644 --- a/templates/todolists/view.html +++ b/templates/todolists/view.html @@ -1,6 +1,7 @@ {% extends "base.html" %} {% load static from staticfiles %} {% load package_extras %} +{% load todolists %} {% block title %}{{ BRANDING_DISTRONAME }} - Todo: {{ list.name }}{% endblock %} @@ -10,17 +11,17 @@ <h2>Todo List: {{ list.name }}</h2> <ul class="admin-actions"> - {% if perms.main.delete_todolist %} - <li><a href="/todo/delete/{{list.id}}/" + {% if perms.todolists.delete_todolist %} + <li><a href="/todo/{{ list.slug }}/delete/" title="Delete this todo list">Delete Todo List</a></li> {% endif %} - {% if perms.main.change_todolist %} - <li><a href="/todo/edit/{{list.id}}/" + {% if perms.todolists.change_todolist %} + <li><a href="/todo/{{ list.slug }}/edit/" title="Edit this todo list">Edit Todo List</a></li> {% endif %} </ul> - <p class="todo-info">{{ list.date_added|date }} - {{ list.creator.get_full_name }}</p> + <p class="todo-info">{{ list.created|date }} - {{ list.creator.get_full_name }}</p> <div>{{list.description|urlize|linebreaks}}</div> @@ -29,6 +30,34 @@ <li><a href="pkgbases/{{ svn_root }}/">{{ svn_root }}</a></li> {% endfor %}</ul> + <p>{{ list.packages|length }} total todo list package{{ list.packages|pluralize }} found.</p> + + <div class="box filter-criteria"> + <h3>Filter Todo List Packages</h3> + <form id="todolist_filter" method="post" action="."> + <fieldset> + <legend>Select filter criteria</legend> + {% for arch in arches %} + <div><label for="id_arch_{{ arch.name }}" title="Architecture {{ arch.name }}">Arch {{ arch.name }}</label> + <input type="checkbox" name="arch_{{ arch.name }}" id="id_arch_{{ arch.name }}" class="arch_filter" value="{{ arch.name }}" checked="checked"/></div> + {% endfor %} + {% for repo in repos %} + <div><label for="id_repo_{{ repo.name|lower }}" title="Target Repository {{ repo.name }}">[{{ repo.name|lower }}]</label> + <input type="checkbox" name="repo_{{ repo.name|lower }}" id="id_repo_{{ repo.name|lower }}" class="repo_filter" value="{{ repo.name|lower }}" checked="checked"/></div> + {% endfor %} + {% if user.is_authenticated %} + <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> + {% endif %} + <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> </label><input title="Reset search criteria" type="button" id="criteria_reset" value="Reset"/></div> + <div class="clear"></div> + <div id="filter-info"><span id="filter-count">{{ list.packages|length }}</span> todo list packages displayed.</div> + </fieldset> + </form> + </div> + <table id="dev-todo-pkglist" class="results todo-table"> <thead> <tr> @@ -36,33 +65,34 @@ <th>Repository</th> <th>Name</th> <th>Current Version</th> + <th>Staging Version</th> <th>Maintainers</th> <th>Status</th> </tr> </thead> <tbody> {% for pkg in list.packages %} - <tr class="{% cycle 'odd' 'even' %}"> - <td>{{ pkg.pkg.arch.name }}</td> - <td>{{ pkg.pkg.repo.name|capfirst }}</td> - <td>{% pkg_details_link pkg.pkg %}</td> + <tr class="{% cycle 'odd' 'even' %}{% if user in pkg.maintainers %} mine{% endif %} {{ pkg.arch.name }} {{ pkg.repo.name|lower }}"> + <td>{{ pkg.arch.name }}</td> + <td>{{ pkg.repo.name|capfirst }}</td> + <td>{% todopkg_details_link pkg %}</td> {% if pkg.pkg.flag_date %} <td><span class="flagged">{{ pkg.pkg.full_version }}</span></td> - {% else %} + {% elif pkg.pkg %} <td>{{ pkg.pkg.full_version }}</td> + {% else %} + <td></td> {% endif %} - <td>{{ pkg.pkg.maintainers|join:', ' }}</td> + {% with staging=pkg.staging %} + <td>{% if staging %}{% pkg_details_link staging staging.full_version %}{% endif %}</td> + {% endwith %} + <td>{{ pkg.maintainers|join:', ' }}</td> <td> - {% if perms.main.change_todolistpkg %} - {% if pkg.complete %} - <a href="/todo/flag/{{ list.id }}/{{ pkg.id }}/" - class="status-link complete" title="Toggle completion status">Complete</a> + {% if perms.todolists.change_todolistpackage %} + <a href="/todo/{{ list.slug }}/flag/{{ pkg.id }}/" + class="status-link {{ pkg.status_css_class }}" title="Toggle completion status">{{ pkg.get_status_display }}</a> {% else %} - <a href="/todo/flag/{{ list.id }}/{{ pkg.id }}/" - class="status-link incomplete" title="Toggle completion status">Incomplete</a> - {% endif %} - {% else %} - {% if pkg.complete %}<span class="complete">Complete</span>{% else %}<span class="incomplete">Incomplete</span>{% endif %} + <span class="{{ pkg.status_css_class }}">{{ pkg.get_status_display }}</span> {% endif %} </td> </tr> @@ -70,17 +100,23 @@ </tbody> </table> </div> -{% load cdn %}{% jquery %} -<script type="text/javascript" src="{% static "jquery.tablesorter.min.js" %}"></script> +{% load cdn %}{% jquery %}{% jquery_tablesorter %} <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' } } + headers: { 6: { sorter: 'todostatus' } } }); }); +$(document).ready(function() { + $('a.status-link').click(todolist_flag); + var filter_func = function() { filter_pkgs_list('#todolist_filter', '#dev-todo-pkglist tbody'); }; + $('#todolist_filter input').change(filter_func); + $('#criteria_reset').click(function() { filter_pkgs_reset(filter_func); }); + // fire function on page load to ensure the current form selections take effect + filter_func(); +}); </script> {% endblock %} |