507fe97345ee38ff0e9925c529dca4460a69aa96
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)   else { 
11)     groups.each(function(idx,group) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

12)       $(grouplist).prepend('<li><a class="group-choice" data-uuid="'+group.uuid+'">'+group.name+'</a></li>');
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

13)     });
14) 
15)     $('a.group-choice').each(function(idx,a) {
16)       $(a).bind('click',on_group_choice_click);
17)     });
18)   }
19) }
20) 
21) 
22) /****************
23)  * Add group
24)  ****************/
Benjamin Renard Hide navbar-groupe-collapse...

Benjamin Renard authored 10 years ago

25) 
26) on_click_add_group_btn=function(e) {
Benjamin Renard Add function navbar_collaps...

Benjamin Renard authored 10 years ago

27)   navbar_collapse_hide();
Benjamin Renard Hide navbar-groupe-collapse...

Benjamin Renard authored 10 years ago

28)   $('#add_group_modal').modal('show');
29) }
30) 
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

31) on_show_add_group_modal=function(e) {
32)   $('#add_group_modal #add_group_name').focus();
33) }
34) 
Benjamin Renard Manage submit event in moda...

Benjamin Renard authored 10 years ago

35) on_valid_add_group_modal=function (e) {
36)   e.preventDefault();
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

37)   var name=$('#add_group_name')[0].value;
38)   if (name=='') {
39)     alert('Vous devez saisir un nom !');
40)     return;
41)   }
42)   if (groups[name]!==undefined) {
43)     alert('Ce groupe exite déjà !');
44)     return;
45)   }
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

46)   var uuid=groups.newGroup(name);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

47)   refresh_group_list();
48)   $('#add_group_modal').modal('hide');
49)   groups.save();
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

50)   view_group(groups[uuid]);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

51) }
52) 
53) on_close_add_group_modal=function () {
Benjamin Renard Fix error on add_group_moda...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

55) }
56) 
57) /****************
58)  * Nav bars
59)  ****************/
60) on_group_choice_click=function(e) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

61)   view_group(groups[$(e.target).data('uuid')]);
Benjamin Renard Add function navbar_collaps...

Benjamin Renard authored 10 years ago

62)   navbar_collapse_hide();
63) }
64) 
65) navbar_collapse_hide=function() {
66)   if ($('#navbar-groupe-collapse').hasClass('in')) {
67)     $('#navbar-groupe-collapse').collapse('hide');
68)   }
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

69) }
70) 
Benjamin Renard Manage multiple screen part...

Benjamin Renard authored 10 years ago

71) /****************
72)  * Parts
73)  ****************/
74) 
75) view_part=function(part) {
76)   $('.part').each(function(idx,div) {
77)     $(div).css('display','none');
78)   });
79)   $(part).css('display','block');
80) }
81) 
82) view_home=function() {
Benjamin Renard Hide navbar on view_home

Benjamin Renard authored 10 years ago

83)   navbar_collapse_hide();
Benjamin Renard Manage multiple screen part...

Benjamin Renard authored 10 years ago

84)   if (user) {
85)     $('#view-home #title').html('Bonjour '+user.name);
86)   }
87)   else {
88)     $('#view-home #title').html('Bonjour');
89)   }
90)   if (groups.count()>0) {
91)     tbody=$('#view-home #mybalances tbody');
92)     tbody.html('');
93)     balances=groups.balances();
94)     var sum=0;
95)     for (g in balances) {
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

96)       if (jQuery.type(balances[g]['balance'][user.email])!='undefined') {
97)         if (balances[g]['balance'][user.email]['diff']<0) {
98)           sum+=balances[g]['balance'][user.email]['diff'];
99)           diff='<td class="negative">'+balances[g]['balance'][user.email]['diff'].toFixed(2)+'</td>';
Benjamin Renard Manage multiple screen part...

Benjamin Renard authored 10 years ago

100)         }
101)         else {
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

102)           value=balances[g]['balance'][user.email]['total']-balances[g]['min'];
Benjamin Renard Manage multiple screen part...

Benjamin Renard authored 10 years ago

103)           sum+=value;
104)           diff='<td class="positive">+'+value.toFixed(2)+' €</td>';
105)         }
Benjamin Renard Fixed link to group in Home...

Benjamin Renard authored 10 years ago

106)         tbody.html(tbody.html()+'<tr><td><a class="group-link" data-uuid="'+g+'">'+balances[g].name+'</a></td>'+diff+'</tr>');
Benjamin Renard Manage multiple screen part...

Benjamin Renard authored 10 years ago

107)       }
108)     }
Benjamin Renard Make group name as link in...

Benjamin Renard authored 10 years ago

