Dokumenter og SharePoint
Denne siden dekker delte dokumentkomponenter: lokal CRM-dokumenthåndtering via app-document-card, SharePoint-filutforsker via app-sharepoint-documents og SharePoint-tilkoblingswizard via app-sharepoint-picker.
Feature-tabell
| Komponent |
Selector |
Hovedfunksjoner |
Import |
| DocumentCardComponent |
app-document-card |
Liste, opplasting, drag/drop, mapper, nedlasting, sletting |
Standalone |
| SharePointDocumentsComponent |
app-sharepoint-documents |
Navigasjon, søk, «Ny»-meny (mappe, Office-dokument, filopplasting), «Mer»-meny (oppdater, åpne i SharePoint, koble til/fra), dra-og-slipp |
Standalone |
| SharePointPickerComponent |
app-sharepoint-picker |
Modalwizard for site, drive og mappe |
Standalone modal |
Document-card
| Del |
Sti |
| Komponent |
ui/ePortal.ui/src/app/shared/document-card/document-card.component.ts |
app-document-card brukes når et fagobjekt skal ha dokumenter lagret i ePortal/CRM-dokumentflyten.
Brukseksempel
<app-document-card
entityType="Project"
[entityId]="projectId"
translationPrefix="Project.Documents"
[multiple]="true"
[embedded]="false">
</app-document-card>
API
| Type |
Navn |
Default |
Beskrivelse |
| Input |
entityType |
påkrevd |
Objekttype dokumentene kobles til. |
| Input |
entityId |
påkrevd |
Objekt-id. |
| Input |
translationPrefix |
General |
Prefix for toast-/tekstnøkler. |
| Input |
multiple |
false |
Tillater flere dokumenter. |
| Input |
embedded |
false |
Brukes når kortet ligger inne i annen layout. |
| Input |
readOnly |
false |
Skjuler alle muterende kontroller (opplasting, slipp-sone, mappe-opprett/-endre/-slett, dokumentsletting); liste, mappenavigasjon og nedlasting beholdes. Brukes bl.a. av møteagendaen (entityType="MeetingPoint") for låste møter. Backend er fortsatt håndhevingspunktet. |
SharePoint-documents
| Del |
Sti |
| Komponent |
ui/ePortal.ui/src/app/components/shared/sharepoint-documents/sharepoint-documents.component.ts |
app-sharepoint-documents viser innhold fra en SharePoint-tilkobling og tilbyr handlinger for filer og mapper.
Verktøyraden er én rad: breadcrumb til venstre, «Ny»-meny (mørk, med tekstede valg for ny mappe, Word/Excel/PowerPoint-dokument og filopplasting) og «Mer»-meny (oppdater, åpne i SharePoint, koble til bibliotek, koble fra) til høyre. Hele panelet er slippmål for filer: en stiplet overlegg-sone vises kun mens en fil dras over panelet, og en diskret hintlinje under fillisten forteller at dra-og-slipp er mulig.
Brukseksempel
<app-sharepoint-documents
[connection]="sharePointConnection"
[showConnect]="canCreateSharePointConnection"
(connectClicked)="openSharePointPicker()"
(disconnected)="handleDisconnected($event)">
<!-- Valgfritt: kontekst-spesifikke "Ny"-handlinger projiseres inn øverst i Ny-menyen -->
<button sp-new-actions type="button" class="dropdown-item" (click)="createContextFolder()">
<i class="bi bi-folder-plus me-2"></i>{{ 'MyModule.newContextFolder' | translate }}
</button>
</app-sharepoint-documents>
API
| Type |
Navn |
Default |
Beskrivelse |
| Input |
connection |
null |
Aktiv SharePointConnectionDto. |
| Input |
showConnect |
false |
Viser «Koble til bibliotek» i Mer-menyen. |
| Output |
connectClicked |
|
Ber parent åpne picker eller connection-flow. |
| Output |
disconnected |
|
Emitter connection-id etter disconnect. |
| Slot |
[sp-new-actions] |
|
Innhold projiseres øverst i «Ny»-menyen. Bruk <button class="dropdown-item">. |
SharePoint-picker
| Del |
Sti |
| Komponent |
ui/ePortal.ui/src/app/components/shared/sharepoint-picker/sharepoint-picker.component.ts |
Picker-komponenten er laget for NgbModal. Den søker etter SharePoint-sites, lar bruker velge drive og deretter mappe. Resultatet returneres via activeModal.close.
Brukseksempel
openSharePointPicker(): void {
const modalRef = this.modalService.open(SharePointPickerComponent, {
size: 'lg',
backdrop: 'static',
});
modalRef.result.then((result: SharePointPickerResult) => {
return this.sharePointService.createConnection({
siteId: result.siteId,
driveId: result.driveId,
folderId: result.folderId,
}).subscribe(connection => {
this.sharePointConnection = connection;
});
}).catch(() => undefined);
}
Resultat
| Felt |
Beskrivelse |
siteId |
Valgt SharePoint site-id. |
siteName |
Visningsnavn for site. |
siteUrl |
URL til site. |
driveId |
Valgt drive-id. |
driveName |
Visningsnavn for drive. |
folderId |
Valgt mappe-id, hvis ikke root. |
folderPath |
Lesbar mappepath. |
Kjente fallgruver
| Fallgruve |
Riktig mønster |
| Bruke document-card for SharePoint-filer |
Bruk SharePoint-komponentene når filene ligger i M365. |
| Åpne picker som vanlig inline-komponent |
Bruk NgbModal, siden komponenten avhenger av NgbActiveModal. |
| Anta at SharePoint connection alltid finnes |
Håndter connection = null og showConnect. |
| Hardkode toast-tekster rundt document-card |
Bruk translationPrefix og i18n-nøkler. |
Relaterte sider