edd395799a8650f3cd40bd5e85e1e5d82f0e5c14
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);
336)   if (li.hasClass('done')) {
337)     li.removeClass('done');
338)   }
339)   else {
340)     li.addClass('done');
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 Rework on data structure to...

Benjamin Renard authored 8 years ago

349)         thing.setChecked(li.hasClass('done'));
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 Initial commit

Benjamin Renard authored 8 years ago

587)     var li=$('<li class="list-group-item" 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) {
592)       li.addClass('done');
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 Initial commit

Benjamin Renard authored 8 years ago

782) clear_page=function(new_content) {
783)   if (new_content) {
784)     $('#content').html(new_content);
785)   }
786)   else {
787)     $('#content').html('');
788)   }
789) }
790) 
791) /************************
792)  * Show menu
793)  ***********************/
794) show_menu=function(menu) {
795)   $('.menu').css('display','none');
796)   $('.menu-'+menu).css('display','block');
797) }
798) 
799) /*******************
800)  * pleaseWaitDialog
801)  *******************/
802) 
803) pleaseWaitShow=function() {
804)   $('#please_wait_modal').modal('show');
805) }
806) 
807) pleaseWaitHide=function() {
808)   $('#please_wait_modal').modal('hide');
809) }
810) 
811) /****************
812)  * Nav bars
813)  ****************/
814) navbar_collapse_hide=function() {
815)   if ($('#navbar-top-collapse').hasClass('in')) {
816)     $('#navbar-top-collapse').collapse('hide');
817)   }
818) }
819) 
820) /**************************
821)  * Cache / Update
822)  *************************/
823) 
824) _checkForUpgrade=false;
825) onUpdateReady=function() {
826)   if (_checkForUpgrade) {
827)     pleaseWaitHide();
828)   }
829)   myconfirm(
830)     "Une nouvelle version de l'application est disponible. Voulez-vous lancer la mise à jour ?",
831)     onConfirmUpdate,null,{}
832)   );
833) }
834) 
835) onConfirmUpdate=function() {
836)   window.applicationCache.swapCache();
837)   location.reload();
838) }
839) 
840) updateApp = function() {
841)   navbar_collapse_hide();
842)   pleaseWaitShow();
843)   _checkForUpgrade=true;
844)   window.applicationCache.update();
845) }
846) 
847) onNoUpdate = function() {
848)   if (_checkForUpgrade) {
849)     pleaseWaitHide();
850)     _checkForUpgrade=false;
851)     alert('Aucune mise à jour disponible');
852)   }
853) }
854) 
855) /********************
856)  * Clear local data
857)  ********************/
858) clear_local_data=function() {
859)   navbar_collapse_hide();
860)   myconfirm('Etes-vous sûre de vouloir supprimer les données locales ?',on_confirm_clear_local_data);
861) }
862) 
863) on_confirm_clear_local_data=function(data) {
864)   delete localStorage.scases;
865)   location.reload();
866) }
867) 
868) /*********************
869)  * Activate
870)  *********************/
871) $( document ).ready( function() {
872)   pleaseWaitShow();
873)   if(typeof(localStorage)!=="undefined"){
874)     scases=new SCaseList();
875)     scases.loadFromLocalStorage();
876)     show_scases();
877)   }
878)   else {
879)     alert('Local storage not supported !');
880)     pleaseWaitHide();
881)     return;
882)   }
883) 
884)   $('#clear_local_data').bind('click',clear_local_data);
885) 
886)   $('#add_scase_btn').bind('click',on_add_scase_btn_click);
887)   $('#add_scase_submit').bind('click',on_valid_add_scase_modal);
888)   $("#add_scase_modal").on('shown.bs.modal',on_show_add_scase_modal);
889)   $("#add_scase_modal").on('hidden.bs.modal',on_close_add_scase_modal);
890)   $("#add_scase_modal form").bind('submit',on_valid_add_scase_modal);
891) 
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

892)   $('#scases_trash_btn').bind('click',show_scases_trash);
893) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

894)   $('#rename_scase_btn').bind('click',on_rename_scase_btn_click);
895)   $('#rename_scase_submit').bind('click',on_valid_rename_scase_modal);
896)   $("#rename_scase_modal").on('shown.bs.modal',on_show_rename_scase_modal);
897)   $("#rename_scase_modal").on('hidden.bs.modal',on_close_rename_scase_modal);
898)   $("#rename_scase_modal form").bind('submit',on_valid_rename_scase_modal);
899) 
900)   $('#copy_scase_btn').bind('click',on_copy_scase_btn_click);
901)   $('#copy_scase_submit').bind('click',on_valid_copy_scase_modal);
902)   $("#copy_scase_modal").on('shown.bs.modal',on_show_copy_scase_modal);
903)   $("#copy_scase_modal").on('hidden.bs.modal',on_close_copy_scase_modal);
904)   $("#copy_scase_modal form").bind('submit',on_valid_copy_scase_modal);
905) 
Benjamin Renard Add reset scase feature

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 7 years ago

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

Benjamin Renard authored 8 years ago

909) 
910)   $('#add_cat_btn').bind('click',on_add_cat_btn_click);
911)   $('#add_cat_submit').bind('click',on_valid_add_cat_modal);
912)   $("#add_cat_modal").on('shown.bs.modal',on_show_add_cat_modal);
913)   $("#add_cat_modal").on('hidden.bs.modal',on_close_add_cat_modal);
914)   $("#add_cat_modal form").bind('submit',on_valid_add_cat_modal);
915) 
916)   $('#rename_cat_submit').bind('click',on_valid_rename_cat_modal);
917)   $("#rename_cat_modal").on('shown.bs.modal',on_show_rename_cat_modal);
918)   $("#rename_cat_modal").on('hidden.bs.modal',on_close_rename_cat_modal);
919)   $("#rename_cat_modal form").bind('submit',on_valid_rename_cat_modal);
920) 
921)   $('#back_to_scases').bind('click',on_back_to_scases_btn_click);
922)   
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

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

Benjamin Renard authored 8 years ago

924)   $('#add_thing_submit').bind('click',on_valid_add_thing_modal);
925)   $("#add_thing_modal").on('shown.bs.modal',on_show_add_thing_modal);
926)   $("#add_thing_modal").on('hidden.bs.modal',on_close_add_thing_modal);
927)   $("#add_thing_modal form").bind('submit',on_valid_add_thing_modal);
928) 
Benjamin Renard Add number of things feature

Benjamin Renard authored 7 years ago

929)   $('#edit_thing_submit').bind('click',on_valid_edit_thing_modal);
930)   $("#edit_thing_modal").on('shown.bs.modal',on_show_edit_thing_modal);
931)   $("#edit_thing_modal").on('hidden.bs.modal',on_close_edit_thing_modal);
932)   $("#edit_thing_modal form").bind('submit',on_valid_edit_thing_modal);
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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