Code Duplication    Length = 71-90 lines in 2 locations

skins/cat17/src/scripts/membershipForm.js 1 location

@@ 413-502 (lines=90) @@
410
    return invalidFields;
411
  }
412
413
  handleGroupValidations = function () {
414
    var state = store.getState();
415
416
    //1st Group Amount & Periodicity
417
    var memberType = $('.member-type'),
418
      amount = $('.amount'),
419
      paymentMethod = $('.payment-method'),
420
      donatorType = $('.donator-type');
421
422
    if (state.membershipFormContent.membershipType) {
423
      memberType.addClass('completed').removeClass('disabled invalid');
424
      donatorType.removeClass('disabled');
425
    }
426
427
    if (state.membershipFormContent.paymentIntervalInMonths >= 0) {
428
      amount.addClass('completed').removeClass('disabled invalid');
429
      paymentMethod.removeClass('disabled');
430
      if (state.membershipInputValidation.amount.dataEntered && !state.membershipInputValidation.amount.isValid) {
431
        amount.removeClass('completed').addClass('invalid');
432
        amount.find('.periodicity-icon').removeClass().addClass('periodicity-icon icon-error');
433
      }
434
    }
435
    else {
436
      paymentMethod.addClass('disabled');
437
    }
438
439
    if (state.membershipFormContent.paymentType) {
440
      paymentMethod.addClass('completed').removeClass('disabled invalid');
441
      if (
442
        (
443
        state.membershipFormContent.debitType == 'sepa' &&
444
        state.membershipInputValidation.iban.dataEntered && !state.membershipInputValidation.iban.isValid ||
445
        state.membershipInputValidation.bic.dataEntered && !state.membershipInputValidation.bic.isValid
446
        )
447
        ||
448
        (state.membershipFormContent.debitType == 'non-sepa' &&
449
        state.membershipInputValidation.bankCode.dataEntered && !state.membershipInputValidation.bankCode.isValid ||
450
        state.membershipInputValidation.accountNumber.dataEntered && !state.membershipInputValidation.accountNumber.isValid
451
        )
452
      ){
453
        paymentMethod.addClass('invalid');
454
        paymentMethod.find('.payment-icon').removeClass().addClass('payment-icon icon-error');
455
      }
456
      else {
457
        paymentMethod.removeClass('invalid');
458
      }
459
    }
460
    else {
461
      donatorType.addClass('disabled');
462
    }
463
464
    if (state.membershipFormContent.addressType) {
465
      donatorType.addClass('completed').removeClass('disabled invalid');
466
      var validators = state.membershipInputValidation;
467
      if (
468
        state.membershipFormContent.addressType == 'person' &&
469
        (
470
        (validators.email.dataEntered && !validators.email.isValid) ||
471
        (validators.city.dataEntered && !validators.city.isValid) ||
472
        (validators.firstName.dataEntered && !validators.firstName.isValid) ||
473
        (validators.lastName.dataEntered && !validators.lastName.isValid) ||
474
        (validators.street.dataEntered && !validators.street.isValid) ||
475
        (validators.postcode.dataEntered && !validators.postcode.isValid) ||
476
        (validators.salutation.dataEntered && !validators.salutation.isValid) ||
477
        (validators.firstName.dataEntered && !validators.firstName.isValid)
478
        )
479
        ||
480
        state.membershipFormContent.addressType == 'firma' &&
481
        (
482
        (validators.contactPerson.dataEntered && !validators.contactPerson.isValid) ||
483
        (validators.companyName.dataEntered && !validators.companyName.isValid) ||
484
        (validators.firstName.dataEntered && !validators.firstName.isValid) ||
485
        (validators.email.dataEntered && !validators.email.isValid) ||
486
        (validators.city.dataEntered && !validators.city.isValid) ||
487
        (validators.street.dataEntered && !validators.street.isValid) ||
488
        (validators.postcode.dataEntered && !validators.postcode.isValid)
489
        )){
490
        donatorType.addClass('invalid');
491
        donatorType.find('.payment-icon').removeClass().addClass('payment-icon icon-error');
492
      }
493
    }
494
495
496
    if (formDataIsValid()) {
497
      $('form input[type="submit"]').removeClass('btn-unactive');
498
    }
499
    else {
500
      $('form input[type="submit"]').addClass('btn-unactive');
501
    }
502
  };
