feat(settings): Show supported apps on app settings if subscribed

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
This commit is contained in:
Ferdinand Thiessen 2023-07-26 22:55:50 +02:00 committed by John Molakvoæ
parent c239d69bb7
commit 05c71eb6fc
No known key found for this signature in database
GPG key ID: 60C25B8C072916CF
3 changed files with 24 additions and 1 deletions

View file

@ -154,7 +154,12 @@ export default {
if (this.category === 'updates') {
return apps.filter(app => app.update)
}
if (this.category === 'supported') {
// For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription
return apps.filter(app => app.level === 300)
}
if (this.category === 'featured') {
// An app level of `200` will be set for apps featured on the app store
return apps.filter(app => app.level === 200)
}
// filter app store categories
@ -190,7 +195,7 @@ export default {
return !this.useListView && !this.useBundleView
},
useListView() {
return (this.category === 'installed' || this.category === 'enabled' || this.category === 'disabled' || this.category === 'updates' || this.category === 'featured')
return (this.category === 'installed' || this.category === 'enabled' || this.category === 'disabled' || this.category === 'updates' || this.category === 'featured' || this.category === 'supported')
},
useBundleView() {
return (this.category === 'app-bundles')

View file

@ -29,4 +29,5 @@ export const APPS_SECTION_ENUM = Object.freeze({
updates: t('settings', 'Updates'),
'app-bundles': t('settings', 'App bundles'),
featured: t('settings', 'Featured apps'),
supported: t('settings', 'Supported apps'), // From subscription
})

View file

@ -50,6 +50,14 @@
{{ updateCount }}
</NcAppNavigationCounter>
</NcAppNavigationItem>
<NcAppNavigationItem v-if="isSubscribed"
id="app-category-supported"
:to="{ name: 'apps-category', params: { category: 'supported' } }"
:name="$options.APPS_SECTION_ENUM.supported">
<template #icon>
<IconStarShooting :size="20" />
</template>
</NcAppNavigationItem>
<NcAppNavigationItem id="app-category-your-bundles"
:to="{ name: 'apps-category', params: { category: 'app-bundles' } }"
icon="icon-category-app-bundles"
@ -147,6 +155,7 @@ import NcAppNavigationSpacer from '@nextcloud/vue/dist/Components/NcAppNavigatio
import NcAppSidebar from '@nextcloud/vue/dist/Components/NcAppSidebar.js'
import NcAppSidebarTab from '@nextcloud/vue/dist/Components/NcAppSidebarTab.js'
import NcContent from '@nextcloud/vue/dist/Components/NcContent.js'
import IconStarShooting from 'vue-material-design-icons/StarShooting.vue'
import AppList from '../components/AppList.vue'
import AppDetails from '../components/AppDetails.vue'
@ -165,6 +174,7 @@ export default {
NcAppContent,
AppDetails,
AppList,
IconStarShooting,
NcAppNavigation,
NcAppNavigationCounter,
NcAppNavigationItem,
@ -255,6 +265,13 @@ export default {
changelog() {
return (release) => release.translations.en.changelog
},
/**
* Check if the current instance has a support subscription from the Nextcloud GmbH
*/
isSubscribed() {
// For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription
return this.apps.some(app => app.level === 300)
},
},
watch: {