Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

159 wiersze
6.0 KiB

  1. export class EventsUtils{
  2. static initEvents () {
  3. // event registration
  4. //TODO: entscheidung über dateicker treffen
  5. // $('.contact-form, .all-forms').find('.datepicker').datepicker({
  6. // dateFormat: 'dd.mm.yy',
  7. // changeYear: true,
  8. // yearRange: "-100:+0"
  9. // });
  10. // event search filter
  11. var $evSearchFilter = $('.ev-search-filter'),
  12. $extendBtn = $evSearchFilter.find('.extend'),
  13. $extendText = $extendBtn.find('a'),
  14. $extendedSearch = $evSearchFilter.find('.extended-search'),
  15. $searchBtn = $evSearchFilter.find('.btn-wrapper'),
  16. // variables for reset
  17. $inputTypeNumber = $evSearchFilter.find('input[type="number"]'),
  18. $inputTypeText = $evSearchFilter.find('input[type="text"]'),
  19. $inputTypeSelect = $evSearchFilter.find('select');
  20. $extendBtn.on('click', function (e) {
  21. e.preventDefault();
  22. $extendedSearch.fadeToggle(200).attr('aria-hidden', function (i, attr) {
  23. return (attr === "true") ? 'false' : 'true';
  24. });
  25. /* data-detail-search-label and data-simple-search-label
  26. in source/_patterns/02-organisms/13-event-search/00-event-search-main.mustache */
  27. if ($extendText.text() === $evSearchFilter.data("detail-search-label")) {
  28. $extendText.text($evSearchFilter.data("simple-search-label"));
  29. $('#nurKostenfreie').focus();
  30. } else if ($extendText.text() === $evSearchFilter.data("simple-search-label")) {
  31. $extendText.text($evSearchFilter.data("detail-search-label"));
  32. $extendBtn.focus();
  33. $('html, body').animate({
  34. scrollTop: ($("#ev-search-filter-form").offset().top - 200)
  35. }, 500);
  36. }
  37. $searchBtn.toggle();
  38. });
  39. // TODO: datepicker
  40. // $evSearchFilter.find('.datepicker').datepicker({dateFormat: 'dd.mm.yy', changeMonth: false,
  41. // changeYear: false});
  42. $evSearchFilter.on('click keydown', '.ev-search-btn, label.acc', function (e) {
  43. //if (!checkOnKeyDown(e)) return;
  44. $(this).toggleClass('active');
  45. if ($(e.target.parentElement).is('label')) {
  46. $(this).find('a').attr('aria-pressed', function (index, attr) {
  47. return (attr === "true") ? "false" : "true";
  48. }).parent().next('.ev-filter').attr('aria-hidden', function (index, attr) {
  49. return (attr === "true") ? "false" : "true";
  50. }).slideToggle(200);
  51. } else {
  52. $(this).attr('aria-pressed', function (index, attr) {
  53. return (attr === "true") ? "false" : "true";
  54. }).next('.ev-filter').attr('aria-hidden', function (index, attr) {
  55. return (attr === "true") ? "false" : "true";
  56. }).slideToggle(200);
  57. }
  58. $evSearchFilter.find('.extend');
  59. return false;
  60. });
  61. $evSearchFilter.on('click', '.reset', function (event) {
  62. event.preventDefault();
  63. const form = $(this).closest('form');
  64. form[0].reset();//.trigger('reset');
  65. form.find('.half-checked').removeClass('half-checked');
  66. $('html, body').animate({
  67. scrollTop: form.offset().top - 120
  68. //scrollTop: ($("#search-filter-form").offset().top - 80)
  69. }, 500);
  70. return;
  71. /*
  72. //Eingabefelder leeren
  73. $evSearchFilter.find('input:checkbox').removeAttr('checked');
  74. // todo: datepicker
  75. // $evSearchFilter.find('.datepicker').datepicker("setDate", "");
  76. $inputTypeNumber.val('');
  77. $inputTypeText.val('');
  78. $inputTypeSelect.val('');
  79. //Vorbelegungen wiederherstellen
  80. $inputTypeNumber.filter('[data-initialvalue]').each(function(){$(this).val($(this).attr('data-initialvalue'));});
  81. $inputTypeText.filter('[data-initialvalue]').each(function(){$(this).val($(this).attr('data-initialvalue'));});
  82. $inputTypeSelect.filter('[data-initialvalue]').each(function(){$(this).val($(this).attr('data-initialvalue'));});
  83. $('.ev-search-filter .ev-filter').attr("aria-hidden", "true").slideUp(200);
  84. $(".ev-search-filter .ev-search-btn, .ev-search-filter label.acc").attr("aria-pressed", "false").removeClass("active");
  85. $('html, body').animate({
  86. //scrollTop: ($("#search-filter-form").offset().top - 80)
  87. }, 500);
  88. */
  89. });
  90. var $abb;
  91. $evSearchFilter.on('click', 'input.acc', function () {
  92. $abb = $(this);
  93. $abb.nextAll('.ev-filter').find('input[type="checkbox"]').prop('checked', this.checked);
  94. });
  95. $evSearchFilter.on('click', 'input.abb', function(){
  96. $abb.prop('checked', false);
  97. });
  98. // more participants
  99. var $moreParticpants = $('.more-participants'),
  100. $formParticipants = $('.form-participants');
  101. $('#cf-participant').on('change', function (e) {
  102. $formParticipants.empty();
  103. var value = parseInt(e.target.value);
  104. if (value >= 1) {
  105. for (var i = 0; i < value; i++) {
  106. $moreParticpants.clone().each(function () {
  107. var $element = $(this);
  108. $element.find('input, select').each(function () {
  109. var $this = $(this);
  110. var id = $this.attr('id') + i;
  111. $this.attr('id', id);
  112. var name = $this.attr('name') + i;
  113. $this.attr('name', name);
  114. $this.closest('.input-wrapper').find('label').attr('for', id);
  115. });
  116. }).fadeIn(400).appendTo($formParticipants);
  117. }
  118. }
  119. });
  120. // billing information
  121. $('#cf-billing-address').on('change', function (e) {
  122. var value = parseInt(e.target.value),
  123. $billingAddress = $('.billing-address'),
  124. $billingInformation = $('.billing-information');
  125. if (value === 2) {
  126. $billingInformation.clone().fadeIn(400).appendTo($billingAddress);
  127. } else {
  128. $billingAddress.find('.billing-information').fadeOut(200, function () {
  129. $billingAddress.empty();
  130. });
  131. }
  132. });
  133. //msc: IHK-2653
  134. var expandedlist = $('[data-expanded-on-init="true"]');
  135. if (expandedlist && expandedlist.length > 0) {
  136. expandedlist.prev().toggleClass('active');
  137. expandedlist.toggle();
  138. }
  139. if($('[data-show-extended-search="true"]').length > 0) {
  140. $('.ev-search-filter').find('.extend').click();
  141. }
  142. };
  143. }