diff options
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 |
commit | 6060adf9d06eb40b5909acd776ce53949bd786ec (patch) | |
tree | 18890795cd39b43f3c87870ab5c3ad11794ed512 | |
parent | e0bad3de8c2ceaca933a283e1675cf029e8733b7 (diff) | |
download | Chimère-6060adf9d06eb40b5909acd776ce53949bd786ec.tar.bz2 Chimère-6060adf9d06eb40b5909acd776ce53949bd786ec.zip |
Allow to hide welcome message (refs #3842)
-rw-r--r-- | chimere/static/saclay/js/interface.js | 83 | ||||
-rw-r--r-- | chimere/templates/chimere/blocks/welcome.html | 7 | ||||
-rw-r--r-- | chimere/templatetags/chimere_tags.py | 5 |
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'> + <label class='classic' for="hide-welcome">{}</label> + """.format(_("Stop displaying the greeting")) except ObjectDoesNotExist: pass else: |