2f247b0d562c08204c6c6474c089b734247b880a
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

1) $('#cats').collapse({
2)   toggle: false
3) });
4) 
5) on_title_click=function(event) {
6)   if (event.target.tagName=='BUTTON') {
7)     return;
8)   }
9)   var title=$(this);
10)   var panel=title.parent().parent();
11)   var panel_collapse=panel.find('.panel-collapse');
12)   var show=!panel_collapse.hasClass('in');
13)   $('.panel-collapse').each(function(idx,div) {
14)     $(div).collapse('hide');
15)   });
16)   if (show) {
17)     panel_collapse.collapse('show');
18)   }
19) }
20) 
21) /***********************
22)  * Add scase
23)  **********************/
24) on_add_scase_btn_click=function(event) {
25)   navbar_collapse_hide();
26)   $('#add_scase_modal').modal('show');
27) }
28) 
29) on_valid_add_scase_modal=function (e) {
30)   e.preventDefault();
31)   var name=$('#add_scase_name')[0].value;
32)   if (name=='') {
33)     alert("Vous devez saisir le nom de la valise !");
34)     return;
35)   }
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

36)   var nameshake=scases.byName(name);
37)   if (nameshake) {
38)     if (nameshake.removed) {
39)       alert("Une valise de ce nom existe dans la corbeille !");
40)     }
41)     else {
42)       alert("Cette valise existe déjà !");
43)     }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

44)     return;
45)   }
46)   var scase=scases.newSCase(name);
47)   if (scase) {
48)     scases.save();
49)     show_scase(scase);
50)   }
51)   $('#add_scase_modal').modal('hide');
52) }
53) 
54) on_show_add_scase_modal=function () {
55)   $('#add_scase_name').focus();
56) }
57) 
58) on_close_add_scase_modal=function () {
59)   $('#add_scase_modal form')[0].reset();
60) }
61) 
62) /***********************
63)  * Rename scase
64)  **********************/
65) on_rename_scase_btn_click=function(event) {
66)   navbar_collapse_hide();
67)   $('#rename_scase_name')[0].value=$('#cats').data('scase');
68)   $('#rename_scase_modal').modal('show');
69) }
70) 
71) on_valid_rename_scase_modal=function (e) {
72)   e.preventDefault();
73)   var name=$('#rename_scase_name')[0].value;
74)   if (name=='') {
75)     alert("Vous devez saisir le nouveau nom de la valise !");
76)     return;
77)   }
78)   if ($('#cats').data('scase')!=name) {
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

79)     var nameshake=scases.byName(name);
80)     if (nameshake) {
81)       if (nameshake.removed) {
82)         alert("Une valise portant ce nom existe dans la corbeille !");
83)       }
84)       else {
85)         alert("Une valise portant ce nom existe déjà !");
86)       }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

87)       return;
88)     }
89) 
90)     var scase=scases.renameSCase($('#cats').data('scase'),name);
91)     if (scase) {
92)       scases.save();
93)       show_scase(scase);
94)     }
95)     else {
96)       alert('Une erreur est survenue en renomant la valise...');
97)     }
98)   }
99)   $('#rename_scase_modal').modal('hide');
100) }
101) 
102) on_show_rename_scase_modal=function () {
103)   $('#rename_scase_name').focus();
104) }
105) 
106) on_close_rename_scase_modal=function () {
107)   $('#rename_scase_modal form')[0].reset();
108) }
109) 
110) /***********************
111)  * Copy scase
112)  **********************/
113) on_copy_scase_btn_click=function(event) {
114)   navbar_collapse_hide();
115)   $('#copy_scase_modal').modal('show');
116) }
117) 
118) on_valid_copy_scase_modal=function (e) {
119)   e.preventDefault();
120)   var name=$('#copy_scase_name')[0].value;
121)   if (name=='') {
122)     alert("Vous devez saisir le nom de la nouvelle valise !");
123)     return;
124)   }
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

125)   var nameshake=scases.byName(name);
126)   if (nameshake) {
127)     if (nameshake.removed) {
128)       alert("Une valise portant ce nom existe dans la corbeille !");
129)     }
130)     else {
131)       alert("Une valise portant ce nom existe déjà !");
132)     }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

133)     return;
134)   }
135)   var scase=scases.copySCase($('#cats').data('scase'),name);
136)   if (scase) {
137)     scases.save();
138)     show_scase(scase);
139)   }
140)   else {
141)     alert('Une erreur est survenue en copiant la valise...');
142)   }
143)   $('#copy_scase_modal').modal('hide');
144) }
145) 
146) on_show_copy_scase_modal=function () {
147)   $('#copy_scase_name').focus();
148) }
149) 
150) on_close_copy_scase_modal=function () {
151)   $('#copy_scase_modal form')[0].reset();
152) }
153) 
Benjamin Renard Add reset scase feature

