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 |