Make blue info bubble dismissible, configurable (#526)

Infobubble text is now in a separate file, along with a timestamp
in the main file, so that changes to it don't result in merge
conflicts too often.

We also add some JS to make the bubble dismissible, keeping track
of the last timestamp that was dismissed in localstorage.

A timestamp of 0 disables the infobubble altogether.
This commit is contained in:
Nicolas F 2019-04-09 04:50:30 +02:00 committed by Arylide
parent 7de7147743
commit 38f8880966
4 changed files with 28 additions and 4 deletions

View File

@ -260,6 +260,16 @@ document.addEventListener("DOMContentLoaded", function() {
}
});
// Info bubble stuff
document.addEventListener("DOMContentLoaded", function() {
var bubble = document.getElementById('infobubble');
if (Number(localStorage.getItem('infobubble_dismiss_ts')) < Number(bubble.dataset.ts)) {
bubble.removeAttribute('hidden');
}
$('#infobubble').on('close.bs.alert', function () {
localStorage.setItem('infobubble_dismiss_ts', bubble.dataset.ts);
})
});
// Decode HTML entities (&gt; etc), used for decoding comment markdown from escaped text
function htmlDecode(input){

View File

@ -12,10 +12,7 @@
{% block body %}
{% if not search.term %}
<div class="alert alert-info">
<p>We welcome you to provide feedback on IRC at <a href="irc://irc.rizon.net/nyaa-dev">#nyaa-dev@irc.rizon.net</a></p>
<p>Our GitHub: <a href="https://github.com/nyaadevs" target="_blank">https://github.com/nyaadevs</a> - creating <a href="https://github.com/nyaadevs/nyaa/issues">issues</a> for features and faults is recommended!</p>
</div>
{% include "infobubble.html" %}
{% endif %}
{% include "search_results.html" %}

View File

@ -0,0 +1,16 @@
{# Update this to a larger timestamp if you change your announcement #}
{# A value of 0 disables the announcements altogether #}
{% set info_ts = 0 %}
{% if info_ts > 0 %}
<div class="alert alert-info alert-dismissible" id="infobubble" data-ts='{{ info_ts }}' hidden>
{% include 'infobubble_content.html' %}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<noscript>
<div class="alert alert-info" id="infobubble-noscript">
{% include 'infobubble_content.html' %}
</div>
</noscript>
{% endif %}

View File

@ -0,0 +1 @@
<strong>Put your announcements into <tt>infobubble_content.html</tt>!</strong>