241 lines
7.6 KiB
HTML
241 lines
7.6 KiB
HTML
<!--/////////////////////////////////////////////////-->
|
|
<!--//PAGE FOR THE EXTENSIONS BACKEND IN LNBITS//////-->
|
|
<!--/////////////////////////////////////////////////-->
|
|
|
|
{% extends "base.html" %} {% from "macros.jinja" import window_vars with context
|
|
%} {% block scripts %} {{ window_vars(user) }}
|
|
<script src="{{ static_url_for('myextension/static', path='js/index.js') }}"></script>
|
|
{% endblock %} {% block page %}
|
|
<div class="row q-col-gutter-md" id="makeItRain">
|
|
<div class="col-12 col-md-8 col-lg-7 q-gutter-y-md">
|
|
<q-card>
|
|
<q-card-section>
|
|
<q-btn unelevated color="primary" @click="formDialog.show = true"
|
|
>New MyExtension</q-btn
|
|
>
|
|
</q-card-section>
|
|
</q-card>
|
|
|
|
<q-card>
|
|
<q-card-section>
|
|
<div class="row items-center no-wrap q-mb-md">
|
|
<div class="col">
|
|
<h5 class="text-subtitle1 q-my-none">MyExtension</h5>
|
|
</div>
|
|
<div class="col-auto">
|
|
<q-btn flat color="grey" @click="exportCSV">Export to CSV</q-btn>
|
|
</div>
|
|
</div>
|
|
<q-table
|
|
dense
|
|
flat
|
|
:rows="myex"
|
|
row-key="id"
|
|
:columns="myexTable.columns"
|
|
v-model:pagination="myexTable.pagination"
|
|
>
|
|
<myextension v-slot:header="props">
|
|
<q-tr :props="props">
|
|
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
|
${ col.label }
|
|
</q-th>
|
|
</q-tr>
|
|
</myextension>
|
|
|
|
<template v-slot:body="props">
|
|
<q-tr :props="props">
|
|
<q-td v-for="col in props.cols" :key="col.name" :props="props">
|
|
<div v-if="col.field == 'total'">${ col.value / 1000} sats</div>
|
|
<div v-else>${ col.value }</div>
|
|
</q-td>
|
|
<q-td auto-width>
|
|
<q-btn
|
|
unelevated
|
|
dense
|
|
size="sm"
|
|
icon="qr_code"
|
|
:color="($q.dark.isActive) ? 'grey-7' : 'grey-5'"
|
|
class="q-mr-sm"
|
|
@click="openUrlDialog(props.row.id)"
|
|
></q-btn
|
|
></q-td>
|
|
<q-td auto-width>
|
|
<q-btn
|
|
unelevated
|
|
dense
|
|
size="sm"
|
|
icon="launch"
|
|
:color="($q.dark.isActive) ? 'grey-7' : 'grey-5'"
|
|
type="a"
|
|
:href="props.row.myextension"
|
|
target="_blank"
|
|
><q-tooltip>Open public page</q-tooltip></q-btn
|
|
></q-td
|
|
>
|
|
|
|
<q-td>
|
|
<q-btn
|
|
flat
|
|
dense
|
|
size="xs"
|
|
@click="updateMyExtensionForm(props.row.id)"
|
|
icon="edit"
|
|
color="light-blue"
|
|
>
|
|
<q-tooltip> Edit copilot </q-tooltip>
|
|
</q-btn>
|
|
</q-td>
|
|
|
|
<q-td>
|
|
<q-btn
|
|
flat
|
|
dense
|
|
size="xs"
|
|
@click="deleteMyExtension(props.row.id)"
|
|
icon="cancel"
|
|
color="pink"
|
|
>
|
|
<q-tooltip> Delete copilot </q-tooltip>
|
|
</q-btn>
|
|
</q-td>
|
|
</q-tr>
|
|
</template>
|
|
</q-table>
|
|
</q-card-section>
|
|
</q-card>
|
|
</div>
|
|
|
|
<div class="col-12 col-md-4 col-lg-5 q-gutter-y-md">
|
|
<q-card>
|
|
<q-card-section>
|
|
<h6 class="text-subtitle1 q-my-none">
|
|
{{SITE_TITLE}} MyExtension extension
|
|
</h6>
|
|
<p>
|
|
Simple extension you can use as a base for your own extension. <br />
|
|
Includes very simple LNURL-pay and LNURL-withdraw example.
|
|
</p>
|
|
</q-card-section>
|
|
<q-card-section class="q-pa-none">
|
|
<q-separator></q-separator>
|
|
<q-list>
|
|
{% include "myextension/_api_docs.html" %}
|
|
<q-separator></q-separator>
|
|
{% include "myextension/_myextension.html" %}
|
|
</q-list>
|
|
</q-card-section>
|
|
</q-card>
|
|
</div>
|
|
|
|
<!--/////////////////////////////////////////////////-->
|
|
<!--//////////////FORM DIALOG////////////////////////-->
|
|
<!--/////////////////////////////////////////////////-->
|
|
|
|
<q-dialog v-model="formDialog.show" position="top" @hide="closeFormDialog">
|
|
<q-card class="q-pa-lg q-pt-xl" style="width: 500px">
|
|
<q-form @submit="sendMyExtensionData" class="q-gutter-md">
|
|
<q-input
|
|
filled
|
|
dense
|
|
v-model.trim="formDialog.data.name"
|
|
label="Name"
|
|
placeholder="Name for your record"
|
|
></q-input>
|
|
<q-select
|
|
filled
|
|
dense
|
|
emit-value
|
|
v-model="formDialog.data.wallet"
|
|
:options="g.user.walletOptions"
|
|
label="Wallet *"
|
|
></q-select>
|
|
<q-input
|
|
filled
|
|
dense
|
|
type="number"
|
|
v-model.trim="formDialog.data.lnurlwithdrawamount"
|
|
label="LNURL-withdraw amount"
|
|
></q-input>
|
|
<q-input
|
|
filled
|
|
dense
|
|
type="number"
|
|
v-model.trim="formDialog.data.lnurlpayamount"
|
|
label="LNURL-pay amount"
|
|
></q-input>
|
|
<div class="row q-mt-lg">
|
|
<q-btn
|
|
v-if="formDialog.data.id"
|
|
unelevated
|
|
color="primary"
|
|
type="submit"
|
|
>Update MyExtension</q-btn
|
|
>
|
|
<q-btn
|
|
v-else
|
|
unelevated
|
|
color="primary"
|
|
:disable="formDialog.data.name == null || formDialog.data.wallet == null || formDialog.data.lnurlwithdrawamount == null || formDialog.data.lnurlpayamount == null"
|
|
type="submit"
|
|
>Create MyExtension</q-btn
|
|
>
|
|
<q-btn v-close-popup flat color="grey" class="q-ml-auto"
|
|
>Cancel</q-btn
|
|
>
|
|
</div>
|
|
</q-form>
|
|
</q-card>
|
|
</q-dialog>
|
|
|
|
<!--/////////////////////////////////////////////////-->
|
|
<!--//////////////QR Code DIALOG/////////////////////-->
|
|
<!--/////////////////////////////////////////////////-->
|
|
|
|
<q-dialog v-model="urlDialog.show" position="top">
|
|
<q-card class="q-pa-lg q-pt-xl lnbits__dialog-card">
|
|
<q-responsive :ratio="1" class="q-mx-xl q-mb-md">
|
|
<lnbits-qrcode :value="qrValue"></lnbits-qrcode>
|
|
</q-responsive>
|
|
<center><q-btn label="copy" @click="copyText(qrValue)"></q-btn></center>
|
|
|
|
<q-separator></q-separator>
|
|
|
|
<div class="row justify-start q-mt-lg">
|
|
<div class="col col-md-auto">
|
|
<q-btn
|
|
outline
|
|
style="color: primmary"
|
|
@click="qrValue = urlDialog.data.lnurlpay"
|
|
>lnurlpay</q-btn
|
|
>
|
|
</div>
|
|
<div class="col col-md-auto">
|
|
<q-btn
|
|
outline
|
|
style="color: primmary"
|
|
@click="qrValue = urlDialog.data.lnurlwithdraw"
|
|
>lnurlwithdraw</q-btn
|
|
>
|
|
</div>
|
|
<div class="col q-pl-md">
|
|
<q-input filled bottom-slots dense v-model="invoiceAmount">
|
|
<template v-slot:append>
|
|
<q-btn
|
|
round
|
|
@click="createInvoice(urlDialog.data.wallet, urlDialog.data.id)"
|
|
color="primary"
|
|
flat
|
|
icon="add_circle"
|
|
/>
|
|
</template>
|
|
<template v-slot:hint> Create an invoice </template>
|
|
</q-input>
|
|
</div>
|
|
</div>
|
|
<div class="row q-mt-lg">
|
|
<q-btn v-close-popup flat color="grey" class="q-ml-auto">Close</q-btn>
|
|
</div>
|
|
</q-card>
|
|
</q-dialog>
|
|
</div>
|
|
{% endblock %}
|