Benjamin Renard authored 8 years ago

154) /***********************
155)  * Reset scase
156)  **********************/
157) on_reset_scase_btn_click=function(event) {
158)   navbar_collapse_hide();
159)   var scase=scases.byName($('#cats').data('scase'));
160)   if (scase) {
161)     myconfirm('Voulez-vous vraiment réinitialiser la valise '+$('#cats').data('scase')+' ?',
162)     function(data) {
163)       scases.resetSCase(scase.name);
164)       scases.save();
165)       show_scase(scase);
166)     });
167)   }
168) }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

169) /***********************
170)  * Delete scase
171)  **********************/
172) on_delete_scase_btn_click=function(event) {
173)   navbar_collapse_hide();
174)   var scase=scases.byName($('#cats').data('scase'));
175)   if (scase) {
176)     myconfirm('Voulez-vous vraiment supprimer la valise '+$('#cats').data('scase')+' ?',
177)     function(data) {
178)       scases.removeSCase(scase.name);
179)       scases.save();
180)       show_scases();
181)     });
182)   }
183) }
184) 
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

185) on_restore_scase_btn_click=function(event) {
186)   navbar_collapse_hide();
187)   var scase=event.data.scase;
188)   if (scase) {
189)     myconfirm('Voulez-vous vraiment restaurer la valise '+scase.name+' ?',
190)     function(data) {
191)       scase.restore();
192)       scases.save();
193)       show_scases();
194)     });
195)   }
196) }
197) 
198) on_scase_trash_btn_click=function(event) {
199)   event.preventDefault();
200)   navbar_collapse_hide();
201)   var scase=scases.byName($('#cats').data('scase'));
202)   if (scase) {
203)     show_scase_trash(scase);
204)   }
205) }
206) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

207) /***********************
208)  * Add cat
209)  **********************/
210) on_add_cat_btn_click=function(event) {
211)   navbar_collapse_hide();
212)   $('#add_cat_modal').modal('show');
213) }
214) 
215) on_valid_add_cat_modal=function (e) {
216)   e.preventDefault();
217)   var name=$('#add_cat_name')[0].value;
218)   if (name=='') {
219)     alert("Vous devez saisir le nom de la catégorie !");
220)     return;
221)   }
222)   var scase=scases.byName($('#cats').data('scase'));
223)   if (scase) {
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

224)     var nameshake=scase.cats.byName(name);
225)     if (nameshake) {
226)       if (nameshake.removed) {
227)         alert("Une catégorie portant ce nom existe dans la corbeille !");
228)       }
229)       else {
230)         alert("Une catégorie portant ce nom existe déjà !");
231)       }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

232)       return;
233)     }
234)     var cat=scase.cats.newCat(name);
235)     if (cat) {
236)       scases.save();
237)       show_scase(scase,cat.name);
238)     }
239)   }
240)   $('#add_cat_modal').modal('hide');
241) }
242) 
243) on_show_add_cat_modal=function () {
244)   $('#add_cat_name').focus();
245) }
246) 
247) on_close_add_cat_modal=function () {
248)   $('#add_cat_modal form')[0].reset();
249) }
250) 
251) /***********************
252)  * Rename cat
253)  **********************/
254) on_rename_cat_btn_click=function(event) {
255)   navbar_collapse_hide();
256)   $('#rename_cat_modal').data('cat',event.data.cat.name);
257)   $('#rename_cat_name')[0].value=event.data.cat.name;
258)   $('#rename_cat_modal').modal('show');
259) }
260) 
261) on_valid_rename_cat_modal=function (e) {
262)   e.preventDefault();
263)   var name=$('#rename_cat_name')[0].value;
264)   if (name=='') {
265)     alert("Vous devez saisir le nouveau nom de la catégorie !");
266)     return;
267)   }
268)   var scase=scases.byName($('#cats').data('scase'));
269)   if (scase) {
270)     if (scase.cats.byName(name)) {
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

271)       var namesake=scase.cats.byName(name);
272)       if (namesake.removed) {
273)         alert("Une catégorie de se nom existe dans la corbeille !");
274)       }
275)       else {
276)         alert("Cette catégorie existe déjà !");
277)       }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

278)       return;
279)     }
280)     var cat=scase.cats.renameCat($('#rename_cat_modal').data('cat'),name);
281)     if (cat) {
282)       scases.save();
283)       show_scase(scase,cat.name);
284)     }
285)   }
286)   $('#rename_cat_modal').modal('hide');
287) }
288) 
289) on_show_rename_cat_modal=function () {
290)   $('#rename_cat_name').focus();
291) }
292) 
293) on_close_rename_cat_modal=function () {
294)   $('#rename_cat_modal form')[0].reset();
295) }
296) 
297) /***********************
298)  * Delete cat
299)  **********************/
300) on_delete_cat_btn_click=function(event) {
301)   navbar_collapse_hide();
302)   var scase=scases.byName($('#cats').data('scase'));
303)   if (scase) {
304)     var cat=event.data.cat.name;
305)     myconfirm('Voulez-vous vraiment supprimer la catégorie '+cat+' ?',
306)     function(data) {
307)       scase.cats.removeCat(cat);
308)       scases.save();
309)       show_scase(scase);
310)     });
311)   }
312) }
313) 
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