109)     $('#view-home #mybalances a.group-link').bind('click',function(e) {
Benjamin Renard Fixed link to group in Home...

Benjamin Renard authored 10 years ago

110)       g=$(e.target).data('uuid');
Benjamin Renard Make group name as link in...

Benjamin Renard authored 10 years ago

111)       if (jQuery.type(groups[g])!='undefined') {
112)         view_group(groups[g]);
113)       }
114)     });
Benjamin Renard Manage multiple screen part...

Benjamin Renard authored 10 years ago

115)     if (sum<0) {
116)       $('#view-home #mybalances #total-value').html('<span class="negative">'+sum.toFixed(2)+' €</span>');
117)     }
118)     else {
119)       $('#view-home #mybalances #total-value').html('<span class="positive">'+(sum==0?'':'+')+sum.toFixed(2)+' €</span>');
120)     }
Benjamin Renard Fixed table display on home...

Benjamin Renard authored 10 years ago

121)     $('#view-home #mybalances').css('display','table');
Benjamin Renard Manage multiple screen part...

Benjamin Renard authored 10 years ago

122)   }
123)   else {
124)     $('#view-home #mybalances').css('display','none');
125)   }
126)   view_part('#view-home');
127) }
128) 
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

129) /****************
130)  * View group
131)  ****************/
Benjamin Renard Add possibility to view trash

Benjamin Renard authored 10 years ago

132) view_group=function(group,contributor_email) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

133)   $('#view-group').data('uuid',group.uuid);
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

134)   $('#view-group h1 span:first').html(group.name);
Benjamin Renard Add possibility to view trash

Benjamin Renard authored 10 years ago

135)   set_contributors(group,contributor_email);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

136)   on_contributor_change();
Benjamin Renard Manage multiple screen part...

Benjamin Renard authored 10 years ago

137)   view_part('#view-group');
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

138) }
139) 
Benjamin Renard Add possibility to view trash

Benjamin Renard authored 10 years ago

140) set_contributors=function(group,contributor_email) {
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

141)   $('#view-group #contributor option').remove();
142)   if(group.contributors.length==0) {
143)     $('#view-group #contributor').append('<option>Aucun participant</option>');
144)   }
145)   else {
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

146)     for (email in group.contributors) {
Benjamin Renard Add possibility to view trash

Benjamin Renard authored 10 years ago

147)       if (email == contributor_email) {
148)         sel=' selected';
149)       }
150)       else {
151)         sel='';
152)       }
153)       $('#view-group #contributor').append('<option value="'+email+'"'+sel+'>'+group.contributors[email].name+'</option>');
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

154)     }
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

155)   }
156) }
157) 
158) on_contributor_change=function(e) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

160) }
161) 
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

162) show_contributions=function(group,contributor_email) {
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

163)   var tbody=$($('#view-group #contributions tbody')[0]);
164)   tbody.html('');
165)   total=$($('#view-group #total-value')[0]);
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

166)   contributions=group.contributionsByContributorEmail(contributor_email);
Benjamin Renard Sort contribution by date o...

Benjamin Renard authored 10 years ago

167)   contributions.reverse();
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

168)   if (contributions.length==0) {
169)     tbody.append('<tr><td colspan=3>Aucune contributions</td></tr>');
170)     total.html('0,00 €');
171)   }
172)   else {
173)     sum=0;
Benjamin Renard Sort contribution by date o...

Benjamin Renard authored 10 years ago

174)     for (idx in contributions) {
175)       col_actions='<td><div class="btn-group" data-uuid="'+contributions[idx].uuid+'"><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>';
Benjamin Renard Display date of contributions

Benjamin Renard authored 10 years ago

176)       tbody.append('<tr><td>'+contributions[idx].getTitle()+'</td><td>'+contributions[idx].cost.toFixed(2)+' €<br/><span class="date">'+moment(contributions[idx].date).format('DD/MM/YYYY')+'</span></td>'+col_actions+'</tr>');
Benjamin Renard Sort contribution by date o...

Benjamin Renard authored 10 years ago

177)       sum+=contributions[idx].cost;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

178)     }
Benjamin Renard Sort contribution by date o...

Benjamin Renard authored 10 years ago

179)     total.html(sum.toFixed(2)+' €');
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

180)   }
Benjamin Renard Clean code

Benjamin Renard authored 10 years ago

181)   
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

182)   $('.contribution_delete_btn').bind('click',on_contribution_delete_btn_click);
183)   $('.contribution_edit_btn').bind('click',on_contribution_edit_btn_click);
184) }
185) 
Benjamin Renard Add possibility to view trash

Benjamin Renard authored 10 years ago

