diff options
Diffstat (limited to 'templates')
30 files changed, 426 insertions, 158 deletions
diff --git a/templates/devel/clock.html b/templates/devel/clock.html index cbf4b834..2eafd529 100644 --- a/templates/devel/clock.html +++ b/templates/devel/clock.html @@ -45,7 +45,7 @@ <script type="text/javascript"> $(document).ready(function() { $("#clocks-table:has(tbody tr)").tablesorter( - {widgets: ['zebra'], sortList: [[1,0]]}); + {widgets: ['zebra'], sortList: [[0,0]]}); }); </script> {% endblock %} diff --git a/templates/devel/index.html b/templates/devel/index.html index 6b50d3a0..ad024a34 100644 --- a/templates/devel/index.html +++ b/templates/devel/index.html @@ -1,5 +1,6 @@ {% extends "base.html" %} {% load cache %} +{% load package_extras %} {% block title %}Parabola - Hacker Dashboard{% endblock %} @@ -14,8 +15,8 @@ <thead> <tr> <th>Name</th> - <th>Repo</th> <th>Version</th> + <th>Repo</th> <th>Arch</th> <th>Flagged</th> <th>Last Updated</th> @@ -24,16 +25,15 @@ <tbody> {% for pkg in flagged %} <tr class="{% cycle 'odd' 'even' %}"> - <td><a href="{{ pkg.get_absolute_url }}" - title="View package details for {{ pkg.pkgname }}">{{ pkg.pkgname }}</a></td> - <td>{{ pkg.repo.name }}</td> + <td>{% pkg_details_link pkg %}</td> <td>{{ pkg.full_version }}</td> + <td>{{ pkg.repo.name }}</td> <td>{{ pkg.arch.name }}</td> <td>{{ pkg.flag_date|date }}</td> <td>{{ pkg.last_update|date }}</td> </tr> {% empty %} - <tr class="empty"><td colspan="4"><em>No flagged packages to display</em></td></tr> + <tr class="empty"><td colspan="6"><em>No flagged packages to display</em></td></tr> {% endfor %} </tbody> </table> @@ -55,8 +55,7 @@ <tr class="{% cycle 'odd' 'even' %}"> <td><a href="{{ todopkg.list.get_absolute_url }}" title="View todo list: {{ todopkg.list.name }}">{{ todopkg.list.name }}</a></td> - <td><a href="{{ todopkg.pkg.get_absolute_url }}" - title="View package details for {{ todopkg.pkg.pkgname }}">{{ todopkg.pkg.pkgname }}</a></td> + <td>{% pkg_details_link todopkg.pkg %}</td> <td>{{ todopkg.pkg.repo.name }}</td> <td>{{ todopkg.pkg.arch.name }}</td> <td>{{ todopkg.pkg.maintainers|join:', ' }}</td> @@ -79,7 +78,6 @@ <th>Package Count</th> <th>Incomplete Count</th> </tr> - </tr> </thead> <tbody> {% for todo in todos %} @@ -93,7 +91,50 @@ <td>{{ todo.incomplete_count }}</td> </tr> {% empty %} - <tr class="empty"><td colspan="3"><em>No package todo lists to display</em></td></tr> + <tr class="empty"><td colspan="6"><em>No package todo lists to display</em></td></tr> + {% endfor %} + </tbody> + </table> + + <h3>Signoff Status</h3> + + <table id="dash-signoffs" class="results"> + <thead> + <tr> + <th>Name</th> + <th>Version</th> + <th>Arch</th> + <th>Target Repo</th> + <th>Last Updated</th> + <th>Approved</th> + <th>Signoffs</th> + </tr> + </thead> + <tbody> + {% for group in signoffs %} + <tr class="{% cycle 'odd' 'even' %}"> + <td>{% pkg_details_link group.package %}</td> + <td>{{ group.version }}</td> + <td>{{ group.arch.name }}</td> + <td>{{ group.target_repo }}</td> + <td>{{ group.last_update|date }}</td> + {% if group.specification.known_bad %} + <td class="approval signoff-bad">Bad</td> + {% else %} + {% if not group.specification.enabled %} + <td class="approval signoff-disabled">Disabled</td> + {% else %} + <td class="approval signoff-{{ group.approved|yesno }}">{{ group.approved|yesno|capfirst }}</td> + {% endif %} + {% endif %} + <td><ul class="signoff-list"> + {% for signoff in group.signoffs %} + <li class="signed-username" title="Signed off by {{ signoff.user }}">{{ signoff.user }}{% if signoff.revoked %} (revoked){% endif %}</li> + {% endfor %} + </ul></td> + </tr> + {% empty %} + <tr class="empty"><td colspan="7"><em>No packages you maintain or have packaged need signoffs</em></td></tr> {% endfor %} </tbody> </table> @@ -136,6 +177,7 @@ <th class="key">Arch</th> <th># Packages</th> <th># Flagged</th> + <th># Signed</th> </tr> </thead> <tbody> @@ -148,6 +190,8 @@ <td><a href="/packages/?arch={{ arch.name }}&flagged=Flagged" title="View all flagged packages for the {{ arch.name }} architecture"> <strong>{{ arch.packages.flagged.count }}</strong> packages</a></td> + + <td><strong>{{ arch.packages.signed.count }}</strong> packages</td> </tr> {% endfor %} </tbody> @@ -166,6 +210,7 @@ <th class="key">Repository</th> <th># Packages</th> <th># Flagged</th> + <th># Signed</th> </tr> </thead> <tbody> @@ -178,6 +223,7 @@ <td><a href="/packages/?repo={{ repo.name }}&flagged=Flagged" title="View all flagged packages in the {{ repo.name }} repository"> <strong>{{ repo.packages.flagged.count }}</strong> packages</a></td> + <td><strong>{{ repo.packages.signed.count }}</strong> packages</td> </tr> {% endfor %} </tbody> @@ -252,6 +298,11 @@ $(document).ready(function() { {widgets: ['zebra'], sortList: [[0,0], [1,0]]}); $("#dash-todo:not(:has(tbody tr.empty))").tablesorter( {widgets: ['zebra'], sortList: [[1,1]]}); + $("#dash-signoffs:not(:has(tbody tr.empty))").tablesorter({ + widgets: ['zebra'], + sortList: [[0,0]], + headers: { 6: {sorter: false } } + }); $(".dash-stats").tablesorter({ widgets: ['zebra'], sortList: [[0,0]], diff --git a/templates/devel/packages.html b/templates/devel/packages.html index 8f149a5c..bd126593 100644 --- a/templates/devel/packages.html +++ b/templates/devel/packages.html @@ -1,5 +1,6 @@ {% extends "base.html" %} {% load attributes %} +{% load package_extras %} {% block title %}Parabola - {{ title }}{% endblock %} @@ -32,8 +33,7 @@ <tr class="{% cycle pkgr2,pkgr1 %}"> <td>{{ pkg.arch.name }}</td> <td>{{ pkg.repo.name|capfirst }}</td> - <td><a href="{{ pkg.get_absolute_url }}" - title="Package details for {{ pkg.pkgname }}">{{ pkg.pkgname }}</a></td> + <td>{% pkg_details_link pkg %}</td> {% if pkg.flag_date %} <td><span class="flagged">{{ pkg.full_version }}</span></td> {% else %} diff --git a/templates/mirrors/mirror_details.html b/templates/mirrors/mirror_details.html index 1b44f65b..0f071b8c 100644 --- a/templates/mirrors/mirror_details.html +++ b/templates/mirrors/mirror_details.html @@ -24,16 +24,16 @@ </tr> <tr> <th>Has ISOs:</th> - <td>{{ mirror.isos|yesno }}</td> + <td>{{ mirror.isos|yesno|capfirst }}</td> </tr> {% if user.is_authenticated %} <tr> <th>Public:</th> - <td>{{ mirror.public|yesno }}</td> + <td>{{ mirror.public|yesno|capfirst }}</td> </tr> <tr> <th>Active:</th> - <td>{{ mirror.active|yesno }}</td> + <td>{{ mirror.active|yesno|capfirst }}</td> </tr> <tr> <th>Rsync IPs:</th> @@ -91,8 +91,8 @@ {% for m_url in urls %} <tr class="{% cycle 'odd' 'even' %}"> <td>{% if m_url.protocol.is_download %}<a href="{{ m_url.url }}">{{ m_url.url }}</a>{% else %}{{ m_url.url }}{% endif %}</td> - <td>{{ m_url.has_ipv4|yesno }}</td> - <td>{{ m_url.has_ipv6|yesno }}</td> + <td>{{ m_url.has_ipv4|yesno|capfirst }}</td> + <td>{{ m_url.has_ipv6|yesno|capfirst }}</td> <td>{{ m_url.last_sync|date:'Y-m-d H:i'|default:'unknown' }}</td> <td>{{ m_url.completion_pct|percentage:1 }}</td> <td>{{ m_url.delay|duration|default:'unknown' }}</td> diff --git a/templates/mirrors/mirrors.html b/templates/mirrors/mirrors.html index 53a68005..c9ab46db 100644 --- a/templates/mirrors/mirrors.html +++ b/templates/mirrors/mirrors.html @@ -27,11 +27,11 @@ title="Mirror details for {{ mirror.name }}">{{ mirror.name }}</a></td> <td>{{mirror.get_tier_display}}</td> <td>{{mirror.country}}</td> - <td>{{mirror.isos|yesno}}</td> + <td>{{mirror.isos|yesno|capfirst}}</td> <td class="wrap">{{mirror.supported_protocols|join:", "}}</td> {% if user.is_authenticated %} - <td>{{mirror.public|yesno}}</td> - <td>{{mirror.active|yesno}}</td> + <td>{{mirror.public|yesno|capfirst}}</td> + <td>{{mirror.active|yesno|capfirst}}</td> <td>{{mirror.admin_email}}</td> <td class="wrap">{{mirror.notes|linebreaks}}</td> {% endif %} diff --git a/templates/packages/details.html b/templates/packages/details.html index 068d1f1a..ef501c83 100644 --- a/templates/packages/details.html +++ b/templates/packages/details.html @@ -1,5 +1,6 @@ {% extends "base.html" %} {% load cache %} +{% load package_extras %} {% block title %}Parabola - {{ pkg.pkgname }} {{ pkg.full_version }} - Package Details{% endblock %} {% block navbarclass %}anb-packages{% endblock %} @@ -18,6 +19,7 @@ <li><a href="{% bugs_list pkg %}" title="View existing bug tickets for {{ pkg.pkgname }}">Bug Reports</a></li> <li><a href="{% bug_report pkg %}" title="Report bug for {{ pkg.pkgname }}">Report a Bug</a></li> <li><a href="{% flag_unfree pkg %}" title="Report {{ pkg.pkgname }} as unfree">Report as unfree</a></li> + <li><a href="{% get_wiki_link pkg %}" title="Search wiki for {{ pkg.pkgname }}">Search Wiki</a></li> {% if pkg.flag_date %} <li><span class="flagged">Flagged out-of-date on {{ pkg.flag_date|date }}</span></li> {% with pkg.in_testing as tp %}{% if tp %} @@ -37,6 +39,7 @@ onclick="return !window.open('/packages/flaghelp/','FlagHelp', 'height=350,width=450,location=no,scrollbars=yes,menubars=no,toolbars=no,resizable=no');">(?)</a></li> {% endif %} + <li><a href="download/" rel="nofollow" title="Download {{ pkg.pkgname }} from mirror">Download From Mirror</a></li> </ul> {% if perms.main.change_package %} @@ -80,20 +83,14 @@ {% with pkg.split_packages as splits %}{% if splits %} <tr> <th>Split Packages:</th> - <td> - {% for s in splits %} - <a href="{{ s.get_absolute_url }}" - title="Package details for {{ s.pkgname }}">{{ s.pkgname }}</a><br/> - {% endfor %} - </td> + <td>{% for s in splits %}{% pkg_details_link s %}<br/>{% endfor %}</td> </tr> {% endif %}{% endwith %} {% else %} <tr> <th>Base Package:</th> {% if pkg.base_package %} - <td><a href="{{ pkg.base_package.get_absolute_url }}" - title="Package details for {{ pkg.base_package.pkgname }}">{{ pkg.pkgbase }}</a></td> + <td>{% pkg_details_link pkg.base_package %}</td> {% else %} <td><a href="../{{ pkg.pkgbase }}/" title="Split package details for {{ pkg.pkgbase }}">{{ pkg.pkgbase }}</a></td> @@ -106,7 +103,7 @@ </tr><tr> <th>Upstream URL:</th> <td>{% if pkg.url %}<a href="{{ pkg.url }}" - title="Visit the website for {{ pkg.pkgname }}">{{ pkg.url }}</a>{% endif %}</td> + title="Visit the website for {{ pkg.pkgname }}">{{ pkg.url|url_unquote }}</a>{% endif %}</td> </tr><tr> <th>License(s):</th> <td>{{ pkg.licenses.all|join:", " }}</td> @@ -121,7 +118,16 @@ {% else %}None{% endif %} </td> {% endwith %} - </tr><tr> + </tr> + {% with pkg.provides.all as provides %} + {% if provides %} + <tr> + <th>Provides:</th> + <td>{% for p in provides %}{{ p.name }}{% if p.version %}={{ p.version }}{% endif %}<br/>{% endfor %}</td> + </tr> + {% endif %} + {% endwith %} + <tr> <th>Maintainers:</th> {% with pkg.maintainers as maints %} <td>{% if maints %} @@ -141,6 +147,9 @@ <th>Last Packager:</th> <td>{% with pkg.packager as pkgr %}{% if pkgr %}{% userpkgs pkgr %}{% else %}{{ pkg.packager_str }}{% endif %}{% endwith %}</td> </tr><tr> + <th>Signed:</th> + <td>{{ pkg.is_signed|yesno|capfirst }}</td> + </tr><tr> <th>Build Date:</th> <td>{{ pkg.build_date|date:"DATETIME_FORMAT" }} UTC</td> </tr><tr> @@ -161,10 +170,12 @@ <ul> {% for depend in deps %} {% ifequal depend.pkg None %} - <li>{{ depend.dep.depname }} <span class="virtual-dep">(virtual)</span></li> + {% if depend.providers %} + <li>{{ depend.dep.depname }} <span class="virtual-dep">({% multi_pkg_details depend.providers %})</span></li> + {% else %}<li>{{ depend.dep.depname }} <span class="virtual-dep">(virtual)</span></li> + {% endif %} {% else %} - <li><a href="{{ depend.pkg.get_absolute_url }}" - title="View package details for {{ depend.dep.depname }}">{{ depend.dep.depname }}</a>{{ depend.dep.depvcmp|default:"" }} + <li>{% pkg_details_link depend.pkg %}{{ depend.dep.depvcmp|default:"" }} {% if depend.pkg.repo.testing %}<span class="testing-dep">(testing)</span>{% endif %} {% if depend.dep.optional %}<span class="opt-dep">(optional)</span>{% endif %} {% if depend.dep.description %}- <span class="dep-desc">{{ depend.dep.description }}</span>{% endif %} @@ -186,8 +197,8 @@ {% if rqdby %} <ul> {% for req in rqdby %} - <li><a href="{{ req.pkg.get_absolute_url }}" - title="View package details for {{ req.pkg.pkgname }}">{{ req.pkg.pkgname }}</a> + <li>{% pkg_details_link req.pkg %} + {% if req.depname != pkg.pkgname %}<span class="virtual-dep">(requires {{ req.depname }})</span>{% endif %} {% if req.pkg.repo.testing %}<span class="testing-dep">(testing)</span>{% endif %} {% if req.optional %}<span class="opt-dep">(optional)</span>{% endif %} </li> diff --git a/templates/packages/differences.html b/templates/packages/differences.html index 69c39756..d9b5f088 100644 --- a/templates/packages/differences.html +++ b/templates/packages/differences.html @@ -65,7 +65,7 @@ $(document).ready(function() { $('.results').tablesorter({widgets: ['zebra'], sortList: [[1,0], [0,0]]}); $('#diff_filter select').change(filter_packages); $('#diff_filter input').change(filter_packages); - $('#criteria_reset').click(filter_reset); + $('#criteria_reset').click(filter_packages_reset); // fire function on page load to ensure the current form selections take effect filter_packages(); }); diff --git a/templates/packages/files.html b/templates/packages/files.html index 149154a6..78a40def 100644 --- a/templates/packages/files.html +++ b/templates/packages/files.html @@ -1,5 +1,5 @@ {% extends "base.html" %} -{% block title %}Parabola - {{ pkg.pkgname }} {{ pkg.full_version }} - Package File List{% endblock %} +{% block title %}Parabola - {{ pkg.pkgname }} {{ pkg.full_version }} ({{ pkg.arch.name }}) - File List{% endblock %} {% block navbarclass %}anb-packages{% endblock %} {% block content %} diff --git a/templates/packages/flag.html b/templates/packages/flag.html index 74f6982c..4bb23b85 100644 --- a/templates/packages/flag.html +++ b/templates/packages/flag.html @@ -1,32 +1,36 @@ {% extends "base.html" %} -{% block title %}Parabola - Flag Package - {{ package.pkgname }}{% endblock %} +{% load package_extras %} + +{% block title %}Arch Linux - Flag Package - {{ package.pkgname }} {{ package.full_version }} ({{ package.arch.name }}){% endblock %} +{% block head %}<meta name="robots" content="noindex"/>{% endblock %} {% block navbarclass %}anb-packages{% endblock %} {% block content %} <div id="pkg-flag" class="box"> - <h2>Flag Package: {{ package.pkgname }}</h2> + <h2>Flag Package: {{ package.pkgname }} {{ package.full_version }} ({{ package.arch.name }})</h2> <p>If you notice a package is out-of-date (i.e., there is a newer <strong>stable</strong> release available), then please notify us using - the form below.</p> + the form below. Do <em>not</em> report bugs via this form!</p> - <p>Note that all of the following packages will be marked out of date:</p> + <p>Note that the following {{ packages|length }} package{{ packages|pluralize }} will be marked out of date:</p> <ul> {% for pkg in packages %} - <li>{{ pkg.pkgname }} {{ pkg.full_version }} [{{ pkg.repo.name|lower }}] ({{ pkg.arch.name }})</li> + <li>{% pkg_details_link pkg %} {{ pkg.full_version }} [{{ pkg.repo.name|lower }}] ({{ pkg.arch.name }})</li> {% endfor %} </ul> <p>The message box portion of the flag utility is optional, and meant for short messages only. If you need more than 200 characters for your message, then file a bug report, email the maintainer directly, or send - an email to the <a href="http://list.parabolagnulinux.org/listinfo.cgi/dev-parabolagnulinux.org" - title="Visit the dev mailing list">Parabola Development mailing list</a> + an email to the <a href="http://mailman.archlinux.org/mailman/listinfo/arch-general" + title="Visit the arch-general mailing list">arch-general mailing list</a> with your additional text.</p> - <p><strong>Note:</strong> Please do <em>not</em> use this facility if the - package is broken! Please <a href="https://bugs.parabolagnulinux.org" - title="Parabola Bugtracker">file a bug</a> instead.</p> + <p><strong>Note:</strong> Do <em>not</em> use this facility if the + package is broken! The package will be unflagged and the report will be ignored! + <a href="https://bugs.parabolagnulinux.org/" title="Parabola Bugtracker">Use the + bugtracker to file a bug</a> instead.</p> <p>Please confirm your flag request for {{package.pkgname}}:</p> diff --git a/templates/packages/flag_confirmed.html b/templates/packages/flag_confirmed.html index ebb14608..62080d62 100644 --- a/templates/packages/flag_confirmed.html +++ b/templates/packages/flag_confirmed.html @@ -1,20 +1,22 @@ {% extends "base.html" %} -{% block title %}Parabola - Package Flagged - {{ package.pkgname }}{% endblock %} +{% load package_extras %} + +{% block title %}Parabola - Package Flagged - {{ package.pkgname }} {{ package.full_version }} ({{ package.arch.name }}){% endblock %} +{% block head %}<meta name="robots" content="noindex"/>{% endblock %} {% block navbarclass %}anb-packages{% endblock %} {% block content %} <div id="pkg-flag" class="box"> <h2>Package Flagged - {{ package.pkgname }}</h2> - <p>Thank you, the maintainers have been notified the following packages are out-of-date:</p> + <p>Thank you, the maintainers have been notified the following + {{ packages|length }} package{{ packages|pluralize }} are out-of-date:</p> <ul> {% for pkg in packages %} - <li><a href="{{ pkg.get_absolute_url }}" - title="Package details for {{package.pkgname}}">{{ pkg.pkgname }} {{ pkg.full_version }}</a> [{{ pkg.repo.name|lower }}] ({{ pkg.arch.name }})</li> + <li>{% pkg_details_link pkg %} {{ pkg.full_version }} [{{ pkg.repo.name|lower }}] ({{ pkg.arch.name }})</li> {% endfor %} </ul> - <p>You can return to the package details page for - <a href="{{ package.get_absolute_url }}" title="Package details for {{package.pkgname}}">{{package.pkgname}}</a>.</p> + <p>You can return to the package details page for {% pkg_details_link package %}.</p> </div> {% endblock %} diff --git a/templates/packages/flagged.html b/templates/packages/flagged.html index 97a14ff2..f7940cd1 100644 --- a/templates/packages/flagged.html +++ b/templates/packages/flagged.html @@ -1,16 +1,16 @@ {% extends "base.html" %} -{% block title %}Parabola - Flag Package - {{ pkg.pkgname }}{% endblock %} +{% load package_extras %} + +{% block title %}Parabola - Flag Package - {{ pkg.pkgname }} {{ pkg.full_version }} ({{ pkg.arch.name }}){% endblock %} +{% block head %}<meta name="robots" content="noindex"/>{% endblock %} {% block navbarclass %}anb-packages{% endblock %} {% block content %} <div id="pkg-flagged-error" class="box"> - - <h2>Error: Package already flagged</h2> + <h2>Package {{ pkg.pkgname }} {{ pkg.full_version }} ({{ pkg.arch.name }}) already flagged</h2> <p><strong>{{pkg.pkgname}}</strong> has already been flagged out-of-date.</p> - <p>You can return to the package details page for - <a href="{{ pkg.get_absolute_url }}" title="Package details for {{pkg.pkgname}}">{{pkg.pkgname}}</a>.</p> - + <p>You can return to the package details page for {% pkg_details_link pkg %}.</p> </div> {% endblock %} diff --git a/templates/packages/packages_list.html b/templates/packages/packages_list.html index 13b8caba..ed376705 100644 --- a/templates/packages/packages_list.html +++ b/templates/packages/packages_list.html @@ -1,4 +1,6 @@ {% extends "base.html" %} +{% load package_extras %} + {% block title %}Parabola - {{ name }} ({{ arch.name }}) - {{ list_title }}{% endblock %} {% block navbarclass %}anb-packages{% endblock %} @@ -23,8 +25,7 @@ <tr class="{% cycle 'odd' 'even' %}"> <td>{{ pkg.arch.name }}</td> <td>{{ pkg.repo.name|capfirst }}</td> - <td><a href="{{ pkg.get_absolute_url }}" - title="Package details for {{ pkg.pkgname }}">{{ pkg.pkgname }}</a></td> + <td>{% pkg_details_link pkg %}</td> {% if pkg.flag_date %} <td><span class="flagged">{{ pkg.full_version }}</span></td> {% else %} diff --git a/templates/packages/search.html b/templates/packages/search.html index ae9e55f2..2a314853 100644 --- a/templates/packages/search.html +++ b/templates/packages/search.html @@ -1,10 +1,12 @@ {% extends "base.html" %} {% load package_extras %} +{% load adminmedia %} + {% block title %}Parabola - Package Database{% endblock %} {% block navbarclass %}anb-packages{% endblock %} {% block head %} -<link rel="stylesheet" type="text/css" href="/media/admin_media/css/widgets.css" /> +<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/widgets.css" /> {% endblock %} {% block content %} @@ -168,7 +170,7 @@ title='Sourceballed packages'>sources repo</a>.</p> </div> <script type="text/javascript" src="/jsi18n/"></script> -{% load adminmedia %}<script type="text/javascript" src="{% admin_media_prefix %}js/core.js"></script> <script type="text/javascript">window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";</script> +<script type="text/javascript" src="{% admin_media_prefix %}js/core.js"></script> {{search_form.media}} {% endblock %} diff --git a/templates/packages/signoff_cell.html b/templates/packages/signoff_cell.html new file mode 100644 index 00000000..01a5d58d --- /dev/null +++ b/templates/packages/signoff_cell.html @@ -0,0 +1,25 @@ +{% spaceless %} +{% if group.signoffs %} +<ul class="signoff-list"> + {% for signoff in group.signoffs %} + <li class="signed-username" title="Signed off by {{ signoff.user }}">{{ signoff.user }}{% if signoff.revoked %} (revoked){% endif %}</li> + {% endfor %} +</ul> +{% endif %} +{% if group.user_signed_off %} +<div> + <a class="signoff-link" href="{{ group.package.get_absolute_url }}signoff/revoke/" + title="Revoke signoff {{ group.pkgbase }} for {{ group.arch }}">Revoke Signoff</a></div> +{% else %} +{% if not group.specification.known_bad and group.specification.enabled %} +<div> + <a class="signoff-link" href="{{ group.package.get_absolute_url }}signoff/" + title="Signoff {{ group.pkgbase }} for {{ group.arch }}">Signoff</a></div> +{% endif %} +{% endif %} +{% if user == group.packager or user in group.maintainers %} +<div> + <a class="signoff-options" href="{{ group.package.get_absolute_url }}signoff/options/">Signoff Options</a> +</div> +{% endif %} +{% endspaceless %} diff --git a/templates/packages/signoff_options.html b/templates/packages/signoff_options.html new file mode 100644 index 00000000..ee9b8b47 --- /dev/null +++ b/templates/packages/signoff_options.html @@ -0,0 +1,18 @@ +{% extends "base.html" %} + +{% block title %}Arch Linux - Package Signoff Options - {{ package.pkgbase }} {{ package.full_version }} ({{ package.arch.name }}){% endblock %} +{% block head %}<meta name="robots" content="noindex"/>{% endblock %} +{% block navbarclass %}anb-packages{% endblock %} + +{% block content %} +<div id="signoff-options" class="box"> + <h2>Package Signoff Options: {{ package.pkgbase }} {{ package.full_version }} ({{ package.arch.name }})</h2> + <form id="signoff-options-form" method="post">{% csrf_token %} + <fieldset> + {{ form.as_p }} + </fieldset> + <p><label></label> <input title="Set Signoff Options" type="submit" value="Set Signoff Options" /></p> + </form> + +</div> +{% endblock %} diff --git a/templates/packages/signoff_report.txt b/templates/packages/signoff_report.txt new file mode 100644 index 00000000..046c2f1e --- /dev/null +++ b/templates/packages/signoff_report.txt @@ -0,0 +1,41 @@ +=== {% autoescape off %}Signoff report for [{{ repo|lower }}] === +{{ signoffs_url }} + +There are currently: +* {{ new|length }} new package{{ new|length|pluralize }} in last {{ new_hours }} hours +* {{ bad|length }} known bad package{{ bad|length|pluralize }} +* {{ disabled|length }} package{{ disabled|length|pluralize }} not accepting signoffs +* {{ complete|length }} fully signed off package{{ complete|length|pluralize }} +* {{ incomplete|length }} package{{ incomplete|length|pluralize }} missing signoffs +* {{ old|length }} package{{ old|length|pluralize }} older than {{ old_days }} days + +(Note: the word 'package' as used here refers to packages as grouped by +pkgbase, architecture, and repository; e.g., one PKGBUILD produces one +package per architecture, even if it is a split package.) + + +{% if new %}== New packages in [{{ repo|lower}}] in last {{ new_hours }} hours ({{ new|length }} total) == +{% for group in new %} +* {{ group.pkgbase }}-{{ group.version }} ({{ group.arch }}){% endfor %} + +{% endif %}{% regroup incomplete by target_repo as by_repo %}{% for target_repo in by_repo %} +== Incomplete signoffs for [{{ target_repo.grouper|lower }}] ({{ target_repo.list|length }} total) == +{% for group in target_repo.list %} +* {{ group.pkgbase }}-{{ group.version }} ({{ group.arch }}) + {{ group.completed }}/{{ group.required }} signoffs{% endfor %} +{% endfor %} + +{% if complete %}== Completed signoffs ({{ complete|length }} total) == +{% for group in complete %} +* {{ group.pkgbase }}-{{ group.version }} ({{ group.arch }}){% endfor %} + + +{% endif %}{% if old %}== All packages in [{{ repo|lower }}] for more than {{ old_days }} days ({{ old|length }} total) == +{% for group in old %} +* {{ group.pkgbase }}-{{ group.version }} ({{ group.arch }}), since {{ group.last_update|date }}{% endfor %} + + +{% endif %}== Top five in signoffs in last {{ new_hours }} hours == +{% for leader in leaders %} +{{ forloop.counter }}. {{ leader.user }} - {{ leader.count }} signoffs{% endfor %} +{% endautoescape %} diff --git a/templates/packages/signoffs.html b/templates/packages/signoffs.html index 53e9e46d..125b3611 100644 --- a/templates/packages/signoffs.html +++ b/templates/packages/signoffs.html @@ -1,4 +1,6 @@ {% extends "base.html" %} +{% load package_extras %} + {% block title %}Parabola - Package Signoffs{% endblock %} {% block navbarclass %}anb-packages{% endblock %} @@ -7,48 +9,71 @@ <h2>Package Signoffs</h2> - <p>{{ signoff_groups|length }} signoff group{{ signoff_groups|pluralize }} found. + <p>{{ signoff_groups|length }} total signoff group{{ signoff_groups|pluralize }} found. A "signoff group" consists of packages grouped by pkgbase, architecture, and repository.</p> + <div class="box filter-criteria"> + <h3>Filter Displayed Signoffs</h3> + <form id="signoffs_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_name in repo_names %} + <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 %} + <div><label for="id_pending" title="Packages with not enough signoffs">Only Pending Approval</label> + <input type="checkbox" name="pending" id="id_pending" value="pending"/></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">{{ signoff_groups|length }}</span> signoff groups displayed.</div> + </fieldset> + </form> + </div> + <table id="signoffs" class="results"> <thead> <tr> + <th>Package Base/Version</th> <th>Arch</th> - <th>Package Base</th> + <th>Target Repo</th> + <th>Packager</th> <th># of Packages</th> - <th>Version</th> <th>Last Updated</th> - <th>Target Repo</th> <th>Approved</th> - <th>Signoff</th> + <th>Signoffs</th> + <th>Notes</th> </tr> </thead> - <tbody> + <tbody id="tbody_signoffs"> {% for group in signoff_groups %} - {% with group.package as pkg %} - <tr class="{% cycle 'odd' 'even' %}"> - <td>{{ pkg.arch.name }}</td> - <td><a href="{{ pkg.get_absolute_url }}" - title="View package details for {{ pkg.pkgname }}">{{ pkg.pkgname }}</a></td> - <td>{{ group.packages|length }}</td> - <td>{{ pkg.full_version }}</td> - <td>{{ pkg.last_update|date }}</td> + <tr class="{% cycle 'odd' 'even' %} {{ group.arch.name }} {{ group.target_repo|lower }}"> + <td>{% pkg_details_link group.package %} {{ group.version }}</td> + <td>{{ group.arch.name }}</td> <td>{{ group.target_repo }}</td> - <td class="signoff-{{group.approved|yesno}}"> - {{ group.approved|yesno:"Yes,No" }}</td> - <td> - <ul> - <li><a class="signoff-link" href="{{ pkg.get_absolute_url }}signoff/" - title="Signoff {{ pkg.pkgname }} for {{ pkg.arch }}">Signoff</a> - </li> - {% for signoff in group.signoffs %} - <li class="signed-username" title="Signed off by {{ signoff.user }}"> - {{ signoff.user }}{% if signoff.revoked %} (revoked){% endif %}</li> - {% endfor %} - </ul> - </td> + <td>{{ group.packager|default:"Unknown" }}</td> + <td>{{ group.packages|length }}</td> + <td>{{ group.last_update|date }}</td> + {% if group.specification.known_bad %} + <td class="approval signoff-bad">Bad</td> + {% else %} + {% if not group.specification.enabled %} + <td class="approval signoff-disabled">Disabled</td> + {% else %} + <td class="approval signoff-{{ group.approved|yesno }}">{{ group.approved|yesno|capfirst }}</td> + {% endif %} + {% endif %} + <td>{% include "packages/signoff_cell.html" %}</td> + <td class="wrap">{% if not group.default_spec %}{% with group.specification as spec %} + {% if spec.required != 2 %}Required signoffs: {{ spec.required }}<br/>{% endif %} + {% if not spec.enabled %}Signoffs are not currently enabled<br/>{% endif %} + {% if spec.known_bad %}Package is known to be bad<br/>{% endif %} + {{ spec.comments|default:""|linebreaksbr }} + {% endwith %}{% endif %}</td> </tr> - {% endwith %} {% endfor %} </tbody> </table> @@ -59,8 +84,12 @@ <script type="text/javascript"> $(document).ready(function() { $('a.signoff-link').click(signoff_package); - $(".results").tablesorter({widgets: ['zebra'], sortList: [[1,0]], - headers: { 6: { sorter: false } } }); + $(".results").tablesorter({widgets: ['zebra'], sortList: [[0,0]], + headers: { 7: { sorter: false }, 8: {sorter: false } } }); + $('#signoffs_filter input').change(filter_signoffs); + $('#criteria_reset').click(filter_signoffs_reset); + // fire function on page load to ensure the current form selections take effect + filter_signoffs(); }); </script> {% endblock %} diff --git a/templates/public/about.html b/templates/public/about.html index 5c9dc16d..a01a33fe 100644 --- a/templates/public/about.html +++ b/templates/public/about.html @@ -57,5 +57,6 @@ </ul> </div> +<br /><br /> {% endblock %} diff --git a/templates/public/developer_list.html b/templates/public/developer_list.html index 2abbbfe4..5aa4c6b2 100644 --- a/templates/public/developer_list.html +++ b/templates/public/developer_list.html @@ -4,7 +4,7 @@ <p> {% for dev in dev_list %} <a href="#{{ dev.username }}" title="Jump to profile for {{ dev.get_full_name }}"> - {{ dev.first_name }}{{ dev.last_name.0|capfirst}}</a> + {{ dev.first_name }} {{ dev.last_name }}</a> {% endfor %} </p> </div> @@ -21,7 +21,7 @@ <table class="bio bio-{{ dev.username }}" cellspacing="0"> <tr> <th>Name:</th> - <td>{{ dev.get_full_name }}</td> + <td>{{ dev.get_full_name }}{% if prof.latin_name %} ({{ prof.latin_name}}){% endif %}</td> </tr><tr> <th>Alias:</th> <td>{{ prof.alias }}</td> diff --git a/templates/public/download.html b/templates/public/download.html index 7c123b3f..7a1cd855 100644 --- a/templates/public/download.html +++ b/templates/public/download.html @@ -9,7 +9,8 @@ <h2>Parabola Downloads</h2> - {% with "2010.12.29" as version %} <h3>Release Info</h3> + {% with "2010.12.29" as version %} + <h3>Release Info</h3> <p>All available images can be burned to a CD, mounted as an ISO file, or be directly written to a USB stick using a utility like `dd`. These @@ -89,35 +90,22 @@ <td class="wrap"> Downloads and installs packages versions via FTP for absolute freshness. </td> - </tr> - <tr> + </tr><tr> <td> Core Image - </td> - - <td class="cpu-arch"> + </td><td class="cpu-arch"> <a href="http://repo.parabolagnulinux.org/isos/i686/parabola-{{version}}-core-i686.iso.torrent" title="Download for i686 architecture">Download</a> - </td> - - <td class="cpu-arch"> + </td><td class="cpu-arch"> <a href="http://repo.parabolagnulinux.org/isos/x86_64/parabola-{{version}}-core-x86_64.iso.torrent" title="Download for x86-64 architecture">Download</a> - </td> - - <td class="magnet-link"> - <a - href="magnet:?xt=urn:btih:d9bb9f9641a222d2d302988da95225f570bcdb6d&dn=parabola-2010.12.29-core-i686.iso&tr=http%3A%2F%2Ftracker.publicbt.com%2Fannounce" + </td><td class="magnet-link"> + <a href="magnet:?xt=urn:btih:d9bb9f9641a222d2d302988da95225f570bcdb6d&dn=parabola-2010.12.29-core-i686.iso&tr=http%3A%2F%2Ftracker.publicbt.com%2Fannounce" title="Magnet Link for ISO image">i686 Magnet</a> - </td> - - <td class="magnet-link"> - <a - href="magnet:?xt=urn:btih:fae6de60f0dfa703165e94df5a77e9bd607ef4cf&dn=parabola-2010.12.29-core-x86_64.iso&tr=http%3A%2F%2Ftracker.publicbt.com%2Fannounce" + </td><td class="magnet-link"> + <a href="magnet:?xt=urn:btih:fae6de60f0dfa703165e94df5a77e9bd607ef4cf&dn=parabola-2010.12.29-core-x86_64.iso&tr=http%3A%2F%2Ftracker.publicbt.com%2Fannounce" title="Magnet Link for ISO image">x86_64 Magnet</a> - </td> - - <td class="wrap"> + </td><td class="wrap"> Core packages are included on the media. Good for basic off-line installation. </td> </tr> diff --git a/templates/public/index.html b/templates/public/index.html index 6254d7b0..3805b997 100644 --- a/templates/public/index.html +++ b/templates/public/index.html @@ -33,17 +33,40 @@ <div id="news"> - <h3>Latest News <span class="more">(<a href="{% url news-list %}" - title="Browse the news archives">more</a>)</span></h3> + <h3> + <a href="{% url news-list %}" title="Browse the news archives">Latest News</a> + <span class="arrow"></span> + </h3> <a href="/feeds/news/" title="Parabola News RSS Feed" class="rss-icon"><img src="{% cdnprefix %}/media/rss.png" alt="RSS Feed" /></a> {% for news in news_updates %} - <h4><a href="{{ news.get_absolute_url }}" - title="View full article: {{ news.title }}">{{ news.title }}</a></h4> + {% if forloop.counter0 < 5 %} + <h4> + <a href="{{ news.get_absolute_url }}" + title="View full article: {{ news.title }}">{{ news.title }}</a> + </h4> <p class="timestamp">{{ news.postdate|date }}</p> <div class="article-content">{{ news.content|markdown|truncatewords_html:75 }}</div> + {% else %} + {% if forloop.counter0 == 5 %} + <h3> + <a href="{% url news-list %}" + title="Browse the news archives">Older News</a> + <span class="arrow"></span> + </h3> + <dl class="newslist"> + {% endif %} + <dt>{{ news.postdate|date }}</dt> + <dd> + <a href="{{ news.get_absolute_url }}" + title="View full article: {{ news.title }}">{{ news.title }}</a> + </dd> + {% if forloop.last %} + </dl> + {% endif %} + {% endif %} {% endfor %} </div><!-- #news --> @@ -75,7 +98,7 @@ {% for update in pkg_updates %} <tr> <td class="pkg-name"><span class="{{ update.repo|lower }}">{{ update.pkgbase }} {{ update.version }}</span></td> - <td class="pkg-arch"> + <td class="pkg-arch"> {% for pkg in update.package_links %}<a href="{{ pkg.get_absolute_url }}" title="Details for {{ pkg.pkgname }} [{{ pkg.repo|lower }}]">{{ pkg.arch }}</a>{% if not forloop.last %}/{% endif %}{% endfor %} </td> @@ -100,27 +123,13 @@ <h4>Community</h4> <ul> - <li> - <a href="http://list.parabolagnulinux.org/listinfo.cgi" - title="Community and developer mailing lists">Mailing - Lists</a> - </li> - - <li> - <a - href="http://list.parabolagnulinux.org/pipermail/dev-parabolagnulinux.org/" - title="dev mailing list archives">Dev Archives</a> - </li> - - <li> - <a href="http://wiki.parabolagnulinux.org/IRC_Channels" - title="Official and regional IRC communities">IRC Channels</a> - </li> - - <li> - <a href="http://identi.ca/group/parabola" title="Parabola at - identi.ca">Identi.ca group</a> - </li> + <li><a href="http://list.parabolagnulinux.org/listinfo.cgi" + title="Community and developer mailing lists">Mailing Lists</a></li> + <li><a href="http://list.parabolagnulinux.org/pipermail/dev-parabolagnulinux.org/" + title="dev mailing list archives">Dev Archives</a></li> + <li><a href="http://wiki.parabolagnulinux.org/IRC_Channels" + title="Official and regional IRC communities">IRC Channels</a></li> + <li><a href="http://identi.ca/group/parabola" title="Parabola at identi.ca">Identi.ca group</a></li> </ul> <h4>Support</h4> diff --git a/templates/public/userlist.html b/templates/public/userlist.html index 66543191..cfb08d80 100644 --- a/templates/public/userlist.html +++ b/templates/public/userlist.html @@ -14,7 +14,6 @@ {% with users as dev_list %} {% include 'public/developer_list.html' %} {% endwith %} - </div> {% endcache %} {% endblock %} diff --git a/templates/registration/logout.html b/templates/registration/logout.html index e2e5449c..9b507ec0 100644 --- a/templates/registration/logout.html +++ b/templates/registration/logout.html @@ -5,7 +5,7 @@ <div id="dev-logout" class="box"> <h2>Developer Logout</h2> - <p>Logout was successful.<p> + <p>Logout was successful.<p> </div> {% endblock %} diff --git a/templates/releng/iso_overview.html b/templates/releng/iso_overview.html new file mode 100644 index 00000000..8280f100 --- /dev/null +++ b/templates/releng/iso_overview.html @@ -0,0 +1,40 @@ +{% extends "base.html" %} + +{% block content %} +<div class="box"> + <h2>Failures and Successes for Testing ISOs</h2> + + <p><a href="{% url releng-test-overview %}">Go back to testing results</a></p> + + <table id="releng-result" class="results"> + <thead> + <tr> + <th>ISO</th> + <th>Currently Available</th> + <th># Successes</th> + <th># Failures</th> + </tr> + </thead> + <tbody> + {% for iso in isos %} + <tr> + <td> + <a href="{{ iso.get_absolute_url }}">{{ iso.name }}</a> + </td> + <td>{{ iso.active|yesno|capfirst }}</td> + <td>{{ iso.successes }}</td> + <td>{{ iso.failures }}</td> + </tr> + {% endfor %} + </tbody> + </table> +</div> +{% load cdn %}{% jquery %} +<script type="text/javascript" src="/media/jquery.tablesorter.min.js"></script> +<script type="text/javascript" src="/media/archweb.js"></script> +<script type="text/javascript"> +$(document).ready(function() { + $(".results:not(:has(tbody tr.empty))").tablesorter({widgets: ['zebra']}); +}); +</script> +{% endblock %} diff --git a/templates/releng/result_list.html b/templates/releng/result_list.html index b3ae025b..845d330d 100644 --- a/templates/releng/result_list.html +++ b/templates/releng/result_list.html @@ -3,7 +3,7 @@ {% block content %} <div class="box"> <h2>Results for: - {% if option %}{{ option|title }}: {{ value }}{% endif %} + {% if option %}{{ option.verbose_name|title }}: {{ value }}{% endif %} {{ iso_name|default:"" }} </h2> @@ -12,9 +12,10 @@ <table id="releng-result" class="results"> <thead> <tr> - <th>Iso</th> + <th>ISO</th> <th>Submitted By</th> <th>Date Submitted</th> + <th>Architecture</th> <th>Success</th> </tr> </thead> @@ -24,7 +25,8 @@ <td>{{ test.iso.name }}</td> <td>{{ test.user_name }}</td> <td>{{ test.created|date }}</td> - <td>{{ test.success|yesno }}</td> + <td>{{ test.architecture }}</td> + <td><span class="success-{{ test.success|yesno }}">{{ test.success|yesno|capfirst }}</span></td> </tr> {% endfor %} </tbody> diff --git a/templates/releng/thanks.html b/templates/releng/thanks.html index 984a056d..fdfc4c4a 100644 --- a/templates/releng/thanks.html +++ b/templates/releng/thanks.html @@ -8,6 +8,8 @@ <p>Thank you for taking the time to give us this information! Your results have been succesfully added to our database.</p> <p>You can now <a href="{% url releng-test-overview %}">go back to the results</a>, - or <a href="{% url releng-test-submit %}">give more feedback</a>.</p> + <a href="{% url releng-test-submit %}">give more feedback</a>, or + have a look at the <a href="{% url releng-iso-overview %}">look at + the ISO test overview</a>.</p> </div> {% endblock %} diff --git a/templates/todolists/email_notification.txt b/templates/todolists/email_notification.txt index 10b50f64..8b22b465 100644 --- a/templates/todolists/email_notification.txt +++ b/templates/todolists/email_notification.txt @@ -1,10 +1,11 @@ -{% autoescape off %}The todo list {{ todolist.name }} has had the following packages added to it for which you are a maintainer: +{% autoescape off %}The todo list "{{ todolist.name }}" has had the following packages added to it for which you are a maintainer: {% for tpkg in todo_packages %} * {{ tpkg.pkg.repo.name|lower }}/{{ tpkg.pkg.pkgname }} ({{ tpkg.pkg.arch.name }}) - {{ tpkg.pkg.get_full_url }}{% endfor %} Todo list information: -Creator: {{todolist.creator.get_full_name}} -Name: {{todolist.name}} +Name: {{ todolist.name }} +URL: {{ todolist.get_full_url }} +Creator: {{ todolist.creator.get_full_name }} Description: -{{todolist.description|striptags|wordwrap:69}}{% endautoescape %} +{{ todolist.description|striptags|wordwrap:78 }}{% endautoescape %} diff --git a/templates/todolists/public_list.html b/templates/todolists/public_list.html index ceb001de..fcb77c65 100644 --- a/templates/todolists/public_list.html +++ b/templates/todolists/public_list.html @@ -1,4 +1,5 @@ {% extends "base.html" %} +{% load package_extras %} {% block title %}Parabola - Todo Lists{% endblock %} @@ -43,8 +44,7 @@ <tbody> {% for pkg in list.packages %} <tr class="{% cycle 'odd' 'even' %}"> - <td><a href="{{ pkg.pkg.get_absolute_url }}" - title="View package details for {{ pkg.pkg.pkgname }}">{{ pkg.pkg.pkgname }}</a></td> + <td>{% pkg_details_link pkg.pkg %}</td> <td>{{ pkg.pkg.arch.name }}</td> <td>{{ pkg.pkg.repo.name|capfirst }}</td> <td>{{ pkg.pkg.maintainers|join:', ' }}</td> diff --git a/templates/todolists/view.html b/templates/todolists/view.html index d4f5a08d..d48c362d 100644 --- a/templates/todolists/view.html +++ b/templates/todolists/view.html @@ -27,15 +27,14 @@ <th>Name</th> <th>Arch</th> <th>Repo</th> - <th>Maintainer</th> + <th>Maintainers</th> <th>Status</th> </tr> </thead> <tbody> {% for pkg in list.packages %} <tr class="{% cycle 'odd' 'even' %}"> - <td><a href="{{ pkg.pkg.get_absolute_url }}" - title="View package details for {{ pkg.pkg.pkgname }}">{{ pkg.pkg.pkgname }}</a></td> + <td>{% pkg_details_link pkg.pkg %}</td> <td>{{ pkg.pkg.arch.name }}</td> <td>{{ pkg.pkg.repo.name|capfirst }}</td> <td>{{ pkg.pkg.maintainers|join:', ' }}</td> diff --git a/templates/visualize/index.html b/templates/visualize/index.html new file mode 100644 index 00000000..99525e69 --- /dev/null +++ b/templates/visualize/index.html @@ -0,0 +1,43 @@ +{% extends "base.html" %} + +{% block title %}Arch Linux - Visualizations{% endblock %} + +{% block content %} +<div class="box"> + + <h2>Visualizations of Packaging Data</h2> + + <h3>Package Treemap</h3> + + <div class="visualize-buttons"> + <div> + <span>Scale Using:</span> + <button id="visualize-archrepo-count" class="visualize-archrepo-scaleby active">Package Count</button> + <button id="visualize-archrepo-flagged" class="visualize-archrepo-scaleby">Flagged</button> + <button id="visualize-archrepo-csize" class="visualize-archrepo-scaleby">Compressed Size</button> + <button id="visualize-archrepo-isize" class="visualize-archrepo-scaleby">Installed Size</button> + </div> + <div> + <span>Group By:</span> + <button id="visualize-archrepo-repo" class="visualize-archrepo-groupby active">Repository</button> + <button id="visualize-archrepo-arch" class="visualize-archrepo-groupby">Architecture</button> + </div> + </div> + <div id="visualize-archrepo" class="visualize-chart"></div> +</div> + +{% load cdn %}{% jquery %} +<script type="text/javascript" src="/media/d3.min.js"></script> +<script type="text/javascript" src="/media/d3.layout.min.js"></script> +<script type="text/javascript" src="/media/archweb.js"></script> +<script type="text/javascript" src="/media/visualize.js"></script> +<script type="text/javascript"> +$(document).ready(function() { + var orderings = { + "repo": { url: "{% url visualize-byrepo %}", color_attr: "repo" }, + "arch": { url: "{% url visualize-byarch %}", color_attr: "arch" }, + }; + packages_treemap("#visualize-archrepo", orderings, "repo"); +}); +</script> +{% endblock %} |