summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2024-10-04 17:29:10 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2024-10-04 17:29:10 +0900
commit708ffaef5c0ab8b7d7664cb3fae6420ac0e4cbcd (patch)
tree4430d457d3c308d2cb867da5966f9c245ea7429b /packages
parent:art: (diff)
downloadsharkey-708ffaef5c0ab8b7d7664cb3fae6420ac0e4cbcd.tar.gz
sharkey-708ffaef5c0ab8b7d7664cb3fae6420ac0e4cbcd.tar.bz2
sharkey-708ffaef5c0ab8b7d7664cb3fae6420ac0e4cbcd.zip
:art:
Diffstat (limited to 'packages')
-rw-r--r--packages/frontend/src/pages/settings/apps.vue73
1 files changed, 33 insertions, 40 deletions
diff --git a/packages/frontend/src/pages/settings/apps.vue b/packages/frontend/src/pages/settings/apps.vue
index 0e0c1f4c0c..68e36ef1bb 100644
--- a/packages/frontend/src/pages/settings/apps.vue
+++ b/packages/frontend/src/pages/settings/apps.vue
@@ -14,30 +14,39 @@ SPDX-License-Identifier: AGPL-3.0-only
</template>
<template #default="{items}">
<div class="_gaps">
- <div v-for="token in items" :key="token.id" class="_panel" :class="$style.app">
- <img v-if="token.iconUrl" :class="$style.appIcon" :src="token.iconUrl" alt=""/>
- <div :class="$style.appBody">
- <div :class="$style.appName">{{ token.name }}</div>
- <div>{{ token.description }}</div>
- <MkKeyValue oneline>
- <template #key>{{ i18n.ts.installedDate }}</template>
- <template #value><MkTime :time="token.createdAt"/></template>
- </MkKeyValue>
- <MkKeyValue oneline>
- <template #key>{{ i18n.ts.lastUsedDate }}</template>
- <template #value><MkTime :time="token.lastUsedAt"/></template>
- </MkKeyValue>
- <details>
- <summary>{{ i18n.ts.details }}</summary>
+ <MkFolder v-for="token in items" :key="token.id" :defaultOpen="true">
+ <template #icon>
+ <img v-if="token.iconUrl" :class="$style.appIcon" :src="token.iconUrl" alt=""/>
+ <i v-else class="ti ti-plug"/>
+ </template>
+ <template #label>{{ token.name }}</template>
+ <template #caption>{{ token.description }}</template>
+ <template #suffix><MkTime :time="token.lastUsedAt"/></template>
+ <template #footer>
+ <MkButton danger @click="revoke(token)"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
+ </template>
+
+ <div class="_gaps_s">
+ <div v-if="token.description">{{ token.description }}</div>
+ <div>
+ <MkKeyValue oneline>
+ <template #key>{{ i18n.ts.installedDate }}</template>
+ <template #value><MkTime :time="token.createdAt" :mode="'detail'"/></template>
+ </MkKeyValue>
+ <MkKeyValue oneline>
+ <template #key>{{ i18n.ts.lastUsedDate }}</template>
+ <template #value><MkTime :time="token.lastUsedAt" :mode="'detail'"/></template>
+ </MkKeyValue>
+ </div>
+ <MkFolder>
+ <template #label>{{ i18n.ts.permission }}</template>
+ <template #suffix>{{ Object.keys(token.permission).length === 0 ? i18n.ts.none : Object.keys(token.permission).length }}</template>
<ul>
<li v-for="p in token.permission" :key="p">{{ i18n.ts._permissions[p] }}</li>
</ul>
- </details>
- <div>
- <MkButton inline danger @click="revoke(token)"><i class="ti ti-trash"></i></MkButton>
- </div>
+ </MkFolder>
</div>
- </div>
+ </MkFolder>
</div>
</template>
</FormPagination>
@@ -52,6 +61,7 @@ import { i18n } from '@/i18n.js';
import { definePageMetadata } from '@/scripts/page-metadata.js';
import MkKeyValue from '@/components/MkKeyValue.vue';
import MkButton from '@/components/MkButton.vue';
+import MkFolder from '@/components/MkFolder.vue';
import { infoImageUrl } from '@/instance.js';
const list = ref<InstanceType<typeof FormPagination>>();
@@ -82,26 +92,9 @@ definePageMetadata(() => ({
</script>
<style lang="scss" module>
-.app {
- display: flex;
- padding: 16px;
-}
-
.appIcon {
- display: block;
- flex-shrink: 0;
- margin: 0 12px 0 0;
- width: 50px;
- height: 50px;
- border-radius: 8px;
-}
-
-.appBody {
- width: calc(100% - 62px);
- position: relative;
-}
-
-.appName {
- font-weight: bold;
+ width: 20px;
+ height: 20px;
+ border-radius: 4px;
}
</style>