186) /*****************************
187)  * Trash
188)  *****************************/
189) 
190) on_trash_group_btn_click=function(e) {
191)   group=groups[$('#view-group').data('uuid')];
192)   contributor_email=$('#view-group #contributor')[0].value;
193)   view_group_trash(group,contributor_email);
194) }
195) 
196) on_go_back_group_btn_click=function(e) {
197)   group=groups[$('#view-group-trash').data('uuid')];
198)   contributor_email=$('#view-group-trash').data('contributor-email');
199)   view_group(group,contributor_email);
200) }
201) 
202) view_group_trash=function(group,contributor_email) {
203)   $('#view-group-trash').data('uuid',group.uuid);
204)   $('#view-group-trash').data('contributor-email',contributor_email);
205)   var tbody=$('#view-group-trash #trash tbody');
206)   tbody.html('');
207)   contributions=group.deletedContributionsByContributorEmail(contributor_email);
208)   contributions.reverse();
209)   if (contributions.length==0) {
210)     tbody.append('<tr><td colspan=3>Aucune contributions</td></tr>');
211)   }
212)   else {
213)     for (idx in contributions) {
214)       tbody.append('<tr data-uuid="'+contributions[idx].uuid+'"><td>'+contributions[idx].getTitle()+'</td><td>'+contributions[idx].cost.toFixed(2)+' €<br/><span class="date">'+moment(contributions[idx].date).format('DD/MM/YYYY')+'</span></td><td><button type="button" class="btn btn-default contribution_restore_btn"><span class="glyphicon glyphicon-share"></span></button></td></tr>');
215)     }
216)   }
217)   
218)   $('#view-group-trash .contribution_restore_btn').bind('click',on_contribution_restore_btn_click);
219)  
220)   view_part('#view-group-trash');
221) }
222) 
223) on_contribution_restore_btn_click=function(e) {
224)   var group=groups[$('#view-group-trash').data('uuid')];
225)   contribution_uuid=$($(e.target).parents('tr')[0]).data('uuid');
226)   contribution=group.importContribution(group.deletedContributions[contribution_uuid]);
227)   myconfirm('Etes-vous sûre de vouloir restaurer la participation '+contribution.getTitle()+' de '+contribution.contributor.name+' ?',on_confirm_contribution_restore,null,{'group':group,'contribution_uuid':contribution_uuid, 'contribution': contribution} );
228) }
229) 
230) on_confirm_contribution_restore=function(data) {
231)   data.group.restoreContribution(data.contribution_uuid);
232)   groups.save();
233)   view_group(data.group,data.contribution.contributor.email);
234) }
235) 
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

236) /******************************
237)  * Add/Edit/remove contributor
238)  ******************************/
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

239) on_click_add_contributor_btn=function() {
Benjamin Renard Fixed add contributor

Benjamin Renard authored 10 years ago

240)   $('#add_contributor_modal').data('group-uuid',$('#view-group').data('uuid'))
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

241)   $($('#add_contributor_modal h4')[0]).html('Ajouter un participant');
242)   $($('#add_contributor_modal #add_contributor_submit')[0]).html('Ajouter');
243)   $('#view-group #edit_id')[0].value='-1';
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

244)   $('#add_contributor_modal #add_contributor_email').attr('disabled',false);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

245)   $('#add_contributor_modal').modal('show');
246) }
247) 
248) on_show_add_contributor_modal=function(e) {
249)   $('#add_contributor_modal #add_contributor_name').focus();
250) }
251) 
Benjamin Renard Add contributor's email val...

Benjamin Renard authored 10 years ago

252) validateEmail=function(email) {
253)     var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
254)     return re.test(email);
255) }
256) 
Benjamin Renard Manage submit event in moda...

Benjamin Renard authored 10 years ago

257) on_valid_add_contributor_modal=function(e) {
258)   e.preventDefault();
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

259)   var group=groups[$('#add_contributor_modal').data('group-uuid')];
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

260)   var name=$('#add_contributor_name')[0].value;
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

261)   edit_id=$('#view-group #edit_id')[0].value;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

262)   if (name=='') {
263)     alert('Vous devez saisir un nom !');
264)     return;
265)   }
266)   var email=$('#add_contributor_email')[0].value;
267)   if (email=='') {
268)     alert('Vous devez saisir un email !');
269)     return;
270)   }
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

271)   duplicate=group.contributorByEmail(email)
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

272)   if (duplicate!=undefined && edit=='-1') {
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

273)     alert('Un contributor utilise déjà cet email !');
274)     return;
275)   }
Benjamin Renard Add contributor's email val...

Benjamin Renard authored 10 years ago

276)   if (!validateEmail(email)) {
277)     alert('Email invalide !');
278)     return;
279)   }
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

280)   if(edit_id=='-1') {
281)     group.addContributor(new Contributor(name,email));
282)   }
283)   else {
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

284)     group.replaceContributor(email,new Contributor(name,email));
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

285)   }
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

286)   set_contributors(group);
287)   $('#add_contributor_modal').modal('hide');
288)   groups.save();
Benjamin Renard Display contribution of con...

