Update Terms of Use Modal and fix message flashing.

This commit is contained in:
Patrick Jentsch
2025-06-03 13:51:28 +02:00
parent c28d534942
commit 56844e0898
8 changed files with 53 additions and 28 deletions

View File

@ -19,12 +19,10 @@
</div>
<div class="modal-footer">
{% if current_user.is_authenticated %}
{% if current_user.terms_of_use_accepted %}
<a href="#!" class="btn-flat waves-effect waves-light modal-close">Close</a>
{% if current_user.is_authenticated and not current_user.terms_of_use_accepted %}
<a href="#!" class="btn waves-effect waves-light modal-close" id="terms-of-use-modal-accept-button">Accept</a>
{% else %}
<a href="#!" class="btn waves-effect waves-light modal-close">Accept</a>
{% endif %}
<a href="#!" class="btn-flat waves-effect waves-light modal-close">Close</a>
{% endif %}
</div>
</div>

View File

@ -13,6 +13,7 @@
'js/app/endpoints/index.js',
'js/app/endpoints/corpora.js',
'js/app/endpoints/jobs.js',
'js/app/endpoints/main.js',
'js/app/endpoints/settings.js',
'js/app/endpoints/users.js',
'js/app/extensions/index.js',
@ -102,6 +103,16 @@
}
{% if not current_user.terms_of_use_accepted %}
const termsOfUseAcceptButtonElement = document.querySelector('#terms-of-use-modal-accept-button');
termsOfUseAcceptButtonElement.addEventListener('click', async () => {
try {
await app.main.acceptTermsOfUse();
app.ui.flash('Terms of use accepted.');
} catch (error) {
app.ui.flash('Failed to accept terms of use.', 'error');
}
});
const termsOfUseModalElement = document.querySelector('#terms-of-use-modal');
const termsOfUseModal = M.Modal.getInstance(termsOfUseModalElement);
@ -109,10 +120,10 @@
{% endif %}
{% endif %}
const flashedMessages = {{ get_flashed_messages()|tojson }};
const flashedMessages = {{ get_flashed_messages(with_categories=true)|tojson }};
for (let [category, message] of flashedMessages) {
app.ui.flash(message, message);
app.ui.flash(message, category);
}
}