412617115c52d15fb0e44ae7863916fa6f7c9d74
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)   }
36)   if (scases.byName(name)) {
37)     alert("Cette valise existe déjà !");
38)     return;
39)   }
40)   var scase=scases.newSCase(name);
41)   if (scase) {
42)     scases.save();
43)     show_scase(scase);
44)   }
45)   $('#add_scase_modal').modal('hide');
46) }
47) 
48) on_show_add_scase_modal=function () {
49)   $('#add_scase_name').focus();
50) }
51) 
52) on_close_add_scase_modal=function () {
53)   $('#add_scase_modal form')[0].reset();
54) }
55) 
56) /***********************
57)  * Rename scase
58)  **********************/
59) on_rename_scase_btn_click=function(event) {
60)   navbar_collapse_hide();
61)   $('#rename_scase_name')[0].value=$('#cats').data('scase');
62)   $('#rename_scase_modal').modal('show');
63) }
64) 
65) on_valid_rename_scase_modal=function (e) {
66)   e.preventDefault();
67)   var name=$('#rename_scase_name')[0].value;
68)   if (name=='') {
69)     alert("Vous devez saisir le nouveau nom de la valise !");
70)     return;
71)   }
72)   if ($('#cats').data('scase')!=name) {
73)     if (scases.byName(name)) {
74)       alert("Cette valise existe déjà !");
75)       return;
76)     }
77) 
78)     var scase=scases.renameSCase($('#cats').data('scase'),name);
79)     if (scase) {
80)       scases.save();
81)       show_scase(scase);
82)     }
83)     else {
84)       alert('Une erreur est survenue en renomant la valise...');
85)     }
86)   }
87)   $('#rename_scase_modal').modal('hide');
88) }
89) 
90) on_show_rename_scase_modal=function () {
91)   $('#rename_scase_name').focus();
92) }
93) 
94) on_close_rename_scase_modal=function () {
95)   $('#rename_scase_modal form')[0].reset();
96) }
97) 
98) /***********************
99)  * Copy scase
100)  **********************/
101) on_copy_scase_btn_click=function(event) {
102)   navbar_collapse_hide();
103)   $('#copy_scase_modal').modal('show');
104) }
105) 
106) on_valid_copy_scase_modal=function (e) {
107)   e.preventDefault();
108)   var name=$('#copy_scase_name')[0].value;
109)   if (name=='') {
110)     alert("Vous devez saisir le nom de la nouvelle valise !");
111)     return;
112)   }
113)   if (scases.byName(name)) {
114)     alert("Cette valise existe déjà !");
115)     return;
116)   }
117)   var scase=scases.copySCase($('#cats').data('scase'),name);
118)   if (scase) {
119)     scases.save();
120)     show_scase(scase);
121)   }
122)   else {
123)     alert('Une erreur est survenue en copiant la valise...');
124)   }
125)   $('#copy_scase_modal').modal('hide');
126) }
127) 
128) on_show_copy_scase_modal=function () {
129)   $('#copy_scase_name').focus();
130) }
131) 
132) on_close_copy_scase_modal=function () {
133)   $('#copy_scase_modal form')[0].reset();
134) }
135) 
Benjamin Renard Add reset scase feature

Benjamin Renard authored 8 years ago

136) /***********************
137)  * Reset scase
138)  **********************/
139) on_reset_scase_btn_click=function(event) {
140)   navbar_collapse_hide();
141)   var scase=scases.byName($('#cats').data('scase'));
142)   if (scase) {
143)     myconfirm('Voulez-vous vraiment réinitialiser la valise '+$('#cats').data('scase')+' ?',
144)     function(data) {
145)       scases.resetSCase(scase.name);
146)       scases.save();
147)       show_scase(scase);
148)     });
149)   }
150) }
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