Benjamin Renard authored 10 years ago

289)   view_group(group,email);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

290) }
291) 
292) on_close_add_contributor_modal=function () {
293)   $('#add_contributor_name')[0].value='';
294)   $('#add_contributor_email')[0].value='';
295) }
296) 
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

297) on_edit_contributor_btn_click=function(e) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

298)   var group=groups[$('#view-group').data('uuid')];
299)   $('#add_contributor_modal').data('group-uuid',group.uuid);
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

300)   contributor_email=$('#view-group #contributor')[0].value;
301)   contributor=group.contributorByEmail(contributor_email);
302)   $('#view-group #edit_id')[0].value=contributor_email;
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

303)   $('#add_contributor_modal #add_contributor_name')[0].value=contributor.name;
304)   $('#add_contributor_modal #add_contributor_email')[0].value=contributor.email;
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

305)   $('#add_contributor_modal #add_contributor_email').attr('disabled',true);
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

306)   $($('#add_contributor_modal h4')[0]).html('Editer un participant');
307)   $($('#add_contributor_modal #add_contributor_submit')[0]).html('Valider');
308)   $('#add_contributor_modal').modal('show');
309) }
310) 
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

311) on_click_del_contributor_btn=function() {
Benjamin Renard Fix contributor deletion

Benjamin Renard authored 10 years ago

312)   var group=groups[$('#view-group').data('uuid')];
313)   contributor=group.contributorByEmail($('#view-group #contributor')[0].value);
314)   question='Voulez-vous vraiment supprimer '+contributor.name+' ?';
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

315)   myconfirm(question,on_confirm_del_contributor,null,contributor);
316) }
317) 
318) on_confirm_del_contributor=function(contributor) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

319)   var group=groups[$('#view-group').data('uuid')];
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

320)   group.removeContributor(contributor);
321)   set_contributors(group);
322)   groups.save();
323) }
324) 
325) /********************************
326)  * Add/edit/delete contribution
327)  ********************************/
328) on_show_add_contribution_modal=function(e) {
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

329)   $('#add_contribution_modal #add_contribution_contributor_email').html($('#view-group #contributor').html());
330)   $('#add_contribution_modal #add_contribution_contributor_email')[0].value=$('#view-group #contributor')[0].value;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

331)   $('#add_contribution_modal #add_contribution_title').focus();
332) }
333) 
334) on_click_add_contribution_btn=function() {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

335)   $('#add_contribution_modal').data('group-uuid',$('#view-group').data('uuid'));
Benjamin Renard Use UUID as Contribution id...

Benjamin Renard authored 10 years ago

336)   $('#add_contribution_modal #edit_uuid')[0].value='-1';
Benjamin Renard Customize add_contribution_...

Benjamin Renard authored 10 years ago

337)   $($('#add_contribution_modal h4')[0]).html('Ajouter une contribution');
338)   $($('#add_contribution_modal #add_contribution_submit')[0]).html('Ajouter');
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

339)   $('#add_contribution_modal').modal('show');
340) }
341) 
342) on_valid_add_contribution_modal=function(e) {
343)   e.preventDefault();
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

344)   var group=groups[$('#add_contribution_modal').data('group-uuid')];
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

345)   var contributor_email=$('#add_contribution_contributor_email')[0].value;
346)   var contributor=group.contributorByEmail(contributor_email);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

347)   if (contributor==undefined) {
348)     alert('Participant inconu !');
349)     return;
350)   }
351)   var title=$('#add_contribution_title')[0].value;
352)   if (title=='') {
353)     $('#add_contribution_title')[0].focus();
354)     alert('Vous devez saisir un titre !');
355)     return;
356)   }
357)   var cost=$('#add_contribution_cost')[0].value;
358)   if (cost=='') {
359)     $('#add_contribution_cost')[0].focus();
360)     alert('Vous devez saisir un coût !');
361)     return;
362)   }
Benjamin Renard Add support of dot and comm...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

364)     $('#add_contribution_cost')[0].focus();
365)     alert('Coût incorrect !');
366)     return;
367)   }
368)   cost=parseFloat(cost.replace(',','.'));
Benjamin Renard Clean code

Benjamin Renard authored 10 years ago

369)   
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

370)   var date=$('#add_contribution_date')[0].value;
371)   if (date!='') {
372)     if(!RegExp('^[0-3][0-9]\/[0-1][0-9]\/[0-2][0-9][0-9][0-9]$').test(date)) {
373)       $('#add_contribution_date')[0].focus();
374)       alert('Date incorrect !');
375)       return;
376)     }
377)     date=moment(date,'DD-MM-YYYY').toDate();
378)     if (jQuery.type(date)!='date') {
379)       alert('Date non-reconnu !');
380)       return;
381)     }
382)   }
383)   else {
384)     date=new Date();
385)   }
Benjamin Renard Clean code

