2011-03-10 03:37:21 +01:00
|
|
|
{% extends "layout.html" %}
|
2011-07-29 17:14:33 +02:00
|
|
|
|
2011-10-15 02:40:19 +02:00
|
|
|
{% block title %}- {{ g.project.name }}{% endblock %}
|
2011-10-16 23:38:27 +02:00
|
|
|
{% block head %}
|
2011-11-20 20:30:14 +01:00
|
|
|
<script src="{{ url_for("static", filename="jquery/js/jquery-ui.js") }}"></script>
|
|
|
|
{% if g.lang != "en" %}
|
|
|
|
<script src="{{ url_for("static", filename="jquery/i18n/jquery.ui.datepicker-%s.js" % g.lang ) }}"></script>
|
|
|
|
{% endif %}
|
|
|
|
<script src="{{ url_for("static", filename="ihatemoney/custom.js") }}"></script>
|
2011-10-16 23:38:27 +02:00
|
|
|
{% endblock %}
|
2011-08-10 19:23:54 +02:00
|
|
|
{% block js %}
|
2011-11-20 20:30:14 +01:00
|
|
|
|
|
|
|
// specifies that the text in #name text field has to be hidden on user typing
|
|
|
|
auto_hide_default_text('#name');
|
|
|
|
|
|
|
|
$(window).resize(function() {
|
2011-11-27 23:03:06 +01:00
|
|
|
$("#sidebar").height( window.innerHeight-50 );
|
2011-11-20 20:30:14 +01:00
|
|
|
$("#table_overflow").height( $("#sidebar").height()-120 );
|
|
|
|
});
|
|
|
|
|
|
|
|
// display the form when clicking on the "add bill" button
|
|
|
|
var show_form = function(){
|
|
|
|
$('#bill-form').slideDown(100);
|
|
|
|
$("#hide-bill-form").show();
|
|
|
|
$("#new-bill").hide();
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
// and provide a mechanism to hide it back
|
|
|
|
var hide_form = function(){
|
|
|
|
$("#bill-form").slideUp(100);
|
|
|
|
$("#new-bill").show();
|
|
|
|
$("#hide-bill-form").hide();
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
$('#new-bill').click(show_form);
|
|
|
|
$('#empty-new-bill').click(show_form);
|
|
|
|
$('#hide-bill-form').click(hide_form);
|
|
|
|
$('#cancel-form').click(hide_form);
|
|
|
|
|
2011-11-24 00:27:51 +01:00
|
|
|
// ask for confirmation before removing an user
|
2011-11-27 04:11:22 +01:00
|
|
|
$('.action').each(function(){
|
2011-11-20 20:30:14 +01:00
|
|
|
$(this).hide();
|
2011-11-27 04:11:22 +01:00
|
|
|
var link = $(this).find('a');
|
|
|
|
link.click(function(){
|
2011-11-24 00:27:51 +01:00
|
|
|
if ($(this).hasClass("confirm")){
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
$(this).html("{{_("you sure?")}}");
|
|
|
|
$(this).addClass("confirm");
|
|
|
|
return false;
|
|
|
|
});
|
2011-11-20 20:30:14 +01:00
|
|
|
});
|
|
|
|
|
2011-11-24 00:27:51 +01:00
|
|
|
// display the remove button on mouse over (and hide them per default)
|
|
|
|
$('.balance tr').hover(function(){
|
2011-11-27 04:11:22 +01:00
|
|
|
$(this).find('.action').show();
|
2011-11-24 00:27:51 +01:00
|
|
|
}, function(){
|
2011-11-27 04:11:22 +01:00
|
|
|
$(this).find('.action').hide();
|
2011-11-20 20:30:14 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
$.datepicker.setDefaults({'dateFormat': 'yy-mm-dd'});
|
|
|
|
$(".datepicker").datepicker($.datepicker.regional['{{ g.lang }}']);
|
|
|
|
|
|
|
|
|
|
|
|
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");
|
|
|
|
};
|
|
|
|
|
2011-11-21 02:35:57 +01:00
|
|
|
$('#bill_table tbody tr').hover(highlight_owers, unhighlight_owers);
|
2011-11-20 20:30:14 +01:00
|
|
|
|
2011-08-10 19:23:54 +02:00
|
|
|
{% endblock %}
|
|
|
|
|
2011-08-21 01:42:10 +02:00
|
|
|
{% block sidebar %}
|
2011-11-01 12:57:12 +01:00
|
|
|
<div id="sidebar" class="sidebar">
|
2011-11-20 20:30:14 +01:00
|
|
|
|
|
|
|
<form action="{{ url_for(".add_member") }}" method="post">
|
|
|
|
{{ forms.add_member(member_form) }}
|
|
|
|
</form>
|
|
|
|
|
|
|
|
<div id="table_overflow">
|
|
|
|
<table class="balance">
|
|
|
|
{% set balance = g.project.balance %}
|
2011-11-26 14:24:48 +01:00
|
|
|
{% for member in g.project.members | sort(attribute='name') if member.activated or balance[member.id] != 0 %}
|
2011-11-20 20:30:14 +01:00
|
|
|
<tr id="bal-member-{{ member.id }}" action={% if member.activated %}delete{% else %}reactivate{% endif %}>
|
|
|
|
<td class="balance-name">{{ member.name }}</td>
|
|
|
|
<td class="balance-value {% if balance[member.id] > 0 %}positive{% elif balance[member.id] < 0 %}negative{% endif %}">
|
|
|
|
{% if balance[member.id] > 0 %}+{% endif %}{{ balance[member.id] }}
|
|
|
|
</td>
|
2011-11-27 04:11:22 +01:00
|
|
|
{% if member.activated %}
|
|
|
|
<td class="action delete"> <a href="{{ url_for(".remove_member", member_id=member.id) }}">{{ _("delete") }}</a></td>
|
|
|
|
{% else %}
|
|
|
|
<td class="action reactivate"> <a href="{{ url_for(".reactivate", member_id=member.id) }}">{{ _("reactivate") }}</a></td>
|
|
|
|
{% endif %}
|
2011-11-20 20:30:14 +01:00
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
|
|
|
</table>
|
|
|
|
</div>
|
2011-08-21 01:42:10 +02:00
|
|
|
|
2011-10-18 18:39:38 +02:00
|
|
|
</div>
|
2011-08-21 01:42:10 +02:00
|
|
|
{% endblock %}
|
2011-08-10 19:23:54 +02:00
|
|
|
|
2011-08-21 01:42:10 +02:00
|
|
|
{% block content %}
|
2011-10-20 04:18:12 +02:00
|
|
|
<div class="identifier">{{ _("The project identifier is") }} <a href="{{ url_for(".list_bills") }}">{{ g.project.id }}</a>, {{ _("remember it!") }}</div>
|
2011-11-20 20:30:14 +01:00
|
|
|
<a id="new-bill" href="{{ url_for(".add_bill") }}" class="btn primary">{{ _("Add a new bill") }}</a>
|
|
|
|
|
|
|
|
<form id="bill-form" action="{{ url_for(".add_bill") }}" method="post" style="display: none">
|
|
|
|
<a class="btn primary" id="hide-bill-form" href="#">{{ _("hide this form") }}</a>
|
|
|
|
{{ forms.add_bill(bill_form) }}
|
|
|
|
</form>
|
|
|
|
|
|
|
|
{% if bills.count() > 0 %}
|
|
|
|
<table id="bill_table" class="list_bills common-table zebra-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") }}">
|
2011-11-27 04:11:22 +01:00
|
|
|
<img src="{{ url_for("static", filename="edit.png") }}" />
|
2011-11-20 20:30:14 +01:00
|
|
|
</a>
|
|
|
|
<a class="delete" href="{{ url_for(".delete_bill", bill_id=bill.id) }}" title="{{ _("delete") }}">
|
|
|
|
<img src="{{ url_for("static", filename="delete.png") }}" />
|
|
|
|
</a>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
{% endfor %}
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
{% else %}
|
|
|
|
<p>{{ _("Nothing to list yet. You probably want to") }} <a id="empty-new-bill" href="{{ url_for(".add_bill") }}">{{ _("add a bill") }}</a> ?</p>
|
|
|
|
{% endif %}
|
2011-07-23 20:36:13 +02:00
|
|
|
</div>
|
2011-11-01 12:57:12 +01:00
|
|
|
<script>
|
2011-11-20 20:30:14 +01:00
|
|
|
$("#sidebar").height( window.innerHeight-40 );
|
|
|
|
$("#table_overflow").height( $("#sidebar").height()-120 );
|
|
|
|
|
2011-11-01 12:57:12 +01:00
|
|
|
</script>
|
2011-03-10 03:37:21 +01:00
|
|
|
{% endblock %}
|