From bc6379413812689c4a4788234c333dbde494bf70 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 18 Jun 2017 08:14:26 +0530 Subject: [PATCH] DRYer --- src/pyj/book_list/local_books.pyj | 26 ++++---------------------- src/pyj/book_list/views.pyj | 11 ++++++++--- 2 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/pyj/book_list/local_books.pyj b/src/pyj/book_list/local_books.pyj index 7d22f32fc9..bbff33ea91 100644 --- a/src/pyj/book_list/local_books.pyj +++ b/src/pyj/book_list/local_books.pyj @@ -5,20 +5,11 @@ from __python__ import bound_methods, hash_literals from elementmaker import E from gettext import gettext as _ -from book_list.cover_grid import ( - append_item as cover_grid_append_item, create_item as create_cover_grid_item, - init as init_cover_grid -) -from book_list.details_list import ( - append_item as details_list_append_item, - create_item as create_details_list_item, - init as init_details_list -) from book_list.globals import get_db, get_session_data from book_list.router import back, open_book from book_list.top_bar import create_top_bar from book_list.ui import set_panel_handler -from book_list.views import ALLOWED_MODES, DEFAULT_MODE +from book_list.views import setup_view_mode, DEFAULT_MODE from dom import clear, ensure_id from modals import error_dialog from utils import conditional_timeout @@ -86,20 +77,11 @@ def render_books(books): book_list_data.append_item(div, child) -def apply_view_mode(mode=DEFAULT_MODE): +def apply_view_mode(mode): + mode = mode or DEFAULT_MODE if book_list_data.mode is mode: return - if mode not in ALLOWED_MODES: - mode = DEFAULT_MODE - book_list_data.mode = mode - if mode is 'cover_grid': - book_list_data.render_book = create_cover_grid_item - book_list_data.init_grid = init_cover_grid - book_list_data.append_item = cover_grid_append_item - elif mode is 'details_list': - book_list_data.render_book = create_details_list_item - book_list_data.init_grid = init_details_list - book_list_data.append_item = details_list_append_item + setup_view_mode(mode, book_list_data) clear_grid() render_books() diff --git a/src/pyj/book_list/views.pyj b/src/pyj/book_list/views.pyj index 7692b1a032..87dbc00d86 100644 --- a/src/pyj/book_list/views.pyj +++ b/src/pyj/book_list/views.pyj @@ -122,9 +122,7 @@ def render_ids(book_ids): book_list_data.append_item(div, child) -def apply_view_mode(mode=DEFAULT_MODE): - if book_list_data.mode is mode: - return +def setup_view_mode(mode, book_list_data): if mode not in ALLOWED_MODES: mode = DEFAULT_MODE book_list_data.mode = mode @@ -136,6 +134,13 @@ def apply_view_mode(mode=DEFAULT_MODE): book_list_data.render_book = create_details_list_item book_list_data.init_grid = init_details_list book_list_data.append_item = details_list_append_item + return mode + + +def apply_view_mode(mode=DEFAULT_MODE): + if book_list_data.mode is mode: + return + setup_view_mode(mode, book_list_data) clear_grid() render_ids()