Benjamin Renard authored 10 years ago

386)   
Benjamin Renard Use UUID as Contribution id...

Benjamin Renard authored 10 years ago

387)   if($('#add_contribution_modal #edit_uuid')[0].value=='-1') {
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

388)     group.addContribution(new Contribution(contributor,cost,title,date));
389)   }
390)   else {
Benjamin Renard Use UUID as Contribution id...

Benjamin Renard authored 10 years ago

391)     contribution_uuid=$('#add_contribution_modal #edit_uuid')[0].value;
392)     group.updateContribution(contribution_uuid,new Contribution(contributor,cost,title,date));
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

393)   }
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

394)   show_contributions(group,contributor_email);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

395)   $('#add_contribution_modal').modal('hide');
396)   $('#add_contribution_modal form')[0].reset();
397)   groups.save();
398) }
399) 
400) on_close_add_contribution_modal=function () {
401)   $('#add_contribution_modal form')[0].reset();
402) }
403) 
404) on_contribution_delete_btn_click=function(e) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

405)   var group=groups[$('#view-group').data('uuid')];
Benjamin Renard Use UUID as Contribution id...

Benjamin Renard authored 10 years ago

406)   contribution_uuid=$($(e.target).parents('div')[0]).data('uuid');
407)   contribution=group.contributions[contribution_uuid];
408)   myconfirm('Etes-vous sûre de vouloir supprimer la participation '+contribution.getTitle()+' de '+contribution.contributor.name+' ?',on_confirm_contribution_delete,null,{'group':group,'contribution_uuid':contribution_uuid, 'contribution': contribution} );
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

409) }
410) 
411) on_confirm_contribution_delete=function(data) {
Benjamin Renard Use UUID as Contribution id...

Benjamin Renard authored 10 years ago

412)   data.group.deleteContribution(data.contribution_uuid);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

413)   groups.save();
414)   on_contributor_change();
415) }
416) 
417) on_contribution_edit_btn_click=function(e) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

418)   var group=groups[$('#view-group').data('uuid')];
419)   $('#add_contribution_modal').data('group-uuid',$('#view-group').data('uuid'));
Benjamin Renard Customize add_contribution_...

Benjamin Renard authored 10 years ago

420)   $($('#add_contribution_modal h4')[0]).html('Editer une contribution');
421)   $($('#add_contribution_modal #add_contribution_submit')[0]).html('Valider');
Benjamin Renard Use UUID as Contribution id...

Benjamin Renard authored 10 years ago

422)   contribution_uuid=$($(e.target).parents('div')[0]).data('uuid');
423)   contribution=group.contributions[contribution_uuid];
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

424)   $('#add_contribution_modal #add_contribution_contributor_email')[0].value=contribution.contributor.email;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

425)   $('#add_contribution_modal #add_contribution_title')[0].value=contribution.getTitle();
426)   $('#add_contribution_modal #add_contribution_cost')[0].value=contribution.cost;
427)   $('#add_contribution_modal #add_contribution_date')[0].value=moment(contribution.date).format('DD/MM/YYYY');
Benjamin Renard Use UUID as Contribution id...

Benjamin Renard authored 10 years ago

428)   $('#add_contribution_modal #edit_uuid')[0].value=contribution_uuid;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

429)   $('#add_contribution_modal').modal('show');
430) }
431) 
432) 
433) 
434) /********************
435)  * Clear local data
436)  ********************/
437) clear_local_data=function() {
Benjamin Renard Add function navbar_collaps...

Benjamin Renard authored 10 years ago

438)   navbar_collapse_hide();
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

439)   myconfirm('Etes-vous sûre de vouloir supprimer les données locales ?',on_confirm_clear_local_data);
440) }
441) 
442) on_confirm_clear_local_data=function(data) {
Benjamin Renard Just remove groups from loc...

Benjamin Renard authored 10 years ago

443)   delete localStorage.groups;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

444)   location.reload();
445) }
446) 
447) /*********************
448)  * View balance
449)  *********************/
450) 
451) on_display_balance_btn_click=function(e) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

452)   group=groups[$('#view-group').data('uuid')];
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

453)   display_balance(group);
454) }
455) 
456) display_balance=function(group) {
457)   bal=group.balance();
458)   tbody=$($('#display_balance_modal tbody')[0]);
459)   tbody.html('');
Benjamin Renard Improve balance display

Benjamin Renard authored 10 years ago

460)   for (c in bal['balance']) {
461)     if(bal['balance'][c]['diff']<0) {
462)       diff='<td class="negative">'+bal['balance'][c]['diff'].toFixed(2)+' €</td>';
463)     }
464)     else {
465)       diff='<td><span class="glyphicon glyphicon-thumbs-up"></span></td>';
466)     }
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

