aboutsummaryrefslogtreecommitdiff
path: root/budget/templates/list_bills.html
blob: ee97624a15054a096e130846b8fb27ebfc70038d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
{% extends "layout.html" %}

{% block title %} - {{ g.project.name }}{% endblock %}
{% block head %}
    <script src="{{ url_for("static", filename="js/bootstrap-datepicker.js") }}"></script>
{% endblock %}
{% block js %}

    $(window).resize(function() {
        $("#sidebar").height( window.innerHeight-50 );
        $("#table_overflow").height( $("#sidebar").height()-120 );
    });

    {% if add_bill %} $('#new-bill').click(); {% endif %}

    // ask for confirmation before removing an user
    $('.action').each(function(){
        $(this).hide();
        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 %}
<div id="sidebar" class="sidebar">

    <form id="add-member-form" action="{{ url_for(".add_member") }}" method="post" class="form-inline input-append">
        {{ 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] != 0 %}
    <tr id="bal-member-{{ member.id }}" action={% if member.activated %}delete{% else %}reactivate{% endif %}>
        <td class="balance-name">{{ member.name }}</td>
        {% if member.activated %}
        <td>
            <form class="action delete" action="{{ url_for(".remove_member", member_id=member.id) }}" method="POST">
                <button type="submit">{{ _("delete") }}</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] > 0 %}positive{% elif balance[member.id] < 0 %}negative{% endif %}">
            {% if balance[member.id] > 0 %}+{% endif %}{{ balance[member.id] }}
        </td>
    </tr>
    {% endfor %}
    </table>
    </div>

</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 hide">
        <div class="modal-header">
            <a href="#" class="close" data-dismiss="modal">&times;</a>
            <h3>{{ _('Add a bill') }}</h3>
        </div>
        <form action="{{ url_for(".add_bill") }}" method="post" class="modal-body form-horizontal">
            {{ forms.add_bill(bill_form, title=False) }}
        </form>
    </div>

    {% if bills.count() > 0 %}
    <table id="bill_table" class="table table-striped">
        <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 class="{{ loop.cycle("odd", "even") }}" 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 %}