Benjamin Renard commited on 2017-09-17 10:18:45
Showing 2 changed files, with 46 additions and 11 deletions.
... | ... |
@@ -301,21 +301,40 @@ on_li_add_click=function(event) { |
301 | 301 |
|
302 | 302 |
on_valid_add_thing_modal=function (e) { |
303 | 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 |
- } |
|
304 |
+ |
|
309 | 305 |
var modal=$('#add_thing_modal'); |
310 | 306 |
var scase=scases.byName($('#cats').data('scase')); |
311 | 307 |
if (scase) { |
312 | 308 |
var cat=scase.cats.byName(modal.data('cat')); |
313 | 309 |
if (cat) { |
314 |
- if (cat.byLabel(label)) { |
|
315 |
- alert("Cet élément existe déjà !"); |
|
310 |
+ var labels=[]; |
|
311 |
+ var error=false; |
|
312 |
+ $('input.add_thing_label').each(function(idx,input) { |
|
313 |
+ var val=$(input).val(); |
|
314 |
+ if (val && val!='') { |
|
315 |
+ if (labels.indexOf(val)>-1) { |
|
316 |
+ alert("Deux élements ne peuvent porter le même nom !"); |
|
317 |
+ error=true; |
|
316 | 318 |
return; |
317 | 319 |
} |
318 |
- cat.newThing(label); |
|
320 |
+ if (cat.byLabel(val)) { |
|
321 |
+ alert("L'élément '"+val+"' existe déjà !"); |
|
322 |
+ error=true; |
|
323 |
+ return; |
|
324 |
+ } |
|
325 |
+ labels.push(val); |
|
326 |
+ } |
|
327 |
+ }); |
|
328 |
+ if (error) { |
|
329 |
+ return; |
|
330 |
+ } |
|
331 |
+ if (labels.length==0) { |
|
332 |
+ alert("Vous devez saisir au moins un nom d'élément !"); |
|
333 |
+ return; |
|
334 |
+ } |
|
335 |
+ for (idx in labels) { |
|
336 |
+ cat.newThing(labels[idx]); |
|
337 |
+ } |
|
319 | 338 |
scases.save(); |
320 | 339 |
show_scase(scase,cat.name); |
321 | 340 |
} |
... | ... |
@@ -324,13 +343,25 @@ on_valid_add_thing_modal=function (e) { |
324 | 343 |
} |
325 | 344 |
|
326 | 345 |
on_show_add_thing_modal=function () { |
327 |
- $('#add_thing_label').focus(); |
|
346 |
+ $('input.add_thing_label_other').parent().remove(); |
|
347 |
+ $('input.add_thing_label').val(''); |
|
348 |
+ $('input.add_thing_label').first().focus(); |
|
328 | 349 |
} |
329 | 350 |
|
330 | 351 |
on_close_add_thing_modal=function () { |
331 | 352 |
$('#add_thing_modal form')[0].reset(); |
332 | 353 |
} |
333 | 354 |
|
355 |
+on_add_thing_label_focus=function(event) { |
|
356 |
+ if ($('input.add_thing_label').last()[0] == event.target) { |
|
357 |
+ var new_input_group=$('<div class="form-group"></div>'); |
|
358 |
+ var new_input=$('<input type="text" class="form-control add_thing_label add_thing_label_other" class="form-control" placeholder="Encore un ?"/>'); |
|
359 |
+ new_input_group.append(new_input); |
|
360 |
+ new_input.bind('focus', on_add_thing_label_focus); |
|
361 |
+ $(event.target).parent().after(new_input_group); |
|
362 |
+ } |
|
363 |
+} |
|
364 |
+ |
|
334 | 365 |
|
335 | 366 |
/*********************** |
336 | 367 |
* Rename thing |
... | ... |
@@ -642,6 +673,7 @@ $( document ).ready( function() { |
642 | 673 |
|
643 | 674 |
$('#back_to_scases').bind('click',on_back_to_scases_btn_click); |
644 | 675 |
|
676 |
+ $('input.add_thing_label').bind('focus',on_add_thing_label_focus); |
|
645 | 677 |
$('#add_thing_submit').bind('click',on_valid_add_thing_modal); |
646 | 678 |
$("#add_thing_modal").on('shown.bs.modal',on_show_add_thing_modal); |
647 | 679 |
$("#add_thing_modal").on('hidden.bs.modal',on_close_add_thing_modal); |
... | ... |
@@ -209,9 +209,12 @@ div.panel-heading, li.list-group-item, a { |
209 | 209 |
<h4 class="modal-title">Ajouter un élément</h4> |
210 | 210 |
</div> |
211 | 211 |
<div class="modal-body"> |
212 |
- <form class="form-horizontal" role="form"> |
|
212 |
+ <form role="form"> |
|
213 |
+ <div class="form-group"> |
|
214 |
+ <input type='text' class='form-control add_thing_label' class="form-control" placeholder="Nom de l'élément"/> |
|
215 |
+ </div> |
|
213 | 216 |
<div class="form-group"> |
214 |
- <input type='text' id='add_thing_label' class="form-control" placeholder="Nom de l'élément"/> |
|
217 |
+ <input type='text' class='form-control add_thing_label' class="form-control" placeholder="Un autre ?"/> |
|
215 | 218 |
</div> |
216 | 219 |
</form> |
217 | 220 |
</div> |
218 | 221 |