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)
|
keys = Object.keys(query)
|
||||||
has_query = False
|
has_query = False
|
||||||
if keys.length:
|
if keys.length:
|
||||||
for i, k in enumerate(keys):
|
for k in keys:
|
||||||
val = query[k]
|
val = query[k]
|
||||||
if val is undefined or val is None:
|
if val is undefined or val is None:
|
||||||
continue
|
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
|
has_query = True
|
||||||
if bypass_cache:
|
if bypass_cache:
|
||||||
path += ('&' if has_query else '?') + Date().getTime()
|
path += ('&' if has_query else '?') + Date().getTime()
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
# vim:fileencoding=utf-8
|
# vim:fileencoding=utf-8
|
||||||
# License: GPL v3 Copyright: 2015, Kovid Goyal <kovid at kovidgoyal.net>
|
# License: GPL v3 Copyright: 2015, Kovid Goyal <kovid at kovidgoyal.net>
|
||||||
|
|
||||||
|
defaults = {
|
||||||
|
'view_mode': 'cover_grid',
|
||||||
|
'sort': 'date.desc',
|
||||||
|
}
|
||||||
|
|
||||||
def storage_available(which):
|
def storage_available(which):
|
||||||
which = which or 'localStorage'
|
which = which or 'localStorage'
|
||||||
try:
|
try:
|
||||||
@ -51,19 +56,23 @@ class SessionData:
|
|||||||
self.has_overflow = False
|
self.has_overflow = False
|
||||||
|
|
||||||
def get(self, key, defval):
|
def get(self, key, defval):
|
||||||
if defval is undefined:
|
|
||||||
defval = None
|
|
||||||
if self.has_overflow:
|
if self.has_overflow:
|
||||||
ans = self.overflow_storage[key]
|
ans = self.overflow_storage[key]
|
||||||
if ans is undefined:
|
if ans is undefined:
|
||||||
ans = self.storage.getItem(key)
|
ans = self.storage.getItem(key)
|
||||||
else:
|
else:
|
||||||
ans = self.storage.getItem(key)
|
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 defval
|
||||||
return JSON.parse(ans)
|
return JSON.parse(ans)
|
||||||
|
|
||||||
def set(self, key, value):
|
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)
|
value = JSON.stringify(value)
|
||||||
try:
|
try:
|
||||||
self.storage.setItem(key, value)
|
self.storage.setItem(key, value)
|
||||||
@ -89,9 +98,10 @@ class UserSessionData(SessionData):
|
|||||||
SessionData.__init__(self)
|
SessionData.__init__(self)
|
||||||
|
|
||||||
def get(self, key, defval):
|
def get(self, key, defval):
|
||||||
|
if defval is undefined:
|
||||||
|
defval = defaults[key]
|
||||||
return SessionData.get(self, (self.prefix + key), defval)
|
return SessionData.get(self, (self.prefix + key), defval)
|
||||||
|
|
||||||
def set(self, key, value):
|
def set(self, key, value):
|
||||||
# TODO: Send updated data to server if self.has_user
|
# TODO: Send updated data to server if self.has_user
|
||||||
return SessionData.set(self, (self.prefix + key), value)
|
return SessionData.set(self, (self.prefix + key), value)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user