1db9f37d046d82af90126f1246a9f0810d586fef
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

1) refresh_group_list=function() {
2)   grouplist=$('#group-choice')[0];
3)   $('a.group-choice').each(function(idx,a) {
4)     $(a).parent().remove();
5)   });
6) 
7)   if (groups.count()==0) {
8)     $(grouplist).prepend('<li><a class="group-choice">Aucune groupe</a></li>');
9)     
10)   }
11)   else { 
12)     groups.each(function(idx,group) {
13)       $(grouplist).prepend('<li><a class="group-choice">'+group.name+'</a></li>');
14)     });
15) 
16)     $('a.group-choice').each(function(idx,a) {
17)       $(a).bind('click',on_group_choice_click);
18)     });
19)   }
20) }
21) 
22) 
23) /****************
24)  * Add group
25)  ****************/
26) on_show_add_group_modal=function(e) {
27)   $('#add_group_modal #add_group_name').focus();
28) }
29) 
30) on_valid_add_group_modal=function () {
31)   var name=$('#add_group_name')[0].value;
32)   if (name=='') {
33)     alert('Vous devez saisir un nom !');
34)     return;
35)   }
36)   if (groups[name]!==undefined) {
37)     alert('Ce groupe exite déjà !');
38)     return;
39)   }
40)   groups[name]=new Group(name);
41)   refresh_group_list();
42)   $('#add_group_modal').modal('hide');
43)   groups.save();
44)   view_group(groups[name]);
45) }
46) 
47) on_close_add_group_modal=function () {
Benjamin Renard Fix error on add_group_moda...

Benjamin Renard authored 10 years ago

48)   $('#add_group_modal form')[0].reset();
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

