Mercurial > wikked
changeset 354:425c3047394d
Replace `localStorage` with cookies for the menu state.
This fixes the issue on page load where the menu would pop-up/animate instead
of being in the right state right away.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 20 Sep 2015 08:21:40 -0700 |
parents | ae6760f34eb1 |
children | 890d89e0a2fc |
files | wikked/assets/js/wikked/app.js wikked/templates/index.html wikked/templates/nav.html wikked/templates/special-nav.html wikked/views/__init__.py |
diffstat | 5 files changed, 12 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/wikked/assets/js/wikked/app.js Sun Sep 20 08:20:54 2015 -0700 +++ b/wikked/assets/js/wikked/app.js Sun Sep 20 08:21:40 2015 -0700 @@ -30,14 +30,6 @@ this.isMenuActive = (this.wikiMenu.css('left') == '0px'); this.isMenuActiveLocked = false; - // Apply local settings. - var ima = localStorage.getItem('wikked.nav.isMenuActive'); - if (ima == 'true') { - this.wikiMenuAndWrapper.addClass('wiki-menu-active'); - this.isMenuActive = true; - this._toggleWikiMenuPin(true); - } - // Hookup events. this.listen("#wiki-menu-shortcut", 'click', '_onMenuShortcutClick'); this.listen("#wiki-menu-pin", 'click', '_onMenuShortcutClick'); @@ -59,7 +51,10 @@ }, _onMenuShortcutClick: function(e) { this.isMenuActive = !this.isMenuActive; - localStorage.setItem('wikked.nav.isMenuActive', this.isMenuActive); + var val = this.isMenuActive ? "1" : "0"; + document.cookie = ( + "wiki-menu-active=" + val + "; " + + "path=/; expires=31 Dec 2100 UTC"); this._toggleWikiMenuPin(this.isMenuActive); }, _onMenuShortcutHover: function(e) {
--- a/wikked/templates/index.html Sun Sep 20 08:20:54 2015 -0700 +++ b/wikked/templates/index.html Sun Sep 20 08:21:40 2015 -0700 @@ -11,7 +11,7 @@ <div class="nav-wrapper"> {% block nav %}{% include 'nav.html' %}{% endblock %} </div> - <div class="wrapper{%if is_special_page%} special{%endif%}"> + <div class="wrapper{%if nav.is_menu_active%} wiki-menu-active{%endif%}{%if is_special_page%} special{%endif%}"> {% block content %}{% endblock %} </div> <div class="footer-wrapper">
--- a/wikked/templates/nav.html Sun Sep 20 08:20:54 2015 -0700 +++ b/wikked/templates/nav.html Sun Sep 20 08:21:40 2015 -0700 @@ -1,7 +1,7 @@ <a id="wiki-menu-shortcut" class="wiki-logo"> <span>W</span> </a> -<nav id="wiki-menu" role="navigation" class="pure-menu pure-menu-open"> +<nav id="wiki-menu" role="navigation" class="pure-menu pure-menu-open{%if nav.is_menu_active%} wiki-menu-active{%endif%}"> <div id="wiki-menu-pin" title="Pin/unpin the wiki menu."> <span class="fa fa-lock"></span> </div>
--- a/wikked/templates/special-nav.html Sun Sep 20 08:20:54 2015 -0700 +++ b/wikked/templates/special-nav.html Sun Sep 20 08:21:40 2015 -0700 @@ -1,7 +1,7 @@ <a id="wiki-menu-shortcut" class="wiki-logo"> <span>W</span> </a> -<nav id="wiki-menu" role="navigation" class="pure-menu pure-menu-open wiki-menu-active"> +<nav id="wiki-menu" role="navigation" class="pure-menu pure-menu-open{% if nav.is_menu_active%} wiki-menu-active{%endif%}"> <div id="wiki-menu-pin" title="Pin/unpin the wiki menu."> <span class="fa fa-lock"></span> </div>
--- a/wikked/views/__init__.py Sun Sep 20 08:20:54 2015 -0700 +++ b/wikked/views/__init__.py Sun Sep 20 08:21:40 2015 -0700 @@ -1,3 +1,4 @@ +from flask import request from flask.ext.login import current_user from wikked.web import app @@ -30,6 +31,10 @@ raise Exception("Default navigation entries require a valid URL.") nav = {'home': '/', 'extras': [], 'footers': []} + + nav['is_menu_active'] = ( + request.cookies.get('wiki-menu-active') == '1') + if read: nav['url_read'] = '/read/%s' % url if edit: