"use client" import { OrgSettingsSection } from "@/components/admin/settings/org-settings-form" import { DeployLockedHint, useDeployFieldLocked } from "@/components/admin/settings/deploy-locked-hint" import { useOrgSettingsStore } from "@/lib/admin-settings/org-settings-store" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Switch } from "@/components/ui/switch" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" export function NextcloudSection() { const nextcloud = useOrgSettingsStore((s) => s.nextcloud) const setNextcloud = useOrgSettingsStore((s) => s.setNextcloud) const effective = useOrgSettingsStore((s) => s.meta?.effective.nextcloud) const enabledLocked = useDeployFieldLocked("nextcloud", "enabled") const urlLocked = useDeployFieldLocked("nextcloud", "base_url") const userLocked = useDeployFieldLocked("nextcloud", "admin_user") const passLocked = useDeployFieldLocked("nextcloud", "admin_password") const enabled = enabledLocked ? (effective?.enabled ?? nextcloud.enabled) : nextcloud.enabled const baseURL = urlLocked ? (effective?.base_url ?? nextcloud.base_url) : nextcloud.base_url const adminUser = userLocked ? (effective?.admin_user ?? nextcloud.admin_user) : nextcloud.admin_user return (
Intégration Nextcloud Variables NEXTCLOUD_* côté serveur. {enabledLocked ? : null}
setNextcloud({ enabled: v })} />
setNextcloud({ base_url: e.target.value })} placeholder="https://cloud.example.com" />
setNextcloud({ admin_user: e.target.value })} />
setNextcloud({ admin_password: e.target.value })} placeholder={passLocked ? "Défini via NC_ADMIN_PASSWORD" : undefined} />
Services activés Modules suite exposés aux utilisateurs. setNextcloud({ drive_enabled })} /> setNextcloud({ calendar_enabled })} /> setNextcloud({ contacts_enabled })} /> setNextcloud({ talk_enabled })} />
) } function ServiceToggle({ label, checked, onChange, }: { label: string checked: boolean onChange: (v: boolean) => void }) { return ( ) }