From 7a4cddebbefc0a8e937a2dd6fe5bd38d8812c8a2 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 28 Jun 2026 12:37:11 -0700 Subject: [PATCH] Fix some permissions stuff, show error on toggle --- src-ui/src/app/app-routing.module.ts | 12 ++++++++++++ .../document-detail.component.html | 13 +++++++++++-- .../ocr-templates/ocr-templates.component.ts | 15 +++++++++++++-- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src-ui/src/app/app-routing.module.ts b/src-ui/src/app/app-routing.module.ts index 5afebd070..e329b8f00 100644 --- a/src-ui/src/app/app-routing.module.ts +++ b/src-ui/src/app/app-routing.module.ts @@ -288,6 +288,18 @@ export const routes: Routes = [ componentName: 'OcrTemplatesComponent', }, }, + { + path: 'ocr-templates/new', + component: OcrTemplateEditorComponent, + canActivate: [PermissionsGuard], + data: { + requiredPermission: { + action: PermissionAction.Add, + type: PermissionType.OcrTemplate, + }, + componentName: 'OcrTemplateEditorComponent', + }, + }, { path: 'ocr-templates/:id', component: OcrTemplateEditorComponent, diff --git a/src-ui/src/app/components/document-detail/document-detail.component.html b/src-ui/src/app/components/document-detail/document-detail.component.html index a43ab93ce..069865f15 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.html +++ b/src-ui/src/app/components/document-detail/document-detail.component.html @@ -82,11 +82,20 @@ PDF Editor - - diff --git a/src-ui/src/app/components/manage/ocr-templates/ocr-templates.component.ts b/src-ui/src/app/components/manage/ocr-templates/ocr-templates.component.ts index 010ea6531..71de1b9e8 100644 --- a/src-ui/src/app/components/manage/ocr-templates/ocr-templates.component.ts +++ b/src-ui/src/app/components/manage/ocr-templates/ocr-templates.component.ts @@ -9,6 +9,7 @@ import { IfPermissionsDirective } from 'src/app/directives/if-permissions.direct import { PermissionsService } from 'src/app/services/permissions.service' import { DocumentTypeService } from 'src/app/services/rest/document-type.service' import { OcrTemplateService } from 'src/app/services/rest/ocr-template.service' +import { ToastService } from 'src/app/services/toast.service' import { ConfirmDialogComponent } from '../../common/confirm-dialog/confirm-dialog.component' import { PageHeaderComponent } from '../../common/page-header/page-header.component' import { LoadingComponentWithPermissions } from '../../loading-component/loading.component' @@ -32,6 +33,7 @@ export class OcrTemplatesComponent private readonly documentTypeService = inject(DocumentTypeService) private readonly router = inject(Router) private readonly modalService = inject(NgbModal) + private readonly toastService = inject(ToastService) permissionsService = inject(PermissionsService) public templates: OcrTemplate[] = [] @@ -79,8 +81,17 @@ export class OcrTemplatesComponent } toggleTemplate(t: OcrTemplate) { - // ngModel has already flipped t.enabled — just persist it. - this.service.patch(t).subscribe() + // ngModel has already flipped t.enabled; restore it if persistence fails. + const enabled = t.enabled + this.service.patch(t).subscribe({ + error: (error) => { + t.enabled = !enabled + this.toastService.showError( + $localize`Error updating OCR template.`, + error + ) + }, + }) } deleteTemplate(t: OcrTemplate) {