persist post options fieldset state

This commit is contained in:
rimu 2025-01-04 10:17:25 +13:00
parent 956229c7da
commit 92dffa8535
5 changed files with 25 additions and 5 deletions

View file

@ -44,8 +44,10 @@
function doToggle(fieldset, setting) {
if (fieldset.classList.contains('collapsed')) {
showFieldsetContent(fieldset, setting);
setCookie(`fieldset_${fieldset.id}_state`, 'expanded', 365);
} else if (fieldset.classList.contains('expanded')) {
hideFieldsetContent(fieldset, setting);
setCookie(`fieldset_${fieldset.id}_state`, 'collapsed', 365);
}
}
@ -73,5 +75,6 @@
// coolfieldset('.coolfieldset', { collapsed: true, animation: true, speed: 'slow' });
document.addEventListener('DOMContentLoaded', function () {
coolfieldset('.coolfieldset', { collapsed: true, animation: true, speed: 'slow' });
coolfieldset('.coolfieldset.collapsed', { collapsed: true, animation: true, speed: 'slow' });
coolfieldset('.coolfieldset:not(.collapsed)', { collapsed: false, animation: true, speed: 'slow' });
});

View file

@ -806,6 +806,23 @@ function getCookie(name) {
return null;
}
function setCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
} else {
expires = "";
}
document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/";
}
function eraseCookie(name) {
setCookie(name, "", -1);
}
/* register a service worker */
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {

View file

@ -6,7 +6,7 @@
{% from 'bootstrap/form.html' import render_form %}
{% block app_content %}
<script src="/static/js/coolfieldset.js"></script>
<script src="/static/js/coolfieldset.js?v=2"></script>
<div class="row">
<div class="col-12 col-md-8 position-relative add_reply main_pane">
<fieldset class="coolfieldset mt-4"><legend class="w-auto">Original post</legend>

View file

@ -6,7 +6,7 @@
{% from 'bootstrap/form.html' import render_form, render_field %}
{% block app_content %}
<script src="/static/js/coolfieldset.js"></script>
<script src="/static/js/coolfieldset.js?v=2"></script>
<div class="row">
<div class="col-12 col-md-8 position-relative main_pane">
{% block title %}<h1>{{ _('Edit post') }}</h1>{% endblock %}
@ -116,7 +116,7 @@
{{ render_field(form.tags) }}
<small class="field_hint">{{ _('Separate each tag with a comma.') }}</small>
<fieldset class="mt-4 mb-4 coolfieldset collapsed">
<fieldset id="post_more_options" class="mt-4 mb-4 coolfieldset {{ 'collapsed' if request.cookies.get('fieldset_post_more_options_state') == 'collapsed' }}">
<legend class="w-auto">{{ _('More options') }}</legend>
{{ render_field(form.notify_author) }}
{{ render_field(form.sticky) }}

View file

@ -6,7 +6,7 @@
{% from 'bootstrap/form.html' import render_form %}
{% block app_content %}
<script src="/static/js/coolfieldset.js"></script>
<script src="/static/js/coolfieldset.js?v=2"></script>
<div class="row">
<div class="col-12 col-md-8 position-relative add_reply main_pane">
<fieldset class="coolfieldset mt-4"><legend class="w-auto">Original post</legend>