mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-24 22:58:46 +01:00
143 lines
3.6 KiB
JavaScript
143 lines
3.6 KiB
JavaScript
/* globals Quasar, Vue, _, VueQrcode, windowMixin, LNbits, LOCALE */
|
|
|
|
Vue.component(VueQrcode.name, VueQrcode)
|
|
|
|
var locationPath = [
|
|
window.location.protocol,
|
|
'//',
|
|
window.location.host,
|
|
window.location.pathname
|
|
].join('')
|
|
|
|
var mapScrubLink = obj => {
|
|
obj._data = _.clone(obj)
|
|
obj.date = Quasar.utils.date.formatDate(
|
|
new Date(obj.time * 1000),
|
|
'YYYY-MM-DD HH:mm'
|
|
)
|
|
obj.amount = new Intl.NumberFormat(LOCALE).format(obj.amount)
|
|
obj.print_url = [locationPath, 'print/', obj.id].join('')
|
|
obj.pay_url = [locationPath, obj.id].join('')
|
|
return obj
|
|
}
|
|
|
|
new Vue({
|
|
el: '#vue',
|
|
mixins: [windowMixin],
|
|
data() {
|
|
return {
|
|
checker: null,
|
|
payLinks: [],
|
|
payLinksTable: {
|
|
pagination: {
|
|
rowsPerPage: 10
|
|
}
|
|
},
|
|
formDialog: {
|
|
show: false,
|
|
data: {}
|
|
},
|
|
qrCodeDialog: {
|
|
show: false,
|
|
data: null
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
getScrubLinks() {
|
|
LNbits.api
|
|
.request(
|
|
'GET',
|
|
'/scrub/api/v1/links?all_wallets=true',
|
|
this.g.user.wallets[0].inkey
|
|
)
|
|
.then(response => {
|
|
this.payLinks = response.data.map(mapScrubLink)
|
|
})
|
|
.catch(err => {
|
|
clearInterval(this.checker)
|
|
LNbits.utils.notifyApiError(err)
|
|
})
|
|
},
|
|
closeFormDialog() {
|
|
this.resetFormData()
|
|
},
|
|
openUpdateDialog(linkId) {
|
|
const link = _.findWhere(this.payLinks, {id: linkId})
|
|
|
|
this.formDialog.data = _.clone(link._data)
|
|
this.formDialog.show = true
|
|
},
|
|
sendFormData() {
|
|
const wallet = _.findWhere(this.g.user.wallets, {
|
|
id: this.formDialog.data.wallet
|
|
})
|
|
let data = Object.freeze(this.formDialog.data)
|
|
console.log(wallet, data)
|
|
|
|
if (data.id) {
|
|
this.updateScrubLink(wallet, data)
|
|
} else {
|
|
this.createScrubLink(wallet, data)
|
|
}
|
|
},
|
|
resetFormData() {
|
|
this.formDialog = {
|
|
show: false,
|
|
data: {}
|
|
}
|
|
},
|
|
updateScrubLink(wallet, data) {
|
|
LNbits.api
|
|
.request('PUT', '/scrub/api/v1/links/' + data.id, wallet.adminkey, data)
|
|
.then(response => {
|
|
this.payLinks = _.reject(this.payLinks, obj => obj.id === data.id)
|
|
this.payLinks.push(mapScrubLink(response.data))
|
|
this.formDialog.show = false
|
|
this.resetFormData()
|
|
})
|
|
.catch(err => {
|
|
LNbits.utils.notifyApiError(err)
|
|
})
|
|
},
|
|
createScrubLink(wallet, data) {
|
|
LNbits.api
|
|
.request('POST', '/scrub/api/v1/links', wallet.adminkey, data)
|
|
.then(response => {
|
|
console.log('RES', response)
|
|
this.getScrubLinks()
|
|
this.formDialog.show = false
|
|
this.resetFormData()
|
|
})
|
|
.catch(err => {
|
|
LNbits.utils.notifyApiError(err)
|
|
})
|
|
},
|
|
deleteScrubLink(linkId) {
|
|
var link = _.findWhere(this.payLinks, {id: linkId})
|
|
|
|
LNbits.utils
|
|
.confirmDialog('Are you sure you want to delete this pay link?')
|
|
.onOk(() => {
|
|
LNbits.api
|
|
.request(
|
|
'DELETE',
|
|
'/scrub/api/v1/links/' + linkId,
|
|
_.findWhere(this.g.user.wallets, {id: link.wallet}).adminkey
|
|
)
|
|
.then(response => {
|
|
this.payLinks = _.reject(this.payLinks, obj => obj.id === linkId)
|
|
})
|
|
.catch(err => {
|
|
LNbits.utils.notifyApiError(err)
|
|
})
|
|
})
|
|
}
|
|
},
|
|
created() {
|
|
if (this.g.user.wallets.length) {
|
|
var getScrubLinks = this.getScrubLinks
|
|
getScrubLinks()
|
|
}
|
|
}
|
|
})
|