151) /***********************
152)  * Delete scase
153)  **********************/
154) on_delete_scase_btn_click=function(event) {
155)   navbar_collapse_hide();
156)   var scase=scases.byName($('#cats').data('scase'));
157)   if (scase) {
158)     myconfirm('Voulez-vous vraiment supprimer la valise '+$('#cats').data('scase')+' ?',
159)     function(data) {
160)       scases.removeSCase(scase.name);
161)       scases.save();
162)       show_scases();
163)     });
164)   }
165) }
166) 
167) /***********************
168)  * Add cat
169)  **********************/
170) on_add_cat_btn_click=function(event) {
171)   navbar_collapse_hide();
172)   $('#add_cat_modal').modal('show');
173) }
174) 
175) on_valid_add_cat_modal=function (e) {
176)   e.preventDefault();
177)   var name=$('#add_cat_name')[0].value;
178)   if (name=='') {
179)     alert("Vous devez saisir le nom de la catégorie !");
180)     return;
181)   }
182)   var scase=scases.byName($('#cats').data('scase'));
183)   if (scase) {
184)     if (scase.cats.byName(name)) {
185)       alert("Cette catégorie existe déjà !");
186)       return;
187)     }
188)     var cat=scase.cats.newCat(name);
189)     if (cat) {
190)       scases.save();
191)       show_scase(scase,cat.name);
192)     }
193)   }
194)   $('#add_cat_modal').modal('hide');
195) }
196) 
197) on_show_add_cat_modal=function () {
198)   $('#add_cat_name').focus();
199) }
200) 
201) on_close_add_cat_modal=function () {
202)   $('#add_cat_modal form')[0].reset();
203) }
204) 
205) /***********************
206)  * Rename cat
207)  **********************/
208) on_rename_cat_btn_click=function(event) {
209)   navbar_collapse_hide();
210)   $('#rename_cat_modal').data('cat',event.data.cat.name);
211)   $('#rename_cat_name')[0].value=event.data.cat.name;
212)   $('#rename_cat_modal').modal('show');
213) }
214) 
215) on_valid_rename_cat_modal=function (e) {
216)   e.preventDefault();
217)   var name=$('#rename_cat_name')[0].value;
218)   if (name=='') {
219)     alert("Vous devez saisir le nouveau nom de la catégorie !");
220)     return;
221)   }
222)   var scase=scases.byName($('#cats').data('scase'));
223)   if (scase) {
224)     if (scase.cats.byName(name)) {
225)       alert("Cette catégorie existe déjà !");
226)       return;
227)     }
228)     var cat=scase.cats.renameCat($('#rename_cat_modal').data('cat'),name);
229)     if (cat) {
230)       scases.save();
231)       show_scase(scase,cat.name);
232)     }
233)   }
234)   $('#rename_cat_modal').modal('hide');
235) }
236) 
237) on_show_rename_cat_modal=function () {
238)   $('#rename_cat_name').focus();
239) }
240) 
241) on_close_rename_cat_modal=function () {
242)   $('#rename_cat_modal form')[0].reset();
243) }
244) 
245) /***********************
246)  * Delete cat
247)  **********************/
248) on_delete_cat_btn_click=function(event) {
249)   navbar_collapse_hide();
250)   var scase=scases.byName($('#cats').data('scase'));
251)   if (scase) {
252)     var cat=event.data.cat.name;
253)     myconfirm('Voulez-vous vraiment supprimer la catégorie '+cat+' ?',
254)     function(data) {
255)       scase.cats.removeCat(cat);
256)       scases.save();
257)       show_scase(scase);
258)     });
259)   }
260) }
261) 
262) /************************
263)  * Check/Uncheck thing
264)  ***********************/
265) on_li_click=function(event) {
266)   if (event.target.tagName!='LI') {
267)     return;
268)   }
269)   var li=$(this);
270)   if (li.hasClass('done')) {
271)     li.removeClass('done');
272)   }
273)   else {
274)     li.addClass('done');
275)   }
276)   var ul=li.parent();
277)   var scase=scases.byName($('#cats').data('scase'));
278)   if (scase) {
279)     var cat=scase.cats.byName(ul.data('cat'));
280)     if (cat) {
281)       var thing=cat.byLabel(li.data('label'));
282)       if (thing) {
Benjamin Renard Rework on data structure to...

Benjamin Renard authored 8 years ago

283)         thing.setChecked(li.hasClass('done'));
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

284)         scases.save();
285)       }
286)       show_scase(scase,cat.name);
287)     }
288)   }
289) }
290) 
291) /***********************
292)  * Add thing
293)  **********************/
294) on_li_add_click=function(event) {
295)   var li=$(this);
296)   var cat=li.parent().data('cat');
297)         var modal=$('#add_thing_modal');
298)   modal.data('cat',cat);
299)   modal.modal('show');
300) }
301) 
302) on_valid_add_thing_modal=function (e) {
303)   e.preventDefault();
304)   var label=$('#add_thing_label')[0].value;
305)   if (label=='') {
306)     alert("Vous devez saisir le nom de l'élément !");
307)     return;
308)   }
309)   var modal=$('#add_thing_modal');
310)   var scase=scases.byName($('#cats').data('scase'));
311)   if (scase) {
312)     var cat=scase.cats.byName(modal.data('cat'));
313)     if (cat) {
314)       if (cat.byLabel(label)) {
315)         alert("Cet élément existe déjà !");
316)         return;
317)       }
Benjamin Renard Rework on data structure to...