314) on_restore_cat_btn_click=function(event) {
315)   navbar_collapse_hide();
316)   var scase=scases.byName($('#cats').data('scase'));
317)   if (scase) {
318)     var cat=event.data.cat.name;
319)     myconfirm('Voulez-vous vraiment restaure la catégorie '+cat+' ?',
320)     function(data) {
321)       scase.cats.restoreCat(cat);
322)       scases.save();
323)       show_scase(scase);
324)     });
325)   }
326) }
327) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

328) /************************
329)  * Check/Uncheck thing
330)  ***********************/
331) on_li_click=function(event) {
332)   if (event.target.tagName!='LI') {
333)     return;
334)   }
335)   var li=$(this);
Benjamin Renard Improve checked mark

Benjamin Renard authored 7 years ago

336)   if (li.hasClass('checked')) {
337)     li.removeClass('checked');
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

338)   }
339)   else {
Benjamin Renard Improve checked mark

Benjamin Renard authored 7 years ago

340)     li.addClass('checked');
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

341)   }
342)   var ul=li.parent();
343)   var scase=scases.byName($('#cats').data('scase'));
344)   if (scase) {
345)     var cat=scase.cats.byName(ul.data('cat'));
346)     if (cat) {
347)       var thing=cat.byLabel(li.data('label'));
348)       if (thing) {
Benjamin Renard Improve checked mark

Benjamin Renard authored 7 years ago

349)         thing.setChecked(li.hasClass('checked'));
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

350)         scases.save();
351)       }
352)       show_scase(scase,cat.name);
353)     }
354)   }
355) }
356) 
357) /***********************
358)  * Add thing
359)  **********************/
360) on_li_add_click=function(event) {
361)   var li=$(this);
362)   var cat=li.parent().data('cat');
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

363)   var modal=$('#add_thing_modal');
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

364)   modal.data('cat',cat);
365)   modal.modal('show');
366) }
367) 
368) on_valid_add_thing_modal=function (e) {
369)   e.preventDefault();
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

370) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

371)   var modal=$('#add_thing_modal');
372)   var scase=scases.byName($('#cats').data('scase'));
373)   if (scase) {
374)     var cat=scase.cats.byName(modal.data('cat'));
375)     if (cat) {
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

376)       var things=[];
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

377)       var labels=[];
378)       var error=false;
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

379)       var add_thing_nbs=$('input.add_thing_nb');
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

380)       $('input.add_thing_label').each(function(idx,input) {
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

381)         var label=$(input).val();
382)         if (label && label!='') {
383)           if (labels.indexOf(label)>-1) {
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

384)             alert("Deux élements ne peuvent porter le même nom !");
385)             error=true;
386)             return;
387)           }
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

388)           if (cat.byLabel(label)) {
389)             alert("L'élément '"+label+"' existe déjà !");
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

390)             error=true;
391)             return;
392)           }
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

393)           var nb=1;
394)           if (add_thing_nbs[idx]) {
395)             nb=parseInt($(add_thing_nbs[idx]).val());
396)             if (!nb || nb==0) {
397)               nb=1;
398)             }
399)           }
400)           things.push({
401)             'label': label,
402)             'nb': nb
403)           });
404)           labels.push(label);
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

405)         }
406)       });
407)       if (error) {
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

408)         return;
409)       }
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

410)       if (things.length==0) {
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

411)         alert("Vous devez saisir au moins un nom d'élément !");
412)         return;
413)       }
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

414)       for (idx in things) {
415)         cat.newThing(things[idx]['label'], things[idx]['nb']);
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

416)       }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

417)       scases.save();
418)       show_scase(scase,cat.name);
419)     }
420)   }
421)   modal.modal('hide');
422) }
423) 
424) on_show_add_thing_modal=function () {
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

425)   $('.add_thing_other').remove();
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

426)   $('input.add_thing_label').val('');
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

427)   $('input.add_thing_nb').val('');
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

428)   $('input.add_thing_label').first().focus();
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

429) }
430) 
431) on_close_add_thing_modal=function () {
432)   $('#add_thing_modal form')[0].reset();
433) }
434) 
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

