10dc9ff15f08a0c7f86a7bbe6679f937da02eef1
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 Permit to add multiple thin...

Benjamin Renard authored 7 years ago

376)       var labels=[];
377)       var error=false;
378)       $('input.add_thing_label').each(function(idx,input) {
379)         var val=$(input).val();
380)         if (val && val!='') {
381)           if (labels.indexOf(val)>-1) {
382)             alert("Deux élements ne peuvent porter le même nom !");
383)             error=true;
384)             return;
385)           }
386)           if (cat.byLabel(val)) {
387)             alert("L'élément '"+val+"' existe déjà !");
388)             error=true;
389)             return;
390)           }
391)           labels.push(val);
392)         }
393)       });
394)       if (error) {
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

395)         return;
396)       }
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

397)       if (labels.length==0) {
398)         alert("Vous devez saisir au moins un nom d'élément !");
399)         return;
400)       }
401)       for (idx in labels) {
402)         cat.newThing(labels[idx]);
403)       }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

404)       scases.save();
405)       show_scase(scase,cat.name);
406)     }
407)   }
408)   modal.modal('hide');
409) }
410) 
411) on_show_add_thing_modal=function () {
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

412)   $('input.add_thing_label_other').parent().remove();
413)   $('input.add_thing_label').val('');
414)   $('input.add_thing_label').first().focus();
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

415) }
416) 
417) on_close_add_thing_modal=function () {
418)   $('#add_thing_modal form')[0].reset();
419) }
420) 
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

421) on_add_thing_label_focus=function(event) {
422)   if ($('input.add_thing_label').last()[0] == event.target) {
423)     var new_input_group=$('<div class="form-group"></div>');
424)     var new_input=$('<input type="text" class="form-control add_thing_label add_thing_label_other" class="form-control" placeholder="Encore un ?"/>');
425)     new_input_group.append(new_input);
426)     new_input.bind('focus', on_add_thing_label_focus);
427)     $(event.target).parent().after(new_input_group);
428)   }
429) }
430) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

431) 
432) /***********************
433)  * Rename thing
434)  **********************/
435) on_rename_thing_btn_click=function(event) {
436)   navbar_collapse_hide();
437)   $('#rename_thing_modal').data('cat',event.data.cat.name);
438)   $('#rename_thing_modal').data('thing',event.data.thing.label);
439)   $('#rename_thing_label')[0].value=event.data.thing.label;
440)   $('#rename_thing_modal').modal('show');
441) }
442) 
443) on_valid_rename_thing_modal=function (e) {
444)   e.preventDefault();
445)   var label=$('#rename_thing_label')[0].value;
446)   if (label=='') {
447)     alert("Vous devez saisir le nouveau nom de l'élément !");
448)     return;
449)   }
450)   var scase=scases.byName($('#cats').data('scase'));
451)   if (scase) {
452)     var cat=scase.cats.byName($('#rename_thing_modal').data('cat'));
453)     if (cat) {
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

454)       var namesake=cat.byLabel(label);
455)       if (namesake) {
456)         if (namesake.removed) {
457)           alert("Un élément de ce nom existe dans la corbeille !");
458)         }
459)         else {
460)           alert("Un élément de ce nom existe déjà !");
461)         }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

462)         return;
463)       }
464)       var thing=cat.renameThing($('#rename_thing_modal').data('thing'),label);
465)       if (thing) {
466)         scases.save();
467)         show_scase(scase,cat.name);
468)       }
469)     }
470)   }
471)   $('#rename_thing_modal').modal('hide');
472) }
473) 
474) on_show_rename_thing_modal=function () {
Benjamin Renard Fix input focus on rename t...

Benjamin Renard authored 8 years ago

475)   $('#rename_thing_label').focus();
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