Benjamin Renard authored 8 years ago

318)       cat.newThing(label);
Benjamin Renard Initial commit

Benjamin Renard authored 8 years ago

319)       scases.save();
320)       show_scase(scase,cat.name);
321)     }
322)   }
323)   modal.modal('hide');
324) }
325) 
326) on_show_add_thing_modal=function () {
327)   $('#add_thing_label').focus();
328) }
329) 
330) on_close_add_thing_modal=function () {
331)   $('#add_thing_modal form')[0].reset();
332) }
333) 
334) 
335) /***********************
336)  * Rename thing
337)  **********************/
338) on_rename_thing_btn_click=function(event) {
339)   navbar_collapse_hide();
340)   $('#rename_thing_modal').data('cat',event.data.cat.name);
341)   $('#rename_thing_modal').data('thing',event.data.thing.label);
342)   $('#rename_thing_label')[0].value=event.data.thing.label;
343)   $('#rename_thing_modal').modal('show');
344) }
345) 
346) on_valid_rename_thing_modal=function (e) {
347)   e.preventDefault();
348)   var label=$('#rename_thing_label')[0].value;
349)   if (label=='') {
350)     alert("Vous devez saisir le nouveau nom de l'élément !");
351)     return;
352)   }
353)   var scase=scases.byName($('#cats').data('scase'));
354)   if (scase) {
355)     var cat=scase.cats.byName($('#rename_thing_modal').data('cat'));
356)     if (cat) {
357)       if (cat.byLabel(label)) {
358)         alert("Un élément de ce nom existe déjà !");
359)         return;
360)       }
361)       var thing=cat.renameThing($('#rename_thing_modal').data('thing'),label);
362)       if (thing) {
363)         scases.save();
364)         show_scase(scase,cat.name);
365)       }
366)     }
367)   }
368)   $('#rename_thing_modal').modal('hide');
369) }
370) 
371) on_show_rename_thing_modal=function () {
372)   $('#rename_thing_name').focus();
373) }
374) 
375) on_close_rename_thing_modal=function () {
376)   $('#rename_thing_modal form')[0].reset();
377) }
378) 
379) /***********************
380)  * Delete thing
381)  **********************/
382) on_delete_thing_btn_click=function(event) {
383)   navbar_collapse_hide();
384)   var scase=scases.byName($('#cats').data('scase'));
385)   if (scase) {
386)     var cat=scase.cats.byName(event.data.cat.name);
387)     if (cat) {
388)       var thing=event.data.thing.label;
389)       myconfirm("Voulez-vous vraiment supprimer l'élément "+thing+" ?",
390)       function(data) {
391)         cat.removeThing(thing);
392)         scases.save();
393)         show_scase(scase,cat.name);
394)       });
395)     }
396)   }
397) }
398) 
399) /********************
400)  * Show one scase
401)  *******************/
402) show_cat=function(cat,displayed) {
403)   var panel=$('<div class="panel panel-default"></div>');
404)   var panel_heading=$('<div class="panel-heading" role="tab"></div>');
405)   var panel_title=$('<h4 class="panel-title">'+cat.name+' </h4>');
406)   panel_title.bind('click',on_title_click);
407) 
Benjamin Renard Rework on data structure to...

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

