d70e964e77428ab3e3564bae1658de8f1e859824
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) {
12)       $(grouplist).prepend('<li><a class="group-choice">'+group.name+'</a></li>');
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) 
35) on_valid_add_group_modal=function () {
36)   var name=$('#add_group_name')[0].value;
37)   if (name=='') {
38)     alert('Vous devez saisir un nom !');
39)     return;
40)   }
41)   if (groups[name]!==undefined) {
42)     alert('Ce groupe exite déjà !');
43)     return;
44)   }
45)   groups[name]=new Group(name);
46)   refresh_group_list();
47)   $('#add_group_modal').modal('hide');
48)   groups.save();
49)   view_group(groups[name]);
50) }
51) 
52) on_close_add_group_modal=function () {
Benjamin Renard Fix error on add_group_moda...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

54) }
55) 
56) /****************
57)  * Nav bars
58)  ****************/
59) on_group_choice_click=function(e) {
60)   view_group(groups[$(e.target).html()]);
Benjamin Renard Add function navbar_collaps...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

68) }
69) 
70) /****************
71)  * View group
72)  ****************/
73) view_group=function(group) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

76)   set_contributors(group);
77)   on_contributor_change();
78)   $('#view-group').css('display','block');
79) }
80) 
81) set_contributors=function(group) {
82)   $('#view-group #contributor option').remove();
83)   if(group.contributors.length==0) {
84)     $('#view-group #contributor').append('<option>Aucun participant</option>');
85)   }
86)   else {
87)     $(group.contributors).each(function(idx,c) {
88)       $('#view-group #contributor').append('<option value="'+c.name+'">'+c.name+'</option>');
89)     });
90)   }
91) }
92) 
93) on_contributor_change=function(e) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

95) }
96) 
97) show_contributions=function(group,contributor_name) {
98)   var tbody=$($('#view-group #contributions tbody')[0]);
99)   tbody.html('');
100)   total=$($('#view-group #total-value')[0]);
101)   contributions=group.contributionsByContributorName(contributor_name);
102)   if (contributions.length==0) {
103)     tbody.append('<tr><td colspan=3>Aucune contributions</td></tr>');
104)     total.html('0,00 €');
105)   }
106)   else {
107)     sum=0;
108)     for (idx in contributions) {
109)       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>';
110)       tbody.append('<tr><td>'+contributions[idx].getTitle()+'</td><td>'+contributions[idx].cost+' €</td>'+col_actions+'</tr>');
111)       sum+=contributions[idx].cost;
112)     }
113)     total.html(sum+' €');
114)   }
Benjamin Renard Clean code

Benjamin Renard authored 10 years ago

115)   
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

116)   $('.contribution_delete_btn').bind('click',on_contribution_delete_btn_click);
117)   $('.contribution_edit_btn').bind('click',on_contribution_edit_btn_click);
118) }
119) 
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

120) /******************************
121)  * Add/Edit/remove contributor
122)  ******************************/
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

123) on_click_add_contributor_btn=function() {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

124)   $('#add_contributor_modal #group_name')[0].value=$('#view-group #group_name')[0].value;
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

125)   $($('#add_contributor_modal h4')[0]).html('Ajouter un participant');
126)   $($('#add_contributor_modal #add_contributor_submit')[0]).html('Ajouter');
127)   $('#view-group #edit_id')[0].value='-1';
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

128)   $('#add_contributor_modal').modal('show');
129) }
130) 
131) on_show_add_contributor_modal=function(e) {
132)   $('#add_contributor_modal #add_contributor_name').focus();
133) }
134) 
135) on_valid_add_contributor_modal=function() {
136)   var group=groups[$('#add_contributor_modal #group_name')[0].value];
137)   var name=$('#add_contributor_name')[0].value;
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

139)   if (name=='') {
140)     alert('Vous devez saisir un nom !');
141)     return;
142)   }
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

143)   duplicate=group.contributorByName(name);
144)   if (duplicate!=undefined && duplicate.id!=edit_id) {
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

145)     alert('Un contributor porte déjà ce nom !');
146)     return;
147)   }
148)   var email=$('#add_contributor_email')[0].value;
149)   if (email=='') {
150)     alert('Vous devez saisir un email !');
151)     return;
152)   }
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

153)   duplicate=group.contributorByEmail(email)
154)   if (duplicate!=undefined && duplicate.id!=edit_id) {
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

155)     alert('Un contributor utilise déjà cet email !');
156)     return;
157)   }
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

158)   if(edit_id=='-1') {
159)     group.addContributor(new Contributor(name,email));
160)   }
161)   else {
162)     group.replaceContributor(edit_id,new Contributor(name,email));
163)   }
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