435) on_add_thing_label_focus=function(event) {
436)   if ($('input.add_thing_label').last()[0] == event.target) {
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

437)     var new_input_group=$('<div class="form-group add_thing_other"></div>');
438)     var new_input_label=$('<input type="text" class="form-control add_thing_label" placeholder="Encore un ?"/>');
439)     var new_input_nb=$('<input type="number" class="form-control add_thing_nb" placeholder="Nb"/>');
440)     new_input_group.append(new_input_label);
441)     new_input_group.append(' ');
442)     new_input_group.append(new_input_nb);
443)     new_input_label.bind('focus', on_add_thing_label_focus);
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

444)     $(event.target).parent().after(new_input_group);
445)   }
446) }
447) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

448) 
449) /***********************
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

450)  * Edit thing
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

451)  **********************/
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

452) on_edit_thing_btn_click=function(event) {
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

453)   navbar_collapse_hide();
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

454)   $('#edit_thing_modal').data('cat',event.data.cat.name);
455)   $('#edit_thing_modal').data('thing',event.data.thing.label);
456)   $('#edit_thing_label').val(event.data.thing.label);
457)   $('#edit_thing_nb').val(event.data.thing.nb);
458)   $('#edit_thing_modal').modal('show');
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

459) }
460) 
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

461) on_valid_edit_thing_modal=function (e) {
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

462)   e.preventDefault();
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

463)   var label=$('#edit_thing_label').val();
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

464)   if (label=='') {
465)     alert("Vous devez saisir le nouveau nom de l'élément !");
466)     return;
467)   }
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

468)   var nb=parseInt($('#edit_thing_nb').val());
469)   if (!nb || nb==0) {
470)     nb=1;
471)   }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

472)   var scase=scases.byName($('#cats').data('scase'));
473)   if (scase) {
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

474)     var cat=scase.cats.byName($('#edit_thing_modal').data('cat'));
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

475)     if (cat) {
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

476)       if (label!=$('#edit_thing_modal').data('thing')) {
477)         var namesake=cat.byLabel(label);
478)         if (namesake) {
479)           if (namesake.removed) {
480)             alert("Un élément de ce nom existe dans la corbeille !");
481)           }
482)           else {
483)             alert("Un élément de ce nom existe déjà !");
484)           }
485)           return;
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

486)         }
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

487)         var thing=cat.renameThing($('#edit_thing_modal').data('thing'),label);
488)       }
489)       else {
490)         var thing=cat.byLabel(label);
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

491)       }
492)       if (thing) {
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

493)         thing.setNb(nb);
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

494)         scases.save();
495)         show_scase(scase,cat.name);
496)       }
497)     }
498)   }
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

499)   $('#edit_thing_modal').modal('hide');
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

500) }
501) 
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

502) on_show_edit_thing_modal=function () {
503)   $('#edit_thing_label').focus();
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

504) }
505) 
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

506) on_close_edit_thing_modal=function () {
507)   $('#edit_thing_modal form')[0].reset();
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

508) }
509) 
510) /***********************
511)  * Delete thing
512)  **********************/
513) on_delete_thing_btn_click=function(event) {
514)   navbar_collapse_hide();
515)   var scase=scases.byName($('#cats').data('scase'));
516)   if (scase) {
517)     var cat=scase.cats.byName(event.data.cat.name);
518)     if (cat) {
519)       var thing=event.data.thing.label;
520)       myconfirm("Voulez-vous vraiment supprimer l'élément "+thing+" ?",
521)       function(data) {
522)         cat.removeThing(thing);
523)         scases.save();
524)         show_scase(scase,cat.name);
525)       });
526)     }
527)   }
528) }
529) 
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

530) on_restore_thing_btn_click=function(event) {
531)   navbar_collapse_hide();
532)   var scase=scases.byName($('#cats').data('scase'));
533)   if (scase) {
534)     var cat=scase.cats.byName(event.data.cat.name);
535)     if (cat) {
536)       var thing=event.data.thing.label;
537)       myconfirm("Voulez-vous vraiment restaurer l'élément "+thing+" ?",
538)       function(data) {
539)         cat.restoreThing(thing);
540)         scases.save();
541)         show_scase(scase,cat.name);
542)       });
543)     }
544)   }
545) }
546) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

547) /********************
548)  * Show one scase
549)  *******************/
550) show_cat=function(cat,displayed) {
551)   var panel=$('<div class="panel panel-default"></div>');
552)   var panel_heading=$('<div class="panel-heading" role="tab"></div>');
553)   var panel_title=$('<h4 class="panel-title">'+cat.name+' </h4>');
554)   panel_title.bind('click',on_title_click);
555) 
Benjamin Renard Rework on data structure to...

Benjamin Renard authored 8 years ago

556)   var stats=cat.stats();
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

557)   var tag=$('<span class="count-tag pull-right"></span>');
Benjamin Renard Rework on data structure to...

