mirror of
https://github.com/lnbits/lnbits.git
synced 2025-03-28 10:41:58 +01:00
add jinja variables to windowMixin
This commit is contained in:
parent
77f1e7cf52
commit
4bed32030c
@ -59,9 +59,6 @@
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
const ALLOWED_REGISTER = {{ LNBITS_NEW_ACCOUNTS_ALLOWED | tojson }};
|
||||
</script>
|
||||
<script src="{{ static_url_for('static', 'js/index.js') }}"></script>
|
||||
{% endblock %} {% block page_container %}
|
||||
<q-page-container>
|
||||
@ -150,8 +147,6 @@
|
||||
{%else%}
|
||||
<username-password
|
||||
v-if="authMethod != 'user-id-only'"
|
||||
:allowed_new_users="allowedRegister"
|
||||
:auth-methods="{{ LNBITS_AUTH_METHODS }}"
|
||||
:auth-action="authAction"
|
||||
v-model:user-name="username"
|
||||
v-model:password_1="password"
|
||||
@ -194,7 +189,6 @@
|
||||
</username-password>
|
||||
{% if "user-id-only" in LNBITS_AUTH_METHODS %}
|
||||
<user-id-only
|
||||
:allowed_new_users="allowedRegister"
|
||||
v-model:usr="usr"
|
||||
v-model:wallet="walletName"
|
||||
:auth-action="authAction"
|
||||
|
@ -64,59 +64,45 @@ def template_renderer(additional_folders: Optional[list] = None) -> Jinja2Templa
|
||||
t = Jinja2Templates(loader=jinja2.FileSystemLoader(folders))
|
||||
t.env.globals["static_url_for"] = static_url_for
|
||||
|
||||
if settings.lnbits_ad_space_enabled:
|
||||
t.env.globals["AD_SPACE"] = settings.lnbits_ad_space.split(",")
|
||||
t.env.globals["AD_SPACE_TITLE"] = settings.lnbits_ad_space_title
|
||||
window_settings = {
|
||||
"AD_SPACE": settings.lnbits_ad_space.split(","),
|
||||
"AD_SPACE_ENABLED": settings.lnbits_ad_space_enabled,
|
||||
"AD_SPACE_TITLE": settings.lnbits_ad_space_title,
|
||||
"EXTENSIONS": list(settings.lnbits_installed_extensions_ids),
|
||||
"HIDE_API": settings.lnbits_hide_api,
|
||||
"SITE_TITLE": settings.lnbits_site_title,
|
||||
"SITE_TAGLINE": settings.lnbits_site_tagline,
|
||||
"SITE_DESCRIPTION": settings.lnbits_site_description,
|
||||
"LNBITS_ADMIN_UI": settings.lnbits_admin_ui,
|
||||
"LNBITS_AUDIT_ENABLED": settings.lnbits_audit_enabled,
|
||||
"LNBITS_AUTH_METHODS": settings.auth_allowed_methods,
|
||||
"LNBITS_CUSTOM_IMAGE": settings.lnbits_custom_image,
|
||||
"LNBITS_CUSTOM_BADGE": settings.lnbits_custom_badge,
|
||||
"LNBITS_CUSTOM_BADGE_COLOR": settings.lnbits_custom_badge_color,
|
||||
"LNBITS_DENOMINATION": settings.lnbits_denomination,
|
||||
"LNBITS_EXTENSIONS_DEACTIVATE_ALL": settings.lnbits_extensions_deactivate_all,
|
||||
"LNBITS_NEW_ACCOUNTS_ALLOWED": settings.new_accounts_allowed,
|
||||
"LNBITS_NODE_UI": settings.lnbits_node_ui and get_node_class() is not None,
|
||||
"LNBITS_NODE_UI_AVAILABLE": get_node_class() is not None,
|
||||
"LNBITS_QR_LOGO": settings.lnbits_qr_logo,
|
||||
"LNBITS_SERVICE_FEE": settings.lnbits_service_fee,
|
||||
"LNBITS_SERVICE_FEE_MAX": settings.lnbits_service_fee_max,
|
||||
"LNBITS_SERVICE_FEE_WALLET": settings.lnbits_service_fee_wallet,
|
||||
"LNBITS_SHOW_HOME_PAGE_ELEMENTS": settings.lnbits_show_home_page_elements,
|
||||
"LNBITS_THEME_OPTIONS": settings.lnbits_theme_options,
|
||||
"USE_CUSTOM_LOGO": settings.lnbits_custom_logo,
|
||||
"USE_DEFAULT_REACTION": settings.lnbits_default_reaction,
|
||||
"USE_DEFAULT_THEME": settings.lnbits_default_theme,
|
||||
"USE_DEFAULT_BORDER": settings.lnbits_default_border,
|
||||
"USE_DEFAULT_GRADIENT": settings.lnbits_default_gradient,
|
||||
"USE_DEFAULT_BGIMAGE": settings.lnbits_default_bgimage,
|
||||
"VOIDWALLET": settings.lnbits_backend_wallet_class == "VoidWallet",
|
||||
"WEBPUSH_PUBKEY": settings.lnbits_webpush_pubkey,
|
||||
}
|
||||
|
||||
t.env.globals["VOIDWALLET"] = settings.lnbits_backend_wallet_class == "VoidWallet"
|
||||
t.env.globals["HIDE_API"] = settings.lnbits_hide_api
|
||||
t.env.globals["SITE_TITLE"] = settings.lnbits_site_title
|
||||
t.env.globals["LNBITS_DENOMINATION"] = settings.lnbits_denomination
|
||||
t.env.globals["SITE_TAGLINE"] = settings.lnbits_site_tagline
|
||||
t.env.globals["SITE_DESCRIPTION"] = settings.lnbits_site_description
|
||||
t.env.globals["LNBITS_SHOW_HOME_PAGE_ELEMENTS"] = (
|
||||
settings.lnbits_show_home_page_elements
|
||||
)
|
||||
t.env.globals["LNBITS_CUSTOM_IMAGE"] = settings.lnbits_custom_image
|
||||
t.env.globals["LNBITS_CUSTOM_BADGE"] = settings.lnbits_custom_badge
|
||||
t.env.globals["LNBITS_CUSTOM_BADGE_COLOR"] = settings.lnbits_custom_badge_color
|
||||
t.env.globals["LNBITS_THEME_OPTIONS"] = settings.lnbits_theme_options
|
||||
t.env.globals["LNBITS_QR_LOGO"] = settings.lnbits_qr_logo
|
||||
t.env.globals["LNBITS_VERSION"] = settings.version
|
||||
t.env.globals["LNBITS_NEW_ACCOUNTS_ALLOWED"] = settings.new_accounts_allowed
|
||||
t.env.globals["LNBITS_AUTH_METHODS"] = settings.auth_allowed_methods
|
||||
t.env.globals["LNBITS_ADMIN_UI"] = settings.lnbits_admin_ui
|
||||
t.env.globals["LNBITS_EXTENSIONS_DEACTIVATE_ALL"] = (
|
||||
settings.lnbits_extensions_deactivate_all
|
||||
)
|
||||
t.env.globals["LNBITS_AUDIT_ENABLED"] = settings.lnbits_audit_enabled
|
||||
|
||||
t.env.globals["LNBITS_SERVICE_FEE"] = settings.lnbits_service_fee
|
||||
t.env.globals["LNBITS_SERVICE_FEE_MAX"] = settings.lnbits_service_fee_max
|
||||
t.env.globals["LNBITS_SERVICE_FEE_WALLET"] = settings.lnbits_service_fee_wallet
|
||||
t.env.globals["LNBITS_NODE_UI"] = (
|
||||
settings.lnbits_node_ui and get_node_class() is not None
|
||||
)
|
||||
t.env.globals["LNBITS_NODE_UI_AVAILABLE"] = get_node_class() is not None
|
||||
t.env.globals["EXTENSIONS"] = list(settings.lnbits_installed_extensions_ids)
|
||||
|
||||
if settings.lnbits_custom_logo:
|
||||
t.env.globals["USE_CUSTOM_LOGO"] = settings.lnbits_custom_logo
|
||||
|
||||
if settings.lnbits_default_reaction:
|
||||
t.env.globals["USE_DEFAULT_REACTION"] = settings.lnbits_default_reaction
|
||||
|
||||
if settings.lnbits_default_theme:
|
||||
t.env.globals["USE_DEFAULT_THEME"] = settings.lnbits_default_theme
|
||||
|
||||
if settings.lnbits_default_border:
|
||||
t.env.globals["USE_DEFAULT_BORDER"] = settings.lnbits_default_border
|
||||
|
||||
if settings.lnbits_default_gradient:
|
||||
t.env.globals["USE_DEFAULT_GRADIENT"] = settings.lnbits_default_gradient
|
||||
|
||||
if settings.lnbits_default_bgimage:
|
||||
t.env.globals["USE_DEFAULT_BGIMAGE"] = settings.lnbits_default_bgimage
|
||||
t.env.globals["WINDOW_SETTINGS"] = window_settings
|
||||
for key, value in window_settings.items():
|
||||
t.env.globals[key] = value
|
||||
|
||||
if settings.bundle_assets:
|
||||
t.env.globals["INCLUDED_JS"] = ["bundle.min.js"]
|
||||
@ -130,8 +116,6 @@ def template_renderer(additional_folders: Optional[list] = None) -> Jinja2Templa
|
||||
t.env.globals["INCLUDED_CSS"] = vendor_files["css"]
|
||||
t.env.globals["INCLUDED_COMPONENTS"] = vendor_files["components"]
|
||||
|
||||
t.env.globals["WEBPUSH_PUBKEY"] = settings.lnbits_webpush_pubkey
|
||||
|
||||
return t
|
||||
|
||||
|
||||
|
@ -496,7 +496,8 @@ window.windowMixin = {
|
||||
: USE_DEFAULT_BGIMAGE,
|
||||
isUserAuthorized: false,
|
||||
walletEventListeners: [],
|
||||
backgroundImage: ''
|
||||
backgroundImage: '',
|
||||
...WINDOW_SETTINGS
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -503,7 +503,6 @@ window.app.component('user-id-only', {
|
||||
template: '#user-id-only',
|
||||
mixins: [window.windowMixin],
|
||||
props: {
|
||||
allowed_new_users: Boolean,
|
||||
authAction: String,
|
||||
authMethod: String,
|
||||
usr: String,
|
||||
@ -547,8 +546,6 @@ window.app.component('username-password', {
|
||||
template: '#username-password',
|
||||
mixins: [window.windowMixin],
|
||||
props: {
|
||||
allowed_new_users: Boolean,
|
||||
authMethods: Array,
|
||||
authAction: String,
|
||||
username: String,
|
||||
password_1: String,
|
||||
@ -669,7 +666,7 @@ window.app.component('username-password', {
|
||||
},
|
||||
computed: {
|
||||
showOauth() {
|
||||
return this.oauth.some(m => this.authMethods.includes(m))
|
||||
return this.oauth.some(m => LNBITS_AUTH_METHODS.includes(m))
|
||||
}
|
||||
},
|
||||
created() {}
|
||||
|
@ -102,9 +102,8 @@ window.app = Vue.createApp({
|
||||
},
|
||||
created() {
|
||||
this.description = SITE_DESCRIPTION
|
||||
this.allowedRegister = ALLOWED_REGISTER
|
||||
this.authAction =
|
||||
!this.allowedRegister ||
|
||||
!LNBITS_NEW_ACCOUNTS_ALLOWED ||
|
||||
Quasar.LocalStorage.getItem('lnbits.disclaimerShown')
|
||||
? 'login'
|
||||
: 'register'
|
||||
|
@ -389,42 +389,38 @@
|
||||
</q-layout>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
const WINDOW_SETTINGS = {{ WINDOW_SETTINGS | tojson }}
|
||||
Object.keys(WINDOW_SETTINGS).forEach(key => {
|
||||
window[key] = WINDOW_SETTINGS[key]
|
||||
})
|
||||
if (LNBITS_THEME_OPTIONS && LNBITS_THEME_OPTIONS.length) {
|
||||
window.allowedThemes = LNBITS_THEME_OPTIONS.map(str => str.trim())
|
||||
}
|
||||
</script>
|
||||
{% include('components.vue') %} {% block vue_templates %}{% endblock %} {%
|
||||
for url in INCLUDED_JS %}
|
||||
<script src="{{ static_url_for('static', url) }}"></script>
|
||||
{% endfor %}
|
||||
<script type="text/javascript">
|
||||
const SITE_DESCRIPTION = {{ SITE_DESCRIPTION | tojson}}
|
||||
const themes = {{ LNBITS_THEME_OPTIONS | tojson }}
|
||||
const LNBITS_DENOMINATION = {{ LNBITS_DENOMINATION | tojson }}
|
||||
const LNBITS_VERSION = {{ LNBITS_VERSION | tojson }}
|
||||
const LNBITS_QR_LOGO = {{ LNBITS_QR_LOGO | tojson }}
|
||||
const USE_DEFAULT_REACTION = {{ USE_DEFAULT_REACTION | tojson }}
|
||||
const USE_DEFAULT_THEME = {{ USE_DEFAULT_THEME | tojson }}
|
||||
const USE_DEFAULT_BORDER = {{ USE_DEFAULT_BORDER | tojson }}
|
||||
const USE_DEFAULT_GRADIENT = {{ USE_DEFAULT_GRADIENT | lower | tojson }}
|
||||
const USE_DEFAULT_BGIMAGE = "{{ USE_DEFAULT_BGIMAGE or None | tojson }}"
|
||||
if (themes && themes.length) {
|
||||
window.allowedThemes = themes.map(str => str.trim())
|
||||
}
|
||||
window.langs = [
|
||||
{ value: 'en', label: 'English', display: '🇬🇧 EN' },
|
||||
{ value: 'de', label: 'Deutsch', display: '🇩🇪 DE' },
|
||||
{ value: 'es', label: 'Español', display: '🇪🇸 ES' },
|
||||
{ value: 'jp', label: '日本語', display: '🇯🇵 JP' },
|
||||
{ value: 'cn', label: '中文', display: '🇨🇳 CN' },
|
||||
{ value: 'fr', label: 'Français', display: '🇫🇷 FR' },
|
||||
{ value: 'it', label: 'Italiano', display: '🇮🇹 IT' },
|
||||
{ value: 'pi', label: 'Pirate', display: '🏴☠️ PI' },
|
||||
{ value: 'nl', label: 'Nederlands', display: '🇳🇱 NL' },
|
||||
{ value: 'we', label: 'Cymraeg', display: '🏴 CY' },
|
||||
{ value: 'pl', label: 'Polski', display: '🇵🇱 PL' },
|
||||
{ value: 'pt', label: 'Português', display: '🇵🇹 PT' },
|
||||
{ value: 'br', label: 'Português do Brasil', display: '🇧🇷 BR' },
|
||||
{ value: 'cs', label: 'Česky', display: '🇨🇿 CS' },
|
||||
{ value: 'sk', label: 'Slovensky', display: '🇸🇰 SK' },
|
||||
{ value: 'kr', label: '한국어', display: '🇰🇷 KR' },
|
||||
{ value: 'fi', label: 'Suomi', display: '🇫🇮 FI' }
|
||||
{value: 'en', label: 'English', display: '🇬🇧 EN'},
|
||||
{value: 'de', label: 'Deutsch', display: '🇩🇪 DE'},
|
||||
{value: 'es', label: 'Español', display: '🇪🇸 ES'},
|
||||
{value: 'jp', label: '日本語', display: '🇯🇵 JP'},
|
||||
{value: 'cn', label: '中文', display: '🇨🇳 CN'},
|
||||
{value: 'fr', label: 'Français', display: '🇫🇷 FR'},
|
||||
{value: 'it', label: 'Italiano', display: '🇮🇹 IT'},
|
||||
{value: 'pi', label: 'Pirate', display: '🏴☠️ PI'},
|
||||
{value: 'nl', label: 'Nederlands', display: '🇳🇱 NL'},
|
||||
{value: 'we', label: 'Cymraeg', display: '🏴 CY'},
|
||||
{value: 'pl', label: 'Polski', display: '🇵🇱 PL'},
|
||||
{value: 'pt', label: 'Português', display: '🇵🇹 PT'},
|
||||
{value: 'br', label: 'Português do Brasil', display: '🇧🇷 BR'},
|
||||
{value: 'cs', label: 'Česky', display: '🇨🇿 CS'},
|
||||
{value: 'sk', label: 'Slovensky', display: '🇸🇰 SK'},
|
||||
{value: 'kr', label: '한국어', display: '🇰🇷 KR'},
|
||||
{value: 'fi', label: 'Suomi', display: '🇫🇮 FI'}
|
||||
]
|
||||
window.LOCALE = 'en'
|
||||
window.dateFormat = 'YYYY-MM-DD HH:mm'
|
||||
|
@ -1194,7 +1194,7 @@
|
||||
<q-icon name="account_circle" size="xs"></q-icon>
|
||||
<span v-text="$t('login_with_user_id')"></span> </strong
|
||||
></q-badge>
|
||||
<div v-if="allowed_new_users" class="inline-block">
|
||||
<div v-if="LNBITS_NEW_ACCOUNTS_ALLOWED" class="inline-block">
|
||||
<span v-text="$t('or')" class="q-mx-sm text-grey"></span>
|
||||
<q-badge
|
||||
@click="showRegister('user-id-only')"
|
||||
@ -1214,7 +1214,7 @@
|
||||
</template>
|
||||
|
||||
<template id="username-password">
|
||||
<div v-if="authMethods.includes('username-password')">
|
||||
<div v-if="LNBITS_AUTH_METHODS.includes('username-password')">
|
||||
<q-card-section class="q-pb-none">
|
||||
<div class="text-center text-h6 q-mb-sm q-mt-none q-pt-none">
|
||||
<span
|
||||
@ -1261,8 +1261,13 @@
|
||||
</q-form>
|
||||
</q-card-section>
|
||||
<!-- REGISTER -->
|
||||
<q-card-section v-if="allowed_new_users && authAction === 'register'">
|
||||
<q-form @submit="register" class="q-gutter-sm">
|
||||
<q-card-section v-if="authAction === 'register'">
|
||||
<h5
|
||||
v-if="!LNBITS_NEW_ACCOUNTS_ALLOWED"
|
||||
class="text-center"
|
||||
v-text="$t('new_user_not_allowed')"
|
||||
></h5>
|
||||
<q-form v-else @submit="register" class="q-gutter-sm">
|
||||
<q-input
|
||||
dense
|
||||
filled
|
||||
@ -1304,9 +1309,6 @@
|
||||
</div>
|
||||
</q-form>
|
||||
</q-card-section>
|
||||
<q-card-section v-else-if="!allowed_new_users && authAction === 'register'">
|
||||
<h5 class="text-center" v-text="$t('new_user_not_allowed')"></h5>
|
||||
</q-card-section>
|
||||
<slot></slot>
|
||||
<!-- RESET -->
|
||||
<q-card-section v-if="authAction === 'reset'">
|
||||
@ -1355,7 +1357,7 @@
|
||||
</div>
|
||||
<!-- OAUTH -->
|
||||
<q-card-section v-if="showOauth">
|
||||
<div v-if="authMethods.includes('username-password')">
|
||||
<div v-if="LNBITS_AUTH_METHODS.includes('username-password')">
|
||||
<separator-text :text="$t('signin_with_oauth_or')"></separator-text>
|
||||
</div>
|
||||
<q-card-section v-else class="q-pb-none">
|
||||
@ -1365,7 +1367,7 @@
|
||||
</q-card-section>
|
||||
<div class="flex justify-center q-mt-md" style="gap: 1rem">
|
||||
<q-btn
|
||||
v-if="authMethods.includes('nostr-auth-nip98')"
|
||||
v-if="LNBITS_AUTH_METHODS.includes('nostr-auth-nip98')"
|
||||
@click="signInWithNostr()"
|
||||
outline
|
||||
no-caps
|
||||
@ -1385,7 +1387,7 @@
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="authMethods.includes('github-auth')"
|
||||
v-if="LNBITS_AUTH_METHODS.includes('github-auth')"
|
||||
href="/api/v1/auth/github"
|
||||
type="a"
|
||||
outline
|
||||
@ -1404,7 +1406,7 @@
|
||||
<q-tooltip><span v-text="$t('signin_with_github')"></span></q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="authMethods.includes('google-auth')"
|
||||
v-if="LNBITS_AUTH_METHODS.includes('google-auth')"
|
||||
href="/api/v1/auth/google"
|
||||
type="a"
|
||||
outline
|
||||
@ -1424,7 +1426,7 @@
|
||||
</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="authMethods.includes('keycloak-auth')"
|
||||
v-if="LNBITS_AUTH_METHODS.includes('keycloak-auth')"
|
||||
href="/api/v1/auth/keycloak"
|
||||
type="a"
|
||||
outline
|
||||
|
Loading…
x
Reference in New Issue
Block a user