From c4a35c2d38174637d7387315daaebd9a70267531 Mon Sep 17 00:00:00 2001 From: Meesch <31687030+Meesch@users.noreply.github.com> Date: Tue, 19 Mar 2024 16:21:13 +0100 Subject: [PATCH 01/91] addition preliminary ublad corpus --- backend/corpora/ublad/description/ublad.md | 0 backend/corpora/ublad/images/ublad.jpg | Bin 0 -> 208713 bytes backend/corpora/ublad/ublad.py | 207 +++++++++++++++++++++ 3 files changed, 207 insertions(+) create mode 100644 backend/corpora/ublad/description/ublad.md create mode 100644 backend/corpora/ublad/images/ublad.jpg create mode 100644 backend/corpora/ublad/ublad.py diff --git a/backend/corpora/ublad/description/ublad.md b/backend/corpora/ublad/description/ublad.md new file mode 100644 index 000000000..e69de29bb diff --git a/backend/corpora/ublad/images/ublad.jpg b/backend/corpora/ublad/images/ublad.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f9d3a87e99061301d194eabff1ae4ad98add8d2 GIT binary patch literal 208713 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

_Nsyq?Nr$W8T#Pll23j8qf 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 z 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 wMyo*5BY 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 z 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 IiYWpA*}&V`%m4rY literal 0 HcmV?d00001 diff --git a/backend/corpora/ublad/ublad.py b/backend/corpora/ublad/ublad.py new file mode 100644 index 000000000..a77b6373c --- /dev/null +++ b/backend/corpora/ublad/ublad.py @@ -0,0 +1,207 @@ +from datetime import datetime +import os +from os.path import join, splitext + + +from django.conf import settings +from addcorpus.python_corpora.corpus import HTMLCorpusDefinition, FieldDefinition +from addcorpus.python_corpora.extract import Metadata, XML, Pass, Order, Backup, Combined, FilterAttribute +from addcorpus.es_mappings import * +from addcorpus.python_corpora.filters import RangeFilter, MultipleChoiceFilter, BooleanFilter, DateFilter +from addcorpus.es_settings import es_settings + + +from ianalyzer_readers.readers.html import HTMLReader +from ianalyzer_readers.readers.core import Field +from ianalyzer_readers.extract import html, Constant + +import locale +locale.setlocale(locale.LC_ALL, 'nl_NL.UTF-8') + +class UBlad(HTMLCorpusDefinition): + title = 'U-Blad' + description = 'The print editions of the Utrecht University paper from 1969 until 2010.' + description_page = 'ublad.md' + min_date = datetime(year=1969, month=1, day=1) + max_date = datetime(year=2010, month=12, day=31) + + data_directory = settings.UBLAD_DATA + es_index = getattr(settings, 'UBLAD_ES_INDEX', 'ublad') + image = 'ublad.jpg' + citation_page = 'citation.md' + scan_image_type = getattr(settings, 'UBLAD_SCAN_IMAGE_TYPE', 'image/jpeg') + allow_image_download = getattr(settings, 'UBLAD_ALLOW_IMAGE_DOWNLOAD', True) + + languages = ['nl'] + category = 'periodical' + + @property + def es_settings(self): + return es_settings(self.languages[:1], stopword_analysis=True, stemming_analysis=True) + + def sources(self, start=min_date, end=max_date): + for directory, _, filenames in os.walk(self.data_directory): + for filename in filenames: + if filename != '.DS_Store': + full_path = join(directory, filename) + yield full_path, {'filename': filename} + + + fields = [ + FieldDefinition( + name = 'content', + display_name='Content', + display_type='text_content', + results_overview=True, + csv_core=True, + search_field_core=True, + visualisations=['ngram', 'wordcloud'], + es_mapping = main_content_mapping(True, True, True, 'nl'), + extractor= FilterAttribute(tag='div', recursive=True, multiple=False, flatten=True, attribute_filter={ + 'attribute': 'class', + 'value': 'ocr_page' + }) + ), + FieldDefinition( + name='pagenum', + display_name='Page number', + description='Page number', + es_mapping = int_mapping(), + extractor = FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'pagenum' + } + ) + ), + + FieldDefinition( + name='journal_title', + display_name='Publication Title', + description='Title of the publication', + extractor = FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'journal_title' + } + ) + ), + FieldDefinition( + name='volume_id', + display_name='Volume ID', + description='Unique identifier for this volume', + hidden=True, + extractor = FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'identifier_ocn' + } + ) + ), + FieldDefinition( + name='page_id', + display_name='Page ID', + description='Unique identifier for this page', + hidden=True, + extractor = FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'identifier_indexid' + } + ) + ), + FieldDefinition( + name='edition', + display_name='Edition', + description='The number of the edition in this volume. Every year starts at 1.', + sortable=True, + extractor = FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'aflevering' + } + ) + ), + FieldDefinition( + name='volume', + display_name='Volume', + sortable=True, + results_overview=True, + description='The volume number of this publication. There is one volume per year.', + extractor = FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'yearstring' + } + ), + ), + FieldDefinition( + name='date', + display_name='Date', + description='The publication date of this edition', + es_mapping={'type': 'date', 'format': 'yyyy-MM-dd'}, + visualizations=['resultscount', 'termfrequency'], + sortable=True, + results_overview=True, + search_filter=DateFilter( + min_date, + max_date, + description=( + 'Accept only articles with publication date in this range.' + ) + ), + extractor = FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'datestring', + }, + transform=lambda x: datetime.strptime( + x, '%d %B %Y').strftime('%Y-%m-%d') + ) + ), + FieldDefinition( + name='repo_url', + display_name='Repository URL', + description='URL to the dSPACE repository entry of this volume', + es_mapping=keyword_mapping(), + searchable=False, + extractor=FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'link_repository' + } + ) + ), + FieldDefinition( + name='reader_url', + display_name='Reader URL', + description='URL to the UB reader view of this page', + es_mapping=keyword_mapping(), + searchable=False, + extractor=FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'link_objects_image' + } + ) + ), + FieldDefinition( + name='jpg_url', + display_name='Image URL', + description='URL to the jpg file of this page', + es_mapping=keyword_mapping(), + searchable=False, + extractor=FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'link_objects_jpg' + } + ) + ), + FieldDefinition( + name='worldcat_url', + display_name='Worldcat URL', + description='URL to the Worldcat entry of this volume', + es_mapping=keyword_mapping(), + searchable=False, + extractor=FilterAttribute(tag='meta', attribute='content', attribute_filter={ + 'attribute': 'name', + 'value': 'link_worldcat' + } + ) + ) + ] + + def request_media(self, document, corpus_name): + image_list = [document['fieldValues']['jpg_url']] + return {'media': image_list} From eac13699d5fccaefea39e836bbeb1a20cf53e619 Mon Sep 17 00:00:00 2001 From: Meesch <31687030+Meesch@users.noreply.github.com> Date: Tue, 19 Mar 2024 17:28:45 +0100 Subject: [PATCH 02/91] add document context --- backend/corpora/ublad/ublad.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/corpora/ublad/ublad.py b/backend/corpora/ublad/ublad.py index a77b6373c..20dd2e2c5 100644 --- a/backend/corpora/ublad/ublad.py +++ b/backend/corpora/ublad/ublad.py @@ -32,6 +32,13 @@ class UBlad(HTMLCorpusDefinition): scan_image_type = getattr(settings, 'UBLAD_SCAN_IMAGE_TYPE', 'image/jpeg') allow_image_download = getattr(settings, 'UBLAD_ALLOW_IMAGE_DOWNLOAD', True) + document_context = { + 'context_fields': ['volume_id'], + 'sort_field': 'sequence', + 'sort_direction': 'asc', + 'context_display_name': 'volume' + } + languages = ['nl'] category = 'periodical' From 9b0fc2226b930ea05e41ed2419dce837b3c02688 Mon Sep 17 00:00:00 2001 From: BeritJanssen Date: Thu, 28 Mar 2024 12:54:33 +0100 Subject: [PATCH 03/91] add Elasticsearch annotated-text plugin --- DockerfileElastic | 3 +++ docker-compose.yaml | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 DockerfileElastic diff --git a/DockerfileElastic b/DockerfileElastic new file mode 100644 index 000000000..2b908c5fb --- /dev/null +++ b/DockerfileElastic @@ -0,0 +1,3 @@ +FROM docker.elastic.co/elasticsearch/elasticsearch:8.10.2 + +RUN bin/elasticsearch-plugin install mapper-annotated-text diff --git a/docker-compose.yaml b/docker-compose.yaml index 9277df751..f3f4d63b3 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -52,7 +52,9 @@ services: target: /frontend/build command: sh -c "yarn prebuild && yarn start-docker" elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:8.10.2 + build: + context: . + dockerfile: DockerfileElastic environment: - node.name=ianalyzer-node - discovery.type=single-node From ffdfe30f584cf2a262439c51c8ca05d25d8d70d6 Mon Sep 17 00:00:00 2001 From: BeritJanssen Date: Thu, 28 Mar 2024 12:54:51 +0100 Subject: [PATCH 04/91] extend FoundDocument with entities --- frontend/src/_utilities.scss | 5 +++ .../document-view.component.html | 1 + .../document-view/document-view.component.ts | 2 +- .../document-preview.component.html | 8 ++-- .../document-preview.component.scss | 3 ++ frontend/src/app/document/document.module.ts | 2 + .../entity-legend.component.html | 3 ++ .../entity-legend.component.scss | 7 +++ .../entity-legend.component.spec.ts | 25 +++++++++++ .../entity-legend/entity-legend.component.ts | 21 +++++++++ .../src/app/models/found-document.spec.ts | 44 ++++++++++++++----- frontend/src/app/models/found-document.ts | 21 +++++++-- frontend/src/app/models/search-results.ts | 5 +++ .../src/app/services/download.service.spec.ts | 2 - .../app/services/elastic-search.service.ts | 11 +++-- frontend/src/app/services/entity.service.ts | 18 ++++++++ .../src/app/services/search.service.spec.ts | 2 - frontend/src/mock-data/constructor-helpers.ts | 4 +- frontend/src/mock-data/elastic-search.ts | 2 +- frontend/src/mock-data/search.ts | 5 ++- frontend/src/styles.scss | 13 ++++++ 21 files changed, 175 insertions(+), 29 deletions(-) create mode 100644 frontend/src/app/document/entity-legend/entity-legend.component.html create mode 100644 frontend/src/app/document/entity-legend/entity-legend.component.scss create mode 100644 frontend/src/app/document/entity-legend/entity-legend.component.spec.ts create mode 100644 frontend/src/app/document/entity-legend/entity-legend.component.ts create mode 100644 frontend/src/app/services/entity.service.ts diff --git a/frontend/src/_utilities.scss b/frontend/src/_utilities.scss index 225735d40..15315baae 100644 --- a/frontend/src/_utilities.scss +++ b/frontend/src/_utilities.scss @@ -30,6 +30,11 @@ $section-padding: 3rem 1.5rem; $boxShadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); $boxShadowHover: 0px 5px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px $primary; +$entity-person: #88CCEE; +$entity-location:#44AA99; +$entity-organization: #DDCC77; +$entity-miscellaneous: #AA4499; + @import "~bulma/sass/utilities/_all"; // based on the Bulma loader diff --git a/frontend/src/app/document-view/document-view.component.html b/frontend/src/app/document-view/document-view.component.html index e3fa71a3d..dbfef7c9b 100644 --- a/frontend/src/app/document-view/document-view.component.html +++ b/frontend/src/app/document-view/document-view.component.html @@ -42,6 +42,7 @@ [attr.lang]="document.language(field)" [innerHtml]="formatInnerHtml(field)"> + diff --git a/frontend/src/app/document-view/document-view.component.ts b/frontend/src/app/document-view/document-view.component.ts index 3452d4906..b13790d2f 100644 --- a/frontend/src/app/document-view/document-view.component.ts +++ b/frontend/src/app/document-view/document-view.component.ts @@ -4,7 +4,6 @@ import { CorpusField, FoundDocument, Corpus, QueryModel } from '../models/index' import { DocumentView } from '../models/document-page'; import * as _ from 'lodash'; import { documentIcons } from '../shared/icons'; -import { findByName } from '../utils/utils'; @Component({ selector: 'ia-document-view', @@ -53,6 +52,7 @@ export class DocumentViewComponent implements OnChanges { ngOnChanges(changes: SimpleChanges): void { if (changes.view) { this.activeTab = this.tabFromView(this.view); + this.document.fetchEntities(); } } diff --git a/frontend/src/app/document/document-preview/document-preview.component.html b/frontend/src/app/document/document-preview/document-preview.component.html index 87429833f..dba6cf8ad 100644 --- a/frontend/src/app/document/document-preview/document-preview.component.html +++ b/frontend/src/app/document/document-preview/document-preview.component.html @@ -1,4 +1,7 @@ +

