chore: cleanup base.html, minor issue and g.user initialisation (#3615)

Co-authored-by: Vlad Stan <stan.v.vlad@gmail.com>
This commit is contained in:
dni ⚡ 2025-12-04 10:21:40 +01:00 committed by GitHub
parent 1fe35070f4
commit 73634e5161
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 24 additions and 25 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -50,9 +50,6 @@ window.LNbits = {
}
newWallet.msat = data.balance_msat
newWallet.sat = Math.floor(data.balance_msat / 1000)
newWallet.fsat = new Intl.NumberFormat(window.i18n.global.locale).format(
newWallet.sat
)
if (newWallet.walletType === 'lightning-shared') {
const perms = newWallet.sharePermissions
newWallet.canReceivePayments = perms.includes('receive-payments')

View file

@ -360,7 +360,7 @@ window.app.component('lnbits-update-balance', {
props: ['wallet_id', 'small_btn'],
computed: {
admin() {
return user.super_user
return this.g.user?.super_user === true
}
},
data() {

View file

@ -26,8 +26,7 @@ window.PageExtensions = {
selectedRelease: null,
uninstallAndDropDb: false,
maxStars: 5,
paylinkWebsocket: null,
user: null
paylinkWebsocket: null
}
},
watch: {
@ -636,7 +635,7 @@ window.PageExtensions = {
},
async created() {
this.extensions = await this.fetchAllExtensions()
this.extbuilderEnabled = user.admin || this.LNBITS_EXT_BUILDER
this.extbuilderEnabled = this.g.user.admin || this.LNBITS_EXT_BUILDER
const extId = window.location.hash.replace('#', '')
const ext = this.extensions.find(ext => ext.id === extId)

View file

@ -20,14 +20,12 @@ window.windowMixin = {
console.error('ws message no payment', data)
return
}
// update sidebar wallet balances
this.g.user.wallets.forEach(w => {
if (w.id === data.payment.wallet_id) {
w.sat = data.wallet_balance
}
})
// if current wallet, update balance and payments
if (this.g.wallet.id === data.payment.wallet_id) {
this.g.wallet.sat = data.wallet_balance
@ -35,7 +33,6 @@ window.windowMixin = {
this.g.updatePayments = !this.g.updatePayments
this.g.updatePaymentsHash = !this.g.updatePaymentsHash
}
// NOTE: react only on incoming payments for now
if (data.payment.amount > 0) {
eventReaction(data.wallet_balance * 1000)
@ -72,9 +69,7 @@ window.windowMixin = {
}
},
created() {
// map jinja variable once on pageload
if (window.user && !this.g.user) {
this.g.user = window.LNbits.map.user(window.user)
if (this.g.user && this.g.walletEventListeners.length === 0) {
this.paymentEvents()
}
}

View file

@ -45,7 +45,7 @@
<lnbits-wallet-new></lnbits-wallet-new>
<lnbits-header-wallets></lnbits-header-wallets>
<router-view v-if="isVueRoute" :key="$route.path"></router-view>
<!-- FastAPI Content -->
<!-- FastAPI Content from extensions -->
<div v-else>{% block page %}{% endblock %}</div>
</q-page>
</q-page-container>
@ -60,11 +60,24 @@
window[key] = WINDOW_SETTINGS[key]
})
</script>
{% include('components.vue') %} {% include('pages.vue') %} {% block
vue_templates %}{% endblock %} {% for url in INCLUDED_JS %}
<!-- vue templates -->
{% include('components.vue') %} {% include('pages.vue') %}
<!-- vue extension templates -->
{% block vue_templates %}{% endblock %}
<!-- scripts libraries -->
{% for url in INCLUDED_JS %}
<script src="{{ static_url_for('static', url) }}"></script>
{% endfor %} {% block scripts %}{% endblock %} {% for url in
INCLUDED_COMPONENTS %}
{% endfor %}
<!-- user init -->
{% if user %}
<script>
window.g.user = LNbits.map.user(JSON.parse({{ user | tojson | safe }}));
</script>
{% endif %}
<!-- scripts from extensions -->
{% block scripts %}{% endblock %}
<!-- components js -->
{% for url in INCLUDED_COMPONENTS %}
<script src="{{ static_url_for('static', url) }}"></script>
{% endfor %}
</body>

View file

@ -1,9 +1,4 @@
{% macro window_vars(user) -%}
<script id="window-vars-script">
{% if user %}
window.user = JSON.parse({{ user | tojson | safe }});
{% endif %}
</script>
<script>
//Needed for Vue to create the app on first load (although called on every page, its only loaded once)
window.app = Vue.createApp({