AppCatalogDetails: condition warning & add 'not_relevant' sso/ldap value

This commit is contained in:
axolotle 2022-11-09 17:23:16 +01:00
parent a13fbd9dd4
commit f60cdc2608

View file

@ -10,9 +10,9 @@
<section class="p-3"> <section class="p-3">
<h3>{{ app.name }}</h3> <h3>{{ app.name }}</h3>
<p v-if="app.alternatives" class="mt-3"> <p v-if="app.alternativeTo" class="mt-3">
<strong v-t="'app.potential_alternative_to'" /> <strong v-t="'app.potential_alternative_to'" />
{{ app.alternatives }} {{ app.alternativeTo }}
</p> </p>
<vue-showdown :markdown="app.description" flavor="github" /> <vue-showdown :markdown="app.description" flavor="github" />
@ -35,24 +35,27 @@
</section> </section>
<card-collapse <card-collapse
v-if="app.hasWarning"
id="app-warning" flush variant="warning" id="app-warning" flush variant="warning"
visible :title="$t('app.preview.before_install')" visible :title="$t('app.preview.before_install')"
> >
<b-card-body> <b-card-body>
<strong v-t="'app.antifeatures'" class="d-block mb-1" /> <template v-if="app.antifeatures.length">
<ul class="antifeatures"> <strong v-t="'app.antifeatures'" class="d-block mb-1" />
<li v-for="antifeature in app.antifeatures" :key="antifeature.id"> <ul class="antifeatures">
<icon :iname="antifeature.icon" class="md mr-1" /> <li v-for="antifeature in app.antifeatures" :key="antifeature.id">
{{ antifeature.title }} <icon :iname="antifeature.icon" class="md mr-1" />
<explain-what {{ antifeature.title }}
:id="antifeature.id" <explain-what
:title="antifeature.title" :id="antifeature.id"
:content="antifeature.description" :title="antifeature.title"
/> :content="antifeature.description"
</li> />
</ul> </li>
</ul>
</template>
<vue-showdown :markdown="app.preInstall" flavor="github" /> <vue-showdown v-if="app.preInstall" :markdown="app.preInstall" flavor="github" />
</b-card-body> </b-card-body>
</card-collapse> </card-collapse>
@ -61,10 +64,10 @@
<yuno-list-group-item variant="info"> <yuno-list-group-item variant="info">
{{ $t('app.preview.integration.archs') }} {{ app.integration.archs }} {{ $t('app.preview.integration.archs') }} {{ app.integration.archs }}
</yuno-list-group-item> </yuno-list-group-item>
<yuno-list-group-item :variant="app.integration.ldap ? 'success' : 'warning'"> <yuno-list-group-item v-if="app.integration.ldap" :variant="app.integration.ldap ? 'success' : 'warning'">
{{ $t(`app.preview.integration.ldap.${app.integration.ldap}`) }} {{ $t(`app.preview.integration.ldap.${app.integration.ldap}`) }}
</yuno-list-group-item> </yuno-list-group-item>
<yuno-list-group-item :variant="app.integration.sso ? 'success' : 'warning'"> <yuno-list-group-item v-if="app.integration.sso" :variant="app.integration.sso ? 'success' : 'warning'">
{{ $t(`app.preview.integration.sso.${app.integration.sso}`) }} {{ $t(`app.preview.integration.sso.${app.integration.sso}`) }}
</yuno-list-group-item> </yuno-list-group-item>
<yuno-list-group-item variant="info"> <yuno-list-group-item variant="info">
@ -115,20 +118,21 @@ export default {
}, },
async created () { async created () {
const { id, name, version, potential_alternative_to: alternatives, ...app } = await api.get('apps/manifest?app=' + this.appId) const { id, name, version, potential_alternative_to: alternativesTo, ...app } = await api.get('apps/manifest?app=' + this.appId)
const archs = app.integration.architectures const archs = app.integration.architectures
const integration = { const integration = {
archs: Array.isArray(archs) ? archs.join(this.$i18n.t('words.separator')) : archs, archs: Array.isArray(archs) ? archs.join(this.$i18n.t('words.separator')) : archs,
ldap: app.integration.ldap === '?' ? null : app.integration.ldap, ldap: app.integration.ldap === 'not_relevant' ? null : app.integration.ldap,
sso: app.integration.sso === '?' ? null : app.integration.sso, sso: app.integration.sso === 'not_relevant' ? null : app.integration.sso,
multi_instance: app.integration.multi_instance, multi_instance: app.integration.multi_instance,
resources: { resources: {
ram: app.integration.ram.runtime, ram: app.integration.ram.runtime,
disk: app.integration.disk disk: app.integration.disk
} }
} }
const preInstall = formatI18nField(app.notifications.pre_install.main)
const antifeatures = app.antifeatures.length ? app.antifeatures.map((af) => this.antifeatures[af]) : null
const links = [ const links = [
...['website', 'admindoc', 'code'].map((key) => ([key, app.upstream[key]])), ...['website', 'admindoc', 'code'].map((key) => ([key, app.upstream[key]])),
['package', app.remote.url], ['package', app.remote.url],
@ -138,13 +142,16 @@ export default {
this.app = { this.app = {
id, id,
name, name,
alternatives: alternatives && alternatives.length ? alternatives.join(this.$i18n.t('words.separator')) : null, alternativeTo: alternativesTo && alternativesTo.length
? alternativesTo.join(this.$i18n.t('words.separator'))
: null,
description: formatI18nField(app.doc.DESCRIPTION), description: formatI18nField(app.doc.DESCRIPTION),
image: app.image, image: app.image,
demo: app.upstream.demo, demo: app.upstream.demo,
version, version,
preInstall: formatI18nField(app.notifications.pre_install.main), preInstall,
antifeatures: app.antifeatures?.map((af) => this.antifeatures[af]), antifeatures,
hasWarning: !!(preInstall || antifeatures),
integration, integration,
links links
} }