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

View File

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