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:
@@ -0,0 +1,21 @@
|
||||
import type { ZimbraSettings, ZimbraSettingsWrite, ZimbraTestResult } from './dto/zimbra'
|
||||
|
||||
export function useZimbraService() {
|
||||
const api = useApi()
|
||||
|
||||
async function getSettings(): Promise<ZimbraSettings> {
|
||||
return api.get<ZimbraSettings>('/settings/zimbra')
|
||||
}
|
||||
|
||||
async function saveSettings(payload: ZimbraSettingsWrite): Promise<ZimbraSettings> {
|
||||
return api.put<ZimbraSettings>('/settings/zimbra', payload as Record<string, unknown>, {
|
||||
toastSuccessKey: 'zimbra.settings.saved',
|
||||
})
|
||||
}
|
||||
|
||||
async function testConnection(): Promise<ZimbraTestResult> {
|
||||
return api.post<ZimbraTestResult>('/settings/zimbra/test', {})
|
||||
}
|
||||
|
||||
return { getSettings, saveSettings, testConnection }
|
||||
}
|
||||
Reference in New Issue
Block a user