0da244586bac1e56d47dd236662312eadebc5d49
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) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

62)   $('#view-group h1 span:first').html(group.name);
63)   $('#view-group #group_name')[0].value=group.name;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

64)   set_contributors(group);
65)   on_contributor_change();
66)   $('#view-group').css('display','block');
67) }
68) 
69) set_contributors=function(group) {
70)   $('#view-group #contributor option').remove();
71)   if(group.contributors.length==0) {
72)     $('#view-group #contributor').append('<option>Aucun participant</option>');
73)   }
74)   else {
75)     $(group.contributors).each(function(idx,c) {
76)       $('#view-group #contributor').append('<option value="'+c.name+'">'+c.name+'</option>');
77)     });
78)   }
79) }
80) 
81) on_contributor_change=function(e) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

82)   show_contributions(groups[$('#view-group #group_name')[0].value],$('#view-group #contributor')[0].value);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

83) }
84) 
85) show_contributions=function(group,contributor_name) {
86)   var tbody=$($('#view-group #contributions tbody')[0]);
87)   tbody.html('');
88)   total=$($('#view-group #total-value')[0]);
89)   contributions=group.contributionsByContributorName(contributor_name);
90)   if (contributions.length==0) {
91)     tbody.append('<tr><td colspan=3>Aucune contributions</td></tr>');
92)     total.html('0,00 €');
93)   }
94)   else {
95)     sum=0;
96)     for (idx in contributions) {
97)       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>';
98)       tbody.append('<tr><td>'+contributions[idx].getTitle()+'</td><td>'+contributions[idx].cost+' €</td>'+col_actions+'</tr>');
99)       sum+=contributions[idx].cost;
100)     }
101)     total.html(sum+' €');
102)   }
103) 
104)   $('.contribution_delete_btn').bind('click',on_contribution_delete_btn_click);
105)   $('.contribution_edit_btn').bind('click',on_contribution_edit_btn_click);
106) }
107) 
108) /*********************
109)  * Add contributor
110)  *********************/
111) on_click_add_contributor_btn=function() {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

112)   $('#add_contributor_modal #group_name')[0].value=$('#view-group #group_name')[0].value;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

113)   $('#add_contributor_modal').modal('show');
114) }
115) 
116) on_show_add_contributor_modal=function(e) {
117)   $('#add_contributor_modal #add_contributor_name').focus();
118) }
119) 
120) on_valid_add_contributor_modal=function() {
121)   var group=groups[$('#add_contributor_modal #group_name')[0].value];
122)   var name=$('#add_contributor_name')[0].value;
123)   if (name=='') {
124)     alert('Vous devez saisir un nom !');
125)     return;
126)   }
127)   if (group.contributorByName(name)!=undefined) {
128)     alert('Un contributor porte déjà ce nom !');
129)     return;
130)   }
131)   var email=$('#add_contributor_email')[0].value;
132)   if (email=='') {
133)     alert('Vous devez saisir un email !');
134)     return;
135)   }
136)   if (group.contributorByEmail(email)!=undefined) {
137)     alert('Un contributor utilise déjà cet email !');
138)     return;
139)   }
140)   group.contributors.push(new Contributor(name,email));
141)   set_contributors(group);
142)   $('#add_contributor_modal').modal('hide');
143)   $('#add_contributor_name')[0].value='';
144)   $('#add_contributor_email')[0].value='';
145)   groups.save();
146) 
147) }
148) 
149) on_close_add_contributor_modal=function () {
150)   $('#add_contributor_name')[0].value='';
151)   $('#add_contributor_email')[0].value='';
152) }
153) 
154) on_click_del_contributor_btn=function() {
155)   contributor=$('#view-group #contributor')[0].value;
156)   question='Voulez-vous vraiment supprimer '+contributor+' ?';
157)   myconfirm(question,on_confirm_del_contributor,null,contributor);
158) }
159) 
160) on_confirm_del_contributor=function(contributor) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

161)   var group=groups[$('#view-group #group_name')[0].value];
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

162)   group.removeContributor(contributor);
163)   set_contributors(group);
164)   groups.save();
165) }
166) 
167) /********************************
168)  * Add/edit/delete contribution
169)  ********************************/
170) on_show_add_contribution_modal=function(e) {
171)   var cs=$($('#add_contribution_modal #add_contribution_contributor_name')[0]);
172)   cs.html('');
173)   $('#view-group #contributor option').each(function(idx,option) {
174)     cs.append($(option).clone());
175)   });
176)   cs[0].value = $('#view-group #contributor')[0].value;
177)   $('#add_contribution_modal #add_contribution_title').focus();
178) }
179) 
180) on_click_add_contribution_btn=function() {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

181)   $('#add_contribution_modal #group_name')[0].value=$('#view-group #group_name')[0].value;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

