summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-09-25 20:08:11 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-09-25 20:08:11 +0200
commit6060adf9d06eb40b5909acd776ce53949bd786ec (patch)
tree18890795cd39b43f3c87870ab5c3ad11794ed512
parente0bad3de8c2ceaca933a283e1675cf029e8733b7 (diff)
downloadChimère-6060adf9d06eb40b5909acd776ce53949bd786ec.tar.bz2
Chimère-6060adf9d06eb40b5909acd776ce53949bd786ec.zip
Allow to hide welcome message (refs #3842)
-rw-r--r--chimere/static/saclay/js/interface.js83
-rw-r--r--chimere/templates/chimere/blocks/welcome.html7
-rw-r--r--chimere/templatetags/chimere_tags.py5
3 files changed, 94 insertions, 1 deletions
diff --git a/chimere/static/saclay/js/interface.js b/chimere/static/saclay/js/interface.js
index e593588..a86d29d 100644
--- a/chimere/static/saclay/js/interface.js
+++ b/chimere/static/saclay/js/interface.js
@@ -1,6 +1,89 @@
var msg_edit_route = "Cliquez sur la carte pour tracer le trajet. Chaque nouveau clic rajoute un nœud. Double-cliquez pour terminer le trajet.<br/>Pour modifier le trajet sélectionnez un nœud puis glissez-déposez pour le déplacer.";
var msg_edit = "Cliquez sur la carte pour placer le lieu. Pour modifier ce lieu sélectionnez-le puis glissez-déposez pour le déplacer.";
+
+var storageAvailable = function (type) {
+ try {
+ var storage = window[type],
+ x = '__storage_test__';
+ storage.setItem(x, x);
+ storage.removeItem(x);
+ return true;
+ }
+ catch(e) {
+ return e instanceof DOMException && (
+ // everything except Firefox
+ e.code === 22 ||
+ // Firefox
+ e.code === 1014 ||
+ // test name field too, because code might not be present
+ // everything except Firefox
+ e.name === 'QuotaExceededError' ||
+ // Firefox
+ e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&
+ // acknowledge QuotaExceededError only if there's something already stored
+ storage.length !== 0;
+ }
+}
+
+function setCookie(cname, cvalue, exdays) {
+ var d = new Date();
+ d.setTime(d.getTime() + (exdays*24*60*60*1000));
+ var expires = "expires="+ d.toUTCString();
+ document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
+}
+
+function getCookie(cname) {
+ var name = cname + "=";
+ var decodedCookie = decodeURIComponent(document.cookie);
+ var ca = decodedCookie.split(';');
+ for(var i = 0; i <ca.length; i++) {
+ var c = ca[i];
+ while (c.charAt(0) == ' ') {
+ c = c.substring(1);
+ }
+ if (c.indexOf(name) == 0) {
+ return c.substring(name.length, c.length);
+ }
+ }
+ return "";
+}
+
+
+var do_display_welcome = function(){
+ if (storageAvailable('localStorage')) {
+ if (localStorage.getItem('chimere-hide-welcome') != 'true'){
+ return true;
+ }
+ return false;
+ } else {
+ if (getCookie("chimere-hide-welcome") != 'true'){
+ return true;
+ }
+ return false;
+ }
+}
+
+
+var register_hide_welcome_check = function(){
+ $('#hide-welcome').click(function(){
+ if($("#hide-welcome:checked").length){
+ if (storageAvailable('localStorage')) {
+ localStorage.setItem('chimere-hide-welcome', 'true');
+ } else {
+ setCookie("chimere-hide-welcome", 'true', 36);
+ }
+ } else {
+ if (storageAvailable('localStorage')) {
+ localStorage.setItem('chimere-hide-welcome', 'false');
+ } else {
+ setCookie("chimere-hide-welcome", 'false', 36);
+ }
+ }
+ });
+
+};
+
var register_subactions = function(){
$('.subactions').click(function(){
var link = $(this).attr("data-link");
diff --git a/chimere/templates/chimere/blocks/welcome.html b/chimere/templates/chimere/blocks/welcome.html
index 4e48c34..12ce4bb 100644
--- a/chimere/templates/chimere/blocks/welcome.html
+++ b/chimere/templates/chimere/blocks/welcome.html
@@ -5,12 +5,17 @@
<script type='text/javascript'>
<!--
$(function(){
- {% if display %}$('#welcome').modal('show');{%endif%}
+ {% if display %}
+ if (do_display_welcome()){
+ $('#welcome').modal('show');
+ }
+ {% endif %}
$('.get_more_information').click(function(){
$('#welcome').modal('hide');
$('#news').modal('show');
return false;
});
+ register_hide_welcome_check();
});
// -->
</script>
diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py
index 4ed6183..b5ca51b 100644
--- a/chimere/templatetags/chimere_tags.py
+++ b/chimere/templatetags/chimere_tags.py
@@ -89,6 +89,11 @@ def display_welcome(context, display=False, title=''):
area = Area.objects.get(urn=context["area_name"])
context_data['area_name'] = context['area_name']
context_data['welcome_message'] = area.welcome_message
+ context_data['welcome_message'] += """
+ <hr>
+ <input type='checkbox' id='hide-welcome'>
+ &nbsp;<label class='classic' for="hide-welcome">{}</label>
+ """.format(_("Stop displaying the greeting"))
except ObjectDoesNotExist:
pass
else: