1ACC.consent = { 2 _autoload: [ 3 ["bindSendConsent", $("#consent-management-form").length != 0], 4 ["bindToggleConsentTemplateDescription", $("#consent-management-form").length != 0], 5 "bindConsentClick", 6 "bindConsentManagementAlertBar" 7 ], 8 9 bindSendConsent: function () 10 { 11 var consentCheckbox = $('#consent-management-form').find('input.toggle-button__input'); 12 13 consentCheckbox.click(function () 14 { 15 var consentId = $(this).prop('id'); 16 var isConsentGiven = $(this).is(':checked'); 17 var buttonId = (isConsentGiven ? '#give-consent-button-' : '#withdraw-consent-button-') + consentId; 18 var $consentBtn = $(document).find(buttonId); 19 $consentBtn.trigger('click'); 20 21 $consentBtn.on('keydown', function(event) { 22 if (event.keyCode === 13 || event.keyCode === 32) { 23 event.preventDefault(); 24 $consentBtn.trigger('click'); 25 } 26 }); 27 28 }); 29 }, 30 31 32 bindToggleConsentTemplateDescription: function () { 33 34 var accordion = $('#consent-management-form').find('[data-behavior="accordion"]'); 35 var expandedClass = 'is-expanded'; 36 37 $.each(accordion, function() { 38 39 var accordionItems = $(this).find('[data-binding="expand-accordion-item"]'); 40 41 $.each(accordionItems, function() { 42 var $this = $(this); 43 var triggerBtn = $this.find('[data-binding="expand-accordion-trigger"]'); 44 45 var setHeight = function(nV) { 46 47 var innerContent = nV.find('.consent-management-list__content-inner')[0], 48 maxHeight = $(innerContent).outerHeight(), 49 content = nV.find('.consent-management-list__content')[0]; 50 51 if (!content.style.height || content.style.height === '0px') { 52 $(content).css('height', maxHeight); 53 } else { 54 $(content).css('height', '0px'); 55 } 56 }; 57 58 var toggleClasses = function(event) { 59 var clickedItem = event.currentTarget; 60 var currentItem = $(clickedItem).parent(); 61 var clickedContent = $(currentItem).find('.consent-management-list__content') 62 $(currentItem).toggleClass(expandedClass); 63 setHeight(currentItem); 64 65 if ($(currentItem).hasClass('is-expanded')) { 66 $(clickedItem).attr('aria-selected', 'true'); 67 $(clickedItem).attr('aria-expanded', 'true'); 68 $(clickedContent).attr('aria-hidden', 'false'); 69 70 } else { 71 $(clickedItem).attr('aria-selected', 'false'); 72 $(clickedItem).attr('aria-expanded', 'false'); 73 $(clickedContent).attr('aria-hidden', 'true'); 74 } 75 } 76 77 triggerBtn.on('click', function(event) { 78 event.preventDefault(); 79 toggleClasses(event); 80 }); 81 82 // keyboard navigation 83 $(triggerBtn).on('keydown', function(event) { 84 if (event.keyCode === 13 || event.keyCode === 32) { 85 event.preventDefault(); 86 toggleClasses(event); 87 } 88 }); 89 }); 90 91 }); 92 93 }, 94 95 bindConsentClick:function(){ 96 $('.consent-accept').on("click",function(){ 97 ACC.consent.changeConsentState(this, "GIVEN"); 98 }); 99 $('.consent-reject').on("click",function(){ 100 ACC.consent.changeConsentState(this, "WITHDRAWN"); 101 }); 102 }, 103 104 changeConsentState:function(element, consentState){ 105 var consentCode = ($(element).closest('.consentmanagement-bar').data('code')); 106 $.ajax({ 107 url: ACC.config.encodedContextPath+"/anonymous-consent/"+encodeURIComponent(consentCode)+"?consentState="+encodeURIComponent(consentState), 108 type: 'POST', 109 success: function () { 110 $(element).closest('.consentmanagement-bar').hide(); 111 } 112 }); 113 }, 114 115 bindConsentManagementAlertBar: function () { 116 117 //accordion behaviour 118 var accordion = $('#consent-management-alert').find('[data-behavior="accordion"]'); 119 var expandedClass = 'is-expanded'; 120 121 $.each(accordion, function() { 122 123 var accordionItems = $(this).find('[data-binding="expand-accordion-item"]'); 124 125 $.each(accordionItems, function() { 126 var $this = $(this); 127 var triggerBtn = $this.find('[data-binding="expand-accordion-trigger"]'); 128 129 var setHeight = function(nV) { 130 131 var innerContent = nV.find('.consent-management-list__content-inner')[0], 132 maxHeight = $(innerContent).outerHeight(), 133 content = nV.find('.consent-management-list__content')[0]; 134 135 if (!content.style.height || content.style.height === '0px') { 136 $(content).css('height', maxHeight); 137 } else { 138 $(content).css('height', '0px'); 139 } 140 }; 141 142 var toggleClasses = function(event) { 143 var clickedItem = event.currentTarget; 144 var currentItem = $(clickedItem).parent(); 145 var clickedContent = $(currentItem).find('.consent-management-list__content') 146 $(currentItem).toggleClass(expandedClass); 147 setHeight(currentItem); 148 149 if ($(currentItem).hasClass('is-expanded')) { 150 $(clickedItem).attr('aria-selected', 'true'); 151 $(clickedItem).attr('aria-expanded', 'true'); 152 $(clickedContent).attr('aria-hidden', 'false'); 153 154 } else { 155 $(clickedItem).attr('aria-selected', 'false'); 156 $(clickedItem).attr('aria-expanded', 'false'); 157 $(clickedContent).attr('aria-hidden', 'true'); 158 } 159 } 160 161 triggerBtn.on('click', function(event) { 162 event.preventDefault(); 163 toggleClasses(event); 164 }); 165 166 // keyboard navigation 167 $(triggerBtn).on('keydown', function(event) { 168 if (event.keyCode === 13 || event.keyCode === 32) { 169 event.preventDefault(); 170 toggleClasses(event); 171 } 172 }); 173 }); 174 175 }); 176 177 } 178 179 180 181}; 182 183 184 185
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.