467)     tbody.append('<tr><td>'+bal['balance'][c]['name']+'</td><td>'+bal['balance'][c]['total'].toFixed(2)+' €</td>'+diff+'</tr>');
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

468)   }
Benjamin Renard Improve balance display

Benjamin Renard authored 10 years ago

469)   $('#display_balance_modal #total-value').html(bal.sum.toFixed(2)+' €');
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

470)   $('#display_balance_modal').modal('show');
471) }
472) 
473) /*********************
474)  * Remove group
475)  *********************/
476) 
477) on_remove_group_btn_click=function(e) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

478)   group=groups[$('#view-group').data('uuid')];
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

479)   myconfirm('Etes-vous sûre de vouloir supprimer le group '+group.name+' ?',on_confirm_remove_group,null,group);
480) }
481) 
482) on_confirm_remove_group=function(group) {
Benjamin Renard Add uuid to group and refer...

Benjamin Renard authored 10 years ago

483)   if(groups.removeGroup(group.uuid)) {
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

484)     groups.save();
485)     location.reload();
486)   }
487)   else {
488)     alert('Erreur en supprimant le groupe '+group.name+' :(');
489)   }
490) }
491) 
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

492) /********************
493)  * Login
494)  ********************/
495) on_close_login_modal=function(e) {
496)   $('#login_modal form')[0].reset();
497) }
498) 
499) sync_server=false;
500) on_valid_login_modal=function(e) {
Benjamin Renard Manage submit event in moda...

Benjamin Renard authored 10 years ago

501)   e.preventDefault();
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

502)   email=$('#login_modal #login_email')[0].value;
503)   pass=$('#login_modal #login_pass')[0].value;
504)   server=$('#login_modal #login_server')[0].value;
505)   $('#login_modal').modal('hide');
Benjamin Renard Use pleaseWaitDialog in som...

Benjamin Renard authored 10 years ago

506)   pleaseWaitShow();
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

507)   sync_server.login(server,email,pass,
508)     function(data) {
509)       localStorage.user=JSON.stringify({
510)         'name': data.name,
511)         'email': email,
512)         'password': pass,
513)         'server': server,
514)       });
Benjamin Renard Use pleaseWaitDialog in som...

Benjamin Renard authored 10 years ago

515)       pleaseWaitHide();
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

516)       logged_menu();
517)     },
518)     function(data) {
Benjamin Renard Use pleaseWaitDialog in som...

Benjamin Renard authored 10 years ago

519)       pleaseWaitHide();
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

520)       if (jQuery.type(data) != 'object' && data.loginerror) {
521)         alert(data.loginerror);
522)       }
523)       else {
524)         console.log(data);
525)         alert('Erreur durant la connexion au serveur');
526)       }
527)     }
528)   );
529) }
530) 
Benjamin Renard Add subscribe feature

Benjamin Renard authored 10 years ago

531) on_click_go_to_subscribe_btn=function() {
532)   $('#login_modal').modal('hide');
533)   $('#subscribe_modal').modal('show');
534) }
535) 
536) /********************
537)  * Subscribe
538)  ********************/
539) on_close_subscribe_modal=function(e) {
540)   $('#subscribe_modal form')[0].reset();
541) }
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

542) 
Benjamin Renard Add subscribe feature

Benjamin Renard authored 10 years ago

543) sync_server=false;
544) on_valid_subscribe_modal=function(e) {
545)   e.preventDefault();
546)   email=$('#subscribe_modal #subscribe_email')[0].value;
547)   name=$('#subscribe_modal #subscribe_name')[0].value;
548)   pass=$('#subscribe_modal #subscribe_pass')[0].value;
549)   server=$('#subscribe_modal #subscribe_server')[0].value;
550)   $('#subscribe_modal').modal('hide');
551)   pleaseWaitShow();
552)   sync_server.subscribe(server,email,name,pass,
553)     function(data) {
554)       localStorage.user=JSON.stringify({
555)         'name': data.name,
556)         'email': data.email,
557)         'password': data.password,
558)         'server': server,
559)       });
560)       pleaseWaitHide();
561)       logged_menu();
562)       alert('Bienvenu '+data.name+' !');
563)     },
564)     function(data) {
565)       pleaseWaitHide();
566)       if (jQuery.type(data) == 'object' && jQuery.type(data.subscribeerror)!='undefined') {
567)         alert(data.subscribeerror);
568)       }
569)       else {
570)         console.log(data);
571)         alert('Erreur durant la connexion au serveur');
572)       }
573)     }
574)   );
575) }
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

