admin: add apps section
Signed-off-by: Varun Patil <radialapps@gmail.com>pull/767/head
parent
62eea6c4e1
commit
28634a3f30
|
@ -2,7 +2,15 @@
|
|||
<div class="outer" v-if="loaded">
|
||||
<XLoadingIcon class="loading-icon" v-show="loading" />
|
||||
|
||||
<component v-for="c in components" :key="c.__name" :is="c" :status="status" :config="config" @update="update" />
|
||||
<component
|
||||
v-for="c in components"
|
||||
:key="c.__name"
|
||||
:is="c"
|
||||
:status="status"
|
||||
:config="config"
|
||||
:sconfig="sconfig"
|
||||
@update="update"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -14,17 +22,20 @@ import { showError } from '@nextcloud/dialogs';
|
|||
|
||||
import { API } from '../../services/API';
|
||||
import * as utils from '../../services/Utils';
|
||||
import staticConfig from '../../services/static-config';
|
||||
|
||||
import Exif from './sections/Exif.vue';
|
||||
import Indexing from './sections/Indexing.vue';
|
||||
import FileSupport from './sections/FileSupport.vue';
|
||||
import Performance from './sections/Performance.vue';
|
||||
import Apps from './sections/Apps.vue';
|
||||
import Places from './sections/Places.vue';
|
||||
import Video from './sections/Video.vue';
|
||||
import VideoTranscoder from './sections/VideoTranscoder.vue';
|
||||
import VideoAccel from './sections/VideoAccel.vue';
|
||||
|
||||
import { ISystemConfig, ISystemStatus } from './AdminTypes';
|
||||
import type { ISystemConfig, ISystemStatus } from './AdminTypes';
|
||||
import type { IConfig } from '../../types';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Admin',
|
||||
|
@ -35,13 +46,15 @@ export default defineComponent({
|
|||
|
||||
status: null as ISystemStatus | null,
|
||||
config: null as ISystemConfig | null,
|
||||
sconfig: null as IConfig | null,
|
||||
|
||||
components: [Exif, Indexing, FileSupport, Performance, Places, Video, VideoTranscoder, VideoAccel],
|
||||
components: [Exif, Indexing, FileSupport, Performance, Apps, Places, Video, VideoTranscoder, VideoAccel],
|
||||
}),
|
||||
|
||||
mounted() {
|
||||
this.refreshSystemConfig();
|
||||
this.refreshStatus();
|
||||
this.refreshStaticConfig();
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
@ -70,6 +83,17 @@ export default defineComponent({
|
|||
}
|
||||
},
|
||||
|
||||
async refreshStaticConfig() {
|
||||
try {
|
||||
this.loading++;
|
||||
this.sconfig = await staticConfig.getAll();
|
||||
} catch (e) {
|
||||
showError(JSON.stringify(e));
|
||||
} finally {
|
||||
this.loading--;
|
||||
}
|
||||
},
|
||||
|
||||
async update(key: keyof ISystemConfig, value: any = null) {
|
||||
if (!this.config?.hasOwnProperty(key)) {
|
||||
console.error('Unknown setting', key);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { defineComponent, PropType } from 'vue';
|
||||
import { ISystemStatus, ISystemConfig, IBinaryStatus } from './AdminTypes';
|
||||
import type { ISystemStatus, ISystemConfig, IBinaryStatus } from './AdminTypes';
|
||||
import type { IConfig } from '../../types';
|
||||
import axios from '@nextcloud/axios';
|
||||
|
||||
const NcCheckboxRadioSwitch = () => import('@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch');
|
||||
|
@ -26,6 +27,10 @@ export default defineComponent({
|
|||
type: Object as PropType<ISystemConfig>,
|
||||
required: true,
|
||||
},
|
||||
sconfig: {
|
||||
type: Object as PropType<IConfig>,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
<template>
|
||||
<div class="admin-section">
|
||||
<h2>{{ t('memories', 'Recommended Apps') }}</h2>
|
||||
|
||||
<NcNoteCard :type="sconfig.albums_enabled ? 'success' : 'warning'">
|
||||
{{
|
||||
sconfig.albums_enabled
|
||||
? t('memories', 'Albums support is enabled.')
|
||||
: t('memories', 'Albums are disabled because the Photos app is not available.')
|
||||
}}
|
||||
</NcNoteCard>
|
||||
|
||||
<NcNoteCard :type="sconfig.recognize_enabled ? 'success' : 'warning'">
|
||||
{{
|
||||
sconfig.recognize_enabled
|
||||
? t('memories', 'Recognize is installed and enabled.')
|
||||
: t(
|
||||
'memories',
|
||||
'Recognize is not installed. Some features like face recognition and object tagging may be unavailable.'
|
||||
)
|
||||
}}
|
||||
</NcNoteCard>
|
||||
<NcNoteCard v-if="sconfig.facerecognition_installed" type="success">
|
||||
{{ t('memories', 'Face Recognition is installed and enabled') }}
|
||||
</NcNoteCard>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from 'vue';
|
||||
|
||||
import AdminMixin from '../AdminMixin';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Apps',
|
||||
mixins: [AdminMixin],
|
||||
});
|
||||
</script>
|
Loading…
Reference in New Issue