+ Relevance: +
@@ -24,10 +27,9 @@
-
- Relevance: + -
- + - + @@ -40,7 +40,7 @@
+ [innerHtml]="field | elasticsearchHighlight:document">
diff --git a/frontend/src/app/document-view/document-view.component.ts b/frontend/src/app/document-view/document-view.component.ts index b13790d2f..1f5171d79 100644 --- a/frontend/src/app/document-view/document-view.component.ts +++ b/frontend/src/app/document-view/document-view.component.ts @@ -76,62 +76,4 @@ export class DocumentViewComponent implements OnChanges { return field.mappingType === 'geo_point'; } - displayGeoPointField(field: CorpusField) { - let latitude = this.document.fieldValue(field)[field.name][1]; - let longitude = this.document.fieldValue(field)[field.name][0]; - // Round to 2 decimal places - latitude = Math.round(latitude * 100) / 100; - longitude = Math.round(longitude * 100) / 100; - return `Lat: ${latitude}; Lon: ${longitude}`; - } - - /** - * Checks if user has selected fields in the queryModel and whether current field is among them - * Used to check which fields need to be highlighted - */ - selectedFieldsContain(field: CorpusField) { - if (this.queryModel && this.queryModel.searchFields && this.queryModel.searchFields.includes(field)) { - return true; - } else if (this.queryModel && !this.queryModel.searchFields) { - return true; // if there are no selected fields, return true for all fields - } else { - return false; - } - } - - stripTags(htmlString: string){ - const parseHTML= new DOMParser().parseFromString(htmlString, 'text/html'); - return parseHTML.body.textContent || ''; - } - - formatInnerHtml(field: CorpusField) { - const fieldValue = this.document.fieldValues[field.name]; - - if (_.isEmpty(fieldValue)) { - return; - } - - const highlighted = this.highlightedInnerHtml(field); - return this.addParagraphTags(highlighted); - } - - - highlightedInnerHtml(field: CorpusField) { - let highlighted = this.document.fieldValues[field.name]; - if (this.document.highlight && this.document.highlight.hasOwnProperty(field.name) && - this.selectedFieldsContain(field)) { // only apply highlights to selected search fields - for (const highlight of this.document.highlight[field.name]) { - const stripped_highlight = this.stripTags(highlight); - highlighted = highlighted.replace(stripped_highlight, highlight); - } - return highlighted; - } else { - return this.document.fieldValues[field.name]; - } - } - - addParagraphTags(content: string | string[]) { - const paragraphs = typeof content === 'string' ? content.split('\n') : content; - return paragraphs.map(p => `

${p}

`).join(' '); - } } diff --git a/frontend/src/app/document/document-preview/document-preview.component.html b/frontend/src/app/document/document-preview/document-preview.component.html index dba6cf8ad..ed4e8a2bc 100644 --- a/frontend/src/app/document/document-preview/document-preview.component.html +++ b/frontend/src/app/document/document-preview/document-preview.component.html @@ -18,7 +18,7 @@ diff --git a/frontend/src/app/document/document.module.ts b/frontend/src/app/document/document.module.ts index 62f5ed5f9..6802c8c8a 100644 --- a/frontend/src/app/document/document.module.ts +++ b/frontend/src/app/document/document.module.ts @@ -10,8 +10,7 @@ import { DocumentPopupComponent } from './document-popup/document-popup.componen import { DialogModule } from 'primeng/dialog'; import { DocumentPreviewComponent } from './document-preview/document-preview.component'; import { EntityLegendComponent } from './entity-legend/entity-legend.component'; - - +import { ElasticsearchHighlightPipe, GeoDataPipe, SnippetPipe } from '../pipes'; @NgModule({ declarations: [ @@ -21,6 +20,9 @@ import { EntityLegendComponent } from './entity-legend/entity-legend.component'; DocumentPopupComponent, DocumentPreviewComponent, EntityLegendComponent, + ElasticsearchHighlightPipe, + GeoDataPipe, + SnippetPipe ], imports: [ DialogModule, diff --git a/frontend/src/app/manual/manual-navigation.component.html b/frontend/src/app/manual/manual-navigation.component.html index 85a3e1183..6f2055ef7 100644 --- a/frontend/src/app/manual/manual-navigation.component.html +++ b/frontend/src/app/manual/manual-navigation.component.html @@ -16,7 +16,7 @@ - + diff --git a/frontend/src/app/manual/manual.module.ts b/frontend/src/app/manual/manual.module.ts index ac0d5b3fe..fc13467d9 100644 --- a/frontend/src/app/manual/manual.module.ts +++ b/frontend/src/app/manual/manual.module.ts @@ -4,7 +4,7 @@ import { ManualNavigationComponent } from './manual-navigation.component'; import { ManualComponent } from './manual.component'; import { AboutComponent } from '../about/about.component'; import { PrivacyComponent } from '../privacy/privacy.component'; - +import { RegexHighlightPipe } from '../pipes'; @NgModule({ @@ -13,6 +13,7 @@ import { PrivacyComponent } from '../privacy/privacy.component'; ManualComponent, ManualNavigationComponent, PrivacyComponent, + RegexHighlightPipe ], imports: [ SharedModule diff --git a/frontend/src/app/pipes/elasticsearch-highlight.pipe.ts b/frontend/src/app/pipes/elasticsearch-highlight.pipe.ts new file mode 100644 index 000000000..3a35ae3cb --- /dev/null +++ b/frontend/src/app/pipes/elasticsearch-highlight.pipe.ts @@ -0,0 +1,51 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; +import { CorpusField, FoundDocument } from '../models'; +import * as _ from 'lodash'; + +@Pipe({ + name: 'elasticsearchHighlight' +}) +export class ElasticsearchHighlightPipe implements PipeTransform { + constructor(private sanitizer: DomSanitizer) { + } + + /** + * Transforms a text to display highlights fetched from Elasticsearch + * + * @param document a FoundDocument, containing the fetched highlights + */ + transform(field: CorpusField, document: FoundDocument) { + const fieldValue = document.fieldValues[field.name]; + + if (_.isEmpty(fieldValue)) { + return; + } + + const highlighted = this.highlightedInnerHtml(field, document); + const paragraphs = this.addParagraphTags(highlighted); + return this.sanitizer.bypassSecurityTrustHtml(paragraphs); + } + + highlightedInnerHtml(field: CorpusField, document: FoundDocument) { + let highlighted = document.fieldValues[field.name]; + if (document.highlight && document.highlight.hasOwnProperty(field.name)) { + for (const highlight of document.highlight[field.name]) { + const strippedHighlight = this.stripTags(highlight); + highlighted = highlighted.replace(strippedHighlight, highlight); + } + } + return highlighted; + } + + addParagraphTags(content: string | string[]) { + const paragraphs = typeof content === 'string' ? content.split('\n') : content; + return paragraphs.map(p => `

${p}

`).join(' '); + } + + stripTags(htmlString: string){ + const parseHTML= new DOMParser().parseFromString(htmlString, 'text/html'); + return parseHTML.body.textContent || ''; + } + +} diff --git a/frontend/src/app/pipes/geo-data.pipe.ts b/frontend/src/app/pipes/geo-data.pipe.ts new file mode 100644 index 000000000..cf7b18a23 --- /dev/null +++ b/frontend/src/app/pipes/geo-data.pipe.ts @@ -0,0 +1,25 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; +import { CorpusField, FoundDocument } from '../models'; +@Pipe({ + name: 'geoData' +}) +export class GeoDataPipe implements PipeTransform { + constructor(private sanitizer: DomSanitizer) { + } + + /** + * Transforms GeoJSON data + * + * @param document FoundDocument holding the actual data + */ + transform(field: CorpusField, document: FoundDocument) { + let latitude = document.fieldValue(field)[field.name][1]; + let longitude = document.fieldValue(field)[field.name][0]; + // Round to 2 decimal places + latitude = Math.round(latitude * 100) / 100; + longitude = Math.round(longitude * 100) / 100; + return `Lat: ${latitude}; Lon: ${longitude}`; + } + +} diff --git a/frontend/src/app/pipes/index.ts b/frontend/src/app/pipes/index.ts new file mode 100644 index 000000000..a20091083 --- /dev/null +++ b/frontend/src/app/pipes/index.ts @@ -0,0 +1,4 @@ +export * from './elasticsearch-highlight.pipe'; +export * from './geo-data.pipe'; +export * from './regex-highlight.pipe'; +export * from './snippet.pipe'; diff --git a/frontend/src/app/search/highlight.pipe.ts b/frontend/src/app/pipes/regex-highlight.pipe.ts similarity index 72% rename from frontend/src/app/search/highlight.pipe.ts rename to frontend/src/app/pipes/regex-highlight.pipe.ts index 3ee84d437..323292ffa 100644 --- a/frontend/src/app/search/highlight.pipe.ts +++ b/frontend/src/app/pipes/regex-highlight.pipe.ts @@ -3,22 +3,20 @@ import { DomSanitizer } from '@angular/platform-browser'; import { HighlightService } from '../services/highlight.service'; @Pipe({ - name: 'highlight' + name: 'regexHighlight' }) -export class HighlightPipe implements PipeTransform { +export class RegexHighlightPipe implements PipeTransform { constructor(private sanitizer: DomSanitizer, private highlightService: HighlightService) { } /** * Transforms a text to highlight all the text matching the specified query. - * - * @param snippets Only show snippets. When this enabled, line breaks will also be replaced with -- */ - transform(text: string, query: string, snippets: boolean = false) { + transform(text: string, query: string) { const highlights = this.highlightService.highlight(text, query); - const parts = snippets ? this.highlightService.snippets(highlights) : Array.from(highlights); + const parts = Array.from(highlights); const highlightedText = parts.map(part => { - const sanitizedText = this.sanitizedLineBreaks(part.substring, snippets ? ' — ' : '
'); + const sanitizedText = this.sanitizedLineBreaks(part.substring, '
'); return part.isHit ? `${sanitizedText}` : sanitizedText; }).join(''); diff --git a/frontend/src/app/pipes/snippet.pipe.ts b/frontend/src/app/pipes/snippet.pipe.ts new file mode 100644 index 000000000..4634395cb --- /dev/null +++ b/frontend/src/app/pipes/snippet.pipe.ts @@ -0,0 +1,20 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; +@Pipe({ + name: 'snippet' +}) +export class SnippetPipe implements PipeTransform { + constructor(private sanitizer: DomSanitizer) { + } + + /** + * Transforms a text to only show its leading characters with an ellipsis + * + * @param nCharacters Specifies how many leading characters should be displayed + */ + transform(text: string, nCharacters=100) { + const snippedText = text.slice(0, nCharacters).concat('...'); + return this.sanitizer.bypassSecurityTrustHtml(snippedText); + } + +} diff --git a/frontend/src/app/search/index.ts b/frontend/src/app/search/index.ts index 11e8bc3bf..40905695a 100644 --- a/frontend/src/app/search/index.ts +++ b/frontend/src/app/search/index.ts @@ -1,4 +1,3 @@ -export * from './highlight.pipe'; export * from './search.component'; export * from './search-relevance.component'; export * from './search-results.component'; diff --git a/frontend/src/app/services/highlight.service.ts b/frontend/src/app/services/highlight.service.ts index 4fdc2a4ea..3ee28b96c 100644 --- a/frontend/src/app/services/highlight.service.ts +++ b/frontend/src/app/services/highlight.service.ts @@ -5,10 +5,7 @@ import { Injectable } from '@angular/core'; * a more scalable approach would need to be implemented if rendering many hits is required. */ const maxHits = 100; -/** - * The maximum number of snippets. - */ -const maxSnippetsCount = 7; + /** * The maximum character length of all the text snippets combined. */ @@ -78,39 +75,6 @@ export class HighlightService { } } - /** - * Gets short snippets from the text part to give the user a short overview of the text content. - */ - public snippets(parts: IterableIterator): TextPart[] { - const snippets: TextPart[] = []; - for ( - let i = 0, next = parts.next(); - !next.done && i < maxSnippetsCount; - i++, next = parts.next() - ) { - snippets.push(next.value); - } - - const lengths = this.getSnippetLengths( - snippets.map((snippet) => snippet.substring.length), - maxSnippetsLength - ); - - snippets.forEach((part, index) => { - part.substring = this.cropSnippetText( - part.substring, - lengths[index], - index === snippets.length - 1 - ? 'left' - : index === 0 - ? 'right' - : 'middle' - ); - }); - - return snippets; - } - /** * Convert the query to a regular expression matching any hit in a string. * @@ -151,79 +115,6 @@ export class HighlightService { ); } - private getSnippetLengths( - actualLengths: number[], - maxTotalLength: number, - croppedSnippets = actualLengths.length - ): number[] { - const targetLengths: number[] = []; - let remainingCharacters = maxTotalLength; - const maxLength = Math.max( - 1, - Math.floor(maxTotalLength / croppedSnippets) - ); - - let remainingSnippets = 0; - - let i = 0; - for (; i < actualLengths.length && remainingCharacters > 0; i++) { - const actualLength = actualLengths[i]; - const targetLength = Math.min(actualLength, maxLength); - - remainingCharacters -= targetLength; - targetLengths[i] = targetLength; - - if (actualLength > targetLength) { - // only the cropped snippets could become longer - remainingSnippets++; - } - } - for (; i < actualLengths.length; i++) { - targetLengths[i] = 0; - } - - if (remainingCharacters && remainingSnippets) { - // if a snippet is shorter than the maximum snippet length, allow the remaining snippets to become longer - const additionalLengths = this.getSnippetLengths( - actualLengths.map( - (length, index) => length - targetLengths[index] - ), - remainingCharacters, - remainingSnippets - ); - return targetLengths.map( - (length, index) => length + additionalLengths[index] - ); - } - - return targetLengths; - } - - private cropSnippetText( - text: string, - maxLength: number, - location: 'left' | 'middle' | 'right' - ): string { - if (text.length <= maxLength) { - return text; - } - - switch (location) { - case 'left': - return text.substr(0, maxLength) + omissionString; - - case 'middle': - return ( - text.substr(0, maxLength / 2) + - omissionString + - text.substr(text.length - maxLength / 2) - ); - - case 'right': - return omissionString + text.slice(-maxLength); - } - } - /** * Get the word patterns match in a query. * diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts index 8f25fd406..b19f89b05 100644 --- a/frontend/src/app/shared/shared.module.ts +++ b/frontend/src/app/shared/shared.module.ts @@ -12,7 +12,6 @@ import { BalloonDirective } from '../balloon.directive'; import { DatePickerComponent } from '../corpus-selection/corpus-filter/date-picker/date-picker.component'; import { ErrorComponent } from '../error/error.component'; import { ScrollToDirective } from '../scroll-to.directive'; -import { HighlightPipe } from '../search'; import { DropdownModule } from './dropdown/dropdown.module'; import { TabPanelDirective } from './tabs/tab-panel.directive'; import { TabsComponent } from './tabs/tabs.component'; @@ -22,7 +21,6 @@ import { TabsComponent } from './tabs/tabs.component'; DatePickerComponent, ErrorComponent, BalloonDirective, - HighlightPipe, ScrollToDirective, TabsComponent, TabPanelDirective, @@ -43,7 +41,6 @@ import { TabsComponent } from './tabs/tabs.component'; FormsModule, FontAwesomeModule, BalloonDirective, - HighlightPipe, HttpClientModule, HttpClientXsrfModule, RouterModule, From cb1f833340c3ff22b4b379e129fbd93403e432f6 Mon Sep 17 00:00:00 2001 From: BeritJanssen Date: Thu, 18 Apr 2024 15:23:42 +0200 Subject: [PATCH 10/91] revert show entities on document previews --- .../document-preview/document-preview.component.html | 10 ++++------ .../document-preview/document-preview.component.scss | 3 --- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/document/document-preview/document-preview.component.html b/frontend/src/app/document/document-preview/document-preview.component.html index ed4e8a2bc..87429833f 100644 --- a/frontend/src/app/document/document-preview/document-preview.component.html +++ b/frontend/src/app/document/document-preview/document-preview.component.html @@ -1,7 +1,4 @@ -
- Relevance: -
Your tags @@ -21,9 +21,9 @@ + [innerHtml]="field | elasticsearchHighlight:document"> {{displayGeoPointField(field)}}{{field | geoData:document}} {{document.fieldValue(field)}} + [innerHtml]="document.fieldValue(field) | snippet">
@@ -18,7 +15,7 @@ @@ -27,9 +24,10 @@
-
From 1deb9e640a790316d345ed83998c047b8deb4d68 Mon Sep 17 00:00:00 2001 From: BeritJanssen Date: Thu, 25 Apr 2024 13:49:31 +0200 Subject: [PATCH 13/91] feat: working display of named entities --- .../app/document-view/document-view.component.html | 2 +- frontend/src/app/models/found-document.ts | 2 +- frontend/src/app/pipes/entity.pipe.ts | 12 +++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/frontend/src/app/document-view/document-view.component.html b/frontend/src/app/document-view/document-view.component.html index 3730d2adf..9314fe57a 100644 --- a/frontend/src/app/document-view/document-view.component.html +++ b/frontend/src/app/document-view/document-view.component.html @@ -40,7 +40,7 @@
+ [innerHtml]="document.annotations$ | async | entity:document:field.name">
response.annotations) + map( response => response.annotations || []) ); } diff --git a/frontend/src/app/pipes/entity.pipe.ts b/frontend/src/app/pipes/entity.pipe.ts index 92bc99e99..ebb556edf 100644 --- a/frontend/src/app/pipes/entity.pipe.ts +++ b/frontend/src/app/pipes/entity.pipe.ts @@ -1,7 +1,10 @@ import { Pipe, PipeTransform } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; -import { CorpusField, FoundDocument } from '../models'; +import { Observable } from 'rxjs'; + +import { FoundDocument } from '../models'; import * as _ from 'lodash'; + @Pipe({ name: 'entity' }) @@ -14,10 +17,9 @@ export class EntityPipe implements PipeTransform { * * @param document FoundDocument holding the actual data */ - transform(field: CorpusField, document: FoundDocument) { - const newText = document.annotations$.map( - (annotation)=> _.set(document.fieldValues, _.keys(annotation)[0], _.values(annotation)[0])); - return newText; + transform(annotations$: Observable<{[fieldName: string]: string}[]>, document: FoundDocument, fieldName: string) { + const newText = annotations$[fieldName]; + return newText || document.fieldValues[fieldName]; } } From e08b20e76f1a71cd4771d76d7bc26ad2870fc2f1 Mon Sep 17 00:00:00 2001 From: BeritJanssen Date: Thu, 25 Apr 2024 14:07:05 +0200 Subject: [PATCH 14/91] fix: update backend parsing of annotations --- backend/es/tests/test_named_entity_search.py | 5 ++--- backend/es/views.py | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/backend/es/tests/test_named_entity_search.py b/backend/es/tests/test_named_entity_search.py index bb12328c6..81afc8460 100644 --- a/backend/es/tests/test_named_entity_search.py +++ b/backend/es/tests/test_named_entity_search.py @@ -3,9 +3,8 @@ def test_ner_search_view(es_ner_search_client, client, times_user): client.force_login(times_user) - route = '/api/es/times/named_entities' - data = {'id': 'my_identifier'} - response = client.post(route, data, content_type='application/json') + route = '/api/es/times/my_identifier/named_entities' + response = client.get(route, content_type='application/json') assert response.status_code == 200 diff --git a/backend/es/views.py b/backend/es/views.py index ceabd6dc3..645fe86e6 100644 --- a/backend/es/views.py +++ b/backend/es/views.py @@ -168,7 +168,7 @@ def add_terms(self, fields: list[str]) -> list[dict]: def find_entities(self, input_text: str, entity_classes: set) -> str: # regex pattern to match annotations of format "[Wally](Person)" and split it into two groups - pattern = re.compile('(\[[a-zA-Z ]+\])(\([a-zA-Z ]+\))') + pattern = re.compile('(\[[^]]+\])(\([A-Z]+\))') annotations = list(set(pattern.findall(input_text))) for annotation in annotations: input_text = self.substitute_annotation_with_tag( From cd29f434bc229b3688494d6991e15af59d4f9260 Mon Sep 17 00:00:00 2001 From: Meesch <31687030+Meesch@users.noreply.github.com> Date: Thu, 25 Apr 2024 14:24:45 +0200 Subject: [PATCH 15/91] remove citation page from ublad --- backend/corpora/ublad/ublad.py | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/corpora/ublad/ublad.py b/backend/corpora/ublad/ublad.py index 1758d3ab3..4b5a739ca 100644 --- a/backend/corpora/ublad/ublad.py +++ b/backend/corpora/ublad/ublad.py @@ -28,7 +28,6 @@ class UBlad(HTMLCorpusDefinition): data_directory = settings.UBLAD_DATA es_index = getattr(settings, 'UBLAD_ES_INDEX', 'ublad') image = 'ublad.jpg' - citation_page = 'citation.md' scan_image_type = getattr(settings, 'UBLAD_SCAN_IMAGE_TYPE', 'image/jpeg') allow_image_download = getattr(settings, 'UBLAD_ALLOW_IMAGE_DOWNLOAD', True) From 0dc2659ba1f7e8e6f46a8508955866232df066d9 Mon Sep 17 00:00:00 2001 From: Meesch <31687030+Meesch@users.noreply.github.com> Date: Fri, 26 Apr 2024 13:06:29 +0200 Subject: [PATCH 16/91] rename id field for ublad --- backend/corpora/ublad/ublad.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/corpora/ublad/ublad.py b/backend/corpora/ublad/ublad.py index 4b5a739ca..e52020caa 100644 --- a/backend/corpora/ublad/ublad.py +++ b/backend/corpora/ublad/ublad.py @@ -103,7 +103,7 @@ def sources(self, start=min_date, end=max_date): ) ), FieldDefinition( - name='page_id', + name='id', display_name='Page ID', description='Unique identifier for this page', hidden=True, From e41db24310ea37e4c562b35a148c6610261efddc Mon Sep 17 00:00:00 2001 From: Luka van der Plas Date: Wed, 15 May 2024 16:47:43 +0200 Subject: [PATCH 17/91] add corpus definitions link --- .../corpus-selection.component.html | 9 +++++++++ .../corpus-selection/corpus-selection.component.ts | 14 +++++++++++++- frontend/src/app/shared/icons.ts | 4 ++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/corpus-selection/corpus-selection.component.html b/frontend/src/app/corpus-selection/corpus-selection.component.html index cc90ff34a..a4c4fd1c2 100644 --- a/frontend/src/app/corpus-selection/corpus-selection.component.html +++ b/frontend/src/app/corpus-selection/corpus-selection.component.html @@ -1,11 +1,20 @@
+ + + Corpus definitions + +

Welcome

Select a corpus to search through

+
diff --git a/frontend/src/app/corpus-selection/corpus-selection.component.ts b/frontend/src/app/corpus-selection/corpus-selection.component.ts index 6bcdac5cb..f22a3dc87 100644 --- a/frontend/src/app/corpus-selection/corpus-selection.component.ts +++ b/frontend/src/app/corpus-selection/corpus-selection.component.ts @@ -1,6 +1,10 @@ import { Component, Input, OnInit } from '@angular/core'; import { Corpus } from '../models/corpus'; import * as _ from 'lodash'; +import { AuthService } from '../services'; +import { map } from 'rxjs/operators'; +import { Observable } from 'rxjs'; +import { actionIcons } from '../shared/icons'; @Component({ @@ -14,7 +18,15 @@ export class CorpusSelectionComponent implements OnInit { filteredItems: Corpus[]; - constructor() { } + showManageLink$: Observable; + + actionIcons = actionIcons; + + constructor(private authService: AuthService) { + this.showManageLink$ = this.authService.currentUser$.pipe( + map((user) => user?.isAdmin) + ); + } get displayItems(): Corpus[] { if (_.isUndefined(this.filteredItems)) { diff --git a/frontend/src/app/shared/icons.ts b/frontend/src/app/shared/icons.ts index 0d5dd8676..f90ea0e55 100644 --- a/frontend/src/app/shared/icons.ts +++ b/frontend/src/app/shared/icons.ts @@ -7,7 +7,7 @@ import { faAngleDown, faAngleUp, faArrowLeft, faArrowRight, faAt, faBook, faBookOpen, faChartColumn, faCheck, faChevronDown, faChevronLeft, faChevronRight, faCog, faCogs, faDatabase, faDiagramProject, faDownload, faEdit, faEnvelope, faEye, faFilter, faHistory, faImage, faInfo, faInfoCircle, faLink, faList, faLock, - faMinus, faPalette, faPlus, faQuestionCircle, faSearch, faSearchMinus, faSearchPlus, faSignOut, + faMinus, faPalette, faPencil, faPlus, faQuestionCircle, faSearch, faSearchMinus, faSearchPlus, faSignOut, faSortAlphaAsc, faSortAlphaDesc, faSortNumericAsc, faSortNumericDesc, faSquare, faTable, faTags, faTimes, faTrashCan, faUndo, faUser } from '@fortawesome/free-solid-svg-icons'; @@ -52,7 +52,7 @@ export const actionIcons: Icons = { add: faPlus, remove: faTimes, delete: faTrashCan, - edit: faEdit, + edit: faPencil, view: faEye, }; From 74b1235e2b5f412e6c0b1bf9840e3014052fcf0a Mon Sep 17 00:00:00 2001 From: Luka van der Plas Date: Wed, 15 May 2024 16:53:39 +0200 Subject: [PATCH 18/91] generate definitions overview component --- frontend/src/app/app.module.ts | 6 +++++ .../corpus-definitions.module.ts | 15 +++++++++++++ .../definitions-overview.component.html | 1 + .../definitions-overview.component.scss | 0 .../definitions-overview.component.spec.ts | 22 +++++++++++++++++++ .../definitions-overview.component.ts | 15 +++++++++++++ 6 files changed, 59 insertions(+) create mode 100644 frontend/src/app/corpus-definitions/corpus-definitions.module.ts create mode 100644 frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html create mode 100644 frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.scss create mode 100644 frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.spec.ts create mode 100644 frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.ts diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index aeafe617b..224be1404 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -50,6 +50,7 @@ import { SharedModule } from './shared/shared.module'; import { WordModelsComponent } from './word-models/word-models.component'; import { WordModelsModule } from './word-models/word-models.module'; import { TagOverviewComponent } from './tag/tag-overview/tag-overview.component'; +import { DefinitionsOverviewComponent } from './corpus-definitions/definitions-overview/definitions-overview.component'; export const appRoutes: Routes = [ { @@ -132,6 +133,11 @@ export const appRoutes: Routes = [ component: TagOverviewComponent, canActivate: [LoggedOnGuard], }, + { + path: 'corpus-definitions', + component: DefinitionsOverviewComponent, + canActivate: [LoggedOnGuard], + }, { path: '', redirectTo: 'home', diff --git a/frontend/src/app/corpus-definitions/corpus-definitions.module.ts b/frontend/src/app/corpus-definitions/corpus-definitions.module.ts new file mode 100644 index 000000000..e2194a088 --- /dev/null +++ b/frontend/src/app/corpus-definitions/corpus-definitions.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { DefinitionsOverviewComponent } from './definitions-overview/definitions-overview.component'; + + + +@NgModule({ + declarations: [ + DefinitionsOverviewComponent + ], + imports: [ + CommonModule + ] +}) +export class CorpusDefinitionsModule { } diff --git a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html new file mode 100644 index 000000000..7de1976e0 --- /dev/null +++ b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html @@ -0,0 +1 @@ +

definitions-overview works!

diff --git a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.scss b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.spec.ts b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.spec.ts new file mode 100644 index 000000000..736a0188b --- /dev/null +++ b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.spec.ts @@ -0,0 +1,22 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { DefinitionsOverviewComponent } from './definitions-overview.component'; +import { commonTestBed } from 'src/app/common-test-bed'; + +describe('DefinitionsOverviewComponent', () => { + let component: DefinitionsOverviewComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + commonTestBed().testingModule.compileComponents(); + })); + beforeEach(() => { + fixture = TestBed.createComponent(DefinitionsOverviewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.ts b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.ts new file mode 100644 index 000000000..68ca5b456 --- /dev/null +++ b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'ia-definitions-overview', + templateUrl: './definitions-overview.component.html', + styleUrls: ['./definitions-overview.component.scss'] +}) +export class DefinitionsOverviewComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} From 9540010da4e213613f3cb243e60873580bd03ad2 Mon Sep 17 00:00:00 2001 From: Luka van der Plas Date: Wed, 15 May 2024 17:08:20 +0200 Subject: [PATCH 19/91] basic interface for definitions overview --- frontend/src/app/app.module.ts | 2 + .../corpus-definitions.module.ts | 17 ++++--- .../definitions-overview.component.html | 48 ++++++++++++++++++- .../definitions-overview.component.ts | 14 +++--- 4 files changed, 67 insertions(+), 14 deletions(-) diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index 224be1404..cce4bb0ea 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -51,6 +51,7 @@ import { WordModelsComponent } from './word-models/word-models.component'; import { WordModelsModule } from './word-models/word-models.module'; import { TagOverviewComponent } from './tag/tag-overview/tag-overview.component'; import { DefinitionsOverviewComponent } from './corpus-definitions/definitions-overview/definitions-overview.component'; +import { CorpusDefinitionsModule } from './corpus-definitions/corpus-definitions.module'; export const appRoutes: Routes = [ { @@ -164,6 +165,7 @@ export const imports: any[] = [ SharedModule, // Feature Modules CorpusModule, + CorpusDefinitionsModule, CorpusSelectionModule, DialogModule, DocumentModule, diff --git a/frontend/src/app/corpus-definitions/corpus-definitions.module.ts b/frontend/src/app/corpus-definitions/corpus-definitions.module.ts index e2194a088..f4187a679 100644 --- a/frontend/src/app/corpus-definitions/corpus-definitions.module.ts +++ b/frontend/src/app/corpus-definitions/corpus-definitions.module.ts @@ -1,15 +1,18 @@ import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; import { DefinitionsOverviewComponent } from './definitions-overview/definitions-overview.component'; +import { SharedModule } from '../shared/shared.module'; @NgModule({ - declarations: [ - DefinitionsOverviewComponent - ], - imports: [ - CommonModule - ] + declarations: [ + DefinitionsOverviewComponent + ], + exports: [ + DefinitionsOverviewComponent, + ], + imports: [ + SharedModule + ] }) export class CorpusDefinitionsModule { } diff --git a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html index 7de1976e0..fdc5c5e00 100644 --- a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html +++ b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html @@ -1 +1,47 @@ -

definitions-overview works!

+
+
+

Corpus definitions

+ +
+ +
+ +
+
+ [innerHtml]="document.fieldValue(field) | highlight:query:true">
+ [innerHtml]="document.fieldValue(field) | snippet">
+ + + + + + + + + + + + +
CorpusActions
Test + + + +
+ + + diff --git a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.ts b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.ts index 68ca5b456..7ad4b1c80 100644 --- a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.ts +++ b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.ts @@ -1,15 +1,17 @@ import { Component, OnInit } from '@angular/core'; +import { actionIcons } from '../../shared/icons'; @Component({ - selector: 'ia-definitions-overview', - templateUrl: './definitions-overview.component.html', - styleUrls: ['./definitions-overview.component.scss'] + selector: 'ia-definitions-overview', + templateUrl: './definitions-overview.component.html', + styleUrls: ['./definitions-overview.component.scss'] }) export class DefinitionsOverviewComponent implements OnInit { + actionIcons = actionIcons; - constructor() { } + constructor() { } - ngOnInit(): void { - } + ngOnInit(): void { + } } From cc9521bc572cd0403c3f046bb6eea9dd22a049a8 Mon Sep 17 00:00:00 2001 From: Luka van der Plas Date: Wed, 15 May 2024 17:42:34 +0200 Subject: [PATCH 20/91] add APICorpusDefinition interface --- frontend/src/app/models/corpus-definition.ts | 55 ++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 frontend/src/app/models/corpus-definition.ts diff --git a/frontend/src/app/models/corpus-definition.ts b/frontend/src/app/models/corpus-definition.ts new file mode 100644 index 000000000..6442ddf31 --- /dev/null +++ b/frontend/src/app/models/corpus-definition.ts @@ -0,0 +1,55 @@ +export interface APICorpusField { + name: string; + display_name: string; + description: string; + type: 'text-content'|'text_metadata'|'url'|'integer'|'float'|'date'|'boolean'|'geo_point'; + options: { + search: boolean; + filter: 'show'|'hide'|'none'; + preview: boolean; + visualize: boolean; + sort: boolean; + hidden: boolean; + }; + language?: string; + extract: { + column: string; + }; +} + +export interface APICorpusDefinition { + name: string; + id?: number; + meta: { + title: string; + category: string; + description: string; + languages: string[]; + date_range: { + min: string; + max: string; + }; + }; + source_data: { + type: 'csv'; + options?: { + delimiter?: ','|';'|'\t'; + }; + }; + fields: APICorpusField[]; + options?: { + language_field?: string; + document_context?: { + context_fields: string[]; + context_display_name: string; + sort?: { + field: string; + ascending: boolean; + }; + }; + default_sort?: { + field: string; + ascending: boolean; + }; + }; +}; From ce9206c148c2b8210b245d397862fd5935ac5fb5 Mon Sep 17 00:00:00 2001 From: Luka van der Plas Date: Wed, 15 May 2024 17:53:32 +0200 Subject: [PATCH 21/91] fetch definitions in overview --- .../definitions-overview.component.html | 8 +++++--- .../definitions-overview.component.ts | 13 ++++++++----- frontend/src/app/services/api.service.ts | 19 +++++++++++++++++++ 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html index fdc5c5e00..c932d2ae9 100644 --- a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html +++ b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html @@ -11,7 +11,7 @@

Corpus definitions

-
+
@@ -20,19 +20,21 @@

Corpus definitions

- - + +
Test
{{definition.meta.title}} +   +   + + + diff --git a/frontend/src/app/corpus-definitions/create-definition/create-definition.component.scss b/frontend/src/app/corpus-definitions/create-definition/create-definition.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/frontend/src/app/corpus-definitions/create-definition/create-definition.component.spec.ts b/frontend/src/app/corpus-definitions/create-definition/create-definition.component.spec.ts new file mode 100644 index 000000000..77a9c51c8 --- /dev/null +++ b/frontend/src/app/corpus-definitions/create-definition/create-definition.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { CreateDefinitionComponent } from './create-definition.component'; +import { commonTestBed } from '../../common-test-bed'; + +describe('CreateDefinitionComponent', () => { + let component: CreateDefinitionComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + commonTestBed().testingModule.compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CreateDefinitionComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/corpus-definitions/create-definition/create-definition.component.ts b/frontend/src/app/corpus-definitions/create-definition/create-definition.component.ts new file mode 100644 index 000000000..d4ea3bac0 --- /dev/null +++ b/frontend/src/app/corpus-definitions/create-definition/create-definition.component.ts @@ -0,0 +1,18 @@ +import { Component, OnInit } from '@angular/core'; +import { actionIcons } from '../../shared/icons'; + +@Component({ + selector: 'ia-create-definition', + templateUrl: './create-definition.component.html', + styleUrls: ['./create-definition.component.scss'] +}) +export class CreateDefinitionComponent implements OnInit { + + actionIcons = actionIcons; + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html index c932d2ae9..513ef27c1 100644 --- a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html +++ b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html @@ -3,12 +3,12 @@

Corpus definitions

@@ -23,17 +23,12 @@

Corpus definitions

{{definition.meta.title}} - -   - +   {{definition.meta.title}} + [routerLink]="['edit', definition.id]"> diff --git a/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html new file mode 100644 index 000000000..caf98db32 --- /dev/null +++ b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html @@ -0,0 +1,26 @@ +
+
+

Edit corpus

+ +

+ You can download this corpus definition as a JSON file, or upload a JSON + file to update it. +

+ +
+ +   + +
+
+
diff --git a/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.scss b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.spec.ts b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.spec.ts new file mode 100644 index 000000000..42a4f7838 --- /dev/null +++ b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { EditDefinitionComponent } from './edit-definition.component'; +import { commonTestBed } from '../../common-test-bed'; + +describe('EditDefinitionComponent', () => { + let component: EditDefinitionComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + commonTestBed().testingModule.compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(EditDefinitionComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.ts b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.ts new file mode 100644 index 000000000..3221df79f --- /dev/null +++ b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.ts @@ -0,0 +1,18 @@ +import { Component, OnInit } from '@angular/core'; +import { actionIcons } from '../../shared/icons'; + +@Component({ + selector: 'ia-edit-definition', + templateUrl: './edit-definition.component.html', + styleUrls: ['./edit-definition.component.scss'] +}) +export class EditDefinitionComponent implements OnInit { + + actionIcons = actionIcons; + + constructor() { } + + ngOnInit(): void { + } + +} From 63ca156dab2ba717763dd5f05f69a8c50d24d648 Mon Sep 17 00:00:00 2001 From: Luka van der Plas Date: Thu, 16 May 2024 11:44:45 +0200 Subject: [PATCH 24/91] add breadcrumbs --- .../create-definition/create-definition.component.html | 8 ++++++++ .../definitions-overview.component.html | 7 +++++++ .../edit-definition/edit-definition.component.html | 8 ++++++++ 3 files changed, 23 insertions(+) diff --git a/frontend/src/app/corpus-definitions/create-definition/create-definition.component.html b/frontend/src/app/corpus-definitions/create-definition/create-definition.component.html index 8034cc2bd..375899335 100644 --- a/frontend/src/app/corpus-definitions/create-definition/create-definition.component.html +++ b/frontend/src/app/corpus-definitions/create-definition/create-definition.component.html @@ -1,5 +1,13 @@
+ +

New corpus

diff --git a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html index b593aac20..79cd9ecec 100644 --- a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html +++ b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html @@ -1,5 +1,12 @@

+ +

Corpus definitions

diff --git a/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html index caf98db32..4c20561f1 100644 --- a/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html +++ b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html @@ -1,5 +1,13 @@
+ +

Edit corpus

From c9a634039eeda40a196451f1a82ce0199d3954c4 Mon Sep 17 00:00:00 2001 From: Luka van der Plas Date: Thu, 16 May 2024 11:53:45 +0200 Subject: [PATCH 25/91] use router state in edit definition component --- .../edit-definition.component.html | 8 +++--- .../edit-definition.component.ts | 26 ++++++++++++++++--- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html index 4c20561f1..51ab7189e 100644 --- a/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html +++ b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.html @@ -1,14 +1,14 @@

-
+
-

Edit corpus

+

Edit corpus "{{definition.meta.title}}"

You can download this corpus definition as a JSON file, or upload a JSON diff --git a/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.ts b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.ts index 3221df79f..888696dad 100644 --- a/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.ts +++ b/frontend/src/app/corpus-definitions/edit-definition/edit-definition.component.ts @@ -1,18 +1,36 @@ -import { Component, OnInit } from '@angular/core'; +import { Component } from '@angular/core'; import { actionIcons } from '../../shared/icons'; +import { Observable, combineLatest } from 'rxjs'; +import { APICorpusDefinition } from '../../models/corpus-definition'; +import { ApiService } from '../../services'; +import { ActivatedRoute } from '@angular/router'; +import { map, tap } from 'rxjs/operators'; @Component({ selector: 'ia-edit-definition', templateUrl: './edit-definition.component.html', styleUrls: ['./edit-definition.component.scss'] }) -export class EditDefinitionComponent implements OnInit { +export class EditDefinitionComponent { actionIcons = actionIcons; - constructor() { } + definition$: Observable; - ngOnInit(): void { + constructor( + private apiService: ApiService, + private route: ActivatedRoute + ) { + const corpusID$ = this.route.params.pipe( + map(params => parseInt(params['corpusID'], 10)) + ); + this.definition$ = combineLatest([ + this.apiService.corpusDefinitions(), + corpusID$, + ]).pipe( + tap(values => console.log(values)), + map(([definitions, id]) => definitions.find(def => def.id === id)) + ); } } From 9855b77091e6d3667ea783deccb72d11e74f10d6 Mon Sep 17 00:00:00 2001 From: Luka van der Plas Date: Thu, 16 May 2024 12:01:36 +0200 Subject: [PATCH 26/91] include search link in overview --- .../definitions-overview.component.html | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html index 79cd9ecec..34936ea70 100644 --- a/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html +++ b/frontend/src/app/corpus-definitions/definitions-overview/definitions-overview.component.html @@ -10,7 +10,7 @@

Corpus definitions

{{definition.meta.title}} + + + + + +   @@ -37,7 +44,7 @@

Corpus definitions

  -