mirror of
https://github.com/YunoHost/yunohost-admin.git
synced 2024-09-03 20:06:15 +02:00
AppInstall: add post_install notifs
This commit is contained in:
parent
099bcfbb8b
commit
a16c4b6441
2 changed files with 30 additions and 10 deletions
|
@ -57,12 +57,18 @@
|
||||||
"app": {
|
"app": {
|
||||||
"antifeatures": "Antifeatures:",
|
"antifeatures": "Antifeatures:",
|
||||||
"install": {
|
"install": {
|
||||||
"before_install": {
|
|
||||||
"warning": "Things to know before installation",
|
|
||||||
"danger": "The installation of the application will most likely lead to issues",
|
|
||||||
"critical": "The application cannot be installed"
|
|
||||||
},
|
|
||||||
"license": "License: {license}",
|
"license": "License: {license}",
|
||||||
|
"notifs": {
|
||||||
|
"post": {
|
||||||
|
"title": "Post-install notifications for '{name}'",
|
||||||
|
"alert": "It seems that the installation went well!\n Here is some notifications that the packager considers important to know.\nYou can read it again in the app info page."
|
||||||
|
},
|
||||||
|
"pre": {
|
||||||
|
"warning": "Things to know before installation",
|
||||||
|
"danger": "The installation of the application will most likely lead to issues",
|
||||||
|
"critical": "The application cannot be installed"
|
||||||
|
}
|
||||||
|
},
|
||||||
"problems": {
|
"problems": {
|
||||||
"arch": "This app can only be installed on specific architectures ({required}) but your server architecture is {current}.",
|
"arch": "This app can only be installed on specific architectures ({required}) but your server architecture is {current}.",
|
||||||
"broken": "This application is broken according to YunoHost's automatic tests and it is likely to break your system! You should probably NOT install it unless you know what you are doing.",
|
"broken": "This application is broken according to YunoHost's automatic tests and it is likely to break your system! You should probably NOT install it unless you know what you are doing.",
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<template v-if="app">
|
<template v-if="app">
|
||||||
<card :title="app.name" icon="download" body-class="p-0">
|
<card :title="app.name" icon="download" body-class="p-0">
|
||||||
<section class="p-3">
|
<section class="p-3">
|
||||||
<p v-if="app.alternativeTo" class="mt-3">
|
<p v-if="app.alternativeTo">
|
||||||
<strong v-t="'app.potential_alternative_to'" />
|
<strong v-t="'app.potential_alternative_to'" />
|
||||||
{{ app.alternativeTo }}
|
{{ app.alternativeTo }}
|
||||||
</p>
|
</p>
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
</card>
|
</card>
|
||||||
|
|
||||||
<yuno-alert v-if="app.hasWarning" variant="warning" class="my-4">
|
<yuno-alert v-if="app.hasWarning" variant="warning" class="my-4">
|
||||||
<h2>{{ $t('app.install.before_install.warning') }}</h2>
|
<h2>{{ $t('app.install.notifs.pre.warning') }}</h2>
|
||||||
|
|
||||||
<template v-if="app.antifeatures">
|
<template v-if="app.antifeatures">
|
||||||
<strong v-t="'app.antifeatures'" class="d-block mb-1" />
|
<strong v-t="'app.antifeatures'" class="d-block mb-1" />
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
v-if="!app.hasSupport"
|
v-if="!app.hasSupport"
|
||||||
variant="danger" icon="warning" class="my-4"
|
variant="danger" icon="warning" class="my-4"
|
||||||
>
|
>
|
||||||
<h2>{{ $t('app.install.before_install.critical') }}</h2>
|
<h2>{{ $t('app.install.notifs.pre.critical') }}</h2>
|
||||||
|
|
||||||
<p v-if="!app.requirements.arch.pass">
|
<p v-if="!app.requirements.arch.pass">
|
||||||
{{ $t('app.install.problems.arch', app.requirements.arch.values) }}
|
{{ $t('app.install.problems.arch', app.requirements.arch.values) }}
|
||||||
|
@ -102,7 +102,7 @@
|
||||||
</yuno-alert>
|
</yuno-alert>
|
||||||
|
|
||||||
<yuno-alert v-else-if="app.hasDanger" variant="danger" class="my-4">
|
<yuno-alert v-else-if="app.hasDanger" variant="danger" class="my-4">
|
||||||
<h2>{{ $t('app.install.before_install.danger') }}</h2>
|
<h2>{{ $t('app.install.notifs.pre.danger') }}</h2>
|
||||||
|
|
||||||
<p v-if="['inprogress', 'broken', 'thirdparty'].includes(app.quality.state)" v-t="'app.install.problems.' + app.quality.state" />
|
<p v-if="['inprogress', 'broken', 'thirdparty'].includes(app.quality.state)" v-t="'app.install.problems.' + app.quality.state" />
|
||||||
<p v-if="!app.requirements.ram.pass">
|
<p v-if="!app.requirements.ram.pass">
|
||||||
|
@ -269,6 +269,12 @@ export default {
|
||||||
this.errors = errors
|
this.errors = errors
|
||||||
},
|
},
|
||||||
|
|
||||||
|
formatAppNotifs (notifs) {
|
||||||
|
return Object.keys(notifs).reduce((acc, key) => {
|
||||||
|
return acc + '\n\n' + notifs[key]
|
||||||
|
}, '')
|
||||||
|
},
|
||||||
|
|
||||||
async performInstall () {
|
async performInstall () {
|
||||||
if ('path' in this.form && this.form.path === '/') {
|
if ('path' in this.form && this.form.path === '/') {
|
||||||
const confirmed = await this.$askConfirmation(
|
const confirmed = await this.$askConfirmation(
|
||||||
|
@ -283,7 +289,15 @@ export default {
|
||||||
)
|
)
|
||||||
const data = { app: this.id, label, args: Object.entries(args).length ? objectToParams(args) : undefined }
|
const data = { app: this.id, label, args: Object.entries(args).length ? objectToParams(args) : undefined }
|
||||||
|
|
||||||
api.post('apps', data, { key: 'apps.install', name: this.app.name }).then(() => {
|
api.post('apps', data, { key: 'apps.install', name: this.app.name }).then(async ({ notifications }) => {
|
||||||
|
const postInstall = this.formatAppNotifs(notifications)
|
||||||
|
if (postInstall) {
|
||||||
|
const message = this.$i18n.t('app.install.notifs.post.alert') + '\n\n' + postInstall
|
||||||
|
await this.$askMdConfirmation(message, {
|
||||||
|
title: this.$i18n.t('app.install.notifs.post.title', { name: this.app.name }),
|
||||||
|
okTitle: this.$i18n.t('ok')
|
||||||
|
}, true)
|
||||||
|
}
|
||||||
this.$router.push({ name: 'app-list' })
|
this.$router.push({ name: 'app-list' })
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
if (err.name !== 'APIBadRequestError') throw err
|
if (err.name !== 'APIBadRequestError') throw err
|
||||||
|
|
Loading…
Add table
Reference in a new issue