mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Adda button on the home page to show the currently logged in user
This commit is contained in:
parent
efc68144f0
commit
3e35fab553
1
imgsrc/srv/user.svg
Normal file
1
imgsrc/srv/user.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1600 1405q0 120-73 189.5t-194 69.5h-874q-121 0-194-69.5t-73-189.5q0-53 3.5-103.5t14-109 26.5-108.5 43-97.5 62-81 85.5-53.5 111.5-20q9 0 42 21.5t74.5 48 108 48 133.5 21.5 133.5-21.5 108-48 74.5-48 42-21.5q61 0 111.5 20t85.5 53.5 62 81 43 97.5 26.5 108.5 14 109 3.5 103.5zm-320-893q0 159-112.5 271.5t-271.5 112.5-271.5-112.5-112.5-271.5 112.5-271.5 271.5-112.5 271.5 112.5 112.5 271.5z"/></svg>
|
After Width: | Height: | Size: 493 B |
@ -5,3 +5,4 @@ from __python__ import hash_literals, bound_methods
|
|||||||
|
|
||||||
book_list_container_id = 'book-list-container'
|
book_list_container_id = 'book-list-container'
|
||||||
read_book_container_id = 'read-book-container'
|
read_book_container_id = 'read-book-container'
|
||||||
|
INIT_ENDPOINT = 'interface-data/init'
|
||||||
|
@ -7,13 +7,14 @@ from gettext import gettext as _
|
|||||||
|
|
||||||
from book_list.cover_grid import BORDER_RADIUS
|
from book_list.cover_grid import BORDER_RADIUS
|
||||||
from book_list.globals import get_db
|
from book_list.globals import get_db
|
||||||
from book_list.library_data import sync_library_books, last_virtual_library_for
|
from book_list.library_data import last_virtual_library_for, sync_library_books
|
||||||
from book_list.router import open_book, update_window_title
|
from book_list.router import open_book, update_window_title
|
||||||
from book_list.top_bar import create_top_bar
|
from book_list.top_bar import add_button, create_top_bar
|
||||||
from book_list.ui import set_default_panel_handler, show_panel
|
from book_list.ui import set_default_panel_handler, show_panel
|
||||||
from dom import add_extra_css, build_rule, ensure_id
|
from dom import add_extra_css, build_rule, ensure_id
|
||||||
|
from modals import create_custom_dialog
|
||||||
from session import get_device_uuid, get_interface_data
|
from session import get_device_uuid, get_interface_data
|
||||||
from utils import conditional_timeout, username_key
|
from utils import conditional_timeout, username_key, safe_set_inner_html
|
||||||
from widgets import create_button
|
from widgets import create_button
|
||||||
|
|
||||||
CLASS_NAME = 'home-page'
|
CLASS_NAME = 'home-page'
|
||||||
@ -135,12 +136,32 @@ def show_recent():
|
|||||||
db.get_recently_read_books(show_recent_stage2.bind(container.id))
|
db.get_recently_read_books(show_recent_stage2.bind(container.id))
|
||||||
|
|
||||||
|
|
||||||
|
def show_user_details():
|
||||||
|
interface_data = get_interface_data()
|
||||||
|
create_custom_dialog(_('Logged in as {}').format(interface_data.username), def(parent, close_modal):
|
||||||
|
msg = E.div()
|
||||||
|
safe_set_inner_html(msg, _(
|
||||||
|
'You are logged in as the user <b>{}</b>. To log in '
|
||||||
|
'as a different user, you will have to restart the browser.').format(interface_data.username))
|
||||||
|
parent.appendChild(msg)
|
||||||
|
parent.appendChild(
|
||||||
|
E.div(class_='button-box',
|
||||||
|
create_button(_('Close'), None, close_modal),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def init(container_id):
|
def init(container_id):
|
||||||
update_window_title()
|
update_window_title()
|
||||||
container = document.getElementById(container_id)
|
container = document.getElementById(container_id)
|
||||||
container.classList.add(CLASS_NAME)
|
container.classList.add(CLASS_NAME)
|
||||||
create_top_bar(container, run_animation=True)
|
create_top_bar(container, run_animation=True)
|
||||||
interface_data = get_interface_data()
|
interface_data = get_interface_data()
|
||||||
|
if interface_data.username:
|
||||||
|
add_button(container, 'user', show_user_details, _('Logged in as {}').format(interface_data.username))
|
||||||
|
|
||||||
# Recent books
|
# Recent books
|
||||||
recent = E.div(style='display:none', class_='recently-read')
|
recent = E.div(style='display:none', class_='recently-read')
|
||||||
|
@ -12,7 +12,7 @@ from gettext import gettext as _, install
|
|||||||
from popups import install_event_filters
|
from popups import install_event_filters
|
||||||
from utils import safe_set_inner_html
|
from utils import safe_set_inner_html
|
||||||
|
|
||||||
from book_list.constants import book_list_container_id, read_book_container_id
|
from book_list.constants import book_list_container_id, read_book_container_id, INIT_ENDPOINT
|
||||||
from book_list.library_data import fetch_init_data, update_library_data, url_books_query
|
from book_list.library_data import fetch_init_data, update_library_data, url_books_query
|
||||||
from book_list.theme import get_color
|
from book_list.theme import get_color
|
||||||
from book_list.router import update_window_title, set_default_mode_handler, apply_url, set_mode_handler, on_pop_state
|
from book_list.router import update_window_title, set_default_mode_handler, apply_url, set_mode_handler, on_pop_state
|
||||||
@ -21,7 +21,7 @@ from book_list.ui import apply_url_state as book_list_mode_handler
|
|||||||
from read_book.ui import ReadUI
|
from read_book.ui import ReadUI
|
||||||
|
|
||||||
# Register the various panels
|
# Register the various panels
|
||||||
from book_list.home import change_user
|
import book_list.home # noqa: unused-import
|
||||||
import book_list.views # noqa: unused-import
|
import book_list.views # noqa: unused-import
|
||||||
import book_list.local_books # noqa: unused-import
|
import book_list.local_books # noqa: unused-import
|
||||||
import book_list.book_details # noqa: unused-import
|
import book_list.book_details # noqa: unused-import
|
||||||
@ -84,8 +84,6 @@ def install_data_and_init_ui(raw_data):
|
|||||||
get_translations(data.translations)
|
get_translations(data.translations)
|
||||||
init_ui()
|
init_ui()
|
||||||
|
|
||||||
change_user.install_data_and_init_ui = install_data_and_init_ui
|
|
||||||
change_user.endpoint = 'interface-data/init'
|
|
||||||
|
|
||||||
def on_data_loaded(end_type, xhr, ev):
|
def on_data_loaded(end_type, xhr, ev):
|
||||||
remove_initial_progress_bar()
|
remove_initial_progress_bar()
|
||||||
@ -114,7 +112,7 @@ def load_interface_data():
|
|||||||
if not idata.is_default:
|
if not idata.is_default:
|
||||||
temp = UserSessionData(None, {}) # So that settings for anonymous users are preserved
|
temp = UserSessionData(None, {}) # So that settings for anonymous users are preserved
|
||||||
query = url_books_query(temp)
|
query = url_books_query(temp)
|
||||||
ajax(change_user.endpoint, on_data_loaded, on_data_load_progress, query=query).send()
|
ajax(INIT_ENDPOINT, on_data_loaded, on_data_load_progress, query=query).send()
|
||||||
|
|
||||||
|
|
||||||
def do_update_interface_data():
|
def do_update_interface_data():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user