github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/doc/themes/docsy/layouts/partials/feedback.html (about)

     1  <style>
     2    .feedback--answer {
     3      display: inline-block;
     4    }
     5    .feedback--answer-no {
     6      margin-left: 1em;
     7    }
     8    .feedback--response {
     9      display: none;
    10      margin-top: 1em;
    11    }
    12    .feedback--response__visible {
    13      display: block;
    14    }
    15  </style>
    16  <div class="d-print-none">
    17  <h2 class="feedback--title">Feedback</h2>
    18  <p class="feedback--question">Was this page helpful?</p>
    19  <button class="btn btn-primary mb-4 feedback--answer feedback--answer-yes">Yes</button>
    20  <button class="btn btn-primary mb-4 feedback--answer feedback--answer-no">No</button>
    21  <p class="feedback--response feedback--response-yes">
    22    {{ .yes | safeHTML }}
    23  </p>
    24  <p class="feedback--response feedback--response-no">
    25    {{ .no | safeHTML }}
    26  </p>
    27  </div>
    28  <script>
    29    const yesButton = document.querySelector('.feedback--answer-yes');
    30    const noButton = document.querySelector('.feedback--answer-no');
    31    const yesResponse = document.querySelector('.feedback--response-yes');
    32    const noResponse = document.querySelector('.feedback--response-no');
    33    const disableButtons = () => {
    34      yesButton.disabled = true;
    35      noButton.disabled = true;
    36    };
    37    const sendFeedback = (value) => {
    38      if (typeof ga !== 'function') return;
    39      const args = {
    40        command: 'send',
    41        hitType: 'event',
    42        category: 'Helpful',
    43        action: 'click',
    44        label: window.location.pathname,
    45        value: value
    46      };
    47      ga(args.command, args.hitType, args.category, args.action, args.label, args.value);
    48    };
    49    yesButton.addEventListener('click', () => {
    50      yesResponse.classList.add('feedback--response__visible');
    51      disableButtons();
    52      sendFeedback(1);
    53    });
    54    noButton.addEventListener('click', () => {
    55      noResponse.classList.add('feedback--response__visible');
    56      disableButtons();
    57      sendFeedback(0);
    58    });
    59  </script>