diff --git a/lnbits/app.py b/lnbits/app.py index a8371950..50f218b7 100644 --- a/lnbits/app.py +++ b/lnbits/app.py @@ -84,6 +84,7 @@ async def check_funding_source() -> None: def signal_handler(signal, frame): logger.debug(f"SIGINT received, terminating LNbits.") sys.exit(1) + signal.signal(signal.SIGINT, signal_handler) WALLET = get_wallet_class() diff --git a/lnbits/extensions/admin/models.py b/lnbits/extensions/admin/models.py index 94fa56bb..d9d2b22f 100644 --- a/lnbits/extensions/admin/models.py +++ b/lnbits/extensions/admin/models.py @@ -6,10 +6,10 @@ from pydantic import BaseModel class UpdateSettings(BaseModel): lnbits_backend_wallet_class: str = Query(None) - lnbits_admin_users: List[str] = Query(None) - lnbits_allowed_users: List[str] = Query(None) - lnbits_admin_ext: List[str] = Query(None) - lnbits_disabled_ext: List[str] = Query(None) + lnbits_admin_users: List[str] = Query(None) + lnbits_allowed_users: List[str] = Query(None) + lnbits_admin_ext: List[str] = Query(None) + lnbits_disabled_ext: List[str] = Query(None) lnbits_funding_source: str = Query(None) lnbits_force_https: bool = Query(None) lnbits_reserve_fee_min: int = Query(None, ge=0) @@ -23,4 +23,35 @@ class UpdateSettings(BaseModel): lnbits_denomination: str = Query(None) lnbits_theme: str = Query(None) lnbits_custom_logo: str = Query(None) - lnbits_ad_space: List[str] = Query(None) + lnbits_ad_space: List[str] = Query(None) + + # funding sources + fake_wallet_secret: str = Query(None) + lnbits_endpoint: str = Query(None) + lnbits_key: str = Query(None) + cliche_endpoint: str = Query(None) + corelightning_rpc: str = Query(None) + eclair_url: str = Query(None) + eclair_pass: str = Query(None) + lnd_rest_endpoint: str = Query(None) + lnd_rest_cert: str = Query(None) + lnd_rest_macaroon: str = Query(None) + lnd_rest_macaroon_encrypted: str = Query(None) + lnd_cert: str = Query(None) + lnd_admin_macaroon: str = Query(None) + lnd_invoice_macaroon: str = Query(None) + lnd_grpc_endpoint: str = Query(None) + lnd_grpc_cert: str = Query(None) + lnd_grpc_port: int = Query(None, ge=0) + lnd_grpc_admin_macaroon: str = Query(None) + lnd_grpc_invoice_macaroon: str = Query(None) + lnd_grpc_macaroon_encrypted: str = Query(None) + lnpay_api_endpoint: str = Query(None) + lnpay_api_key: str = Query(None) + lnpay_wallet_key: str = Query(None) + lntxbot_api_endpoint: str = Query(None) + lntxbot_key: str = Query(None) + opennode_api_endpoint: str = Query(None) + opennode_key: str = Query(None) + spark_url: str = Query(None) + spark_token: str = Query(None) diff --git a/lnbits/extensions/admin/templates/admin/_tab_funding.html b/lnbits/extensions/admin/templates/admin/_tab_funding.html index 8b5456f1..a523d4e5 100644 --- a/lnbits/extensions/admin/templates/admin/_tab_funding.html +++ b/lnbits/extensions/admin/templates/admin/_tab_funding.html @@ -8,9 +8,7 @@

Funding Source Info

@@ -60,21 +58,30 @@
-

Funding Sources

+

Funding Sources (Requires server restart)

- + - - + diff --git a/lnbits/extensions/admin/templates/admin/index.html b/lnbits/extensions/admin/templates/admin/index.html index d8111595..ccaddda4 100644 --- a/lnbits/extensions/admin/templates/admin/index.html +++ b/lnbits/extensions/admin/templates/admin/index.html @@ -3,7 +3,13 @@
- + u !== user - ) + this.settings.lnbits_admin_users = admin_users.filter(u => u !== user) }, addAllowedUser() { let addUser = this.formData.allowed_users_add @@ -155,7 +335,9 @@ }, removeAllowedUser(user) { let allowed_users = this.settings.lnbits_allowed_users - this.settings.lnbits_allowed_users = allowed_users.filter(u => u !== user) + this.settings.lnbits_allowed_users = allowed_users.filter( + u => u !== user + ) }, addAdSpace() { let adSpace = this.formData.ad_space_add @@ -208,8 +390,19 @@ LNbits.utils.notifyApiError(error) }) }, + updateFundingData(){ + this.settings.lnbits_allowed_funding_sources.map(f => { + let opts = this.funding_sources.get(f) + if (!opts) return + + Object.keys(opts).forEach(e => { + opts[e].value = this.settings[e] + }) + }) + console.log("funding", this.funding_sources) + }, updateSettings() { - let data = { + let data = { ...this.formData } LNbits.api @@ -222,11 +415,13 @@ .then(response => { this.settings = response.data.settings this.formData = _.clone(this.settings) + this.updateFundingData() this.$q.notify({ type: 'positive', message: 'Success! Settings changed!', icon: null }) + console.log(this.settings) }) .catch(function (error) { LNbits.utils.notifyApiError(error) @@ -262,7 +457,7 @@ LNbits.utils.notifyApiError(error) }) } - }, + } }) {% endblock %}