@@ -58,7 +58,6 @@ function panel_title(srcname, param) {
58
58
}
59
59
60
60
( function ( $ ) {
61
-
62
61
$ ( document ) . ready ( commonReady ) ;
63
62
var desktop_panel_counter = 1 ;
64
63
@@ -411,7 +410,160 @@ function panel_title(srcname, param) {
411
410
return ( cssClass ) ;
412
411
}
413
412
413
+ function current_instrument_form_set_bootstrapValidator ( ) {
414
+
415
+ var validator_fields = {
416
+ 'scw_list' : {
417
+ // enabled: false,
418
+ validators : {
419
+ callback : {
420
+ callback : function ( value , validator , $field ) {
421
+ return ( validate_scws ( value , 500 ) ) ;
422
+ }
423
+ }
424
+ }
425
+ }
426
+ } ;
427
+ validator_fields [ 'time_bin' ] = {
428
+ // enabled: false,
429
+ validators : {
430
+ callback : {
431
+ callback : function ( value , validator , $field ) {
432
+ return ( validate_timebin ( value , validator , $field ) ) ;
433
+ }
434
+ }
435
+ }
436
+ } ;
437
+
438
+ validator_fields [ 'E1_keV' ] = {
439
+ // enabled: false,
440
+ validators : {
441
+ notEmpty : {
442
+ message : 'Please enter a value'
443
+ } ,
444
+ callback : {
445
+ callback : function ( value , validator , $field ) {
446
+ var E2_keV = validator . getFieldElements ( 'E2_keV' ) . val ( ) ;
447
+ if ( Number ( value ) >= Number ( E2_keV ) ) {
448
+ return {
449
+ valid : false ,
450
+ message : 'Energy min must be lower that energy max'
451
+ }
452
+ }
453
+ return true ;
454
+ }
455
+ }
456
+ }
457
+ } ;
458
+ validator_fields [ 'E2_keV' ] = {
459
+ // enabled: false,
460
+ validators : {
461
+ notEmpty : {
462
+ message : 'Please enter a value'
463
+ } ,
464
+ callback : {
465
+ callback : function ( value , validator , $field ) {
466
+ var E1_keV = validator . getFieldElements ( 'E1_keV' ) . val ( ) ;
467
+ if ( Number ( value ) <= Number ( E1_keV ) ) {
468
+ return {
469
+ valid : false ,
470
+ message : 'Energy max must be higher that energy min'
471
+ }
472
+ }
473
+ return true ;
474
+ }
475
+ }
476
+ }
477
+ } ;
478
+ validator_fields [ 'filters[filter][]' ] = {
479
+ // enabled: false,
480
+ validators : {
481
+ notEmpty : {
482
+ message : 'Please select filter'
483
+ }
484
+ }
485
+ } ;
486
+ validator_fields [ 'filters[flux][]' ] = {
487
+ // enabled: false,
488
+ validators : {
489
+ notEmpty : {
490
+ message : 'Please enter a value'
491
+ }
492
+ }
493
+ } ;
494
+
495
+ validator_fields [ 'filters[flux_error][]' ] = {
496
+ // enabled: false,
497
+ validators : {
498
+ notEmpty : {
499
+ message : 'Please enter a value'
500
+ }
501
+ }
502
+ } ;
503
+ $ ( '.instrument-panel form' ) . bootstrapValidator ( 'destroy' ) ;
504
+
505
+ current_instrument_form_validator = $ ( '.instrument-panel form' ) . bootstrapValidator ( {
506
+ // live :'disabled',
507
+ fields : validator_fields ,
508
+ feedbackIcons : {
509
+ valid : 'glyphicon glyphicon-ok' ,
510
+ invalid : 'glyphicon glyphicon-remove' ,
511
+ validating : 'glyphicon glyphicon-refresh'
512
+ }
513
+ } ) . data ( 'bootstrapValidator' ) ;
514
+ }
515
+
516
+ function insert_new_multivalued_field ( add_multivalued_button ) {
517
+ var multivalued_field = $ ( add_multivalued_button ) . closest ( '.multivalued-field' ) ;
518
+ var current_row = $ ( add_multivalued_button ) . prev ( ) ;
519
+ var newVAlue = current_row . clone ( ) ;
520
+ $ ( 'input, select, textarea' , newVAlue ) . val ( '' ) ;
521
+ current_row . after ( newVAlue ) ;
522
+ $ ( 'button' , multivalued_field ) . prop ( 'disabled' , false ) ;
523
+ $ ( 'input, select, textarea' , newVAlue ) . each ( function ( ) {
524
+ current_instrument_form_validator . addField ( $ ( this ) ) ;
525
+ } ) ;
526
+ newVAlue . show ( ) ;
527
+ }
528
+
529
+ function delete_multivalued_field ( delete_multivalued_button ) {
530
+ multivalued_field = $ ( delete_multivalued_button ) . closest ( '.multivalued-field' ) ;
531
+ var current_row = $ ( delete_multivalued_button ) . parent ( ) ;
532
+ current_row . remove ( ) ;
533
+ var nb_rows = $ ( '.multivalued-value' , multivalued_field ) . length ;
534
+ if ( nb_rows == 1 ) $ ( 'button.delete-multivalued-element' , multivalued_field ) . prop ( 'disabled' , true )
535
+ }
536
+
537
+
414
538
function commonReady ( ) {
539
+ $ ( '.multivalued-field' ) . removeClass ( 'form-group' ) ;
540
+
541
+ current_instrument_form_set_bootstrapValidator ( ) ;
542
+ var add_multivalued_elt_button = $ ( '<button>' ) . addClass ( 'btn btn-secondary add-multivalued-element' ) . append ( $ ( '<span>' ) . addClass ( 'glyphicon glyphicon-plus' ) ) ;
543
+ var del_multivalued_elt_button = $ ( '<button>' ) . addClass ( 'btn btn-secondary delete-multivalued-element' ) . append ( $ ( '<span>' ) . addClass ( 'glyphicon glyphicon-minus' ) ) ;
544
+ $ ( '.multivalued-field' ) . append ( add_multivalued_elt_button ) ;
545
+ $ ( '.multivalued-field .multivalued-value' ) . append ( del_multivalued_elt_button ) ;
546
+ $ ( 'button' , '.multivalued-field .multivalued-value' ) . prop ( 'disabled' , true ) ;
547
+
548
+ $ ( '.multivalued-field .multivalued-value' ) . each ( function ( ) {
549
+ var multivalued_field = $ ( this ) . closest ( '.multivalued-field' ) ;
550
+ var labels = $ ( this ) . clone ( ) ;
551
+ labels . find ( 'input, select, textarea, button' ) . remove ( ) ;
552
+ labels . removeClass ( 'multivalued-value' ) ;
553
+ $ ( this ) . find ( 'label' ) . remove ( ) ;
554
+ multivalued_field . find ( 'label:first' ) . after ( labels ) ;
555
+ } )
556
+
557
+ $ ( '.multivalued-field' ) . on ( 'click' , '.add-multivalued-element' , function ( e ) {
558
+ // Prevent form submission
559
+ e . preventDefault ( ) ;
560
+ insert_new_multivalued_field ( this ) ;
561
+ } ) ;
562
+ $ ( '.multivalued-field' ) . on ( 'click' , '.delete-multivalued-element' , function ( e ) {
563
+ // Prevent form submission
564
+ e . preventDefault ( ) ;
565
+ delete_multivalued_field ( this ) ;
566
+ } ) ;
415
567
416
568
$ ( 'body' ) . on ( 'click' , '#ldialog .close-button' , function ( ) {
417
569
if ( requestTimer !== null ) {
@@ -425,8 +577,7 @@ function panel_title(srcname, param) {
425
577
426
578
if ( typeof mmoda_ajax_jqxhr [ $ ( this ) . data ( 'mmoda_jqxhr_index' ) ] !== 'undefined' )
427
579
mmoda_ajax_jqxhr [ $ ( this ) . data ( 'mmoda_jqxhr_index' ) ] . abort ( ) ;
428
- if ( $ ( this ) . data ( "mmoda_gallery_close" ) == 1 )
429
- $ ( '#mmoda-gallery-panel' ) . data ( "mmoda_gallery_close" , 1 ) ;
580
+ if ( $ ( this ) . data ( "mmoda_gallery_close" ) == 1 ) $ ( '#mmoda-gallery-panel' ) . data ( "mmoda_gallery_close" , 1 ) ;
430
581
431
582
$ ( this ) . removeData ( 'mmoda_gallery_close' ) ;
432
583
$ ( this ) . removeData ( 'mmoda_jqxhr_index' ) ;
@@ -860,70 +1011,6 @@ function panel_title(srcname, param) {
860
1011
// Create validator and validate a frist time :
861
1012
// This is important in Firefox when the page is refreshed
862
1013
// where indeed the old values are still in the form
863
- current_instrument_form_validator = $ ( '.instrument-panel form' ) . bootstrapValidator ( {
864
- // live :'disabled',
865
- fields : {
866
- 'scw_list' : {
867
- // enabled: false,
868
- validators : {
869
- callback : {
870
- callback : function ( value , validator , $field ) {
871
- return ( validate_scws ( value , 500 ) ) ;
872
- }
873
- }
874
- }
875
- } ,
876
- 'time_bin' : {
877
- // enabled: false,
878
- validators : {
879
- callback : {
880
- callback : function ( value , validator , $field ) {
881
- return ( validate_timebin ( value , validator , $field ) ) ;
882
- }
883
- }
884
- }
885
- } ,
886
- 'E1_keV' : {
887
- // enabled: false,
888
- validators : {
889
- callback : {
890
- callback : function ( value , validator , $field ) {
891
- var E2_keV = validator . getFieldElements ( 'E2_keV' ) . val ( ) ;
892
- if ( Number ( value ) >= Number ( E2_keV ) ) {
893
- return {
894
- valid : false ,
895
- message : 'Energy min must be lower that energy max'
896
- }
897
- }
898
- return true ;
899
- }
900
- }
901
- }
902
- } ,
903
- 'E2_keV' : {
904
- // enabled: false,
905
- validators : {
906
- callback : {
907
- callback : function ( value , validator , $field ) {
908
- var E1_keV = validator . getFieldElements ( 'E1_keV' ) . val ( ) ;
909
- if ( Number ( value ) <= Number ( E1_keV ) ) {
910
- return {
911
- valid : false ,
912
- message : 'Energy max must be higher that energy min'
913
- }
914
- }
915
- return true ;
916
- }
917
- }
918
- }
919
- } ,
920
- } ,
921
- feedbackIcons : {
922
- valid : 'glyphicon glyphicon-ok' ,
923
- invalid : 'glyphicon glyphicon-remove' ,
924
- validating : 'glyphicon glyphicon-refresh'
925
- }
926
- } ) . data ( 'bootstrapValidator' ) ; // .validate();
927
1014
928
1015
$ ( '[name^=time_bin_format]' , '.instrument-params-panel form' ) . on ( 'change' , function ( ) {
929
1016
var form = $ ( this ) . parents ( 'form' ) ;
@@ -1195,6 +1282,7 @@ function panel_title(srcname, param) {
1195
1282
if ( ! common_form_validator . isValidField ( $ ( this ) . attr ( 'name' ) ) )
1196
1283
both_forms_valid = false ;
1197
1284
} ) ;
1285
+
1198
1286
if ( both_forms_valid ) {
1199
1287
$ ( 'input, textarea, select' , 'form.' + request_parameters . instrument + '-form' ) . each ( function ( ) {
1200
1288
current_instrument_form_validator . validateField ( $ ( this ) . attr ( 'name' ) ) ;
0 commit comments