415)   }
416) 
417)   var delete_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-trash"></button>');
418)   delete_btn.bind('click',{'cat': cat},on_delete_cat_btn_click);
419)   tag.append(delete_btn);
420) 
421)   var rename_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-edit"></button>');
422)   rename_btn.bind('click',{'cat': cat},on_rename_cat_btn_click);
423)   tag.append(rename_btn);
424) 
425)   panel_title.append(tag);
426) 
427)   
428)   panel_heading.append(panel_title);
429)   panel.append(panel_heading);
430)   var panel_collapse=$('<div class="panel-collapse collapse" role="tabpanel"></div>');
431)   if (displayed) {
432)     panel_collapse.addClass('in');
433)   }
434)   var ul=$('<ul class="list-group" data-cat="'+cat.name+'"></ul>');
435)   for (idx in cat.things) {
436)     var li=$('<li class="list-group-item" data-label="'+cat.things[idx].label+'">'+cat.things[idx].label+'</li>');
437)     if (cat.things[idx].checked) {
438)       li.addClass('done');
439)     }
440)     li.bind('click',on_li_click);
441) 
442)     var li_actions=$('<span class="actions pull-right"></span>');
443) 
444)     var delete_el_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-trash"></button>');
445)     delete_el_btn.bind('click',{'cat': cat,'thing': cat.things[idx]},on_delete_thing_btn_click);
446)     li_actions.append(delete_el_btn);
447) 
448)     var rename_el_btn=$('<button class="btn btn-default btn-xs pull-right"><span class="glyphicon glyphicon-edit"></button>');
449)     rename_el_btn.bind('click',{'cat': cat,'thing': cat.things[idx]},on_rename_thing_btn_click);
450)     li_actions.append(rename_el_btn);
451) 
452)     li.append(li_actions);
453) 
454)     ul.append(li);
455)   }
456)   var li=$('<li class="list-group-item"><span class="glyphicon glyphicon-plus-sign"></span> Ajouter un élément</li>');
457)   li.bind('click',on_li_add_click);
458)   ul.append(li);
459)   panel_collapse.append(ul);
460)   panel.append(panel_collapse);
461)   $('#cats').append(panel);
462) }
463) 
464) show_scase=function(scase,display_cat) {
Benjamin Renard Rework on scase page title

Benjamin Renard authored 8 years ago

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

466)   scase.cats.each(function(idx,cat) {
467)     show_cat(cat,(cat.name==display_cat));
468)   });
469)   show_menu('scase');
470) }
471) 
472) on_back_to_scases_btn_click=function(e) {
473)   e.preventDefault();
474)   navbar_collapse_hide();
475)   show_scases();
476) }
477) 
478) /********************
479)  * Show scases
480)  *******************/
481) show_scases=function() {
Benjamin Renard Rework on home page

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

483)   scases.each(function(idx,scase) {
Benjamin Renard Rework on home page

Benjamin Renard authored 8 years ago

484)     var stats=scase.stats();
485)     var tag='<span class="count-tag pull-right">';
486)     if (stats.things==stats.done) {
487)       tag+='<span class="label label-success"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span></span>';
488)     }
489)     else {
490)       tag+='<span class="badge">'+stats.done+' / '+stats.things+'</span>';
491)     }
492)     tag+='</span>';
493) 
494)     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