476) }
477) 
478) on_close_rename_thing_modal=function () {
479)   $('#rename_thing_modal form')[0].reset();
480) }
481) 
482) /***********************
483)  * Delete thing
484)  **********************/
485) on_delete_thing_btn_click=function(event) {
486)   navbar_collapse_hide();
487)   var scase=scases.byName($('#cats').data('scase'));
488)   if (scase) {
489)     var cat=scase.cats.byName(event.data.cat.name);
490)     if (cat) {
491)       var thing=event.data.thing.label;
492)       myconfirm("Voulez-vous vraiment supprimer l'élément "+thing+" ?",
493)       function(data) {
494)         cat.removeThing(thing);
495)         scases.save();
496)         show_scase(scase,cat.name);
497)       });
498)     }
499)   }
500) }
501) 
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

502) on_restore_thing_btn_click=function(event) {
503)   navbar_collapse_hide();
504)   var scase=scases.byName($('#cats').data('scase'));
505)   if (scase) {
506)     var cat=scase.cats.byName(event.data.cat.name);
507)     if (cat) {
508)       var thing=event.data.thing.label;
509)       myconfirm("Voulez-vous vraiment restaurer l'élément "+thing+" ?",
510)       function(data) {
511)         cat.restoreThing(thing);
512)         scases.save();
513)         show_scase(scase,cat.name);
514)       });
515)     }
516)   }
517) }
518) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

519) /********************
520)  * Show one scase
521)  *******************/
522) show_cat=function(cat,displayed) {
523)   var panel=$('<div class="panel panel-default"></div>');
524)   var panel_heading=$('<div class="panel-heading" role="tab"></div>');
525)   var panel_title=$('<h4 class="panel-title">'+cat.name+' </h4>');
526)   panel_title.bind('click',on_title_click);
527) 
Benjamin Renard Rework on data structure to...

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

535)   }
536) 
537)   var delete_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-trash"></button>');
538)   delete_btn.bind('click',{'cat': cat},on_delete_cat_btn_click);
539)   tag.append(delete_btn);
540) 
541)   var rename_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-edit"></button>');
542)   rename_btn.bind('click',{'cat': cat},on_rename_cat_btn_click);
543)   tag.append(rename_btn);
544) 
545)   panel_title.append(tag);
546) 
547)   
548)   panel_heading.append(panel_title);
549)   panel.append(panel_heading);
550)   var panel_collapse=$('<div class="panel-collapse collapse" role="tabpanel"></div>');
551)   if (displayed) {
552)     panel_collapse.addClass('in');
553)   }
554)   var ul=$('<ul class="list-group" data-cat="'+cat.name+'"></ul>');
555)   for (idx in cat.things) {
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

556)     if (cat.things[idx].removed) {
557)       continue;
558)     }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

559)     var li=$('<li class="list-group-item" data-label="'+cat.things[idx].label+'">'+cat.things[idx].label+'</li>');
560)     if (cat.things[idx].checked) {
561)       li.addClass('done');
562)     }
563)     li.bind('click',on_li_click);
564) 
565)     var li_actions=$('<span class="actions pull-right"></span>');
566) 
567)     var delete_el_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-trash"></button>');
568)     delete_el_btn.bind('click',{'cat': cat,'thing': cat.things[idx]},on_delete_thing_btn_click);
569)     li_actions.append(delete_el_btn);
570) 
571)     var rename_el_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-edit"></button>');
572)     rename_el_btn.bind('click',{'cat': cat,'thing': cat.things[idx]},on_rename_thing_btn_click);
573)     li_actions.append(rename_el_btn);
574) 
575)     li.append(li_actions);
576) 
577)     ul.append(li);
578)   }
579)   var li=$('<li class="list-group-item"><span class="glyphicon glyphicon-plus-sign"></span> Ajouter un élément</li>');
580)   li.bind('click',on_li_add_click);
581)   ul.append(li);
582)   panel_collapse.append(ul);
583)   panel.append(panel_collapse);
584)   $('#cats').append(panel);
585) }
586) 
587) show_scase=function(scase,display_cat) {
Benjamin Renard Rework on scase page title

Benjamin Renard authored 8 years ago

588)   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

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

Benjamin Renard authored 7 years ago

