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:
@@ -51,7 +51,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useBookStackService } from '~/services/bookstack'
|
import { useBookStackService } from '~/modules/integration/services/bookstack'
|
||||||
|
|
||||||
const { getSettings, saveSettings, testConnection } = useBookStackService()
|
const { getSettings, saveSettings, testConnection } = useBookStackService()
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useGiteaService } from '~/services/gitea'
|
import { useGiteaService } from '~/modules/integration/services/gitea'
|
||||||
|
|
||||||
const { getSettings, saveSettings, testConnection } = useGiteaService()
|
const { getSettings, saveSettings, testConnection } = useGiteaService()
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useShareSettingsService } from '~/services/share-settings'
|
import { useShareSettingsService } from '~/modules/integration/services/share-settings'
|
||||||
|
|
||||||
const { getSettings, saveSettings, testConnection } = useShareSettingsService()
|
const { getSettings, saveSettings, testConnection } = useShareSettingsService()
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useZimbraService } from '~/services/zimbra'
|
import { useZimbraService } from '~/modules/integration/services/zimbra'
|
||||||
|
|
||||||
const { getSettings, saveSettings, testConnection } = useZimbraService()
|
const { getSettings, saveSettings, testConnection } = useZimbraService()
|
||||||
|
|
||||||
|
|||||||
@@ -167,8 +167,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { FileEntry } from '~/services/dto/share'
|
import type { FileEntry } from '~/modules/integration/services/dto/share'
|
||||||
import { useShareService } from '~/services/share'
|
import { useShareService } from '~/modules/integration/services/share'
|
||||||
import { formatFileSize } from '~/utils/format'
|
import { formatFileSize } from '~/utils/format'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
import { useShareService } from '~/services/share'
|
import { useShareService } from '~/modules/integration/services/share'
|
||||||
|
|
||||||
export function useShareStatus() {
|
export function useShareStatus() {
|
||||||
const enabled = useState<boolean | null>('share-enabled', () => null)
|
const enabled = useState<boolean | null>('share-enabled', () => null)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
export default defineNuxtConfig({})
|
||||||
@@ -125,11 +125,11 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { Project, ProjectWrite } from '~/modules/project-management/services/dto/project'
|
import type { Project, ProjectWrite } from '~/modules/project-management/services/dto/project'
|
||||||
import type { Client } from '~/modules/directory/services/dto/client'
|
import type { Client } from '~/modules/directory/services/dto/client'
|
||||||
import type { GiteaRepository } from '~/services/dto/gitea'
|
import type { GiteaRepository } from '~/modules/integration/services/dto/gitea'
|
||||||
import type { BookStackShelf } from '~/services/dto/bookstack'
|
import type { BookStackShelf } from '~/modules/integration/services/dto/bookstack'
|
||||||
import { useProjectService } from '~/modules/project-management/services/projects'
|
import { useProjectService } from '~/modules/project-management/services/projects'
|
||||||
import { useGiteaService } from '~/services/gitea'
|
import { useGiteaService } from '~/modules/integration/services/gitea'
|
||||||
import { useBookStackService } from '~/services/bookstack'
|
import { useBookStackService } from '~/modules/integration/services/bookstack'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
modelValue: boolean
|
modelValue: boolean
|
||||||
|
|||||||
@@ -75,8 +75,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { BookStackLink, BookStackSearchResult } from '~/services/dto/bookstack'
|
import type { BookStackLink, BookStackSearchResult } from '~/modules/integration/services/dto/bookstack'
|
||||||
import { useBookStackService } from '~/services/bookstack'
|
import { useBookStackService } from '~/modules/integration/services/bookstack'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
taskId: number
|
taskId: number
|
||||||
|
|||||||
@@ -56,8 +56,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { Breadcrumb, FileEntry } from '~/services/dto/share'
|
import type { Breadcrumb, FileEntry } from '~/modules/integration/services/dto/share'
|
||||||
import { useShareService } from '~/services/share'
|
import { useShareService } from '~/modules/integration/services/share'
|
||||||
import { useTaskDocumentService } from '~/modules/project-management/services/task-documents'
|
import { useTaskDocumentService } from '~/modules/project-management/services/task-documents'
|
||||||
import { formatFileSize } from '~/utils/format'
|
import { formatFileSize } from '~/utils/format'
|
||||||
|
|
||||||
|
|||||||
@@ -227,8 +227,8 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { Task } from '~/modules/project-management/services/dto/task'
|
import type { Task } from '~/modules/project-management/services/dto/task'
|
||||||
import type { GiteaBranch, GiteaPullRequest } from '~/services/dto/gitea'
|
import type { GiteaBranch, GiteaPullRequest } from '~/modules/integration/services/dto/gitea'
|
||||||
import { useGiteaService } from '~/services/gitea'
|
import { useGiteaService } from '~/modules/integration/services/gitea'
|
||||||
import { copyToClipboard } from '~/utils/clipboard'
|
import { copyToClipboard } from '~/utils/clipboard'
|
||||||
|
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
|
|||||||
@@ -538,7 +538,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { Task, TaskWrite } from '~/modules/project-management/services/dto/task'
|
import type { Task, TaskWrite } from '~/modules/project-management/services/dto/task'
|
||||||
import type { TaskDocument } from '~/modules/project-management/services/dto/task-document'
|
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 { useTaskDocumentService } from '~/modules/project-management/services/task-documents'
|
||||||
import ConfirmDeleteDocumentModal from '~/components/ui/ConfirmDeleteDocumentModal.vue'
|
import ConfirmDeleteDocumentModal from '~/components/ui/ConfirmDeleteDocumentModal.vue'
|
||||||
import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
|
import type { TaskStatus } from '~/modules/project-management/services/dto/task-status'
|
||||||
|
|||||||
@@ -81,8 +81,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { Breadcrumb, FileEntry } from '~/services/dto/share'
|
import type { Breadcrumb, FileEntry } from '~/modules/integration/services/dto/share'
|
||||||
import { useShareService } from '~/services/share'
|
import { useShareService } from '~/modules/integration/services/share'
|
||||||
import { formatFileSize } from '~/utils/format'
|
import { formatFileSize } from '~/utils/format'
|
||||||
|
|
||||||
useHead({ title: 'Documents' })
|
useHead({ title: 'Documents' })
|
||||||
|
|||||||
Reference in New Issue
Block a user