From 6858b4b8e8bdfc585cfa23884732174e133b90b9 Mon Sep 17 00:00:00 2001 From: Alfeu Uzai Tavares Date: Fri, 3 May 2024 16:48:31 -0300 Subject: [PATCH 1/4] Add component to show CC license in the item page --- .../item-page-cc-license-field.component.html | 28 +++++++ .../item-page-cc-license-field.component.ts | 73 ++++++++++++++++++ src/assets/i18n/en.json5 | 4 + src/assets/images/cc-licenses/by-nc-nd.png | Bin 0 -> 20935 bytes src/assets/images/cc-licenses/by-nc-sa.png | Bin 0 -> 22475 bytes src/assets/images/cc-licenses/by-nc.png | Bin 0 -> 17637 bytes src/assets/images/cc-licenses/by-nd.png | Bin 0 -> 16192 bytes src/assets/images/cc-licenses/by-sa.png | Bin 0 -> 17594 bytes src/assets/images/cc-licenses/by.png | Bin 0 -> 12588 bytes src/assets/images/cc-licenses/zero.png | Bin 0 -> 6447 bytes 10 files changed, 105 insertions(+) create mode 100644 src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.html create mode 100644 src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.ts create mode 100644 src/assets/images/cc-licenses/by-nc-nd.png create mode 100644 src/assets/images/cc-licenses/by-nc-sa.png create mode 100644 src/assets/images/cc-licenses/by-nc.png create mode 100644 src/assets/images/cc-licenses/by-nd.png create mode 100644 src/assets/images/cc-licenses/by-sa.png create mode 100644 src/assets/images/cc-licenses/by.png create mode 100644 src/assets/images/cc-licenses/zero.png diff --git a/src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.html b/src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.html new file mode 100644 index 00000000000..e4966768477 --- /dev/null +++ b/src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.html @@ -0,0 +1,28 @@ +
+ +
+ + +
+ +
+ + +
+ + {{ variant === 'full' && showDisclaimer ? ('item.page.cc.license.disclaimer' | translate) : '' }} + {{ name }} + +
+
+
+
diff --git a/src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.ts b/src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.ts new file mode 100644 index 00000000000..5d19fe4b4e2 --- /dev/null +++ b/src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.ts @@ -0,0 +1,73 @@ +import { + NgClass, + NgIf, + NgStyle, +} from '@angular/common'; +import { + Component, + Input, + OnInit, +} from '@angular/core'; +import { TranslateModule } from '@ngx-translate/core'; +import { Item } from 'src/app/core/shared/item.model'; +import { MetadataFieldWrapperComponent } from 'src/app/shared/metadata-field-wrapper/metadata-field-wrapper.component'; + +@Component({ + selector: 'ds-item-page-cc-license-field', + templateUrl: './item-page-cc-license-field.component.html', + standalone: true, + imports: [NgIf, NgClass, NgStyle, TranslateModule, MetadataFieldWrapperComponent], +}) +/** + * Displays the item's Creative Commons license image in it's simple item page + */ +export class ItemPageCcLicenseFieldComponent implements OnInit { + /** + * The item to display the CC license image for + */ + @Input() item: Item; + + /** + * 'full' variant shows image, a disclaimer (optional) and name (always), better for the item page content. + * 'small' variant shows image and name (optional), better for the item page sidebar + */ + @Input() variant?: 'small' | 'full' = 'small'; + + /** + * Filed name containing the CC license URI, as configured in the back-end, in the 'dspace.cfg' file, propertie + * 'cc.license.uri' + */ + @Input() ccLicenseUriField? = 'dc.rights.uri'; + + /** + * Filed name containing the CC license name, as configured in the back-end, in the 'dspace.cfg' file, propertie + * 'cc.license.name' + */ + @Input() ccLicenseNameField? = 'dc.rights'; + + /** + * Shows the CC license name with the image. Always show if image fails to load + */ + @Input() showName? = true; + + /** + * Shows the disclaimer in the 'full' variant of the component + */ + @Input() showDisclaimer? = true; + + uri: string; + name: string; + showImage = true; + imgSrc: string; + + ngOnInit() { + this.uri = this.item.firstMetadataValue(this.ccLicenseUriField); + this.name = this.item.firstMetadataValue(this.ccLicenseNameField); + + // Extracts the CC license code from the URI + const regex = /.*creativecommons.org\/(licenses|publicdomain)\/([^/]+)/gm; + const matches = regex.exec(this.uri ?? '') ?? []; + const ccCode = matches.length > 2 ? matches[2] : null; + this.imgSrc = ccCode ? `assets/images/cc-licenses/${ccCode}.png` : null; + } +} diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index e79294d4ebb..864547636d5 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -6657,4 +6657,8 @@ "search.filters.filter.notifyEndorsement.placeholder": "Notify Endorsement", "search.filters.filter.notifyEndorsement.label": "Search Notify Endorsement", + + "item.page.cc.license.title": "Creative Commons license", + + "item.page.cc.license.disclaimer": "Except where otherwised noted, this item's license is described as", } diff --git a/src/assets/images/cc-licenses/by-nc-nd.png b/src/assets/images/cc-licenses/by-nc-nd.png new file mode 100644 index 0000000000000000000000000000000000000000..5a8dbd0652e37cc2d89b4899e307abcac8bda553 GIT binary patch literal 20935 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 V_bKxY2;ODV(a=9ucJy?}e*pE>jWz%P literal 0 HcmV?d00001 diff --git a/src/assets/images/cc-licenses/by-nc.png b/src/assets/images/cc-licenses/by-nc.png new file mode 100644 index 0000000000000000000000000000000000000000..25e284099a07df1ba95e4140fbfe7a8d1740fdc5 GIT binary patch literal 17637 zcmYLR1yEIMv_?f~B&16~knS#}JEgmk2I&$6q(eGHL_|`$JETEC6iI0br5mZY&V4iQ z?HR9LhO^H;d;kAhU#%0VrXq`lPKu6%goGt8C#8XebSnw|9gBJo{`;anO$`1*c9W3T zM1{j2)iMJ9AI(Kh&kYHQjRo=N7PftY1N@N0U0T=unX|RKm)Q#|Brh*7Hd`lqHw!Zt zD>mmBHg9)CNRf~pBFRgMYkFsGzw^?4phFZMIKI4B zgl@;8OIueMNnr8$TVcclKUw5YjD%9+cPrJC=Z9Vf?ukDa7H$^CXdY@At&Zn%8!`(L zJk9n)59u-gAclF*0yD@JiRBjYoj13!;7~Rw!0g~g;za7wW%)VrkDsJ=FtpRu9cd3G zsEC!78u2T!{rmTk?h{5IQ=GMPoww8Y+|KbUiIS0ogI2*G$#l@XvTc$nsT#@9ZkLIH zp<}QY{Z~!X$AD(f(#Q1woj^@ZT`%&e=6*z6l#IBz_?5v;l`f0UJtPz)>RO#xUy{yQ zFUDl8WCML|Qp7?1nEx?R^Q9LJBWKaIl`I;Pgc~A|R?_i6DhSvNOt-$oY~Gchnu`klZlG|J9-4#aXl5bI}*jkyH%m{Xs7a4nlJ<4}>s z$5V}~Yiad-*F{H1-}qk6KFl&~YUhM5O(z}oiQq|F;6>coly`SeH}!sxV)BEuJsy>2 z&+ReE0+eBvucp>!_Z;6*nsN|7P@MI&bsNm9sd?bj=+po8tF*C7>%`X^om5`tuPvDb zD%-^}(j*EBQED36Wd_>}%*>OYJy(Bkn8Dy8DE$N znO%6dn7V=`6W%5<@14JBTVFhhooxtM;hU+oN3kcfSIS-s9x)Qa@ON?zy_Lg;a@8Vz z$YDO*ul*oA5FR1UA;Z1YcCjGHaMx*PI*0GX}-~KmcA+! zIfC5v>aC9R!^Njhe@&WyP%17iMm*_=3*3n4IB6drANy#{@Um>SdzhpVRQIls;Leq@ zVk^@sL@DCnJ&37LG-GYsTa@B2-ANY;Kp!q;5#T3OU$$6r{dZ=YR}k>rQJwT59o=2O zzDk#W-_WY6s!Cbo)M&H^^IBTS>z(Iho~xl&RaY4pkV~X1(K~EAEFFF1ZnE=qbab5& zfyZj^DIBE#f%0h1#->Q7PPTD$ zLoZ* )qEM3BX%M9NWgRO_B(1S+!|F;!C~0` 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/cc-licenses/by-nd.png b/src/assets/images/cc-licenses/by-nd.png new file mode 100644 index 0000000000000000000000000000000000000000..fc3d26789a0b4f529a132bcae501dca6ce208f45 GIT binary patch literal 16192 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 D++ZVC literal 0 HcmV?d00001 diff --git a/src/assets/images/cc-licenses/by-sa.png b/src/assets/images/cc-licenses/by-sa.png new file mode 100644 index 0000000000000000000000000000000000000000..8770732928cb20d8aeafee32bec9c5de89d51238 GIT binary patch literal 17594 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 H&)EL~wS8Yu literal 0 HcmV?d00001 From fc179a2ff7a2baf89e070ddd49a6531799dc14b8 Mon Sep 17 00:00:00 2001 From: Alfeu Uzai Tavares Date: Fri, 3 May 2024 16:49:00 -0300 Subject: [PATCH 2/4] Add unit tests for CC license component --- ...em-page-cc-license-field.component.spec.ts | 298 ++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100644 src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.spec.ts diff --git a/src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.spec.ts b/src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.spec.ts new file mode 100644 index 00000000000..7a29fed2757 --- /dev/null +++ b/src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component.spec.ts @@ -0,0 +1,298 @@ +import { + ChangeDetectionStrategy, + NO_ERRORS_SCHEMA, +} from '@angular/core'; +import { + ComponentFixture, + TestBed, + waitForAsync, +} from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { + TranslateLoader, + TranslateModule, +} from '@ngx-translate/core'; +import { Item } from 'src/app/core/shared/item.model'; +import { + MetadataMap, + MetadataValue, +} from 'src/app/core/shared/metadata.models'; +import { createSuccessfulRemoteDataObject$ } from 'src/app/shared/remote-data.utils'; +import { createPaginatedList } from 'src/app/shared/testing/utils.test'; + +import { APP_CONFIG } from '../../../../../../config/app-config.interface'; +import { environment } from '../../../../../../environments/environment'; +import { TranslateLoaderMock } from '../../../../../shared/testing/translate-loader.mock'; +import { ItemPageCcLicenseFieldComponent } from './item-page-cc-license-field.component'; + + +interface TestInstance { + metadata: { + 'dc.rights.uri'?: string; + 'dc.rights'?: string; + }; + componentInputs?: { + variant?: 'small' | 'full'; + showName?: boolean; + showDisclaimer?: boolean; + }; +} + + +interface TestCase { + testInstance: TestInstance; + expected: { + render: boolean, + showImage: boolean, + showName: boolean, + showDisclaimer: boolean + }; +} + + +const licenseNameMock = 'CC LICENSE NAME'; + + +const testCases: TestCase[] = [ + { + testInstance: { + metadata: { 'dc.rights.uri': undefined, 'dc.rights': undefined }, + }, + expected: { + render: false, + showName: false, + showImage: false, + showDisclaimer: false, + }, + }, + { + testInstance: { + metadata: { 'dc.rights.uri': null, 'dc.rights': null }, + }, + expected: { + render: false, + showName: false, + showImage: false, + showDisclaimer: false, + }, + }, + { + testInstance: { + metadata: { 'dc.rights.uri': 'https://creativecommons.org/licenses/by/4.0', 'dc.rights': null }, + }, + expected: { + render: false, + showName: false, + showImage: false, + showDisclaimer: false, + }, + }, + { + testInstance: { + metadata: { 'dc.rights.uri': null, 'dc.rights': licenseNameMock }, + }, + expected: { + render: false, + showName: false, + showImage: false, + showDisclaimer: false, + }, + }, + { + testInstance: { + metadata: { 'dc.rights.uri': 'https://creativecommons.org/licenses/by/4.0', 'dc.rights': licenseNameMock }, + }, + expected: { + render: true, + showName: true, + showImage: true, + showDisclaimer: false, + }, + }, + { + testInstance: { + metadata: { 'dc.rights.uri': 'https://creativecommons.org/', 'dc.rights': licenseNameMock }, + }, + expected: { + render: true, + showName: true, + showImage: false, + showDisclaimer: false, + }, + }, + { + testInstance: { + metadata: { 'dc.rights.uri': 'https://creativecommons.org/', 'dc.rights': licenseNameMock }, + componentInputs: { variant: 'full' }, + }, + expected: { + render: true, + showName: true, + showImage: false, + showDisclaimer: true, + }, + }, + { + testInstance: { + metadata: { 'dc.rights.uri': 'https://creativecommons.org/', 'dc.rights': licenseNameMock }, + componentInputs: { showName: false }, + }, + expected: { + render: true, + showName: true, + showImage: false, + showDisclaimer: false, + }, + }, + { + testInstance: { + metadata: { 'dc.rights.uri': 'https://creativecommons.org/licenses/by/4.0', 'dc.rights': licenseNameMock }, + componentInputs: { showName: false }, + }, + expected: { + render: true, + showName: false, + showImage: true, + showDisclaimer: false, + }, + }, + { + testInstance: { + metadata: { 'dc.rights.uri': 'https://creativecommons.org/licenses/by/4.0', 'dc.rights': licenseNameMock }, + componentInputs: { variant: 'full', showDisclaimer: false }, + }, + expected: { + render: true, + showName: true, + showImage: true, + showDisclaimer: false, + }, + }, +]; + + +// Updates the component fixture with parameters from the test instance +function configureFixture( + fixture: ComponentFixture, + testInstance: TestInstance, +) { + const item = Object.assign(new Item(), { + bundles: createSuccessfulRemoteDataObject$(createPaginatedList([])), + metadata: new MetadataMap(), + }); + + for (const [key, value] of Object.entries(testInstance.metadata)) { + item.metadata[key] = [ + { + language: 'en_US', + value: value, + }, + ] as MetadataValue[]; + } + + let component: ItemPageCcLicenseFieldComponent = fixture.componentInstance; + for (const [key, value] of Object.entries(testInstance.componentInputs ?? {})) { + component[key] = value; + } + component.item = item; + + fixture.detectChanges(); +} + + +describe('ItemPageCcLicenseFieldComponent', () => { + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + void TestBed.configureTestingModule({ + imports: [ + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useClass: TranslateLoaderMock, + }, + }), + ItemPageCcLicenseFieldComponent, + ], + providers: [{ provide: APP_CONFIG, useValue: environment }], + schemas: [NO_ERRORS_SCHEMA], + }) + .overrideComponent(ItemPageCcLicenseFieldComponent, { + set: { changeDetection: ChangeDetectionStrategy.Default }, + }) + .compileComponents(); + })); + + beforeEach(waitForAsync(() => { + fixture = TestBed.createComponent(ItemPageCcLicenseFieldComponent); + })); + + testCases.forEach((testCase) => { + describe('', () => { + beforeEach(async () => { + configureFixture(fixture, testCase.testInstance); + + // Waits the image to be loaded or to cause an error when loading + let imgEl = fixture.debugElement.query(By.css('img')); + if (imgEl) { + await new Promise((resolve, reject) => { + imgEl.nativeElement.addEventListener('load', () => resolve()); + imgEl.nativeElement.addEventListener('error', () => resolve()); + }); + } + + // Executes again because the 'img' element could have been updated due to a loading error + fixture.detectChanges(); + }); + + it('should render or not the component', + () => { + const componentEl = fixture.debugElement.query(By.css('.item-page-field')); + expect(Boolean(componentEl)).toBe(testCase.expected.render); + }, + ); + + it('should show/hide CC license name', + () => { + const nameEl = fixture.debugElement.query(de => de.nativeElement.id === 'cc-name'); + expect(Boolean(nameEl)).toBe(testCase.expected.showName); + if (nameEl && testCase.expected.showName) { + expect(nameEl.nativeElement.innerHTML).toContain(licenseNameMock); + } + }, + ); + + it('should show CC license image', + () => { + const imgEl = fixture.debugElement.query(By.css('img')); + expect(Boolean(imgEl)).toBe(testCase.expected.showImage); + }, + ); + + it('should use name fallback when CC image fails loading', + () => { + const nameEl = fixture.debugElement.query(de => de.nativeElement.id === 'cc-name'); + expect(Boolean(nameEl)).toBe(testCase.expected.showName); + if (nameEl && testCase.expected.showName) { + expect(nameEl.nativeElement.innerHTML).toContain(licenseNameMock); + } + }, + ); + + it('should show or not CC license disclaimer', + () => { + const disclaimerEl = fixture.debugElement.query(By.css('span')); + if (testCase.expected.showDisclaimer) { + expect(disclaimerEl).toBeTruthy(); + expect(disclaimerEl.nativeElement.innerHTML).toContain('item.page.cc.license.disclaimer'); + } else if (testCase.expected.render) { + expect(disclaimerEl).toBeTruthy(); + expect(disclaimerEl.nativeElement.innerHTML).not.toContain('item.page.cc.license.disclaimer'); + } else { + expect(disclaimerEl).toBeFalsy(); + } + }, + ); + }); + }); +}); From 6df70370c9a9a68510426eb7b4fc226eb3ef2bbe Mon Sep 17 00:00:00 2001 From: Alfeu Uzai Tavares Date: Fri, 3 May 2024 16:53:56 -0300 Subject: [PATCH 3/4] Add CC license component to the simple item page --- .../simple/item-types/untyped-item/untyped-item.component.html | 2 ++ .../simple/item-types/untyped-item/untyped-item.component.ts | 3 ++- .../simple/item-types/untyped-item/untyped-item.component.ts | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.html b/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.html index 5ab42556e2c..886e6563a7e 100644 --- a/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.html +++ b/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.html @@ -86,6 +86,8 @@ [fields]="['datacite.relation.isReferencedBy']" [label]="'item.page.dataset'"> + +
{{"item.page.link.full" | translate}} diff --git a/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts b/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts index 74b4b50875b..3ee6ee9401e 100644 --- a/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts +++ b/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts @@ -21,6 +21,7 @@ import { ThemedMediaViewerComponent } from '../../../media-viewer/themed-media-v import { MiradorViewerComponent } from '../../../mirador-viewer/mirador-viewer.component'; import { ThemedFileSectionComponent } from '../../field-components/file-section/themed-file-section.component'; import { ItemPageAbstractFieldComponent } from '../../field-components/specific-field/abstract/item-page-abstract-field.component'; +import { ItemPageCcLicenseFieldComponent } from '../../field-components/specific-field/cc-license/item-page-cc-license-field.component'; import { ItemPageDateFieldComponent } from '../../field-components/specific-field/date/item-page-date-field.component'; import { GenericItemPageFieldComponent } from '../../field-components/specific-field/generic/generic-item-page-field.component'; import { ThemedItemPageTitleFieldComponent } from '../../field-components/specific-field/title/themed-item-page-field.component'; @@ -39,7 +40,7 @@ import { ItemComponent } from '../shared/item.component'; templateUrl: './untyped-item.component.html', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, - imports: [NgIf, ThemedResultsBackButtonComponent, MiradorViewerComponent, ThemedItemPageTitleFieldComponent, DsoEditMenuComponent, MetadataFieldWrapperComponent, ThemedThumbnailComponent, ThemedMediaViewerComponent, ThemedFileSectionComponent, ItemPageDateFieldComponent, ThemedMetadataRepresentationListComponent, GenericItemPageFieldComponent, ItemPageAbstractFieldComponent, ItemPageUriFieldComponent, CollectionsComponent, RouterLink, AsyncPipe, TranslateModule], + imports: [NgIf, ThemedResultsBackButtonComponent, MiradorViewerComponent, ThemedItemPageTitleFieldComponent, DsoEditMenuComponent, MetadataFieldWrapperComponent, ThemedThumbnailComponent, ThemedMediaViewerComponent, ThemedFileSectionComponent, ItemPageDateFieldComponent, ThemedMetadataRepresentationListComponent, GenericItemPageFieldComponent, ItemPageAbstractFieldComponent, ItemPageUriFieldComponent, CollectionsComponent, RouterLink, AsyncPipe, TranslateModule, ItemPageCcLicenseFieldComponent], }) export class UntypedItemComponent extends ItemComponent { diff --git a/src/themes/custom/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts b/src/themes/custom/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts index aeae9a519a5..312e23b033b 100644 --- a/src/themes/custom/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts +++ b/src/themes/custom/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts @@ -28,6 +28,7 @@ import { MetadataFieldWrapperComponent } from '../../../../../../../app/shared/m import { listableObjectComponent } from '../../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator'; import { ThemedResultsBackButtonComponent } from '../../../../../../../app/shared/results-back-button/themed-results-back-button.component'; import { ThemedThumbnailComponent } from '../../../../../../../app/thumbnail/themed-thumbnail.component'; +import { ItemPageCcLicenseFieldComponent } from 'src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component'; /** * Component that represents an untyped Item page @@ -41,7 +42,7 @@ import { ThemedThumbnailComponent } from '../../../../../../../app/thumbnail/the templateUrl: '../../../../../../../app/item-page/simple/item-types/untyped-item/untyped-item.component.html', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, - imports: [NgIf, ThemedResultsBackButtonComponent, MiradorViewerComponent, ThemedItemPageTitleFieldComponent, DsoEditMenuComponent, MetadataFieldWrapperComponent, ThemedThumbnailComponent, ThemedMediaViewerComponent, ThemedFileSectionComponent, ItemPageDateFieldComponent, ThemedMetadataRepresentationListComponent, GenericItemPageFieldComponent, ItemPageAbstractFieldComponent, ItemPageUriFieldComponent, CollectionsComponent, RouterLink, AsyncPipe, TranslateModule], + imports: [NgIf, ThemedResultsBackButtonComponent, MiradorViewerComponent, ThemedItemPageTitleFieldComponent, DsoEditMenuComponent, MetadataFieldWrapperComponent, ThemedThumbnailComponent, ThemedMediaViewerComponent, ThemedFileSectionComponent, ItemPageDateFieldComponent, ThemedMetadataRepresentationListComponent, GenericItemPageFieldComponent, ItemPageAbstractFieldComponent, ItemPageUriFieldComponent, CollectionsComponent, RouterLink, AsyncPipe, TranslateModule, ItemPageCcLicenseFieldComponent], }) export class UntypedItemComponent extends BaseComponent { } From cec58927376bc0890d7656b885d4cfec78c10a5f Mon Sep 17 00:00:00 2001 From: Alfeu Uzai Tavares Date: Fri, 3 May 2024 16:58:33 -0300 Subject: [PATCH 4/4] Refactor formatting with eslint + prettier --- .../untyped-item/untyped-item.component.ts | 26 +++++++++++--- .../untyped-item/untyped-item.component.ts | 34 +++++++++++++++---- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts b/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts index 3ee6ee9401e..a9ef9b2eadf 100644 --- a/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts +++ b/src/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts @@ -40,8 +40,26 @@ import { ItemComponent } from '../shared/item.component'; templateUrl: './untyped-item.component.html', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, - imports: [NgIf, ThemedResultsBackButtonComponent, MiradorViewerComponent, ThemedItemPageTitleFieldComponent, DsoEditMenuComponent, MetadataFieldWrapperComponent, ThemedThumbnailComponent, ThemedMediaViewerComponent, ThemedFileSectionComponent, ItemPageDateFieldComponent, ThemedMetadataRepresentationListComponent, GenericItemPageFieldComponent, ItemPageAbstractFieldComponent, ItemPageUriFieldComponent, CollectionsComponent, RouterLink, AsyncPipe, TranslateModule, ItemPageCcLicenseFieldComponent], + imports: [ + NgIf, + ThemedResultsBackButtonComponent, + MiradorViewerComponent, + ThemedItemPageTitleFieldComponent, + DsoEditMenuComponent, + MetadataFieldWrapperComponent, + ThemedThumbnailComponent, + ThemedMediaViewerComponent, + ThemedFileSectionComponent, + ItemPageDateFieldComponent, + ThemedMetadataRepresentationListComponent, + GenericItemPageFieldComponent, + ItemPageAbstractFieldComponent, + ItemPageUriFieldComponent, + CollectionsComponent, + RouterLink, + AsyncPipe, + TranslateModule, + ItemPageCcLicenseFieldComponent, + ], }) -export class UntypedItemComponent extends ItemComponent { - -} +export class UntypedItemComponent extends ItemComponent {} diff --git a/src/themes/custom/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts b/src/themes/custom/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts index 312e23b033b..6fbb035d2f2 100644 --- a/src/themes/custom/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts +++ b/src/themes/custom/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts @@ -17,6 +17,7 @@ import { ThemedMediaViewerComponent } from '../../../../../../../app/item-page/m import { MiradorViewerComponent } from '../../../../../../../app/item-page/mirador-viewer/mirador-viewer.component'; import { ThemedFileSectionComponent } from '../../../../../../../app/item-page/simple/field-components/file-section/themed-file-section.component'; import { ItemPageAbstractFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/abstract/item-page-abstract-field.component'; +import { ItemPageCcLicenseFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component'; import { ItemPageDateFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/date/item-page-date-field.component'; import { GenericItemPageFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/generic/generic-item-page-field.component'; import { ThemedItemPageTitleFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/title/themed-item-page-field.component'; @@ -28,7 +29,6 @@ import { MetadataFieldWrapperComponent } from '../../../../../../../app/shared/m import { listableObjectComponent } from '../../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator'; import { ThemedResultsBackButtonComponent } from '../../../../../../../app/shared/results-back-button/themed-results-back-button.component'; import { ThemedThumbnailComponent } from '../../../../../../../app/thumbnail/themed-thumbnail.component'; -import { ItemPageCcLicenseFieldComponent } from 'src/app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component'; /** * Component that represents an untyped Item page @@ -37,12 +37,34 @@ import { ItemPageCcLicenseFieldComponent } from 'src/app/item-page/simple/field- @Component({ selector: 'ds-untyped-item', // styleUrls: ['./untyped-item.component.scss'], - styleUrls: ['../../../../../../../app/item-page/simple/item-types/untyped-item/untyped-item.component.scss'], + styleUrls: [ + '../../../../../../../app/item-page/simple/item-types/untyped-item/untyped-item.component.scss', + ], // templateUrl: './untyped-item.component.html', - templateUrl: '../../../../../../../app/item-page/simple/item-types/untyped-item/untyped-item.component.html', + templateUrl: + '../../../../../../../app/item-page/simple/item-types/untyped-item/untyped-item.component.html', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, - imports: [NgIf, ThemedResultsBackButtonComponent, MiradorViewerComponent, ThemedItemPageTitleFieldComponent, DsoEditMenuComponent, MetadataFieldWrapperComponent, ThemedThumbnailComponent, ThemedMediaViewerComponent, ThemedFileSectionComponent, ItemPageDateFieldComponent, ThemedMetadataRepresentationListComponent, GenericItemPageFieldComponent, ItemPageAbstractFieldComponent, ItemPageUriFieldComponent, CollectionsComponent, RouterLink, AsyncPipe, TranslateModule, ItemPageCcLicenseFieldComponent], + imports: [ + NgIf, + ThemedResultsBackButtonComponent, + MiradorViewerComponent, + ThemedItemPageTitleFieldComponent, + DsoEditMenuComponent, + MetadataFieldWrapperComponent, + ThemedThumbnailComponent, + ThemedMediaViewerComponent, + ThemedFileSectionComponent, + ItemPageDateFieldComponent, + ThemedMetadataRepresentationListComponent, + GenericItemPageFieldComponent, + ItemPageAbstractFieldComponent, + ItemPageUriFieldComponent, + CollectionsComponent, + RouterLink, + AsyncPipe, + TranslateModule, + ItemPageCcLicenseFieldComponent, + ], }) -export class UntypedItemComponent extends BaseComponent { -} +export class UntypedItemComponent extends BaseComponent {}