{{ version }} / {{ buildDate }}
7 |
8 |
--------------------------------------------------------------------------------
/composables/states.ts:
--------------------------------------------------------------------------------
1 | import type { Dm } from '~/types/Dm'
2 | import type { Channel } from '~~/types/Channel'
3 | import type { User } from '~~/types/User'
4 |
5 | export const useUsers = () => useState
6 |
9 |
11 |17 | 18 | -------------------------------------------------------------------------------- /components/message/blocks/RichTextPreformatted.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 |16 |
12 | {{ $t("upload.done") }} 13 |
14 |{{ attachment.fallback }}
23 | 30 | {{ attachment.title_link }} 31 | 32 |36 | {{ $t("noresults") }} 37 |
38 |36 | {{ node }} 37 |
38 | 39 | -------------------------------------------------------------------------------- /nuxt.config.ts: -------------------------------------------------------------------------------- 1 | // https://v3.nuxtjs.org/api/configuration/nuxt.config 2 | export default defineNuxtConfig({ 3 | build: { 4 | transpile: ['@vuepic/vue-datepicker'], 5 | }, 6 | 7 | css: ['assets/css/index.css'], 8 | 9 | runtimeConfig: { 10 | mongodbUri: '', 11 | public: { 12 | demoWorkspaceToken: '', 13 | canonicalHost: '', 14 | version: 'latest', 15 | buildDate: 'today', 16 | }, 17 | }, 18 | 19 | plugins: [], 20 | 21 | modules: [[ 22 | 'unplugin-icons/nuxt', 23 | { 24 | autoInstall: true, 25 | }, 26 | ], '@vueuse/nuxt', '@nuxtjs/tailwindcss', '@nuxtjs/color-mode', '@nuxtjs/i18n', '@nuxtjs/robots', '@nuxt/icon'], 27 | 28 | colorMode: { 29 | preference: 'system', 30 | dataValue: 'theme', 31 | classSuffix: '', 32 | }, 33 | 34 | router: { 35 | options: { 36 | linkExactActiveClass: 'active', 37 | }, 38 | }, 39 | 40 | i18n: { 41 | bundle: { 42 | optimizeTranslationDirective: false, 43 | }, 44 | locales: [ 45 | { code: 'en', name: 'English', file: 'en.json' }, 46 | { code: 'de', name: 'Deutsch', file: 'de.json' }, 47 | ], 48 | defaultLocale: 'en', 49 | strategy: 'prefix', 50 | }, 51 | 52 | devtools: { 53 | enabled: true, 54 | }, 55 | 56 | compatibilityDate: '2024-07-29', 57 | }) 58 | -------------------------------------------------------------------------------- /composables/useFile.ts: -------------------------------------------------------------------------------- 1 | import { filesize } from 'filesize' 2 | import { useI18n } from 'vue-i18n' 3 | import type { DocFile, ImageFile, PdfFile, ShownFile, VideoFile } from '~/types/File' 4 | 5 | export const useFile = (file: Ref21 | {{ $t("description") }} 22 |
23 | 25 | {{ $t("exporthelp") }} 26 |{{ user.profile.title }}
24 |35 | {{ $t('user.unknown') }} 36 |
37 |53 | {{ $t("stepper.wrongfile") }} 54 |
55 |{{ model.name }}
56 | 45 | {{ purpose.value }} 46 |
47 |48 | {{ creator }} 49 |
50 |51 | {{ $t("members", members.length) }} 52 |
53 |54 | {{ messages }} 55 | 56 | {{ $t("message", messages) }} 57 | 58 |
59 |41 | 42 | {{ useUserName(user) }} 43 | 44 | 45 | {{ $d(timestamp, "long") }} 46 | 47 |
48 | 49 |52 | {{ message.text }} 53 |
54 |56 | {{ $t("upload.full") }} 57 |
58 |