Benjamin Renard authored 8 years ago

558)   if (stats.things==stats.done) {
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

559)     tag.append($('<span class="label label-success"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span></span>'));
560)   }
561)   else {
Benjamin Renard Rework on data structure to...

Benjamin Renard authored 8 years ago

562)     tag.append($('<span class="badge">'+stats.done+' / '+stats.things+'</span>'));
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

563)   }
564) 
565)   var delete_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-trash"></button>');
566)   delete_btn.bind('click',{'cat': cat},on_delete_cat_btn_click);
567)   tag.append(delete_btn);
568) 
569)   var rename_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-edit"></button>');
570)   rename_btn.bind('click',{'cat': cat},on_rename_cat_btn_click);
571)   tag.append(rename_btn);
572) 
573)   panel_title.append(tag);
574) 
575)   
576)   panel_heading.append(panel_title);
577)   panel.append(panel_heading);
578)   var panel_collapse=$('<div class="panel-collapse collapse" role="tabpanel"></div>');
579)   if (displayed) {
580)     panel_collapse.addClass('in');
581)   }
582)   var ul=$('<ul class="list-group" data-cat="'+cat.name+'"></ul>');
583)   for (idx in cat.things) {
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

584)     if (cat.things[idx].removed) {
585)       continue;
586)     }
Benjamin Renard Improve checked mark

Benjamin Renard authored 7 years ago

587)     var li=$('<li class="list-group-item checkable" data-label="'+cat.things[idx].label+'">'+cat.things[idx].label+'</li>');
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

588)     if (cat.things[idx].nb>1) {
589)       li.append(' <em>('+cat.things[idx].nb+')</em>');
590)     }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

591)     if (cat.things[idx].checked) {
Benjamin Renard Improve checked mark

Benjamin Renard authored 7 years ago

592)       li.addClass('checked');
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

593)     }
594)     li.bind('click',on_li_click);
595) 
596)     var li_actions=$('<span class="actions pull-right"></span>');
597) 
598)     var delete_el_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-trash"></button>');
599)     delete_el_btn.bind('click',{'cat': cat,'thing': cat.things[idx]},on_delete_thing_btn_click);
600)     li_actions.append(delete_el_btn);
601) 
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

602)     var edit_el_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-edit"></button>');
603)     edit_el_btn.bind('click',{'cat': cat,'thing': cat.things[idx]},on_edit_thing_btn_click);
604)     li_actions.append(edit_el_btn);
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

605) 
606)     li.append(li_actions);
607) 
608)     ul.append(li);
609)   }
610)   var li=$('<li class="list-group-item"><span class="glyphicon glyphicon-plus-sign"></span> Ajouter un élément</li>');
611)   li.bind('click',on_li_add_click);
612)   ul.append(li);
613)   panel_collapse.append(ul);
614)   panel.append(panel_collapse);
615)   $('#cats').append(panel);
616) }
617) 
618) show_scase=function(scase,display_cat) {
Benjamin Renard Rework on scase page title

Benjamin Renard authored 8 years ago

619)   clear_page('<h3><span class="glyphicon glyphicon-briefcase" aria-hidden="true"></span> '+scase.name+'</h3><div class="panel-group" id="cats" role="tablist" aria-multiselectable="true" data-scase="'+scase.name+'"></div>');
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

620)   scase.cats.each(function(idx,cat) {
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

621)     if (cat.removed) {
622)       return;
623)     }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

624)     show_cat(cat,(cat.name==display_cat));
625)   });
626)   show_menu('scase');
627) }
628) 
629) on_back_to_scases_btn_click=function(e) {
630)   e.preventDefault();
631)   navbar_collapse_hide();
632)   show_scases();
633) }
634) 
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