495)     li.bind('click',on_scase_click);
496)     $('#scases').append(li);
497)   });
498)   show_menu('scases');
499) }
500) 
501) on_scase_click=function(event) {
502)   var li=$(this);
503)   var scase=scases.byName(li.data('name'));
504)   show_scase(scase);
505) }
506) 
507) clear_page=function(new_content) {
508)   if (new_content) {
509)     $('#content').html(new_content);
510)   }
511)   else {
512)     $('#content').html('');
513)   }
514) }
515) 
516) /************************
517)  * Show menu
518)  ***********************/
519) show_menu=function(menu) {
520)   $('.menu').css('display','none');
521)   $('.menu-'+menu).css('display','block');
522) }
523) 
524) /*******************
525)  * pleaseWaitDialog
526)  *******************/
527) 
528) pleaseWaitShow=function() {
529)   $('#please_wait_modal').modal('show');
530) }
531) 
532) pleaseWaitHide=function() {
533)   $('#please_wait_modal').modal('hide');
534) }
535) 
536) /****************
537)  * Nav bars
538)  ****************/
539) navbar_collapse_hide=function() {
540)   if ($('#navbar-top-collapse').hasClass('in')) {
541)     $('#navbar-top-collapse').collapse('hide');
542)   }
543) }
544) 
545) /**************************
546)  * Cache / Update
547)  *************************/
548) 
549) _checkForUpgrade=false;
550) onUpdateReady=function() {
551)   if (_checkForUpgrade) {
552)     pleaseWaitHide();
553)   }
554)   myconfirm(
555)     "Une nouvelle version de l'application est disponible. Voulez-vous lancer la mise à jour ?",
556)     onConfirmUpdate,null,{}
557)   );
558) }
559) 
560) onConfirmUpdate=function() {
561)   window.applicationCache.swapCache();
562)   location.reload();
563) }
564) 
565) updateApp = function() {
566)   navbar_collapse_hide();
567)   pleaseWaitShow();
568)   _checkForUpgrade=true;
569)   window.applicationCache.update();
570) }
571) 
572) onNoUpdate = function() {
573)   if (_checkForUpgrade) {
574)     pleaseWaitHide();
575)     _checkForUpgrade=false;
576)     alert('Aucune mise à jour disponible');
577)   }
578) }
579) 
580) /********************
581)  * Clear local data
582)  ********************/
583) clear_local_data=function() {
584)   navbar_collapse_hide();
585)   myconfirm('Etes-vous sûre de vouloir supprimer les données locales ?',on_confirm_clear_local_data);
586) }
587) 
588) on_confirm_clear_local_data=function(data) {
589)   delete localStorage.scases;
590)   location.reload();
591) }
592) 
593) /*********************
594)  * Activate
595)  *********************/
596) $( document ).ready( function() {
597)   pleaseWaitShow();
598)   if(typeof(localStorage)!=="undefined"){
599)     scases=new SCaseList();
600)     scases.loadFromLocalStorage();
601)     show_scases();
602)   }
603)   else {
604)     alert('Local storage not supported !');
605)     pleaseWaitHide();
606)     return;
607)   }
608) 
609)   $('#clear_local_data').bind('click',clear_local_data);
610) 
611)   $('#add_scase_btn').bind('click',on_add_scase_btn_click);
612)   $('#add_scase_submit').bind('click',on_valid_add_scase_modal);
613)   $("#add_scase_modal").on('shown.bs.modal',on_show_add_scase_modal);
614)   $("#add_scase_modal").on('hidden.bs.modal',on_close_add_scase_modal);
615)   $("#add_scase_modal form").bind('submit',on_valid_add_scase_modal);
616) 
617)   $('#rename_scase_btn').bind('click',on_rename_scase_btn_click);
618)   $('#rename_scase_submit').bind('click',on_valid_rename_scase_modal);
619)   $("#rename_scase_modal").on('shown.bs.modal',on_show_rename_scase_modal);
620)   $("#rename_scase_modal").on('hidden.bs.modal',on_close_rename_scase_modal);
621)   $("#rename_scase_modal form").bind('submit',on_valid_rename_scase_modal);
622) 
623)   $('#copy_scase_btn').bind('click',on_copy_scase_btn_click);
624)   $('#copy_scase_submit').bind('click',on_valid_copy_scase_modal);
625)   $("#copy_scase_modal").on('shown.bs.modal',on_show_copy_scase_modal);
626)   $("#copy_scase_modal").on('hidden.bs.modal',on_close_copy_scase_modal);
627)   $("#copy_scase_modal form").bind('submit',on_valid_copy_scase_modal);
628) 
Benjamin Renard Add reset scase feature

Benjamin Renard authored 8 years ago

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

Benjamin Renard authored 8 years ago

630)   $('#delete_scase_btn').bind('click',on_delete_scase_btn_click);
631) 
632)   $('#add_cat_btn').bind('click',on_add_cat_btn_click);
633)   $('#add_cat_submit').bind('click',on_valid_add_cat_modal);
634)   $("#add_cat_modal").on('shown.bs.modal',on_show_add_cat_modal);
635)   $("#add_cat_modal").on('hidden.bs.modal',on_close_add_cat_modal);
636)   $("#add_cat_modal form").bind('submit',on_valid_add_cat_modal);
637) 
638)   $('#rename_cat_submit').bind('click',on_valid_rename_cat_modal);
639)   $("#rename_cat_modal").on('shown.bs.modal',on_show_rename_cat_modal);
640)   $("#rename_cat_modal").on('hidden.bs.modal',on_close_rename_cat_modal);
641)   $("#rename_cat_modal form").bind('submit',on_valid_rename_cat_modal);
642) 
643)   $('#back_to_scases').bind('click',on_back_to_scases_btn_click);
644)   
645)   $('#add_thing_submit').bind('click',on_valid_add_thing_modal);
646)   $("#add_thing_modal").on('shown.bs.modal',on_show_add_thing_modal);
647)   $("#add_thing_modal").on('hidden.bs.modal',on_close_add_thing_modal);
648)   $("#add_thing_modal form").bind('submit',on_valid_add_thing_modal);
649) 
650)   $('#rename_thing_submit').bind('click',on_valid_rename_thing_modal);
651)   $("#rename_thing_modal").on('shown.bs.modal',on_show_rename_thing_modal);
652)   $("#rename_thing_modal").on('hidden.bs.modal',on_close_rename_thing_modal);
653)   $("#rename_thing_modal form").bind('submit',on_valid_rename_thing_modal);
654) 
Benjamin Renard Bind on App Name click to s...

Benjamin Renard authored 8 years ago

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