49) }
50) 
51) /****************
52)  * Nav bars
53)  ****************/
54) on_group_choice_click=function(e) {
55)   view_group(groups[$(e.target).html()]);
56) }
57) 
58) /****************
59)  * View group
60)  ****************/
61) view_group=function(group) {
62)   $('#view-group h1').html(group.name);
63)   set_contributors(group);
64)   on_contributor_change();
65)   $('#view-group').css('display','block');
66) }
67) 
68) set_contributors=function(group) {
69)   $('#view-group #contributor option').remove();
70)   if(group.contributors.length==0) {
71)     $('#view-group #contributor').append('<option>Aucun participant</option>');
72)   }
73)   else {
74)     $(group.contributors).each(function(idx,c) {
75)       $('#view-group #contributor').append('<option value="'+c.name+'">'+c.name+'</option>');
76)     });
77)   }
78) }
79) 
80) on_contributor_change=function(e) {
81)   show_contributions(groups[$('#view-group h1').html()],$('#view-group #contributor')[0].value);
82) }
83) 
84) show_contributions=function(group,contributor_name) {
85)   var tbody=$($('#view-group #contributions tbody')[0]);
86)   tbody.html('');
87)   total=$($('#view-group #total-value')[0]);
88)   contributions=group.contributionsByContributorName(contributor_name);
89)   if (contributions.length==0) {
90)     tbody.append('<tr><td colspan=3>Aucune contributions</td></tr>');
91)     total.html('0,00 €');
92)   }
93)   else {
94)     sum=0;
95)     for (idx in contributions) {
96)       col_actions='<td><div class="btn-group" data-id="'+contributions[idx].id+'"><button type="button" class="btn btn-default contribution_edit_btn"><span class="glyphicon glyphicon-edit"></span></button><button type="button" class="btn btn-default contribution_delete_btn"><span class="glyphicon glyphicon-trash"></span></button></div></td>';
97)       tbody.append('<tr><td>'+contributions[idx].getTitle()+'</td><td>'+contributions[idx].cost+' €</td>'+col_actions+'</tr>');
98)       sum+=contributions[idx].cost;
99)     }
100)     total.html(sum+' €');
101)   }
102) 
103)   $('.contribution_delete_btn').bind('click',on_contribution_delete_btn_click);
104)   $('.contribution_edit_btn').bind('click',on_contribution_edit_btn_click);
105) }
106) 
107) /*********************
108)  * Add contributor
109)  *********************/
110) on_click_add_contributor_btn=function() {
111)   $('#add_contributor_modal #group_name')[0].value=$($('#view-group h1')[0]).html();
112)   $('#add_contributor_modal').modal('show');
113) }
114) 
115) on_show_add_contributor_modal=function(e) {
116)   $('#add_contributor_modal #add_contributor_name').focus();
117) }
118) 
119) on_valid_add_contributor_modal=function() {
120)   var group=groups[$('#add_contributor_modal #group_name')[0].value];
121)   var name=$('#add_contributor_name')[0].value;
122)   if (name=='') {
123)     alert('Vous devez saisir un nom !');
124)     return;
125)   }
126)   if (group.contributorByName(name)!=undefined) {
127)     alert('Un contributor porte déjà ce nom !');
128)     return;
129)   }
130)   var email=$('#add_contributor_email')[0].value;
131)   if (email=='') {
132)     alert('Vous devez saisir un email !');
133)     return;
134)   }
135)   if (group.contributorByEmail(email)!=undefined) {
136)     alert('Un contributor utilise déjà cet email !');
137)     return;
138)   }
139)   group.contributors.push(new Contributor(name,email));
140)   set_contributors(group);
141)   $('#add_contributor_modal').modal('hide');
142)   $('#add_contributor_name')[0].value='';
143)   $('#add_contributor_email')[0].value='';
144)   groups.save();
145) 
146) }
147) 
148) on_close_add_contributor_modal=function () {
149)   $('#add_contributor_name')[0].value='';
150)   $('#add_contributor_email')[0].value='';
151) }
152) 
153) on_click_del_contributor_btn=function() {
154)   contributor=$('#view-group #contributor')[0].value;
155)   question='Voulez-vous vraiment supprimer '+contributor+' ?';
156)   myconfirm(question,on_confirm_del_contributor,null,contributor);
157) }
158) 
159) on_confirm_del_contributor=function(contributor) {
160)   var group=groups[$($('#view-group h1')[0]).html()];
161)   group.removeContributor(contributor);
162)   set_contributors(group);
163)   groups.save();
164) }
165) 
166) /********************************
167)  * Add/edit/delete contribution
168)  ********************************/
169) on_show_add_contribution_modal=function(e) {
170)   var cs=$($('#add_contribution_modal #add_contribution_contributor_name')[0]);
171)   cs.html('');
172)   $('#view-group #contributor option').each(function(idx,option) {
173)     cs.append($(option).clone());
174)   });
175)   cs[0].value = $('#view-group #contributor')[0].value;
176)   $('#add_contribution_modal #add_contribution_title').focus();
177) }
178) 
179) on_click_add_contribution_btn=function() {
180)   $('#add_contribution_modal #group_name')[0].value=$($('#view-group h1')[0]).html();
181)   $('#add_contribution_modal #edit_id')[0].value='-1';
182)   $('#add_contribution_modal').modal('show');
183) }
184) 
185) on_valid_add_contribution_modal=function(e) {
186)   e.preventDefault();
187)   var group=groups[$('#add_contribution_modal #group_name')[0].value];
188)   var contributor_name=$('#add_contribution_contributor_name')[0].value;
189)   var contributor=group.contributorByName(contributor_name);
190)   if (contributor==undefined) {
191)     alert('Participant inconu !');
192)     return;
193)   }
194)   var title=$('#add_contribution_title')[0].value;
195)   if (title=='') {
196)     $('#add_contribution_title')[0].focus();
197)     alert('Vous devez saisir un titre !');
198)     return;
199)   }
200)   var cost=$('#add_contribution_cost')[0].value;
201)   if (cost=='') {
202)     $('#add_contribution_cost')[0].focus();
203)     alert('Vous devez saisir un coût !');
204)     return;
205)   }
Benjamin Renard Add support of dot and comm...

Benjamin Renard authored 10 years ago

206)   else if(!RegExp('^[0-9]*((,|\.)[0-9]{1,2})*$').test(cost)) {