503
  $('input').on('click, change', WMDE.StoreUpdates.makeEventHandlerWaitForAsyncFinish( handleGroupValidations, store ) );
504
  handleGroupValidations();
505

skins/cat17/src/scripts/donationForm.js 1 location

@@ 480-550 (lines=71) @@
477
    }
478
  };
479
480
  handleGroupValidations = function () {
481
    var state = store.getState();
482
483
    //1st Group Amount & Periodicity
484
    var amount = $('.amount'),
485
      paymentMethod = $('.payment-method'),
486
      donatorType = $('.donator-type');
487
488
    if (state.donationFormContent.paymentIntervalInMonths >= 0) {
489
      amount.addClass('completed').removeClass('disabled invalid');
490
      paymentMethod.removeClass('disabled');
491
      if (state.donationInputValidation.amount.dataEntered && !state.donationInputValidation.amount.isValid) {
492
        amount.removeClass('completed').addClass('invalid');
493
        amount.find('.periodicity-icon').removeClass().addClass('periodicity-icon icon-error');
494
      }
495
    }
496
    else {
497
      paymentMethod.addClass('disabled');
498
    }
499
500
    if (state.donationFormContent.paymentType) {
501
      paymentMethod.addClass('completed').removeClass('disabled invalid');
502
      donatorType.removeClass('disabled');
503
      if (state.donationInputValidation.paymentType.dataEntered && !state.donationInputValidation.paymentType.isValid) {
504
        paymentMethod.removeClass('completed').addClass('invalid');
505
        paymentMethod.find('.payment-icon').removeClass().addClass('payment-icon icon-error');
506
      }
507
    }
508
    else {
509
      donatorType.addClass('disabled');
510
    }
511
512
    if (state.donationFormContent.addressType) {
513
      donatorType.addClass('completed').removeClass('disabled invalid');
514
      var validators = state.donationInputValidation;
515
      if (
516
        state.donationFormContent.addressType == 'personal' &&
517
        (
518
          (validators.email.dataEntered && !validators.email.isValid) ||
519
          (validators.city.dataEntered && !validators.city.isValid) ||
520
          (validators.firstName.dataEntered && !validators.firstName.isValid) ||
521
          (validators.lastName.dataEntered && !validators.lastName.isValid) ||
522
          (validators.street.dataEntered && !validators.street.isValid) ||
523
          (validators.postcode.dataEntered && !validators.postcode.isValid) ||
524
          (validators.salutation.dataEntered && !validators.salutation.isValid) ||
525
          (validators.firstName.dataEntered && !validators.firstName.isValid)
526
        )
527
        ||
528
        state.donationFormContent.addressType == 'firma' &&
529
        (
530
          (validators.contactPerson.dataEntered && !validators.contactPerson.isValid) ||
531
          (validators.companyName.dataEntered && !validators.companyName.isValid) ||
532
          (validators.firstName.dataEntered && !validators.firstName.isValid) ||
533
          (validators.email.dataEntered && !validators.email.isValid) ||
534
          (validators.city.dataEntered && !validators.city.isValid) ||
535
          (validators.street.dataEntered && !validators.street.isValid) ||
536
          (validators.postcode.dataEntered && !validators.postcode.isValid)
537
        )){
538
        donatorType.removeClass('completed').addClass('invalid');
539
        donatorType.find('.payment-icon').removeClass().addClass('payment-icon icon-error');
540
      }
541
    }
542
543
544
    if (formDataIsValid()) {
545
      $('form input[type="submit"]').removeClass('btn-unactive');
546
    }
547
    else {
548
      $('form input[type="submit"]').addClass('btn-unactive');
549
    }
550
  };
551
552
  // connect DOM elements to actions
553
  //$( '#continueFormSubmit1' ).click( WMDE.StoreUpdates.makeEventHandlerWaitForAsyncFinish( handlePaymentDataSubmit, store ) );