Removes install page reloads

This commit is contained in:
ben 2023-02-01 06:12:00 +00:00
parent 2470497ce5
commit e20bb99811
2 changed files with 56 additions and 40 deletions

View file

@ -28,9 +28,9 @@
active-color="primary"
align="left"
>
<q-tab
name="featured"
label="Featured"
<q-tab
name="installed"
label="Installed"
@update="val => tab = val.name"
></q-tab>
<q-tab
@ -39,8 +39,8 @@
@update="val => tab = val.name"
></q-tab>
<q-tab
name="installed"
label="Installed"
name="featured"
label="Featured"
@update="val => tab = val.name"
></q-tab>
</q-tabs>
@ -318,7 +318,7 @@
data: function () {
return {
searchTerm: '',
tab: 'featured',
tab: 'all',
filteredExtensions: null,
showUninstallDialog: false,
showUpgradeDialog: false,
@ -356,11 +356,10 @@
},
installExtension: async function (release) {
const extension = this.selectedExtension
try {
extension.inProgress = true
this.showUpgradeDialog = false
await LNbits.api.request(
'POST',
LNbits.api
.request('POST',
`/api/v1/extension?usr=${this.g.user.id}`,
this.g.user.wallets[0].adminkey,
{
@ -369,46 +368,55 @@
source_repo: release.source_repo
}
)
window.location.href = [
"{{ url_for('install.extensions') }}",
'?usr=',
this.g.user.id
].join('')
} catch (error) {
LNbits.utils.notifyApiError(error)
extension.inProgress = false
}
.then(response => {
extension.isAvailable = true
extension.isInstalled = true
extension.inProgress = false
this.filteredExtensions = this.extensions.concat([])
this.handleTabChanged('installed')
this.tab = 'installed'
})
.catch(err => {
LNbits.utils.notifyApiError(err)
extension.inProgress = false
})
},
uninstallExtension: async function () {
const extension = this.selectedExtension
this.showUpgradeDialog = false
this.showUninstallDialog = false
try {
extension.inProgress = true
await LNbits.api.request(
'DELETE',
`/api/v1/extension/${extension.id}?usr=${this.g.user.id}`,
extension.inProgress = true
LNbits.api
.request('DELETE',
`/api/v1/extension/${extension.id}?usr=${this.g.user.id}`,
this.g.user.wallets[0].adminkey
)
window.location.href = [
"{{ url_for('install.extensions') }}",
'?usr=',
this.g.user.id
].join('')
} catch (error) {
LNbits.utils.notifyApiError(error)
extension.inProgress = false
}
.then(response => {
extension.isAvailable = false
extension.isInstalled = false
extension.inProgress = false
this.filteredExtensions = this.extensions.concat([])
this.handleTabChanged('installed')
this.tab = 'installed'
})
.catch(err => {
LNbits.utils.notifyApiError(err)
extension.inProgress = false
})
},
toggleExtension: function (extension) {
const action = extension.isActive ? 'activate' : 'deactivate'
window.location.href = [
"{{ url_for('install.extensions') }}",
'?usr=',
this.g.user.id,
`&${action}=`,
extension.id
].join('')
LNbits.api
.request('GET',
"{{ url_for('install.extensions') }}?usr=" + this.g.user.id + "&" + action + "=" + extension.id
)
.then(response => {
// this.filteredExtensions = this.extensions.concat([])
})
.catch(err => {
LNbits.utils.notifyApiError(err)
extension.inProgress = false
})
},
showUninstall: function () {
@ -477,7 +485,13 @@
inProgress: false
}))
this.filteredExtensions = this.extensions.concat([])
this.handleTabChanged('featured')
console.log(this.filteredExtensions)
for (let i = 0; i < this.filteredExtensions.length; i++) {
if(this.filteredExtensions[i].isInstalled != false){
this.handleTabChanged('installed')
this.tab = 'installed'
}
}
},
mixins: [windowMixin]
})

View file

@ -761,6 +761,8 @@ async def api_install_extension(
if extension.upgrade_hash:
ext_info.nofiy_upgrade()
return extension
except Exception as ex:
logger.warning(ex)
ext_info.clean_extension_files()