aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'grumpy/templates/browse_cat.html')
-rw-r--r--grumpy/templates/browse_cat.html50
1 files changed, 47 insertions, 3 deletions
diff --git a/grumpy/templates/browse_cat.html b/grumpy/templates/browse_cat.html
index 6de7e15..d66a5a2 100644
--- a/grumpy/templates/browse_cat.html
+++ b/grumpy/templates/browse_cat.html
@@ -1,14 +1,58 @@
+{% set add_fav = '[ Add to favorites ]' -%}
+{% set del_fav = '[ Remove from favorites ]' -%}
+{% macro render_package_extras(package, user) -%}
+ {% if package.qaissues %}
+ {{ package.qaissues | length }} issue(s)</span>
+ {% endif %}
+ {% if user %}
+ <a id="href_{{package.pkg | e}}"
+ href="#" onClick="javascript:favorite_toggle('{{ package.key | e }}'); return false;">
+ {% if package in user.favorites %}
+ {{ del_fav }}
+ {% else %}
+ {{ add_fav }}
+ {% endif %}
+ </a>
+ {% endif %}
+{% endmacro -%}
{% extends "layout.html" %}
{% block title %}Browsing category "{{ cat | e }}"{% endblock %}
+{% block script %}
+{{ importer.load_js('jquery.min') }}
+<script type='text/javascript'>
+function favorite_toggle(pkg) {
+ $.ajax({
+ data: { 'pkg' : pkg},
+ url: "{{ url_for('api_favorite_edit') }}",
+ dataType: 'json',
+ type: 'POST',
+ error: function(req, xxx, error) {
+ alert('Unknown error occurred.');
+ },
+ success: function(data) {
+ if (data.success == false)
+ alert('Unknown error occurred');
+ else if (data.success == true) {
+ elem = $('#href_' + pkg.split('/')[1])
+ if (data.status == true)
+ // Favorite added
+ elem.text('{{ del_fav }}')
+ else
+ // Favorite removed
+ elem.text('{{ add_fav }}')
+ }
+ }
+ });
+}
+</script>
+{% endblock %}
{% block body %}
<h3>Browsing category "{{ cat | e }} - {{ pkgs | length }} package(s):</h3>
<ul>
<li><a href="{{ url_for('index') }}">..</a></li>
{% for pkg in pkgs %}
<li><a href="{{ url_for('browse_pkg', cat=cat, pkg=pkg.pkg)}}">{{ pkg.pkg | e }}</a>
- {% if pkg.qaissues %}
- {{ pkg.qaissues | length }} issue(s)</span>
- {% endif %}
+ {{ render_package_extras(pkg, g.user) }}
</li>
{% endfor %}
<ul>