576) 
577) /********************
578)  * Sync
579)  ********************/
580) on_click_sync_btn=function(e) {
Benjamin Renard Hide navbar after sync btn...

Benjamin Renard authored 10 years ago

581)   navbar_collapse_hide();
Benjamin Renard Manage user global variable

Benjamin Renard authored 10 years ago

582)   if (user) {
Benjamin Renard Use pleaseWaitDialog in som...

Benjamin Renard authored 10 years ago

583)     pleaseWaitShow();
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

584)     onsuccess=function(data) {
585)       console.log(data);
586)       if (data.groups) {
587)         groups.import(data.groups);
588)         groups.save();
589)         refresh_group_list();
Benjamin Renard Use pleaseWaitDialog in som...

Benjamin Renard authored 10 years ago

590)         pleaseWaitHide();
Benjamin Renard Display home after successf...

Benjamin Renard authored 10 years ago

591)         view_home();
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

592)         alert('Groupes synchronisés');
593)       }
594)       else {
595)         onerror(data);
596)       }
597)     }
598)     onerror=function(data) {
599)       pleaseWaitHide();
600)       console.log(data);
601)       if (jQuery.type(data['loginerror'])!='undefined') {
602)         alert(data['loginerror']);
603)       }
604)       else if (jQuery.type(data['syncerror'])!='undefined') {
605)         alert(data['syncerror']);
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

606)       }
Benjamin Renard Manage contributor by their...

Benjamin Renard authored 10 years ago

607)       else {
608)         alert('Erreur durant la synchronisation :(');
609)       }
610)     }
611)     sync_server.sync(user.server, user.email, user.password, groups.export(),onsuccess,onerror);
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

612)   }
613)   else {
614)     alert("Vous devez vous connecter pour commencer");
615)     $('#login_modal').modal('show');
616)   }
617) }
618) 
619) /*
620)  * User menu
621)  */
622) user=false;
623) logged_menu=function() {
624)   user=JSON.parse(localStorage.user);
625)   $('#user-name').html(user.name);
626)   $('#user-menu li').remove();
627)   menu=$('#user-menu');
628)   menu.html("<li><a id='myaccount_btn'>Mon compte</a></li>"+
629)   "<li><a id='sync_btn'>Synchroniser</a></li>" +
630)   "<li class='divider'></li>" +
631)   "<li><a id='logoff_btn'>Déconnexion</a></li>");
632)   $('#myaccount_btn').bind('click',on_click_myaccount_btn);
633)   $('#sync_btn').bind('click',on_click_sync_btn);
634)   $('#logoff_btn').bind('click',on_click_logoff_btn);
635) }
636) 
637) logged_out_menu=function() {
Benjamin Renard Manage user global variable

Benjamin Renard authored 10 years ago

638)   user=false;
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

639)   $('#user-name').html('Connexion');
640)   $('#user-menu li').remove();
641)   menu=$('#user-menu');
Benjamin Renard Add subscribe feature

Benjamin Renard authored 10 years ago

642)   menu.html("<li><a id='login_btn'>Connexion</a></li>"+
643) 	"<li><a id='subscribe_btn'>Inscription</a></li>");
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

644)   $('#login_btn').bind('click',on_click_login_btn);
Benjamin Renard Add subscribe feature

Benjamin Renard authored 10 years ago

645)   $('#subscribe_btn').bind('click',on_click_subscribe_btn);
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

646) }
647) 
648) on_click_myaccount_btn=function() {
649)   $('#myaccount_modal #myaccount_email').html(user.email);
650)   $('#myaccount_modal #myaccount_name')[0].value=user.name;
Benjamin Renard Display server in myaccount...

Benjamin Renard authored 10 years ago

651)   $('#myaccount_modal #myaccount_server').html(user.server);
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

652)   $('#myaccount_modal').modal('show');
653) }
654) 
655) on_click_login_btn=function() {
656)   $('#login_modal').modal('show');
657) }
658) 
Benjamin Renard Add subscribe feature

Benjamin Renard authored 10 years ago

659) on_click_subscribe_btn=function() {
660)   $('#subscribe_modal').modal('show');
661) }
662) 
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

663) on_click_logoff_btn=function() {
664)   delete localStorage.user;
665)   logged_out_menu();
666) }
667) 
Benjamin Renard Add pleaseWaitDialog and fu...

Benjamin Renard authored 10 years ago

668) /*******************
669)  * pleaseWaitDialog
670)  *******************/
671) 
672) pleaseWaitShow=function() {
Benjamin Renard Fix please wait modal

Benjamin Renard authored 10 years ago

673)   $('#please_wait_modal').modal('show');
Benjamin Renard Add pleaseWaitDialog and fu...

Benjamin Renard authored 10 years ago

674) }
675) 
676) pleaseWaitHide=function() {
Benjamin Renard Fix please wait modal

Benjamin Renard authored 10 years ago

677)   $('#please_wait_modal').modal('hide');
Benjamin Renard Add pleaseWaitDialog and fu...