635) /********************
636)  * Show scase trash
637)  *******************/
638) show_scase_trash=function(scase,display_cat) {
639)   clear_page('<h3><span class="glyphicon glyphicon-trash" aria-hidden="true"></span>'+scase.name+' : Corbeille <button class="btn btn-default btn-xs" id="back_btn"><span class="glyphicon glyphicon-arrow-left"></button></h3><div class="panel-group" id="cats" role="tablist" aria-multiselectable="true" data-scase="'+scase.name+'"></div>');
640) 
641)   $('#content h3 #back_btn').bind('click', {'scase': scase}, function(event) {
642)     show_scase(event.data.scase);
643)   });
644) 
645)   scase.cats.each(function(idx,cat) {
646)     show_cat_trash(cat,(cat.name==display_cat));
647)   });
648)   if ($('#cats .panel').length==0) {
649)     $('#content').append('<p class="center">La corbeille est vide.</p>');
650)   }
651)   show_menu('scase');
652) }
653) 
654) show_cat_trash=function(cat,displayed) {
655)   var panel=$('<div class="panel panel-default"></div>');
656)   var panel_heading=$('<div class="panel-heading" role="tab"></div>');
657)   var panel_title=$('<h4 class="panel-title">'+cat.name+' </h4>');
658) 
659)   var tag=$('<span class="count-tag pull-right"></span>');
660) 
661)   panel_title.append(tag);
662) 
663) 
664)   panel_heading.append(panel_title);
665)   panel.append(panel_heading);
666) 
667) 
668)   if (cat.removed) {
669)     var stats=cat.stats();
670)     tag.append($('<span class="badge">'+stats.things+'</span>'));
671) 
672)     var restore_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-ok"></button>');
673)     restore_btn.bind('click',{'cat': cat},on_restore_cat_btn_click);
674)     tag.append(restore_btn);
675)   }
676)   else {
677)     var deleted_things=[];
678)     for (idx in cat.things) {
679)       if (cat.things[idx].removed) {
680)         deleted_things.push(cat.things[idx]);
681)       }
682)     }
683)     if (deleted_things.length==0) {
684)       return true;
685)     }
686)     panel_title.bind('click',on_title_click);
687)     tag.append($('<span class="badge">'+deleted_things.length+'</span>'));
688) 
689)     var panel_collapse=$('<div class="panel-collapse collapse" role="tabpanel"></div>');
690)     if (displayed) {
691)       panel_collapse.addClass('in');
692)     }
693)     var ul=$('<ul class="list-group" data-cat="'+cat.name+'"></ul>');
694)     for (idx in deleted_things) {
695)       var li=$('<li class="list-group-item" data-label="'+deleted_things[idx].label+'">'+deleted_things[idx].label+'</li>');
696)       var li_actions=$('<span class="actions pull-right"></span>');
697) 
698)       var restore_el_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-ok"></button>');
699)       restore_el_btn.bind('click',{'cat': cat,'thing': deleted_things[idx]},on_restore_thing_btn_click);
700)       li_actions.append(restore_el_btn);
701) 
702)       li.append(li_actions);
703) 
704)       ul.append(li);
705)     }
706)     panel_collapse.append(ul);
707)     panel.append(panel_collapse);
708)   }
709) 
710)   $('#cats').append(panel);
711) }
712) 
713) on_back_to_scase_btn_click=function(e) {
714)   e.preventDefault();
715)   navbar_collapse_hide();
716)   show_scase(e.data.scase);
717) }
718) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

719) /********************
720)  * Show scases
721)  *******************/
722) show_scases=function() {
Benjamin Renard Rework on home page

Benjamin Renard authored 8 years ago

723)   clear_page('<h3>Vos valises</h3><ul class="list-group" id="scases"></ul>');
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

724)   scases.each(function(idx,scase) {
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

725)     if (scase.removed) {
726)       return;
727)     }
Benjamin Renard Rework on home page

Benjamin Renard authored 8 years ago

728)     var stats=scase.stats();
729)     var tag='<span class="count-tag pull-right">';
730)     if (stats.things==stats.done) {
731)       tag+='<span class="label label-success"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span></span>';
732)     }
733)     else {
734)       tag+='<span class="badge">'+stats.done+' / '+stats.things+'</span>';
735)     }
736)     tag+='</span>';
737) 
738)     var li=$('<li class="list-group-item" data-name="'+scase.name+'"><span class="scase-name"><span class="glyphicon glyphicon-briefcase" aria-hidden="true"></span> '+scase.name+'</span>'+tag+'</li>');
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

739)     li.bind('click',on_scase_click);
740)     $('#scases').append(li);
741)   });
742)   show_menu('scases');
743) }
744) 
745) on_scase_click=function(event) {
746)   var li=$(this);
747)   var scase=scases.byName(li.data('name'));
748)   show_scase(scase);
749) }
750) 
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

751) /********************
752)  * Show scases trash
753)  *******************/
754) show_scases_trash=function() {
755)   clear_page('<h3>Corbeille <button class="btn btn-default btn-xs" id="back_btn"><span class="glyphicon glyphicon-arrow-left"></button></h3><ul class="list-group" id="scases"></ul>');
756)   $('#content h3 #back_btn').bind('click', function(event) {
757)     show_scases();
758)   });
759) 
760)   scases.each(function(idx,scase) {
761)     if (!scase.removed) {
762)       return;
763)     }
764)     var stats=scase.stats();
765)     var tags=$('<span class="count-tag pull-right"></span>');
766)     tags.append('<span class="badge">'+stats.things+'</span>');
767) 
768)     var restore_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-ok"></button>');
769)     restore_btn.bind('click',{'scase': scase},on_restore_scase_btn_click);
770)     tags.append(restore_btn);
771) 
772)     var li=$('<li class="list-group-item" data-name="'+scase.name+'"><span class="scase-name"><span class="glyphicon glyphicon-briefcase" aria-hidden="true"></span> '+scase.name+'</span></li>');
773)     li.append(tags);
774)     $('#scases').append(li);
775)   });
776)   if ($('#scases li').length==0) {
777)     $('#content').append('<p class="center">Aucune valise dans la corbeille.</p>');
778)   }
779)   show_menu('scases');
780) }
781) 
Benjamin Renard Hide navbar before to show...

