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 |