Add JS enhancement to thread page: expand/collapse all CWs

This commit is contained in:
Jason McBrayer 2018-08-23 11:19:32 -04:00
parent b636b39641
commit f73cadee90
1 changed files with 49 additions and 15 deletions

View File

@ -2,20 +2,22 @@
{% load humanize %} {% load humanize %}
{% block title %} {% block title %}
Brutaldon ({{ own_acct.username }}) - thread Brutaldon ({{ own_acct.username }}) - thread
{% endblock %} {% endblock %}
{% comment %} {% comment %}
mastodon.status_context(<numerical id>) mastodon.status_context(<numerical id>)
# Returns the following dictionary: # Returns the following dictionary:
{ {
'ancestors': # A list of toot dicts 'ancestors': # A list of toot dicts
'descendants': # A list of toot dicts 'descendants': # A list of toot dicts
} }
{% endcomment %} {% endcomment %}
{% block content %} {% block content %}
<h1 class="title">Thread</h1> <h1 id="title" class="title">
Thread
</h1>
{% for ancestor in context.ancestors %} {% for ancestor in context.ancestors %}
{% include "main/toot_partial.html" with toot=ancestor %} {% include "main/toot_partial.html" with toot=ancestor %}
<hr class="is-hidden"> <hr class="is-hidden">
@ -28,4 +30,36 @@ mastodon.status_context(<numerical id>)
{% endfor %} {% endfor %}
{% endblock %} {% endblock %}
{% block page_scripts_inline %}
<script type="application/javascript">
document.addEventListener('DOMContentLoaded', function () {
var theButton = document.createElement('p');
theButton.textContent = "Expand CWs";
theButton.classList.toggle('button');
document.querySelector('#title').insertAdjacentElement('afterend', theButton);
var details = document.querySelectorAll('details');
var openState = false;
if (details != null) {
theButton.addEventListener('click', function() {
openState = details.item(0).hasAttribute('open');
details.forEach(function ($el) {
if (openState)
{
$el.removeAttribute('open');
} else
{
$el.setAttribute('open', '');
}
});
openState = !openState;
if (openState) { theButton.textContent = 'Collapse CWs'; }
else { theButton.textContent = "Expand CWs"; };
theButton.classList.toggle('is-active');
});
};
});
</script>
{% endblock %}