590)     if (cat.removed) {
591)       return;
592)     }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

593)     show_cat(cat,(cat.name==display_cat));
594)   });
595)   show_menu('scase');
596) }
597) 
598) on_back_to_scases_btn_click=function(e) {
599)   e.preventDefault();
600)   navbar_collapse_hide();
601)   show_scases();
602) }
603) 
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

604) /********************
605)  * Show scase trash
606)  *******************/
607) show_scase_trash=function(scase,display_cat) {
608)   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>');
609) 
610)   $('#content h3 #back_btn').bind('click', {'scase': scase}, function(event) {
611)     show_scase(event.data.scase);
612)   });
613) 
614)   scase.cats.each(function(idx,cat) {
615)     show_cat_trash(cat,(cat.name==display_cat));
616)   });
617)   if ($('#cats .panel').length==0) {
618)     $('#content').append('<p class="center">La corbeille est vide.</p>');
619)   }
620)   show_menu('scase');
621) }
622) 
623) show_cat_trash=function(cat,displayed) {
624)   var panel=$('<div class="panel panel-default"></div>');
625)   var panel_heading=$('<div class="panel-heading" role="tab"></div>');
626)   var panel_title=$('<h4 class="panel-title">'+cat.name+' </h4>');
627) 
628)   var tag=$('<span class="count-tag pull-right"></span>');
629) 
630)   panel_title.append(tag);
631) 
632) 
633)   panel_heading.append(panel_title);
634)   panel.append(panel_heading);
635) 
636) 
637)   if (cat.removed) {
638)     var stats=cat.stats();
639)     tag.append($('<span class="badge">'+stats.things+'</span>'));
640) 
641)     var restore_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-ok"></button>');
642)     restore_btn.bind('click',{'cat': cat},on_restore_cat_btn_click);
643)     tag.append(restore_btn);
644)   }
645)   else {
646)     var deleted_things=[];
647)     for (idx in cat.things) {
648)       if (cat.things[idx].removed) {
649)         deleted_things.push(cat.things[idx]);
650)       }
651)     }
652)     if (deleted_things.length==0) {
653)       return true;
654)     }
655)     panel_title.bind('click',on_title_click);
656)     tag.append($('<span class="badge">'+deleted_things.length+'</span>'));
657) 
658)     var panel_collapse=$('<div class="panel-collapse collapse" role="tabpanel"></div>');
659)     if (displayed) {
660)       panel_collapse.addClass('in');
661)     }
662)     var ul=$('<ul class="list-group" data-cat="'+cat.name+'"></ul>');
663)     for (idx in deleted_things) {
664)       var li=$('<li class="list-group-item" data-label="'+deleted_things[idx].label+'">'+deleted_things[idx].label+'</li>');
665)       var li_actions=$('<span class="actions pull-right"></span>');
666) 
667)       var restore_el_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-ok"></button>');
668)       restore_el_btn.bind('click',{'cat': cat,'thing': deleted_things[idx]},on_restore_thing_btn_click);
669)       li_actions.append(restore_el_btn);
670) 
671)       li.append(li_actions);
672) 
673)       ul.append(li);
674)     }
675)     panel_collapse.append(ul);
676)     panel.append(panel_collapse);
677)   }
678) 
679)   $('#cats').append(panel);
680) }
681) 
682) on_back_to_scase_btn_click=function(e) {
683)   e.preventDefault();
684)   navbar_collapse_hide();
685)   show_scase(e.data.scase);
686) }
687) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

688) /********************
689)  * Show scases
690)  *******************/
691) show_scases=function() {
Benjamin Renard Rework on home page

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 7 years ago

694)     if (scase.removed) {
695)       return;
696)     }
Benjamin Renard Rework on home page

Benjamin Renard authored 8 years ago

697)     var stats=scase.stats();
698)     var tag='<span class="count-tag pull-right">';
699)     if (stats.things==stats.done) {
700)       tag+='<span class="label label-success"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span></span>';
701)     }
702)     else {
703)       tag+='<span class="badge">'+stats.done+' / '+stats.things+'</span>';
704)     }
705)     tag+='</span>';
706) 
707)     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

