diff --git a/src/pyj/ajax.pyj b/src/pyj/ajax.pyj index 924a1ce6f1..3cef6c33c7 100644 --- a/src/pyj/ajax.pyj +++ b/src/pyj/ajax.pyj @@ -7,11 +7,11 @@ def ajax(path, on_complete, on_progress=None, bypass_cache=True, method='GET', q keys = Object.keys(query) has_query = False if keys.length: - for i, k in enumerate(keys): + for k in keys: val = query[k] if val is undefined or val is None: continue - path += ('?' if i == 0 else '&') + window.encodeURIComponent(k) + '=' + window.encodeURIComponent(val.toString()) + path += ('&' if has_query else '?') + window.encodeURIComponent(k) + '=' + window.encodeURIComponent(val.toString()) has_query = True if bypass_cache: path += ('&' if has_query else '?') + Date().getTime() diff --git a/src/pyj/session.pyj b/src/pyj/session.pyj index e0ff57c54b..6cabcb6958 100644 --- a/src/pyj/session.pyj +++ b/src/pyj/session.pyj @@ -1,6 +1,11 @@ # vim:fileencoding=utf-8 # License: GPL v3 Copyright: 2015, Kovid Goyal +defaults = { + 'view_mode': 'cover_grid', + 'sort': 'date.desc', +} + def storage_available(which): which = which or 'localStorage' try: @@ -51,19 +56,23 @@ class SessionData: self.has_overflow = False def get(self, key, defval): - if defval is undefined: - defval = None if self.has_overflow: ans = self.overflow_storage[key] if ans is undefined: ans = self.storage.getItem(key) else: ans = self.storage.getItem(key) - if ans is undefined: + if ans is undefined or ans is None: + if defval is undefined: + defval = None return defval return JSON.parse(ans) def set(self, key, value): + if value is None: + self.storage.removeItem(key) + v'delete self.overflow_storage[key]' + return True value = JSON.stringify(value) try: self.storage.setItem(key, value) @@ -89,9 +98,10 @@ class UserSessionData(SessionData): SessionData.__init__(self) def get(self, key, defval): + if defval is undefined: + defval = defaults[key] return SessionData.get(self, (self.prefix + key), defval) def set(self, key, value): # TODO: Send updated data to server if self.has_user return SessionData.set(self, (self.prefix + key), value) -