settings.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. ( function( $ ) {
  2. FLBuilder.registerModuleHelper( 'subscribe-form', {
  3. rules: {
  4. btn_text: {
  5. required: true
  6. },
  7. btn_font_size: {
  8. required: true,
  9. number: true
  10. },
  11. btn_padding: {
  12. required: true,
  13. number: true
  14. },
  15. service: {
  16. required: true
  17. }
  18. },
  19. init: function()
  20. {
  21. var form = $( '.fl-builder-settings' ),
  22. action = form.find( 'select[name=success_action]' );
  23. this._actionChanged();
  24. action.on( 'change', this._actionChanged );
  25. },
  26. submit: function()
  27. {
  28. var form = $( '.fl-builder-settings' ),
  29. service = form.find( '.fl-builder-service-select' ),
  30. serviceVal = service.val(),
  31. account = form.find( '.fl-builder-service-account-select' ),
  32. list = form.find( '.fl-builder-service-list-select' );
  33. if ( 0 === account.length ) {
  34. FLBuilder.alert( FLBuilderStrings.subscriptionModuleConnectError );
  35. return false;
  36. } else if ( '' == account.val() || 'add_new_account' == account.val() ) {
  37. FLBuilder.alert( FLBuilderStrings.subscriptionModuleAccountError );
  38. return false;
  39. } else if ( ( 0 === list.length || '' == list.val() ) && 'email-address' != serviceVal && 'sendy' != serviceVal ) {
  40. if ( 'drip' == serviceVal || 'hatchbuck' == serviceVal ) {
  41. FLBuilder.alert( FLBuilderStrings.subscriptionModuleTagsError );
  42. } else {
  43. FLBuilder.alert( FLBuilderStrings.subscriptionModuleListError );
  44. }
  45. return false;
  46. }
  47. return true;
  48. },
  49. _actionChanged: function()
  50. {
  51. var form = $( '.fl-builder-settings' ),
  52. action = form.find( 'select[name=success_action]' ).val(),
  53. url = form.find( 'input[name=success_url]' );
  54. url.rules( 'remove' );
  55. if ( 'redirect' == action ) {
  56. url.rules( 'add', { required: true } );
  57. }
  58. }
  59. });
  60. })(jQuery);