Benjamin Renard authored 10 years ago

678) }
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

679) 
680) /*********************
681)  * Activate
682)  *********************/
683) $( document ).ready( function() {
Benjamin Renard Use pleaseWaitDialog in som...

Benjamin Renard authored 10 years ago

684)   pleaseWaitShow();
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

685)   if(typeof(Storage)!=="undefined"){
686)     groups=new GroupList();
687)     groups.loadFromLocalStorage();
688)     refresh_group_list();
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

689)     if (jQuery.type(localStorage.user)!='undefined') {
690)       logged_menu();
691)     }
692)     else {
693)       logged_out_menu();
694)     }
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

695)   }
696)   else {
697)     alert('Local storage not supported !');
Benjamin Renard Use pleaseWaitDialog in som...

Benjamin Renard authored 10 years ago

698)     pleaseWaitHide();
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

699)     return;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

700)   }
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

701)   sync_server=new SyncServer();
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

702) 
Benjamin Renard Add link on App Name in Navbar

Benjamin Renard authored 10 years ago

703)   $('#app-name').bind('click',view_home);
704) 
Benjamin Renard Hide navbar-groupe-collapse...

Benjamin Renard authored 10 years ago

705)   $('#add_group_btn').bind('click',on_click_add_group_btn);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

706)   $('#add_group_submit').bind('click',on_valid_add_group_modal);
707)   $("#add_group_modal").on('shown.bs.modal',on_show_add_group_modal);
708)   $("#add_group_modal").on('hidden.bs.modal',on_close_add_group_modal);
Benjamin Renard Manage submit event in moda...

Benjamin Renard authored 10 years ago

709)   $("#add_group_modal form").bind('submit',on_valid_add_group_modal);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

710) 
711)   $('#clear_local_data').bind('click',clear_local_data);
712) 
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

713)   $('#login_modal').on('hidden.bs.modal',on_close_login_modal);
714)   $('#login_modal #login_submit').bind('click',on_valid_login_modal);
Benjamin Renard Add subscribe feature

Benjamin Renard authored 10 years ago

715)   $('#login_modal #go_to_subscribe_btn').bind('click',on_click_go_to_subscribe_btn);
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

716)   $('#login_modal form').bind('submit',on_valid_login_modal);
717) 
Benjamin Renard Add subscribe feature

Benjamin Renard authored 10 years ago

718)   $('#subscribe_modal').on('hidden.bs.modal',on_close_subscribe_modal);
719)   $('#subscribe_modal #subscribe_submit').bind('click',on_valid_subscribe_modal);
720)   $('#subscribe_modal form').bind('submit',on_valid_subscribe_modal);
721) 
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

722)   $('#view-group #contributor').bind('change',on_contributor_change);
723) 
724)   $('#add_contributor_btn').bind('click',on_click_add_contributor_btn);
725)   $('#add_contributor_submit').bind('click',on_valid_add_contributor_modal);
726)   $("#add_contributor_modal").on('shown.bs.modal',on_show_add_contributor_modal);
727)   $("#add_contributor_modal").on('hidden.bs.modal',on_close_add_contributor_modal);
Benjamin Renard Manage submit event in moda...

Benjamin Renard authored 10 years ago

728)   $("#add_contributor_modal form").bind('submit',on_valid_add_contributor_modal);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

729) 
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

730)   $('#edit_contributor_btn').bind('click',on_edit_contributor_btn_click);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

731)   $('#del_contributor_btn').bind('click',on_click_del_contributor_btn);
732) 
733)   $('#add_contribution_btn').bind('click',on_click_add_contribution_btn);
734)   $('#add_contribution_submit').bind('click',on_valid_add_contribution_modal);
735)   $("#add_contribution_modal").on('shown.bs.modal',on_show_add_contribution_modal);
736)   $("#add_contribution_modal").on('hidden.bs.modal',on_close_add_contribution_modal);
737)   $("#add_contribution_modal form").on('submit',on_valid_add_contribution_modal);
738) 
739)   $("#display_balance_btn").bind('click',on_display_balance_btn_click);
740) 
Benjamin Renard Add possibility to view trash

Benjamin Renard authored 10 years ago

741)   $("#view-group-trash #go-back-group").bind('click',on_go_back_group_btn_click);
742) 
743)   $('#trash_group_btn').bind('click',on_trash_group_btn_click);
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

744)   $('#remove_group_btn').bind('click',on_remove_group_btn_click);
Benjamin Renard Manage multiple screen part...

Benjamin Renard authored 10 years ago

745)   view_home();
Benjamin Renard Use pleaseWaitDialog in som...

Benjamin Renard authored 10 years ago

746)   pleaseWaitHide();