164)   set_contributors(group);
165)   $('#add_contributor_modal').modal('hide');
166)   $('#add_contributor_name')[0].value='';
167)   $('#add_contributor_email')[0].value='';
168)   groups.save();
169) }
170) 
171) on_close_add_contributor_modal=function () {
172)   $('#add_contributor_name')[0].value='';
173)   $('#add_contributor_email')[0].value='';
174) }
175) 
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

176) on_edit_contributor_btn_click=function(e) {
177)   var group=groups[$('#view-group #group_name')[0].value];
178)   $('#add_contributor_modal #group_name')[0].value=group.name;
179)   contributor_name=$('#view-group #contributor')[0].value;
180)   contributor=group.contributorByName(contributor_name);
181)   $('#view-group #edit_id')[0].value=contributor.id;
182)   $('#add_contributor_modal #add_contributor_name')[0].value=contributor.name;
183)   $('#add_contributor_modal #add_contributor_email')[0].value=contributor.email;
184)   $($('#add_contributor_modal h4')[0]).html('Editer un participant');
185)   $($('#add_contributor_modal #add_contributor_submit')[0]).html('Valider');
186)   $('#add_contributor_modal').modal('show');
187) }
188) 
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

189) on_click_del_contributor_btn=function() {
190)   contributor=$('#view-group #contributor')[0].value;
191)   question='Voulez-vous vraiment supprimer '+contributor+' ?';
192)   myconfirm(question,on_confirm_del_contributor,null,contributor);
193) }
194) 
195) on_confirm_del_contributor=function(contributor) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

197)   group.removeContributor(contributor);
198)   set_contributors(group);
199)   groups.save();
200) }
201) 
202) /********************************
203)  * Add/edit/delete contribution
204)  ********************************/
205) on_show_add_contribution_modal=function(e) {
206)   var cs=$($('#add_contribution_modal #add_contribution_contributor_name')[0]);
207)   cs.html('');
208)   $('#view-group #contributor option').each(function(idx,option) {
209)     cs.append($(option).clone());
210)   });
211)   cs[0].value = $('#view-group #contributor')[0].value;
212)   $('#add_contribution_modal #add_contribution_title').focus();
213) }
214) 
215) on_click_add_contribution_btn=function() {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

220)   $('#add_contribution_modal').modal('show');
221) }
222) 
223) on_valid_add_contribution_modal=function(e) {
224)   e.preventDefault();
225)   var group=groups[$('#add_contribution_modal #group_name')[0].value];
226)   var contributor_name=$('#add_contribution_contributor_name')[0].value;
227)   var contributor=group.contributorByName(contributor_name);
228)   if (contributor==undefined) {
229)     alert('Participant inconu !');
230)     return;
231)   }
232)   var title=$('#add_contribution_title')[0].value;
233)   if (title=='') {
234)     $('#add_contribution_title')[0].focus();
235)     alert('Vous devez saisir un titre !');
236)     return;
237)   }
238)   var cost=$('#add_contribution_cost')[0].value;
239)   if (cost=='') {
240)     $('#add_contribution_cost')[0].focus();
241)     alert('Vous devez saisir un coût !');
242)     return;
243)   }
Benjamin Renard Add support of dot and comm...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

245)     $('#add_contribution_cost')[0].focus();
246)     alert('Coût incorrect !');
247)     return;
248)   }
249)   cost=parseFloat(cost.replace(',','.'));
Benjamin Renard Clean code

Benjamin Renard authored 10 years ago

250)   
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

251)   var date=$('#add_contribution_date')[0].value;
252)   if (date!='') {
253)     if(!RegExp('^[0-3][0-9]\/[0-1][0-9]\/[0-2][0-9][0-9][0-9]$').test(date)) {
254)       $('#add_contribution_date')[0].focus();
255)       alert('Date incorrect !');
256)       return;
257)     }
258)     date=moment(date,'DD-MM-YYYY').toDate();
259)     if (jQuery.type(date)!='date') {
260)       alert('Date non-reconnu !');
261)       return;
262)     }
263)   }
264)   else {
265)     date=new Date();
266)   }
Benjamin Renard Clean code

Benjamin Renard authored 10 years ago

267)   
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

268)   if($('#add_contribution_modal #edit_id')[0].value=='-1') {
269)     group.addContribution(new Contribution(contributor,cost,title,date));
270)   }
271)   else {
272)     contribution_id=$('#add_contribution_modal #edit_id')[0].value;
273)     group.replaceContribution(contribution_id,new Contribution(contributor,cost,title,date));
274)   }
275)   show_contributions(group,contributor_name);
276)   $('#add_contribution_modal').modal('hide');
277)   $('#add_contribution_modal form')[0].reset();
278)   groups.save();
279) }
280) 
281) on_close_add_contribution_modal=function () {
282)   $('#add_contribution_modal form')[0].reset();
283) }
284) 
285) on_contribution_delete_btn_click=function(e) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

