settings.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. (function($){
  2. FLBuilder.registerModuleHelper('callout', {
  3. rules: {
  4. title: {
  5. required: true
  6. }
  7. },
  8. init: function()
  9. {
  10. var form = $( '.fl-builder-settings' ),
  11. imageType = form.find( 'select[name=image_type]' ),
  12. ctaType = form.find( 'select[name=cta_type]' ),
  13. titleSize = form.find( 'select[name=title_size]' ),
  14. align = form.find( 'select[name=align]' );
  15. // Init validation events.
  16. this._imageTypeChanged();
  17. this._ctaTypeChanged();
  18. this._titleSizeChanged();
  19. // Validation events.
  20. imageType.on( 'change', this._imageTypeChanged );
  21. ctaType.on( 'change', this._ctaTypeChanged );
  22. titleSize.on( 'change', this._titleSizeChanged );
  23. // Preview events.
  24. align.on( 'change', this._previewAlign );
  25. },
  26. _imageTypeChanged: function()
  27. {
  28. var form = $( '.fl-builder-settings' ),
  29. imageType = form.find( 'select[name=image_type]' ).val(),
  30. photo = form.find( 'input[name=photo]' ),
  31. icon = form.find( 'input[name=icon]' );
  32. photo.rules( 'remove' );
  33. icon.rules( 'remove' );
  34. if (imageType == 'photo') {
  35. photo.rules( 'add', { required: true } );
  36. } else if (imageType == 'icon') {
  37. icon.rules( 'add', { required: true } );
  38. }
  39. },
  40. _ctaTypeChanged: function()
  41. {
  42. var form = $( '.fl-builder-settings' ),
  43. ctaType = form.find( 'select[name=cta_type]' ).val(),
  44. ctaText = form.find( 'input[name=cta_text]' );
  45. ctaText.rules( 'remove' );
  46. if (ctaType != 'none') {
  47. ctaText.rules('add', {
  48. required: true
  49. });
  50. }
  51. },
  52. _titleSizeChanged: function()
  53. {
  54. var form = $( '.fl-builder-settings' ),
  55. titleSize = form.find( 'select[name=title_size]' ).val(),
  56. customSize = form.find( 'input[name=title_custom_size]' );
  57. customSize.rules( 'remove' );
  58. if (titleSize == 'custom') {
  59. customSize.rules('add', {
  60. number: true,
  61. required: true
  62. });
  63. }
  64. },
  65. _previewAlign: function()
  66. {
  67. var form = $( '.fl-builder-settings' ),
  68. align = form.find( 'select[name=align]' ).val(),
  69. wrap = FLBuilder.preview.elements.node.find( '.fl-callout' );
  70. wrap.removeClass( 'fl-callout-left' );
  71. wrap.removeClass( 'fl-callout-center' );
  72. wrap.removeClass( 'fl-callout-right' );
  73. wrap.addClass( 'fl-callout-' + align );
  74. }
  75. });
  76. })(jQuery);