708)     li.bind('click',on_scase_click);
709)     $('#scases').append(li);
710)   });
711)   show_menu('scases');
712) }
713) 
714) on_scase_click=function(event) {
715)   var li=$(this);
716)   var scase=scases.byName(li.data('name'));
717)   show_scase(scase);
718) }
719) 
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

720) /********************
721)  * Show scases trash
722)  *******************/
723) show_scases_trash=function() {
724)   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>');
725)   $('#content h3 #back_btn').bind('click', function(event) {
726)     show_scases();
727)   });
728) 
729)   scases.each(function(idx,scase) {
730)     if (!scase.removed) {
731)       return;
732)     }
733)     var stats=scase.stats();
734)     var tags=$('<span class="count-tag pull-right"></span>');
735)     tags.append('<span class="badge">'+stats.things+'</span>');
736) 
737)     var restore_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-ok"></button>');
738)     restore_btn.bind('click',{'scase': scase},on_restore_scase_btn_click);
739)     tags.append(restore_btn);
740) 
741)     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>');
742)     li.append(tags);
743)     $('#scases').append(li);
744)   });
745)   if ($('#scases li').length==0) {
746)     $('#content').append('<p class="center">Aucune valise dans la corbeille.</p>');
747)   }
748)   show_menu('scases');
749) }
750) 
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

751) clear_page=function(new_content) {
752)   if (new_content) {
753)     $('#content').html(new_content);
754)   }
755)   else {
756)     $('#content').html('');
757)   }
758) }
759) 
760) /************************
761)  * Show menu
762)  ***********************/
763) show_menu=function(menu) {
764)   $('.menu').css('display','none');
765)   $('.menu-'+menu).css('display','block');
766) }
767) 
768) /*******************
769)  * pleaseWaitDialog
770)  *******************/
771) 
772) pleaseWaitShow=function() {
773)   $('#please_wait_modal').modal('show');
774) }
775) 
776) pleaseWaitHide=function() {
777)   $('#please_wait_modal').modal('hide');
778) }
779) 
780) /****************
781)  * Nav bars
782)  ****************/
783) navbar_collapse_hide=function() {
784)   if ($('#navbar-top-collapse').hasClass('in')) {
785)     $('#navbar-top-collapse').collapse('hide');
786)   }
787) }
788) 
789) /**************************
790)  * Cache / Update
791)  *************************/
792) 
793) _checkForUpgrade=false;
794) onUpdateReady=function() {
795)   if (_checkForUpgrade) {
796)     pleaseWaitHide();
797)   }
798)   myconfirm(
799)     "Une nouvelle version de l'application est disponible. Voulez-vous lancer la mise à jour ?",
800)     onConfirmUpdate,null,{}
801)   );
802) }
803) 
804) onConfirmUpdate=function() {
805)   window.applicationCache.swapCache();
806)   location.reload();
807) }
808) 
809) updateApp = function() {
810)   navbar_collapse_hide();
811)   pleaseWaitShow();
812)   _checkForUpgrade=true;
813)   window.applicationCache.update();
814) }
815) 
816) onNoUpdate = function() {
817)   if (_checkForUpgrade) {
818)     pleaseWaitHide();
819)     _checkForUpgrade=false;
820)     alert('Aucune mise à jour disponible');
821)   }
822) }
823) 
824) /********************
825)  * Clear local data
826)  ********************/
827) clear_local_data=function() {
828)   navbar_collapse_hide();
829)   myconfirm('Etes-vous sûre de vouloir supprimer les données locales ?',on_confirm_clear_local_data);
830) }
831) 
832) on_confirm_clear_local_data=function(data) {
833)   delete localStorage.scases;
834)   location.reload();
835) }
836) 
837) /*********************
838)  * Activate
839)  *********************/
840) $( document ).ready( function() {
841)   pleaseWaitShow();
842)   if(typeof(localStorage)!=="undefined"){
843)     scases=new SCaseList();
844)     scases.loadFromLocalStorage();
845)     show_scases();
846)   }
847)   else {
848)     alert('Local storage not supported !');
849)     pleaseWaitHide();
850)     return;
851)   }
852) 
853)   $('#clear_local_data').bind('click',clear_local_data);
854) 
855)   $('#add_scase_btn').bind('click',on_add_scase_btn_click);
856)   $('#add_scase_submit').bind('click',on_valid_add_scase_modal);
857)   $("#add_scase_modal").on('shown.bs.modal',on_show_add_scase_modal);
858)   $("#add_scase_modal").on('hidden.bs.modal',on_close_add_scase_modal);
859)   $("#add_scase_modal form").bind('submit',on_valid_add_scase_modal);
860) 
Benjamin Renard Add trash feature on scase,...