287)   contribution_id=$($(e.target).parents('div')[0]).data('id');
288)   contribution=group.contributions[contribution_id];
289)   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} );
290) }
291) 
292) on_confirm_contribution_delete=function(data) {
293)   delete data.group.contributions[data.contribution_id];
294)   groups.save();
295)   on_contributor_change();
296) }
297) 
298) on_contribution_edit_btn_click=function(e) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

299)   var group=groups[$('#view-group #group_name')[0].value];
300)   $('#add_contribution_modal #group_name')[0].value=$('#view-group #group_name')[0].value;
Benjamin Renard Customize add_contribution_...

Benjamin Renard authored 10 years ago

301)   $($('#add_contribution_modal h4')[0]).html('Editer une contribution');
302)   $($('#add_contribution_modal #add_contribution_submit')[0]).html('Valider');
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

303)   contribution_id=$($(e.target).parents('div')[0]).data('id');
304)   contribution=group.contributions[contribution_id];
305)   $('#add_contribution_modal #add_contribution_contributor_name')[0].value=contribution.contributor.name;
306)   $('#add_contribution_modal #add_contribution_title')[0].value=contribution.getTitle();
307)   $('#add_contribution_modal #add_contribution_cost')[0].value=contribution.cost;
308)   $('#add_contribution_modal #add_contribution_date')[0].value=moment(contribution.date).format('DD/MM/YYYY');
309)   $('#add_contribution_modal #edit_id')[0].value=contribution_id;
310)   $('#add_contribution_modal').modal('show');
311) }
312) 
313) 
314) 
315) /********************
316)  * Clear local data
317)  ********************/
318) clear_local_data=function() {
Benjamin Renard Add function navbar_collaps...

Benjamin Renard authored 10 years ago

319)   navbar_collapse_hide();
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

320)   myconfirm('Etes-vous sûre de vouloir supprimer les données locales ?',on_confirm_clear_local_data);
321) }
322) 
323) on_confirm_clear_local_data=function(data) {
324)   localStorage.clear();
325)   location.reload();
326) }
327) 
328) /*********************
329)  * View balance
330)  *********************/
331) 
332) on_display_balance_btn_click=function(e) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

334)   display_balance(group);
335) }
336) 
337) display_balance=function(group) {
338)   bal=group.balance();
339)   tbody=$($('#display_balance_modal tbody')[0]);
340)   tbody.html('');
341)   sum=0;
342)   for (c in bal) {
343)     tbody.append('<tr><td>'+c+'</td><td>'+bal[c]+' €</td></tr>');
344)     sum+=bal[c];
345)   }
346)   $('#display_balance_modal #total-value').html(sum+' €');
347)   $('#display_balance_modal').modal('show');
348) }
349) 
350) /*********************
351)  * Remove group
352)  *********************/
353) 
354) on_remove_group_btn_click=function(e) {
Benjamin Renard Replace usage of view-group...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

356)   myconfirm('Etes-vous sûre de vouloir supprimer le group '+group.name+' ?',on_confirm_remove_group,null,group);
357) }
358) 
359) on_confirm_remove_group=function(group) {
360)   if(groups.removeGroup(group.name)) {
361)     groups.save();
362)     location.reload();
363)   }
364)   else {
365)     alert('Erreur en supprimant le groupe '+group.name+' :(');
366)   }
367) }
368) 
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

