<div ngbDropdown #fieldDropdown="ngbDropdown" (openChange)="onOpenClose($event)" [popperOptions]="popperOptions" placement="bottom-end">
- <button class="btn btn-sm btn-outline-primary" id="customFieldsDropdown" [disabled]="disabled" ngbDropdownToggle>
+ <button type="button" class="btn btn-sm btn-outline-primary" id="customFieldsDropdown" [disabled]="disabled" ngbDropdownToggle>
<i-bs name="ui-radios"></i-bs>
- <div class="d-none d-sm-inline"> <ng-container i18n>Custom Fields</ng-container></div>
+ <div class="d-none d-lg-inline"> <ng-container i18n>Custom Fields</ng-container></div>
</button>
<div ngbDropdownMenu aria-labelledby="customFieldsDropdown" class="shadow custom-fields-dropdown">
<div class="list-group list-group-flush" (keydown)="listKeyDown($event)">
</div>
</div>
- <pngx-custom-fields-dropdown
- *pngxIfPermissions="{ action: PermissionAction.View, type: PermissionType.CustomField }"
- [documentId]="documentId"
- [disabled]="!userCanEdit"
- [existingFields]="document?.custom_fields"
- (created)="refreshCustomFields()"
- (added)="addField($event)">
- </pngx-custom-fields-dropdown>
-
-
<div class="ms-auto" ngbDropdown>
<button class="btn btn-sm btn-outline-primary" id="sendDropdown" ngbDropdownToggle>
<i-bs name="send"></i-bs>
</pngx-page-header>
<div class="row">
- <div class="col-md-6 col-xl-4 mb-4">
+ <div class="col-md-6 col-xl-5 mb-4">
<form [formGroup]='documentForm' (ngSubmit)="save()">
</button>
</div>
+ <ng-container *pngxIfPermissions="{ action: PermissionAction.Change, type: PermissionType.Document }">
+ <div class="btn-group pb-3 ms-auto">
+ <button type="button" class="btn btn-sm btn-outline-primary" (click)="getSuggestions()" [disabled]="!userCanEdit || suggestions || suggestionsLoading" *pngxIfPermissions="{ action: PermissionAction.Change, type: PermissionType.Document }">
+ @if (suggestionsLoading) {
+ <div class="spinner-border spinner-border-sm" role="status"></div>
+ } @else {
+ <i-bs width="1.2em" height="1.2em" name="stars"></i-bs>
+ }
+ <span class="d-none d-lg-inline ps-1" i18n>Suggest</span>
+ </button>
+ </div>
+
+ <div class="btn-group pb-3 ms-2">
+ <pngx-custom-fields-dropdown
+ *pngxIfPermissions="{ action: PermissionAction.View, type: PermissionType.CustomField }"
+ [documentId]="documentId"
+ [disabled]="!userCanEdit"
+ [existingFields]="document?.custom_fields"
+ (created)="refreshCustomFields()"
+ (added)="addField($event)">
+ </pngx-custom-fields-dropdown>
+ </div>
+ </ng-container>
+
<ng-container *ngTemplateOutlet="saveButtons"></ng-container>
</div>
</form>
</div>
- <div class="col-md-6 col-xl-8 mb-3 d-none d-md-block position-relative" #pdfPreview>
+ <div class="col-md-6 col-xl-7 mb-3 d-none d-md-block position-relative" #pdfPreview>
<ng-container *ngTemplateOutlet="previewContent"></ng-container>
</div>
</div>
<ng-template #saveButtons>
- <div class="btn-group pb-3 ms-auto">
+ <div class="btn-group pb-3 ms-4">
<ng-container *pngxIfPermissions="{ action: PermissionAction.Change, type: PermissionType.Document }">
<button type="submit" class="order-3 btn btn-sm btn-primary" i18n [disabled]="!userCanEdit || networkActive || (isDirty$ | async) !== true">Save</button>
@if (hasNext()) {
document: Document
metadata: DocumentMetadata
suggestions: DocumentSuggestions
+ suggestionsLoading: boolean = false
users: User[]
title: string
this.tagService.getCachedMany(doc.tags).subscribe((tags) => {
// only show suggestions if document has inbox tags
if (tags.some((tag) => tag.is_inbox_tag)) {
- this.documentsService
- .getSuggestions(doc.id)
- .pipe(
- first(),
- takeUntil(this.unsubscribeNotifier),
- takeUntil(this.docChangeNotifier)
- )
- .subscribe({
- next: (result) => {
- this.suggestions = result
- },
- error: (error) => {
- this.suggestions = null
- this.toastService.showError(
- $localize`Error retrieving suggestions.`,
- error
- )
- },
- })
+ this.getSuggestions()
}
})
}
return this.documentForm.get('custom_fields') as FormArray
}
+ getSuggestions() {
+ this.suggestionsLoading = true
+ this.documentsService
+ .getSuggestions(this.documentId)
+ .pipe(
+ first(),
+ takeUntil(this.unsubscribeNotifier),
+ takeUntil(this.docChangeNotifier)
+ )
+ .subscribe({
+ next: (result) => {
+ this.suggestions = result
+ this.suggestionsLoading = false
+ },
+ error: (error) => {
+ this.suggestions = null
+ this.suggestionsLoading = false
+ this.toastService.showError(
+ $localize`Error retrieving suggestions.`,
+ error
+ )
+ },
+ })
+ }
+
createDocumentType(newName: string) {
var modal = this.modalService.open(DocumentTypeEditDialogComponent, {
backdrop: 'static',