diff --git a/src/pyj/book_list/home.pyj b/src/pyj/book_list/home.pyj index 420bd3935c..ebc66828f2 100644 --- a/src/pyj/book_list/home.pyj +++ b/src/pyj/book_list/home.pyj @@ -7,7 +7,7 @@ from gettext import gettext as _ from book_list.cover_grid import BORDER_RADIUS from book_list.globals import get_db -from book_list.library_data import sync_library_books +from book_list.library_data import sync_library_books, last_virtual_library_for from book_list.router import open_book, update_window_title from book_list.top_bar import create_top_bar from book_list.ui import set_default_panel_handler, show_panel @@ -159,7 +159,11 @@ def init(container_id): cl.appendChild( create_button(library_name, icon='library', action=def(ev): lib_id = ev.currentTarget.dataset.lid - show_panel('book_list', {'library_id': lib_id}) + q = {'library_id': lib_id} + vlid = last_virtual_library_for(lib_id) + if vlid: + q.vl = vlid + show_panel('book_list', q) )) cl.lastChild.style.margin = '1ex 1rem' cl.lastChild.dataset.lid = library_id diff --git a/src/pyj/book_list/library_data.pyj b/src/pyj/book_list/library_data.pyj index 753a60ea3b..327d89d108 100644 --- a/src/pyj/book_list/library_data.pyj +++ b/src/pyj/book_list/library_data.pyj @@ -23,6 +23,12 @@ def current_virtual_library(): return q.vl or '' +def last_virtual_library_for(library_id): + if last_virtual_library_for.library_id is library_id: + return last_virtual_library_for.vl or '' + return '' + + def url_books_query(sd): q = parse_url_params() sd = sd or get_session_data() @@ -63,6 +69,13 @@ def update_library_data(data): load_status.error_html = None for key in 'search_result sortable_fields field_metadata metadata'.split(' '): library_data[key] = data[key] + sr = library_data.search_result + if sr: + last_virtual_library_for.library_id = sr.library_id + last_virtual_library_for.vl = sr.vl + else: + last_virtual_library_for.library_id = None + last_virtual_library_for.vl = None def on_data_loaded(end_type, xhr, ev):