Benjamin Renard authored 7 years ago

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

Benjamin Renard authored 8 years ago

863)   $('#rename_scase_btn').bind('click',on_rename_scase_btn_click);
864)   $('#rename_scase_submit').bind('click',on_valid_rename_scase_modal);
865)   $("#rename_scase_modal").on('shown.bs.modal',on_show_rename_scase_modal);
866)   $("#rename_scase_modal").on('hidden.bs.modal',on_close_rename_scase_modal);
867)   $("#rename_scase_modal form").bind('submit',on_valid_rename_scase_modal);
868) 
869)   $('#copy_scase_btn').bind('click',on_copy_scase_btn_click);
870)   $('#copy_scase_submit').bind('click',on_valid_copy_scase_modal);
871)   $("#copy_scase_modal").on('shown.bs.modal',on_show_copy_scase_modal);
872)   $("#copy_scase_modal").on('hidden.bs.modal',on_close_copy_scase_modal);
873)   $("#copy_scase_modal form").bind('submit',on_valid_copy_scase_modal);
874) 
Benjamin Renard Add reset scase feature

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 7 years ago

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

Benjamin Renard authored 8 years ago

878) 
879)   $('#add_cat_btn').bind('click',on_add_cat_btn_click);
880)   $('#add_cat_submit').bind('click',on_valid_add_cat_modal);
881)   $("#add_cat_modal").on('shown.bs.modal',on_show_add_cat_modal);
882)   $("#add_cat_modal").on('hidden.bs.modal',on_close_add_cat_modal);
883)   $("#add_cat_modal form").bind('submit',on_valid_add_cat_modal);
884) 
885)   $('#rename_cat_submit').bind('click',on_valid_rename_cat_modal);
886)   $("#rename_cat_modal").on('shown.bs.modal',on_show_rename_cat_modal);
887)   $("#rename_cat_modal").on('hidden.bs.modal',on_close_rename_cat_modal);
888)   $("#rename_cat_modal form").bind('submit',on_valid_rename_cat_modal);
889) 
890)   $('#back_to_scases').bind('click',on_back_to_scases_btn_click);
891)   
Benjamin Renard Permit to add multiple thin...

Benjamin Renard authored 7 years ago

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

Benjamin Renard authored 8 years ago

893)   $('#add_thing_submit').bind('click',on_valid_add_thing_modal);
894)   $("#add_thing_modal").on('shown.bs.modal',on_show_add_thing_modal);
895)   $("#add_thing_modal").on('hidden.bs.modal',on_close_add_thing_modal);
896)   $("#add_thing_modal form").bind('submit',on_valid_add_thing_modal);
897) 
898)   $('#rename_thing_submit').bind('click',on_valid_rename_thing_modal);
899)   $("#rename_thing_modal").on('shown.bs.modal',on_show_rename_thing_modal);
900)   $("#rename_thing_modal").on('hidden.bs.modal',on_close_rename_thing_modal);
901)   $("#rename_thing_modal form").bind('submit',on_valid_rename_thing_modal);
902) 
Benjamin Renard Bind on App Name click to s...

Benjamin Renard authored 8 years ago

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