Changeset 92f6976 in Klonkt for src/views/pages


Ignore:
Timestamp:
06/27/2026 08:00:10 AM (2 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
b7d4458
Parents:
837fc9c
Message:

feat(settings): 18+ notice + confirm when activating Circles (fediverse)

The fediverse is an open 18+ network. A note under the Circles mode option and a
confirm dialog when switching Solo→Circles. i18n NL/EN/DE.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/views/pages/admin-settings.ejs

    r837fc9c r92f6976  
    1010    <h2><%= t('aset.mode') %></h2>
    1111    <p class="set-help"><%= t('aset.mode_help') %></p>
    12     <form method="post" action="/admin/settings/ap" class="set-form">
     12    <form method="post" action="/admin/settings/ap" class="set-form" id="mode-form"
     13          data-was-cirkels="<%= (typeof apEnabledSetting === 'undefined' || apEnabledSetting) ? '1' : '0' %>"
     14          data-confirm="<%= t('aset.mode_18plus_confirm') %>">
    1315      <label class="set-opt">
    1416        <input type="radio" name="mode" value="solo" <%= (typeof apEnabledSetting !== 'undefined' && !apEnabledSetting) ? 'checked' : '' %>>
     
    1921        <span><strong><%= t('aset.mode_cirkels') %></strong><small><%= t('aset.mode_cirkels_help') %></small></span>
    2022      </label>
     23      <p class="set-help" style="margin:.2rem 0 0;color:var(--accent);font-weight:600">🔞 <%= t('aset.mode_18plus') %></p>
    2124      <div class="set-actions"><button type="submit" class="btn btn-primary"><%= t('aset.save') %></button></div>
    2225    </form>
     26    <script>
     27    (function () {
     28      var f = document.getElementById('mode-form');
     29      if (!f || f.__age18wired) return; f.__age18wired = true;
     30      f.addEventListener('submit', function (e) {
     31        var sel = f.querySelector('input[name=mode]:checked');
     32        if (sel && sel.value === 'cirkels' && f.getAttribute('data-was-cirkels') === '0') {
     33          if (!window.confirm(f.getAttribute('data-confirm'))) e.preventDefault();
     34        }
     35      });
     36    })();
     37    </script>
    2338  </section>
    2439
Note: See TracChangeset for help on using the changeset viewer.