mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Store session defaults centrally
This commit is contained in:
parent
4476e0f0ce
commit
08fa7a72c1
@ -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()
|
||||
|
@ -1,6 +1,11 @@
|
||||
# vim:fileencoding=utf-8
|
||||
# License: GPL v3 Copyright: 2015, Kovid Goyal <kovid at kovidgoyal.net>
|
||||
|
||||
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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user