diff options
Diffstat (limited to 'grumpy/templates/browse_cat.html')
-rw-r--r-- | grumpy/templates/browse_cat.html | 50 |
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> |