Adds image library for admins (#3066)

This commit is contained in:
Arc
2025-03-27 11:16:20 +02:00
committed by GitHub
parent 35f7821183
commit 63adcb6780
7 changed files with 233 additions and 3 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+1
View File
@@ -27,6 +27,7 @@ window.localisation.en = {
close_channel: 'Close Channel',
close: 'Close',
restart: 'Restart server',
image_library: 'Image Library',
save: 'Save',
save_tooltip: 'Save your changes',
credit_debit: 'Credit / Debit',
+63
View File
@@ -4,6 +4,7 @@ window.AdminPageLogic = {
return {
settings: {},
logs: [],
library_images: [],
serverlogEnabled: false,
lnbits_theme_options: [
'classic',
@@ -140,6 +141,7 @@ window.AdminPageLogic = {
async created() {
await this.getSettings()
await this.getAudit()
await this.getUploadedImages()
this.balance = +'{{ balance|safe }}'
const hash = window.location.hash.replace('#', '')
if (hash === 'exchange_providers') {
@@ -552,6 +554,67 @@ window.AdminPageLogic = {
.catch(LNbits.utils.notifyApiError)
})
},
onImageInput(e) {
const file = e.target.files[0]
if (file) {
this.uploadImage(file)
}
},
async uploadImage(file) {
const formData = new FormData()
formData.append('file', file)
try {
const response = await LNbits.api.request(
'POST',
'/admin/api/v1/images',
this.g.user.wallets[0].adminkey,
formData,
{headers: {'Content-Type': 'multipart/form-data'}}
)
this.$q.notify({
type: 'positive',
message: 'Image uploaded!',
icon: null
})
await this.getUploadedImages()
} catch (error) {
LNbits.utils.notifyApiError(error)
}
},
async getUploadedImages() {
try {
const response = await LNbits.api.request(
'GET',
'/admin/api/v1/images',
this.g.user.wallets[0].inkey
)
this.library_images = response.data
} catch (error) {
LNbits.utils.notifyApiError(error)
}
},
async deleteImage(filename) {
LNbits.utils
.confirmDialog('Are you sure you want to delete this image?')
.onOk(async () => {
try {
await LNbits.api.request(
'DELETE',
`/admin/api/v1/images/${filename}`,
this.g.user.wallets[0].adminkey
)
this.$q.notify({
type: 'positive',
message: 'Image deleted!',
icon: null
})
await this.getUploadedImages()
} catch (error) {
LNbits.utils.notifyApiError(error)
}
})
},
downloadBackup() {
window.open('/admin/api/v1/backup', '_blank')
},