Put the library_id into read_book panel URL state

This commit is contained in:
Kovid Goyal 2017-05-07 15:55:13 +05:30
parent 3c1d484b7f
commit f5c39b65ed
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -100,17 +100,17 @@ class ReadUI:
div = document.getElementById(self.progress_id) div = document.getElementById(self.progress_id)
div.lastChild.textContent = msg or '' div.lastChild.textContent = msg or ''
def load_book(self, book_id, fmt, metadata, force_reload): def load_book(self, library_id, book_id, fmt, metadata, force_reload):
self.base_url_data = {'book_id':book_id, 'fmt':fmt} self.base_url_data = {'library_id': library_id, 'book_id':book_id, 'fmt':fmt}
if not self.db.initialized: if not self.db.initialized:
self.pending_load = [book_id, fmt, metadata, force_reload] self.pending_load = [book_id, fmt, metadata, force_reload]
return return
self.start_load(book_id, fmt, metadata, force_reload) self.start_load(book_id, fmt, metadata, force_reload)
def reload_book(self): def reload_book(self):
book_id = self.base_url_data.book_id library_id, book_id, fmt = self.base_url_data.library_id, self.base_url_data.book_id, self.base_url_data.fmt
metadata = self.metadata or library_data.metadata[book_id] metadata = self.metadata or library_data.metadata[book_id]
self.load_book(book_id, self.base_url_data.fmt, metadata, True) self.load_book(library_id, book_id, fmt, metadata, True)
def redisplay_book(self): def redisplay_book(self):
self.view.redisplay_book() self.view.redisplay_book()
@ -123,7 +123,7 @@ class ReadUI:
@property @property
def url_data(self): def url_data(self):
ans = {'book_id':self.base_url_data.book_id, 'fmt': self.base_url_data.fmt} ans = {'library_id':self.base_url_data.library_id, 'book_id':self.base_url_data.book_id, 'fmt': self.base_url_data.fmt}
bookpos = self.view.currently_showing.bookpos bookpos = self.view.currently_showing.bookpos
if bookpos: if bookpos:
ans.bookpos = bookpos ans.bookpos = bookpos
@ -413,13 +413,10 @@ class ReadUI:
def apply_url_state(self, current_query): def apply_url_state(self, current_query):
same = True same = True
current_state = self.url_data current_state = self.url_data
for k in v"['book_id', 'fmt']": same = current_query.library_id is current_state.library_id and str(current_query.book_id) is str(current_state.book_id) and current_query.fmt is current_state.fmt
if str(current_query[k]) is not str(current_state[k]):
same = False
break
self.view.overlay.hide() self.view.overlay.hide()
if same: if same:
if current_state.bookpos is not current_query.bookpos and current_query.bookpos: if current_state.bookpos is not current_query.bookpos and current_query.bookpos:
self.view.goto_bookpos(current_query.bookpos) self.view.goto_bookpos(current_query.bookpos)
else: else:
self.load_book(int(current_query.book_id), current_query.fmt, library_data.metadata[current_query.book_id]) self.load_book(current_query.library_id, int(current_query.book_id), current_query.fmt, library_data.metadata[current_query.book_id])