Benjamin Renard authored 7 years ago

782) on_scases_trash_btn=function(e) {
783)   e.preventDefault();
784)   navbar_collapse_hide();
785)   show_scases_trash();
786) }
787) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

788) clear_page=function(new_content) {
789)   if (new_content) {
790)     $('#content').html(new_content);
791)   }
792)   else {
793)     $('#content').html('');
794)   }
795) }
796) 
797) /************************
798)  * Show menu
799)  ***********************/
800) show_menu=function(menu) {
801)   $('.menu').css('display','none');
802)   $('.menu-'+menu).css('display','block');
803) }
804) 
805) /*******************
806)  * pleaseWaitDialog
807)  *******************/
808) 
809) pleaseWaitShow=function() {
810)   $('#please_wait_modal').modal('show');
811) }
812) 
813) pleaseWaitHide=function() {
814)   $('#please_wait_modal').modal('hide');
815) }
816) 
817) /****************
818)  * Nav bars
819)  ****************/
820) navbar_collapse_hide=function() {
821)   if ($('#navbar-top-collapse').hasClass('in')) {
822)     $('#navbar-top-collapse').collapse('hide');
823)   }
824) }
825) 
826) /**************************
827)  * Cache / Update
828)  *************************/
829) 
830) _checkForUpgrade=false;
831) onUpdateReady=function() {
832)   if (_checkForUpgrade) {
833)     pleaseWaitHide();
834)   }
835)   myconfirm(
836)     "Une nouvelle version de l'application est disponible. Voulez-vous lancer la mise à jour ?",
837)     onConfirmUpdate,null,{}
838)   );
839) }
840) 
841) onConfirmUpdate=function() {
842)   window.applicationCache.swapCache();
843)   location.reload();
844) }
845) 
846) updateApp = function() {
847)   navbar_collapse_hide();
848)   pleaseWaitShow();
849)   _checkForUpgrade=true;
850)   window.applicationCache.update();
851) }
852) 
853) onNoUpdate = function() {
854)   if (_checkForUpgrade) {
855)     pleaseWaitHide();
856)     _checkForUpgrade=false;
857)     alert('Aucune mise à jour disponible');
858)   }
859) }
860) 
861) /********************
862)  * Clear local data
863)  ********************/
864) clear_local_data=function() {
865)   navbar_collapse_hide();
866)   myconfirm('Etes-vous sûre de vouloir supprimer les données locales ?',on_confirm_clear_local_data);
867) }
868) 
869) on_confirm_clear_local_data=function(data) {
870)   delete localStorage.scases;
871)   location.reload();
872) }
873) 
Benjamin Renard Add backup/restore data fea...

Benjamin Renard authored 7 years ago

874) /*******************************
875)  * Import/Export local data
876)  *******************************/
877) export_local_data=function() {
878)   navbar_collapse_hide();
879)   $('#export_local_data').attr('href','data:application/json;base64,' + btoa(JSON.stringify(scases.export())));
880) }
881) 
882) import_local_data=function() {
883)   navbar_collapse_hide();
884)   var input=$('<input type="file" accept="application/json">');
885)   input.css('display', 'none');
886)   input.bind('change',{'input': input},function(e) {
887)     pleaseWaitShow();
888)     var input=e.data.input;
889)     var file=input.prop('files')[0];
890)     if (file) {
891)       var reader = new FileReader();
892)       $(reader).bind('load',function(e) {
893)         if ($.type(e.target.result)=='string') {
894)           if (e.target.result.startsWith('data:application/json;base64,')) {
895)             try {
896)               json_data=atob(e.target.result.replace('data:application/json;base64,',''));
897)               data=JSON.parse(json_data);
898)               pleaseWaitHide();
899)               myconfirm('Etes-vous sûre de vouloir écraser vos données locales par celle issues de ce fichier ?',function() {
900)                 scases.save();
901)                 var backData=localStorage.scases;
902)                 localStorage.scases=json_data;
903)                 scases=new SCaseList();
904)                 scases.loadFromLocalStorage(backData);
905)                 show_scases();
906)               });
907)             }
908)             catch (e) {
909)               alert('Impossible de décodé le fichier.');
910)               pleaseWaitHide();
911)             }
912)           }
913)           else {
914)             alert('Fichier invalide.');
915)             pleaseWaitHide();
916)           }
917)         }
918)       });
919)       reader.readAsDataURL(file);
920)     }
921)   });
922)   $('body').append(input);
923)   input[0].click();
924) }
925) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