369) /********************
370)  * Login
371)  ********************/
372) on_close_login_modal=function(e) {
373)   $('#login_modal form')[0].reset();
374) }
375) 
376) sync_server=false;
377) on_valid_login_modal=function(e) {
378)   email=$('#login_modal #login_email')[0].value;
379)   pass=$('#login_modal #login_pass')[0].value;
380)   server=$('#login_modal #login_server')[0].value;
381)   $('#login_modal').modal('hide');
382)   sync_server.login(server,email,pass,
383)     function(data) {
384)       localStorage.user=JSON.stringify({
385)         'name': data.name,
386)         'email': email,
387)         'password': pass,
388)         'server': server,
389)       });
390)       logged_menu();
391)     },
392)     function(data) {
393)       if (jQuery.type(data) != 'object' && data.loginerror) {
394)         alert(data.loginerror);
395)       }
396)       else {
397)         console.log(data);
398)         alert('Erreur durant la connexion au serveur');
399)       }
400)     }
401)   );
402) }
403) 
404) 
405) 
406) /********************
407)  * Sync
408)  ********************/
409) on_click_sync_btn=function(e) {
Benjamin Renard Manage user global variable

Benjamin Renard authored 10 years ago

410)   if (user) {
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

411)     sync_server.sync(user.server, user.email, user.password, groups.export(),
412)       function(data) {
413)         console.log(data);
414)         if (data.groups) {
415)           groups.import(data.groups);
416)           groups.save();
417)           refresh_group_list();
418)           alert('Groupes synchronisés');
419)         }
420)         else {
421)           console.log(data);
422)           alert('Erreur durant la synchronisation :(');
423)         }
424)       },
425)       function(data) {
426)         console.log(data);
427)         alert('Impossible de contacter le serveur :(');
428)       }
429)     );
430)   }
431)   else {
432)     alert("Vous devez vous connecter pour commencer");
433)     $('#login_modal').modal('show');
434)   }
435) }
436) 
437) /*
438)  * User menu
439)  */
440) user=false;
441) logged_menu=function() {
442)   user=JSON.parse(localStorage.user);
443)   $('#user-name').html(user.name);
444)   $('#user-menu li').remove();
445)   menu=$('#user-menu');
446)   menu.html("<li><a id='myaccount_btn'>Mon compte</a></li>"+
447)   "<li><a id='sync_btn'>Synchroniser</a></li>" +
448)   "<li class='divider'></li>" +
449)   "<li><a id='logoff_btn'>Déconnexion</a></li>");
450)   $('#myaccount_btn').bind('click',on_click_myaccount_btn);
451)   $('#sync_btn').bind('click',on_click_sync_btn);
452)   $('#logoff_btn').bind('click',on_click_logoff_btn);
453) }
454) 
455) logged_out_menu=function() {
Benjamin Renard Manage user global variable

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

457)   $('#user-name').html('Connexion');
458)   $('#user-menu li').remove();
459)   menu=$('#user-menu');
460)   menu.html("<li><a id='login_btn'>Connexion</a></li>");
461)   $('#login_btn').bind('click',on_click_login_btn);
462) }
463) 
464) on_click_myaccount_btn=function() {
465)   $('#myaccount_modal #myaccount_email').html(user.email);
466)   $('#myaccount_modal #myaccount_name')[0].value=user.name;
467)   $('#myaccount_modal').modal('show');
468) }
469) 
470) on_click_login_btn=function() {
471)   $('#login_modal').modal('show');
472) }
473) 
474) on_click_logoff_btn=function() {
475)   delete localStorage.user;
476)   logged_out_menu();
477) }
478) 
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

479) 
480) /*********************
481)  * Activate
482)  *********************/
483) $( document ).ready( function() {
484)   if(typeof(Storage)!=="undefined"){
485)     groups=new GroupList();
486)     groups.loadFromLocalStorage();
487)     refresh_group_list();
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

488)     if (jQuery.type(localStorage.user)!='undefined') {
489)       logged_menu();
490)     }
491)     else {
492)       logged_out_menu();
493)     }
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

494)   }
495)   else {
496)     alert('Local storage not supported !');
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

497)     return;
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

498)   }
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

500) 
Benjamin Renard Hide navbar-groupe-collapse...

Benjamin Renard authored 10 years ago

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

Benjamin Renard authored 10 years ago

502)   $('#add_group_submit').bind('click',on_valid_add_group_modal);
503)   $("#add_group_modal").on('shown.bs.modal',on_show_add_group_modal);
504)   $("#add_group_modal").on('hidden.bs.modal',on_close_add_group_modal);
505)   $("#add_group_modal form").on('submit',on_valid_add_group_modal);
506) 
507)   $('#clear_local_data').bind('click',clear_local_data);
508) 
Benjamin Renard Add login and sync support

Benjamin Renard authored 10 years ago

509)   $('#login_modal').on('hidden.bs.modal',on_close_login_modal);
510)   $('#login_modal #login_submit').bind('click',on_valid_login_modal);
511)   $('#login_modal form').bind('submit',on_valid_login_modal);
512) 
Benjamin Renard Initial commit

Benjamin Renard authored 10 years ago

513)   $('#view-group #contributor').bind('change',on_contributor_change);
514) 
515)   $('#add_contributor_btn').bind('click',on_click_add_contributor_btn);
516)   $('#add_contributor_submit').bind('click',on_valid_add_contributor_modal);
517)   $("#add_contributor_modal").on('shown.bs.modal',on_show_add_contributor_modal);
518)   $("#add_contributor_modal").on('hidden.bs.modal',on_close_add_contributor_modal);
519)   $("#add_contributor_modal form").on('submit',on_valid_add_contributor_modal);
520) 
Benjamin Renard Add edit contributor feature

Benjamin Renard authored 10 years ago

521)   $('#edit_contributor_btn').bind('click',on_edit_contributor_btn_click);