site/layouts/partials/feedback.html (61 lines of code) (raw):

<style> .feedback--answer { display: inline-block; } .feedback--answer-no { margin-left: 1em; } .feedback--response { display: none; margin-top: 1em; } .feedback--response__visible { display: block; } </style> <div class="card mt-4 col-12 col-sm-6"> <div class="card-body"> <h3 class="card-title">Feedback</h3> <p class="card-text">Was this page helpful?</p> <button class="btn btn-primary feedback--answer feedback--answer-yes" style="width: 5rem;">Yes</button> <button class="btn btn-primary feedback--answer feedback--answer-no" style="width: 5rem;">No</button> <p class="feedback--response feedback--response-yes"> {{ .yes | safeHTML }} </p> <p class="feedback--response feedback--response-no"> {{ .no | safeHTML }} </p> </div> </div> <script> const yesButton = document.querySelector('.feedback--answer-yes'); const noButton = document.querySelector('.feedback--answer-no'); const yesResponse = document.querySelector('.feedback--response-yes'); const noResponse = document.querySelector('.feedback--response-no'); const disableButtons = () => { yesButton.disabled = true; noButton.disabled = true; }; const sendFeedback = (value) => { if (typeof ga !== 'function') return; const args = { command: 'send', hitType: 'event', category: 'Helpful', action: 'click', label: window.location.pathname, value: value }; ga(args.command, args.hitType, args.category, args.action, args.label, args.value); }; yesButton.addEventListener('click', () => { yesResponse.classList.add('feedback--response__visible'); disableButtons(); sendFeedback(1); }); noButton.addEventListener('click', () => { noResponse.classList.add('feedback--response__visible'); disableButtons(); sendFeedback(0); }); </script>