926) /*********************
927)  * Activate
928)  *********************/
929) $( document ).ready( function() {
930)   pleaseWaitShow();
931)   if(typeof(localStorage)!=="undefined"){
932)     scases=new SCaseList();
933)     scases.loadFromLocalStorage();
934)     show_scases();
935)   }
936)   else {
937)     alert('Local storage not supported !');
938)     pleaseWaitHide();
939)     return;
940)   }
941) 
942)   $('#clear_local_data').bind('click',clear_local_data);
Benjamin Renard Add backup/restore data fea...

Benjamin Renard authored 7 years ago

943)   $('#import_local_data').bind('click',import_local_data);
944)   $('#export_local_data').bind('click',export_local_data);
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

945) 
946)   $('#add_scase_btn').bind('click',on_add_scase_btn_click);
947)   $('#add_scase_submit').bind('click',on_valid_add_scase_modal);
948)   $("#add_scase_modal").on('shown.bs.modal',on_show_add_scase_modal);
949)   $("#add_scase_modal").on('hidden.bs.modal',on_close_add_scase_modal);
950)   $("#add_scase_modal form").bind('submit',on_valid_add_scase_modal);
951) 
Benjamin Renard Hide navbar before to show...

Benjamin Renard authored 7 years ago

952)   $('#scases_trash_btn').bind('click',on_scases_trash_btn);
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

953) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

954)   $('#rename_scase_btn').bind('click',on_rename_scase_btn_click);
955)   $('#rename_scase_submit').bind('click',on_valid_rename_scase_modal);
956)   $("#rename_scase_modal").on('shown.bs.modal',on_show_rename_scase_modal);
957)   $("#rename_scase_modal").on('hidden.bs.modal',on_close_rename_scase_modal);
958)   $("#rename_scase_modal form").bind('submit',on_valid_rename_scase_modal);
959) 
960)   $('#copy_scase_btn').bind('click',on_copy_scase_btn_click);
961)   $('#copy_scase_submit').bind('click',on_valid_copy_scase_modal);
962)   $("#copy_scase_modal").on('shown.bs.modal',on_show_copy_scase_modal);
963)   $("#copy_scase_modal").on('hidden.bs.modal',on_close_copy_scase_modal);
964)   $("#copy_scase_modal form").bind('submit',on_valid_copy_scase_modal);
965) 
Benjamin Renard Add reset scase feature

Benjamin Renard authored 8 years ago

966)   $('#reset_scase_btn').bind('click',on_reset_scase_btn_click);
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

967)   $('#delete_scase_btn').bind('click',on_delete_scase_btn_click);
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

968)   $('#scase_trash_btn').bind('click',on_scase_trash_btn_click);
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

969) 
970)   $('#add_cat_btn').bind('click',on_add_cat_btn_click);
971)   $('#add_cat_submit').bind('click',on_valid_add_cat_modal);
972)   $("#add_cat_modal").on('shown.bs.modal',on_show_add_cat_modal);
973)   $("#add_cat_modal").on('hidden.bs.modal',on_close_add_cat_modal);
974)   $("#add_cat_modal form").bind('submit',on_valid_add_cat_modal);
975) 
976)   $('#rename_cat_submit').bind('click',on_valid_rename_cat_modal);
977)   $("#rename_cat_modal").on('shown.bs.modal',on_show_rename_cat_modal);
978)   $("#rename_cat_modal").on('hidden.bs.modal',on_close_rename_cat_modal);
979)   $("#rename_cat_modal form").bind('submit',on_valid_rename_cat_modal);
980) 
981)   $('#back_to_scases').bind('click',on_back_to_scases_btn_click);
982)   
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

983)   $('input.add_thing_label').bind('focus',on_add_thing_label_focus);
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

984)   $('#add_thing_submit').bind('click',on_valid_add_thing_modal);
985)   $("#add_thing_modal").on('shown.bs.modal',on_show_add_thing_modal);
986)   $("#add_thing_modal").on('hidden.bs.modal',on_close_add_thing_modal);
987)   $("#add_thing_modal form").bind('submit',on_valid_add_thing_modal);
988) 
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

989)   $('#edit_thing_submit').bind('click',on_valid_edit_thing_modal);
990)   $("#edit_thing_modal").on('shown.bs.modal',on_show_edit_thing_modal);
991)   $("#edit_thing_modal").on('hidden.bs.modal',on_close_edit_thing_modal);
992)   $("#edit_thing_modal form").bind('submit',on_valid_edit_thing_modal);
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

993) 
Benjamin Renard Bind on App Name click to s...

Benjamin Renard authored 8 years ago

994)   $('#app-name').bind('click', show_scases);