aboutsummaryrefslogtreecommitdiff
path: root/ihatemoney/templates/list_bills.html
diff options
context:
space:
mode:
Diffstat (limited to 'ihatemoney/templates/list_bills.html')
-rw-r--r--ihatemoney/templates/list_bills.html128
1 files changed, 128 insertions, 0 deletions
diff --git a/ihatemoney/templates/list_bills.html b/ihatemoney/templates/list_bills.html
new file mode 100644
index 0000000..4029bc9
--- /dev/null
+++ b/ihatemoney/templates/list_bills.html
@@ -0,0 +1,128 @@
+{% extends "sidebar_table_layout.html" %}
+
+{% block title %} - {{ g.project.name }}{% endblock %}
+{% block head %}
+ <script src="{{ url_for("static", filename="js/bootstrap-datepicker.js") }}"></script>
+ <script src="{{ url_for("static", filename="js/locales/bootstrap-datepicker.fr.min.js") }}" charset="utf-8"></script>
+{% endblock %}
+{% block js %}
+ {% if add_bill %} $('#new-bill').click(); {% endif %}
+
+ // Hide all members actions
+ $('.action').each(function(){
+ $(this).hide();
+ });
+
+ // ask for confirmation before removing an user
+ $('.action.delete').each(function(){
+ var link = $(this).find('button');
+ link.click(function(){
+ if ($(this).hasClass("confirm")){
+ return true;
+ }
+ $(this).html("{{_("you sure?")}}");
+ $(this).addClass("confirm");
+ return false;
+ });
+ });
+
+ // display the remove button on mouse over (and hide them per default)
+ $('.balance tr').hover(function(){
+ $(this).find('.action').show();
+ }, function(){
+ $(this).find('.action').hide();
+ });
+
+ var highlight_owers = function(){
+ var ower_ids = $(this).attr("owers").split(',');
+ var payer_id = $(this).attr("payer");
+ $.each(ower_ids, function(i, val){
+ $('#bal-member-'+val).addClass("ower_line");
+ });
+ $("#bal-member-"+payer_id).addClass("payer_line");
+ };
+
+ var unhighlight_owers = function(){
+ $('[id^="bal-member-"]').removeClass("ower_line payer_line");
+ };
+
+ $('#bill_table tbody tr').hover(highlight_owers, unhighlight_owers);
+
+{% endblock %}
+
+{% block sidebar %}
+ <form id="add-member-form" action="{{ url_for(".add_member") }}" method="post" class="form-inline">
+ {{ forms.add_member(member_form) }}
+ </form>
+
+ <div id="table_overflow">
+ <table class="balance table">
+ {% set balance = g.project.balance %}
+ {% for member in g.project.members | sort(attribute='name') if member.activated or balance[member.id]|round(2) != 0 %}
+ <tr id="bal-member-{{ member.id }}" action={% if member.activated %}delete{% else %}reactivate{% endif %}>
+ <td class="balance-name">{{ member.name }}
+ <span class="light{% if not g.project.uses_weights %} extra-info{% endif %}">(x{{ member.weight|minimal_round(1) }})</span>
+ </td>
+ {% if member.activated %}
+ <td>
+ <form class="action delete" action="{{ url_for(".remove_member", member_id=member.id) }}" method="POST">
+ <button type="submit">{{ _("deactivate") }}</button></form>
+ <form class="action edit" action="{{ url_for(".edit_member", member_id=member.id) }}" method="GET">
+ <button type="submit">{{ _("edit") }}</button></form>
+ </td>
+ {% else %}
+ <td>
+ <form class="action reactivate" action="{{ url_for(".reactivate", member_id=member.id) }}" method="POST">
+ <button type="submit">{{ _("reactivate") }}</button></form></td>
+ {% endif %}
+ <td class="balance-value {% if balance[member.id]|round(2) > 0 %}positive{% elif balance[member.id]|round(2) < 0 %}negative{% endif %}">
+ {% if balance[member.id]|round(2) > 0 %}+{% endif %}{{ "%.2f" | format(balance[member.id]) }}
+ </td>
+ </tr>
+ {% endfor %}
+ </table>
+ </div>
+{% endblock %}
+
+{% block content %}
+<div class="identifier">{{ _("The project identifier is") }} <a href="{{ url_for(".list_bills") }}">{{ g.project.id }}</a>, {{ _("remember it!") }}</div>
+<a id="new-bill" href="{{ url_for(".add_bill") }}" class="btn btn-primary" data-toggle="modal" data-target="#bill-form">{{ _("Add a new bill") }}</a>
+
+ <div id="bill-form" class="modal fade show" role="dialog">
+ <div class="modal-dialog" role="document">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h3 class="modal-title">{{ _('Add a bill') }}</h3>
+ <a href="#" class="close" data-dismiss="modal">&times;</a>
+ </div>
+ <form action="{{ url_for(".add_bill") }}" method="post" class="modal-body container">
+ {{ forms.add_bill(bill_form, title=False) }}
+ </form>
+ </div>
+ </div>
+ </div>
+
+ {% if bills.count() > 0 %}
+ <table id="bill_table" class="col table table-striped table-hover">
+ <thead><tr><th>{{ _("When?") }}</th><th>{{ _("Who paid?") }}</th><th>{{ _("For what?") }}</th><th>{{ _("For whom?") }}</th><th>{{ _("How much?") }}</th><th>{{ _("Actions") }}</th></tr></thead>
+ <tbody>
+ {% for bill in bills %}
+ <tr owers="{{bill.owers|join(',','id')}}" payer="{{bill.payer.id}}">
+ <td>{{ bill.date }}</td>
+ <td>{{ bill.payer }}</td>
+ <td>{{ bill.what }}</td>
+ <td>{{ bill.owers|join(', ', 'name') }} </td>
+ <td>{{ "%0.2f"|format(bill.amount) }} ({{ "%0.2f"|format(bill.pay_each()) }} {{ _("each") }})</td>
+ <td class="bill-actions">
+ <a class="edit" href="{{ url_for(".edit_bill", bill_id=bill.id) }}" title="{{ _("edit") }}">{{ _('edit') }}</a>
+ <a class="delete" href="{{ url_for(".delete_bill", bill_id=bill.id) }}" title="{{ _("delete") }}">{{ _('delete') }}</a>
+ </td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+
+ {% else %}
+ <p>{{ _("Nothing to list yet. You probably want to") }} <a href="{{ url_for(".add_bill") }}" data-toggle="modal" data-target="#bill-form">{{ _("add a bill") }}</a> ?</p>
+ {% endif %}
+{% endblock %}