diff --git a/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.html b/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.html index dd611a74e..2ff6978b6 100644 --- a/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.html +++ b/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.html @@ -79,6 +79,12 @@
Dictionary: {{getDictionary(annotation.Id)}}
Page: {{annotation.getPageNumber()}}
Content: {{annotation.getContents()}}
+ +
+ +
diff --git a/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.scss b/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.scss index 3c513245a..3688a4a0f 100644 --- a/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.scss +++ b/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.scss @@ -39,7 +39,7 @@ redaction-pdf-viewer { box-sizing: border-box; scrollbar-width: none; /* Firefox */ - -ms-overflow-style: none; /* IE 10+ */ + -ms-overflow-style: none; /* IE 10+ */ &::-webkit-scrollbar { width: 0; background: transparent; /* Chrome/Safari/Webkit */ @@ -73,10 +73,28 @@ redaction-pdf-viewer { padding: 14px; font-size: 12px; cursor: pointer; + position: relative; + + &:hover { + background-color: #F9FAFB; + + .annotation-actions { + display: flex; + } + } &.active { border-left: 2px solid $red-1; } + + .annotation-actions { + position: absolute; + right: 0; + top: 0; + bottom: 0; + display: none; + width: 40px; + } } .page-navigation { diff --git a/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.ts index 29941a22e..e63f48b4f 100644 --- a/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/screens/file/file-preview-screen/file-preview-screen.component.ts @@ -135,6 +135,7 @@ export class FilePreviewScreenComponent implements OnInit { public handleAnnotationSelected(annotation: Annotations.Annotation) { this.selectedAnnotation = annotation; + this.selectTab('ANNOTATIONS'); this.scrollToAnnotation(annotation); this._changeDetectorRef.detectChanges(); } @@ -230,6 +231,31 @@ export class FilePreviewScreenComponent implements OnInit { const parts = id.split(':'); return parts.length >= 2 ? parts[1] : 'n/a'; } + + // async getText(pageNumber: number, rect) { + // const viewerObject = this._viewerSyncService.activeViewerObject; + // + // const { PDFNet } = viewerObject; + // await PDFNet.initialize(); + // const pdfDoc = await viewerObject.docViewer.getDocument().getPDFDoc(); + // const txt = await PDFNet.TextExtractor.create(); + // await txt.begin(await pdfDoc.getPage(pageNumber), rect); + // + // // Extract words one by one. + // let text = ''; + // let line = await txt.getFirstLine(); + // for (; (await line.isValid()); line = (await line.getNextLine())) { + // for (let word = await line.getFirstWord(); (await word.isValid()); word = (await word.getNextWord())) { + // await word.getString(); + // text += word; + // } + // } + // console.log(text); + // } + + suggestRemoveAnnotation($event: MouseEvent, annotation: Annotations.Annotation) { + $event.stopPropagation(); + } } diff --git a/apps/red-ui/src/app/screens/file/service/viewer-sync.service.ts b/apps/red-ui/src/app/screens/file/service/viewer-sync.service.ts index e3dc8887d..01a372a29 100644 --- a/apps/red-ui/src/app/screens/file/service/viewer-sync.service.ts +++ b/apps/red-ui/src/app/screens/file/service/viewer-sync.service.ts @@ -13,6 +13,15 @@ export class ViewerSyncService { constructor() { } + get activeViewerObject(): WebViewerInstance{ + if (this._activeViewer) { + const activeViewer = this._viewers[this._activeViewer]; + console.log(activeViewer,this._activeViewer); + return activeViewer; + } + return undefined; + } + get activeViewerPage() { if (this._activeViewer) { const lastActiveViewer = this._viewers[this._activeViewer]; diff --git a/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html b/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html index 206de9dc2..0d80afd24 100644 --- a/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html +++ b/apps/red-ui/src/app/screens/project-listing-screen/project-listing-screen.component.html @@ -69,15 +69,15 @@
-
+
-
+ +
-
+ +
+
diff --git a/apps/red-ui/src/app/screens/project-overview-screen/project-overview-screen.component.html b/apps/red-ui/src/app/screens/project-overview-screen/project-overview-screen.component.html index cb2827b44..ad86c50d7 100644 --- a/apps/red-ui/src/app/screens/project-overview-screen/project-overview-screen.component.html +++ b/apps/red-ui/src/app/screens/project-overview-screen/project-overview-screen.component.html @@ -90,24 +90,26 @@
-
+
-
+ +
-
+ +
+
- {{ appStateService.activeProject.files.length }} + {{ appStateService.activeProject.files.length }}
-
9
- {{ appStateService.activeProject.project.date | date:'d MMM. yyyy' }} + 1 +
+
+ {{ appStateService.activeProject.project.date | date:'d MMM. yyyy' }}
diff --git a/apps/red-ui/src/app/state/app-state.guard.ts b/apps/red-ui/src/app/state/app-state.guard.ts index bd7b81c08..f8307059e 100644 --- a/apps/red-ui/src/app/state/app-state.guard.ts +++ b/apps/red-ui/src/app/state/app-state.guard.ts @@ -13,7 +13,7 @@ export class AppStateGuard implements CanActivate { } canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree { - return this._appStateService.loadAllProjects().then(t => { + return this._appStateService.loadAllProjectsIfNecessary().then(t => { return true; }) } diff --git a/apps/red-ui/src/app/state/app-state.service.ts b/apps/red-ui/src/app/state/app-state.service.ts index 4b9e47d01..bc884c3e9 100644 --- a/apps/red-ui/src/app/state/app-state.service.ts +++ b/apps/red-ui/src/app/state/app-state.service.ts @@ -56,17 +56,17 @@ export class AppStateService { return this._appState.activeFile; } - get totalAnalysedPages(){ + get totalAnalysedPages() { return this._appState.totalAnalysedPages; } - get totalDocuments(){ - return this._appState.totalDocuments ; + get totalDocuments() { + return this._appState.totalDocuments; } async loadAllProjects() { const projects = await this._projectControllerService.getProjects().toPromise(); - if(projects) { + if (projects) { this._appState.projects = projects.map(p => { return new ProjectWrapper(p, []); }); @@ -154,4 +154,10 @@ export class AppStateService { async reloadActiveProjectFiles() { await this.getFiles(this._appState.activeProject.project.projectId); } + + async loadAllProjectsIfNecessary() { + if (!this._appState.projects.length) { + await this.loadAllProjects(); + } + } }