182)   $('#add_contribution_modal #edit_id')[0].value='-1';
183)   $('#add_contribution_modal').modal('show');
184) }
185) 
186) on_valid_add_contribution_modal=function(e) {
187)   e.preventDefault();
188)   var group=groups[$('#add_contribution_modal #group_name')[0].value];
189)   var contributor_name=$('#add_contribution_contributor_name')[0].value;
190)   var contributor=group.contributorByName(contributor_name);
191)   if (contributor==undefined) {
192)     alert('Participant inconu !');
193)     return;
194)   }
195)   var title=$('#add_contribution_title')[0].value;
196)   if (title=='') {
197)     $('#add_contribution_title')[0].focus();
198)     alert('Vous devez saisir un titre !');
199)     return;
200)   }
201)   var cost=$('#add_contribution_cost')[0].value;
202)   if (cost=='') {
203)     $('#add_contribution_cost')[0].focus();
204)     alert('Vous devez saisir un coût !');
205)     return;
206)   }
Benjamin Renard Add support of dot and comm...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

208)     $('#add_contribution_cost')[0].focus();
209)     alert('Coût incorrect !');
210)     return;
211)   }
212)   cost=parseFloat(cost.replace(',','.'));
213) 
214)   var date=$('#add_contribution_date')[0].value;
215)   if (date!='') {
216)     if(!RegExp('^[0-3][0-9]\/[0-1][0-9]\/[0-2][0-9][0-9][0-9]$').test(date)) {
217)       $('#add_contribution_date')[0].focus();
218)       alert('Date incorrect !');
219)       return;
220)     }
221)     date=moment(date,'DD-MM-YYYY').toDate();
222)     if (jQuery.type(date)!='date') {
223)       alert('Date non-reconnu !');
224)       return;
225)     }
226)   }
227)   else {
228)     date=new Date();
229)   }
230) 
231)   if($('#add_contribution_modal #edit_id')[0].value=='-1') {
232)     group.addContribution(new Contribution(contributor,cost,title,date));
233)   }
234)   else {
235)     contribution_id=$('#add_contribution_modal #edit_id')[0].value;
236)     group.replaceContribution(contribution_id,new Contribution(contributor,cost,title,date));
237)   }
238)   show_contributions(group,contributor_name);
239)   $('#add_contribution_modal').modal('hide');
240)   $('#add_contribution_modal form')[0].reset();
241)   groups.save();
242) }
243) 
244) on_close_add_contribution_modal=function () {
245)   $('#add_contribution_modal form')[0].reset();
246) }
247) 
248) on_contribution_delete_btn_click=function(e) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

249)   var group=groups[$('#view-group #group_name')[0].value];
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

250)   contribution_id=$($(e.target).parents('div')[0]).data('id');
251)   contribution=group.contributions[contribution_id];
252)   myconfirm('Etes-vous sûre de vouloir supprimer la participation '+contribution.getTitle()+' de '+contribution.contributor.name+' ?',on_confirm_contribution_delete,null,{'group':group,'contribution_id':contribution_id, 'contribution': contribution} );
253) }
254) 
255) on_confirm_contribution_delete=function(data) {
256)   delete data.group.contributions[data.contribution_id];
257)   groups.save();
258)   on_contributor_change();
259) }
260) 
261) on_contribution_edit_btn_click=function(e) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

262)   var group=groups[$('#view-group #group_name')[0].value];
263)   $('#add_contribution_modal #group_name')[0].value=$('#view-group #group_name')[0].value;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

264)   contribution_id=$($(e.target).parents('div')[0]).data('id');
265)   contribution=group.contributions[contribution_id];
266)   $('#add_contribution_modal #add_contribution_contributor_name')[0].value=contribution.contributor.name;
267)   console.log($('#add_contribution_modal #add_contribution_contributor_name')[0]);
268)   console.log(contribution.contributor.name);
269)   $('#add_contribution_modal #add_contribution_title')[0].value=contribution.getTitle();
270)   $('#add_contribution_modal #add_contribution_cost')[0].value=contribution.cost;
271)   $('#add_contribution_modal #add_contribution_date')[0].value=moment(contribution.date).format('DD/MM/YYYY');
272)   $('#add_contribution_modal #edit_id')[0].value=contribution_id;
273)   $('#add_contribution_modal').modal('show');
274) }
275) 
276) 
277) 
278) /********************
279)  * Clear local data
280)  ********************/
281) clear_local_data=function() {
282)   myconfirm('Etes-vous sûre de vouloir supprimer les données locales ?',on_confirm_clear_local_data);
283) }
284) 
285) on_confirm_clear_local_data=function(data) {
286)   localStorage.clear();
287)   location.reload();
288) }
289) 
290) /*********************
291)  * View balance
292)  *********************/
293) 
294) on_display_balance_btn_click=function(e) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

295)   group=groups[$('#view-group #group_name')[0].value];
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

296)   display_balance(group);
297) }
298) 
299) display_balance=function(group) {
300)   bal=group.balance();
301)   tbody=$($('#display_balance_modal tbody')[0]);
302)   tbody.html('');
303)   sum=0;
304)   for (c in bal) {
305)     tbody.append('<tr><td>'+c+'</td><td>'+bal[c]+' €</td></tr>');
306)     sum+=bal[c];
307)   }
308)   $('#display_balance_modal #total-value').html(sum+' €');
309)   $('#display_balance_modal').modal('show');
310) }
311) 
312) /*********************
313)  * Remove group
314)  *********************/
315) 
316) on_remove_group_btn_click=function(e) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

317)   group=groups[$('#view-group #group_name')[0].value];