feat: add payment options
This commit is contained in:
parent
a74cf42feb
commit
43f3fbfb44
3 changed files with 108 additions and 2 deletions
|
|
@ -59,7 +59,99 @@
|
||||||
</div>
|
</div>
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
<q-tab-panel name="payment">
|
<q-tab-panel name="payment">
|
||||||
<span>yyyy</span>
|
<div v-if="relay">
|
||||||
|
<div class="row items-center no-wrap q-mb-md">
|
||||||
|
<div class="col-3 q-pr-lg">Require Payment:</div>
|
||||||
|
<div class="col-3 q-pr-lg">
|
||||||
|
<q-toggle
|
||||||
|
color="secodary"
|
||||||
|
v-model="relay.config.isPaidRelay"
|
||||||
|
@input="togglePaidRelay"
|
||||||
|
></q-toggle>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<q-select
|
||||||
|
v-if="relay.config.isPaidRelay"
|
||||||
|
filled
|
||||||
|
dense
|
||||||
|
emit-value
|
||||||
|
v-model="relay.config.wallet"
|
||||||
|
:options="walletOptions"
|
||||||
|
label="Wallet *"
|
||||||
|
>
|
||||||
|
</q-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="relay.config.isPaidRelay"
|
||||||
|
class="row items-center no-wrap q-mb-md"
|
||||||
|
>
|
||||||
|
<div class="col-3 q-pr-lg">Cost to join (sats):</div>
|
||||||
|
<div class="col-3 q-pr-lg">
|
||||||
|
<q-input
|
||||||
|
filled
|
||||||
|
dense
|
||||||
|
v-model.trim="relay.config.costToJoin"
|
||||||
|
type="number"
|
||||||
|
min="0"
|
||||||
|
></q-input>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<q-badge
|
||||||
|
v-if="relay.config.costToJoin == 0"
|
||||||
|
color="green"
|
||||||
|
class="float-left"
|
||||||
|
><span>Free to join</span>
|
||||||
|
</q-badge>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="relay.config.isPaidRelay"
|
||||||
|
class="row items-center no-wrap q-mb-md"
|
||||||
|
>
|
||||||
|
<div class="col-3 q-pr-lg">Cost per Kilo Byte (sats):</div>
|
||||||
|
<div class="col-3 q-pr-lg">
|
||||||
|
<q-input
|
||||||
|
filled
|
||||||
|
dense
|
||||||
|
v-model.trim="relay.config.storageCostPerKb"
|
||||||
|
type="number"
|
||||||
|
min="0"
|
||||||
|
></q-input>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<q-badge
|
||||||
|
v-if="relay.config.storageCostPerKb == 0"
|
||||||
|
color="green"
|
||||||
|
class="float-left"
|
||||||
|
><span>Unlimited storage</span>
|
||||||
|
</q-badge>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="relay.config.isPaidRelay && relay.config.storageCostPerKb == 0"
|
||||||
|
class="row items-center no-wrap q-mb-md"
|
||||||
|
>
|
||||||
|
<div class="col-3 q-pr-lg">Free storage (kb):</div>
|
||||||
|
<div class="col-3 q-pr-lg">
|
||||||
|
<q-input
|
||||||
|
filled
|
||||||
|
dense
|
||||||
|
v-model.trim="relay.config.freeStorage"
|
||||||
|
type="number"
|
||||||
|
min="0"
|
||||||
|
></q-input>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<q-badge
|
||||||
|
v-if="relay.config.freeStorage == 0"
|
||||||
|
color="orange"
|
||||||
|
class="float-left"
|
||||||
|
><span>No free storage</span>
|
||||||
|
</q-badge>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</q-tab-panel>
|
</q-tab-panel>
|
||||||
<q-tab-panel name="config">
|
<q-tab-panel name="config">
|
||||||
<span>zzz</span>
|
<span>zzz</span>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ async function relayDetails(path) {
|
||||||
name: 'relay-details',
|
name: 'relay-details',
|
||||||
template,
|
template,
|
||||||
|
|
||||||
props: ['relay-id', 'adminkey', 'inkey'],
|
props: ['relay-id', 'adminkey', 'inkey', 'wallet-options'],
|
||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
tab: 'info',
|
tab: 'info',
|
||||||
|
|
@ -54,7 +54,16 @@ async function relayDetails(path) {
|
||||||
'/nostrrelay/api/v1/relay/' + this.relayId,
|
'/nostrrelay/api/v1/relay/' + this.relayId,
|
||||||
this.inkey
|
this.inkey
|
||||||
)
|
)
|
||||||
|
data.config = {
|
||||||
|
isPaidRelay: true,
|
||||||
|
wallet: '',
|
||||||
|
costToJoin: 0,
|
||||||
|
freeStorage: 0,
|
||||||
|
storageCostPerKb: 0
|
||||||
|
}
|
||||||
this.relay = data
|
this.relay = data
|
||||||
|
|
||||||
|
console.log('### this.relay', this.relay)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
LNbits.utils.notifyApiError(error)
|
LNbits.utils.notifyApiError(error)
|
||||||
}
|
}
|
||||||
|
|
@ -77,6 +86,10 @@ async function relayDetails(path) {
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
LNbits.utils.notifyApiError(error)
|
LNbits.utils.notifyApiError(error)
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
togglePaidRelay: async function () {
|
||||||
|
this.relay.config.wallet =
|
||||||
|
this.relay.config.wallet || this.walletOptions[0].value
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,7 @@
|
||||||
:relay-id="props.row.id"
|
:relay-id="props.row.id"
|
||||||
:adminkey="g.user.wallets[0].adminkey"
|
:adminkey="g.user.wallets[0].adminkey"
|
||||||
:inkey="g.user.wallets[0].inkey"
|
:inkey="g.user.wallets[0].inkey"
|
||||||
|
:wallet-options="g.user.walletOptions"
|
||||||
@relay-deleted="handleRelayDeleted"
|
@relay-deleted="handleRelayDeleted"
|
||||||
@relay-updated="handleRelayUpdated"
|
@relay-updated="handleRelayUpdated"
|
||||||
></relay-details>
|
></relay-details>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue