feat(integration) : extract Gitea/BookStack/Zimbra/Share front into module layer

LST-68 (2.6) front. Completes the Integration module and Phase 2.

- New frontend/modules/integration/ layer (auto-detected): services
  (gitea, bookstack, zimbra, share, share-settings) + their DTOs, and the
  useShareStatus composable.
- Consumers repointed to ~/modules/integration/...: admin tabs
  (Gitea/BookStack/Zimbra/Share), PM task sections (TaskGitSection,
  TaskBookStackLinks, TaskDocumentShareLinker), ProjectDrawer, TaskModal,
  pages/documents.vue, components/share/SharedFilePreview.vue.
- Admin tabs, SharedFilePreview and documents/admin pages stay at their
  location (only imports updated). i18n stays global.

nuxt build passes; all routes preserved.
This commit is contained in:
Matthieu
2026-06-20 23:53:11 +02:00
parent 90682e809c
commit 0761bbd8c1
22 changed files with 21 additions and 20 deletions
@@ -51,7 +51,7 @@
</template>
<script setup lang="ts">
import { useBookStackService } from '~/services/bookstack'
import { useBookStackService } from '~/modules/integration/services/bookstack'
const { getSettings, saveSettings, testConnection } = useBookStackService()
+1 -1
View File
@@ -45,7 +45,7 @@
</template>
<script setup lang="ts">
import { useGiteaService } from '~/services/gitea'
import { useGiteaService } from '~/modules/integration/services/gitea'
const { getSettings, saveSettings, testConnection } = useGiteaService()
+1 -1
View File
@@ -70,7 +70,7 @@
</template>
<script setup lang="ts">
import { useShareSettingsService } from '~/services/share-settings'
import { useShareSettingsService } from '~/modules/integration/services/share-settings'
const { getSettings, saveSettings, testConnection } = useShareSettingsService()
+1 -1
View File
@@ -58,7 +58,7 @@
</template>
<script setup lang="ts">
import { useZimbraService } from '~/services/zimbra'
import { useZimbraService } from '~/modules/integration/services/zimbra'
const { getSettings, saveSettings, testConnection } = useZimbraService()
@@ -167,8 +167,8 @@
</template>
<script setup lang="ts">
import type { FileEntry } from '~/services/dto/share'
import { useShareService } from '~/services/share'
import type { FileEntry } from '~/modules/integration/services/dto/share'
import { useShareService } from '~/modules/integration/services/share'
import { formatFileSize } from '~/utils/format'
const props = defineProps<{
@@ -1,4 +1,4 @@
import { useShareService } from '~/services/share'
import { useShareService } from '~/modules/integration/services/share'
export function useShareStatus() {
const enabled = useState<boolean | null>('share-enabled', () => null)
@@ -0,0 +1 @@
export default defineNuxtConfig({})
@@ -125,11 +125,11 @@
<script setup lang="ts">
import type { Project, ProjectWrite } from '~/modules/project-management/services/dto/project'
import type { Client } from '~/modules/directory/services/dto/client'
import type { GiteaRepository } from '~/services/dto/gitea'
import type { BookStackShelf } from '~/services/dto/bookstack'
import type { GiteaRepository } from '~/modules/integration/services/dto/gitea'
import type { BookStackShelf } from '~/modules/integration/services/dto/bookstack'
import { useProjectService } from '~/modules/project-management/services/projects'
import { useGiteaService } from '~/services/gitea'
import { useBookStackService } from '~/services/bookstack'
import { useGiteaService } from '~/modules/integration/services/gitea'
import { useBookStackService } from '~/modules/integration/services/bookstack'
const props = defineProps<{
modelValue: boolean
@@ -75,8 +75,8 @@
</template>
<script setup lang="ts">
import type { BookStackLink, BookStackSearchResult } from '~/services/dto/bookstack'
import { useBookStackService } from '~/services/bookstack'
import type { BookStackLink, BookStackSearchResult } from '~/modules/integration/services/dto/bookstack'
import { useBookStackService } from '~/modules/integration/services/bookstack'
const props = defineProps<{
taskId: number
@@ -56,8 +56,8 @@
</template>
<script setup lang="ts">
import type { Breadcrumb, FileEntry } from '~/services/dto/share'
import { useShareService } from '~/services/share'
import type { Breadcrumb, FileEntry } from '~/modules/integration/services/dto/share'
import { useShareService } from '~/modules/integration/services/share'
import { useTaskDocumentService } from '~/modules/project-management/services/task-documents'
import { formatFileSize } from '~/utils/format'
@@ -227,8 +227,8 @@
<script setup lang="ts">
import type { Task } from '~/modules/project-management/services/dto/task'
import type { GiteaBranch, GiteaPullRequest } from '~/services/dto/gitea'
import { useGiteaService } from '~/services/gitea'
import type { GiteaBranch, GiteaPullRequest } from '~/modules/integration/services/dto/gitea'
import { useGiteaService } from '~/modules/integration/services/gitea'
import { copyToClipboard } from '~/utils/clipboard'
const { t } = useI18n()
@@ -538,7 +538,7 @@
<script setup lang="ts">
import type { Task, TaskWrite } from '~/modules/project-management/services/dto/task'
import type { TaskDocument } from '~/modules/project-management/services/dto/task-document'
import { useGiteaService } from '~/services/gitea'
import { useGiteaService } from '~/modules/integration/services/gitea'
import { useTaskDocumentService } from '~/modules/project-management/services/task-documents'
import ConfirmDeleteDocumentModal from '~/components/ui/ConfirmDeleteDocumentModal.vue'
import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
+2 -2
View File
@@ -81,8 +81,8 @@
</template>
<script setup lang="ts">
import type { Breadcrumb, FileEntry } from '~/services/dto/share'
import { useShareService } from '~/services/share'
import type { Breadcrumb, FileEntry } from '~/modules/integration/services/dto/share'
import { useShareService } from '~/modules/integration/services/share'
import { formatFileSize } from '~/utils/format'
useHead({ title: 'Documents' })