From 27d3c58d003f4e82026bb77b8b7d20a3e9ea5a78 Mon Sep 17 00:00:00 2001 From: Art Lowel Date: Tue, 2 May 2023 17:09:55 +0200 Subject: [PATCH 1/2] add referrer to pageview events --- .../services/browser.referrer.service.spec.ts | 53 +++++++++++++++++++ .../core/services/browser.referrer.service.ts | 48 +++++++++++++++++ src/app/core/services/referrer.service.ts | 15 ++++++ .../services/server.referrer.service.spec.ts | 34 ++++++++++++ .../core/services/server.referrer.service.ts | 31 +++++++++++ .../angulartics/dspace-provider.spec.ts | 7 ++- .../statistics/angulartics/dspace-provider.ts | 2 +- .../dspace/view-tracker.component.ts | 43 ++++++++++++--- src/app/statistics/statistics.service.spec.ts | 3 +- src/app/statistics/statistics.service.ts | 9 +++- src/modules/app/browser-app.module.ts | 6 +++ src/modules/app/server-app.module.ts | 6 +++ 12 files changed, 244 insertions(+), 13 deletions(-) create mode 100644 src/app/core/services/browser.referrer.service.spec.ts create mode 100644 src/app/core/services/browser.referrer.service.ts create mode 100644 src/app/core/services/referrer.service.ts create mode 100644 src/app/core/services/server.referrer.service.spec.ts create mode 100644 src/app/core/services/server.referrer.service.ts diff --git a/src/app/core/services/browser.referrer.service.spec.ts b/src/app/core/services/browser.referrer.service.spec.ts new file mode 100644 index 0000000000..bff01bf913 --- /dev/null +++ b/src/app/core/services/browser.referrer.service.spec.ts @@ -0,0 +1,53 @@ +import { of as observableOf } from 'rxjs'; +import { RouteService } from './route.service'; +import { BrowserReferrerService } from './browser.referrer.service'; + +describe(`BrowserReferrerService`, () => { + let service: BrowserReferrerService; + const documentReferrer = 'https://www.referrer.com'; + const origin = 'https://www.dspace.org'; + let routeService: RouteService; + + beforeEach(() => { + routeService = { + getPreviousUrl: () => observableOf('') + } as any; + service = new BrowserReferrerService( + { referrer: documentReferrer }, + routeService, + { getCurrentOrigin: () => origin } as any + ); + }); + + describe(`getReferrer`, () => { + let prevUrl: string; + + describe(`when getPreviousUrl is an empty string`, () => { + beforeEach(() => { + prevUrl = ''; + spyOn(routeService, 'getPreviousUrl').and.returnValue(observableOf(prevUrl)); + }); + + it(`should return document.referrer`, (done: DoneFn) => { + service.getReferrer().subscribe((emittedReferrer: string) => { + expect(emittedReferrer).toBe(documentReferrer); + done(); + }); + }); + }); + + describe(`when getPreviousUrl is not empty`, () => { + beforeEach(() => { + prevUrl = '/some/local/route'; + spyOn(routeService, 'getPreviousUrl').and.returnValue(observableOf(prevUrl)); + }); + + it(`should return the value emitted by getPreviousUrl combined with the origin from HardRedirectService`, (done: DoneFn) => { + service.getReferrer().subscribe((emittedReferrer: string) => { + expect(emittedReferrer).toBe(origin + prevUrl); + done(); + }); + }); + }); + }); +}); diff --git a/src/app/core/services/browser.referrer.service.ts b/src/app/core/services/browser.referrer.service.ts new file mode 100644 index 0000000000..1bf1cf2d4a --- /dev/null +++ b/src/app/core/services/browser.referrer.service.ts @@ -0,0 +1,48 @@ +import { ReferrerService } from './referrer.service'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { isEmpty } from '../../shared/empty.util'; +import { URLCombiner } from '../url-combiner/url-combiner'; +import { Inject, Injectable } from '@angular/core'; +import { DOCUMENT } from '@angular/common'; +import { HardRedirectService } from './hard-redirect.service'; +import { RouteService } from './route.service'; + +/** + * A service to determine the referrer + * + * The browser implementation will get the referrer from document.referrer, in the event that the + * previous page visited was not an angular URL. If it was, the route history in the store must be + * used, since document.referrer doesn't get updated on route changes + */ +@Injectable() +export class BrowserReferrerService extends ReferrerService { + + constructor( + @Inject(DOCUMENT) protected document: any, + protected routeService: RouteService, + protected hardRedirectService: HardRedirectService, + ) { + super(); + } + + /** + * Return the referrer + * + * Return the referrer URL based on the route history in the store. If there is no route history + * in the store yet, document.referrer will be used + */ + public getReferrer(): Observable { + return this.routeService.getPreviousUrl().pipe( + map((prevUrl: string) => { + // if we don't have anything in the history yet, return document.referrer + // (note that that may be empty too, e.g. if you've just opened a new browser tab) + if (isEmpty(prevUrl)) { + return this.document.referrer; + } else { + return new URLCombiner(this.hardRedirectService.getCurrentOrigin(), prevUrl).toString(); + } + }) + ); + } +} diff --git a/src/app/core/services/referrer.service.ts b/src/app/core/services/referrer.service.ts new file mode 100644 index 0000000000..79621fdbeb --- /dev/null +++ b/src/app/core/services/referrer.service.ts @@ -0,0 +1,15 @@ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; + +/** + * A service to determine the referrer, i.e. the previous URL that led the user to the current one + */ +@Injectable() +export abstract class ReferrerService { + + /** + * Return the referrer + */ + abstract getReferrer(): Observable; + +} diff --git a/src/app/core/services/server.referrer.service.spec.ts b/src/app/core/services/server.referrer.service.spec.ts new file mode 100644 index 0000000000..4a7f841093 --- /dev/null +++ b/src/app/core/services/server.referrer.service.spec.ts @@ -0,0 +1,34 @@ +import { ServerReferrerService } from './server.referrer.service'; + +describe(`ServerReferrerService`, () => { + let service: ServerReferrerService; + const referrer = 'https://www.referrer.com'; + + describe(`getReferrer`, () => { + describe(`when the referer header is set`, () => { + beforeEach(() => { + service = new ServerReferrerService({ headers: { referer: referrer }}); + }); + + it(`should return the referer header`, (done: DoneFn) => { + service.getReferrer().subscribe((emittedReferrer: string) => { + expect(emittedReferrer).toBe(referrer); + done(); + }); + }); + }); + + describe(`when the referer header is not set`, () => { + beforeEach(() => { + service = new ServerReferrerService({ headers: {}}); + }); + + it(`should return an empty string`, (done: DoneFn) => { + service.getReferrer().subscribe((emittedReferrer: string) => { + expect(emittedReferrer).toBe(''); + done(); + }); + }); + }); + }); +}); diff --git a/src/app/core/services/server.referrer.service.ts b/src/app/core/services/server.referrer.service.ts new file mode 100644 index 0000000000..b2f063a07c --- /dev/null +++ b/src/app/core/services/server.referrer.service.ts @@ -0,0 +1,31 @@ +import { ReferrerService } from './referrer.service'; +import { Observable, of as observableOf } from 'rxjs'; +import { Inject, Injectable } from '@angular/core'; +import { REQUEST } from '@nguniversal/express-engine/tokens'; + +/** + * A service to determine the referrer + * + * The server implementation will get the referrer from the 'Referer' header of the request sent to + * the express server + */ +@Injectable() +export class ServerReferrerService extends ReferrerService { + + constructor( + @Inject(REQUEST) protected request: any, + ) { + super(); + } + + /** + * Return the referrer + * + * Return the 'Referer' header from the request, or an empty string if the header wasn't set + * (for consistency with the document.referrer property on the browser side) + */ + public getReferrer(): Observable { + const referrer = this.request.headers.referer || ''; + return observableOf(referrer); + } +} diff --git a/src/app/statistics/angulartics/dspace-provider.spec.ts b/src/app/statistics/angulartics/dspace-provider.spec.ts index 8491d8e80c..b917337648 100644 --- a/src/app/statistics/angulartics/dspace-provider.spec.ts +++ b/src/app/statistics/angulartics/dspace-provider.spec.ts @@ -11,7 +11,10 @@ describe('Angulartics2DSpace', () => { beforeEach(() => { angulartics2 = { - eventTrack: observableOf({action: 'pageView', properties: {object: 'mock-object'}}), + eventTrack: observableOf({action: 'pageView', properties: { + object: 'mock-object', + referrer: 'https://www.referrer.com' + }}), filterDeveloperMode: () => filter(() => true) } as any; statisticsService = jasmine.createSpyObj('statisticsService', {trackViewEvent: null}); @@ -20,7 +23,7 @@ describe('Angulartics2DSpace', () => { it('should use the statisticsService', () => { provider.startTracking(); - expect(statisticsService.trackViewEvent).toHaveBeenCalledWith('mock-object' as any); + expect(statisticsService.trackViewEvent).toHaveBeenCalledWith('mock-object' as any, 'https://www.referrer.com'); }); }); diff --git a/src/app/statistics/angulartics/dspace-provider.ts b/src/app/statistics/angulartics/dspace-provider.ts index cd1aab94bd..8d6607b1c4 100644 --- a/src/app/statistics/angulartics/dspace-provider.ts +++ b/src/app/statistics/angulartics/dspace-provider.ts @@ -25,7 +25,7 @@ export class Angulartics2DSpace { private eventTrack(event) { if (event.action === 'pageView') { - this.statisticsService.trackViewEvent(event.properties.object); + this.statisticsService.trackViewEvent(event.properties.object, event.properties.referrer); } else if (event.action === 'search') { this.statisticsService.trackSearchEvent( event.properties.searchOptions, diff --git a/src/app/statistics/angulartics/dspace/view-tracker.component.ts b/src/app/statistics/angulartics/dspace/view-tracker.component.ts index 85588aeb97..af9c62f98e 100644 --- a/src/app/statistics/angulartics/dspace/view-tracker.component.ts +++ b/src/app/statistics/angulartics/dspace/view-tracker.component.ts @@ -1,6 +1,10 @@ -import { Component, Input, OnInit } from '@angular/core'; +import { Component, Input, OnInit, OnDestroy } from '@angular/core'; import { Angulartics2 } from 'angulartics2'; import { DSpaceObject } from '../../../core/shared/dspace-object.model'; +import { Subscription } from 'rxjs/internal/Subscription'; +import { take } from 'rxjs/operators'; +import { hasValue } from '../../../shared/empty.util'; +import { ReferrerService } from '../../../core/services/referrer.service'; /** * This component triggers a page view statistic @@ -10,18 +14,43 @@ import { DSpaceObject } from '../../../core/shared/dspace-object.model'; styleUrls: ['./view-tracker.component.scss'], templateUrl: './view-tracker.component.html', }) -export class ViewTrackerComponent implements OnInit { +export class ViewTrackerComponent implements OnInit, OnDestroy { + /** + * The DSpaceObject to track a view event about + */ @Input() object: DSpaceObject; + /** + * The subscription on this.referrerService.getReferrer() + * @protected + */ + protected sub: Subscription; + constructor( - public angulartics2: Angulartics2 + public angulartics2: Angulartics2, + public referrerService: ReferrerService ) { } ngOnInit(): void { - this.angulartics2.eventTrack.next({ - action: 'pageView', - properties: {object: this.object}, - }); + this.sub = this.referrerService.getReferrer() + .pipe(take(1)) + .subscribe((referrer: string) => { + this.angulartics2.eventTrack.next({ + action: 'pageView', + properties: { + object: this.object, + referrer + }, + }); + }); + } + + ngOnDestroy(): void { + // unsubscribe in the case that this component is destroyed before + // this.referrerService.getReferrer() has emitted + if (hasValue(this.sub)) { + this.sub.unsubscribe(); + } } } diff --git a/src/app/statistics/statistics.service.spec.ts b/src/app/statistics/statistics.service.spec.ts index cdf81afdb6..2f04755143 100644 --- a/src/app/statistics/statistics.service.spec.ts +++ b/src/app/statistics/statistics.service.spec.ts @@ -26,12 +26,13 @@ describe('StatisticsService', () => { it('should send a request to track an item view ', () => { const mockItem: any = {uuid: 'mock-item-uuid', type: 'item'}; - service.trackViewEvent(mockItem); + service.trackViewEvent(mockItem, 'https://www.referrer.com'); const request: TrackRequest = requestService.send.calls.mostRecent().args[0]; expect(request.body).toBeDefined('request.body'); const body = JSON.parse(request.body); expect(body.targetId).toBe('mock-item-uuid'); expect(body.targetType).toBe('item'); + expect(body.referrer).toBe('https://www.referrer.com'); }); }); diff --git a/src/app/statistics/statistics.service.ts b/src/app/statistics/statistics.service.ts index 9e12e627b5..4835b55e7d 100644 --- a/src/app/statistics/statistics.service.ts +++ b/src/app/statistics/statistics.service.ts @@ -31,11 +31,16 @@ export class StatisticsService { /** * To track a page view * @param dso: The dso which was viewed + * @param referrer: The referrer used by the client to reach the dso page */ - trackViewEvent(dso: DSpaceObject) { + trackViewEvent( + dso: DSpaceObject, + referrer: string + ) { this.sendEvent('/statistics/viewevents', { targetId: dso.uuid, - targetType: (dso as any).type + targetType: (dso as any).type, + referrer }); } diff --git a/src/modules/app/browser-app.module.ts b/src/modules/app/browser-app.module.ts index 29d138be1a..20895cb9a6 100644 --- a/src/modules/app/browser-app.module.ts +++ b/src/modules/app/browser-app.module.ts @@ -33,6 +33,8 @@ import { GoogleAnalyticsService } from '../../app/statistics/google-analytics.se import { RouterModule, NoPreloading } from '@angular/router'; import { AuthRequestService } from '../../app/core/auth/auth-request.service'; import { BrowserAuthRequestService } from '../../app/core/auth/browser-auth-request.service'; +import { ReferrerService } from '../../app/core/services/referrer.service'; +import { BrowserReferrerService } from '../../app/core/services/browser.referrer.service'; export const REQ_KEY = makeStateKey('req'); @@ -111,6 +113,10 @@ export function getRequest(transferState: TransferState): any { provide: AuthRequestService, useClass: BrowserAuthRequestService, }, + { + provide: ReferrerService, + useClass: BrowserReferrerService, + }, { provide: LocationToken, useFactory: locationProvider, diff --git a/src/modules/app/server-app.module.ts b/src/modules/app/server-app.module.ts index dad3a60d5c..34ab29b71b 100644 --- a/src/modules/app/server-app.module.ts +++ b/src/modules/app/server-app.module.ts @@ -33,6 +33,8 @@ import { Angulartics2Mock } from '../../app/shared/mocks/angulartics2.service.mo import { RouterModule } from '@angular/router'; import { AuthRequestService } from '../../app/core/auth/auth-request.service'; import { ServerAuthRequestService } from '../../app/core/auth/server-auth-request.service'; +import { ReferrerService } from '../../app/core/services/referrer.service'; +import { ServerReferrerService } from '../../app/core/services/server.referrer.service'; export function createTranslateLoader() { return new TranslateJson5UniversalLoader('dist/server/assets/i18n/', '.json5'); @@ -102,6 +104,10 @@ export function createTranslateLoader() { provide: HardRedirectService, useClass: ServerHardRedirectService, }, + { + provide: ReferrerService, + useClass: ServerReferrerService, + }, ] }) export class ServerAppModule { From 5aaa4ef371046049f624d1b99d8f3acde8486a04 Mon Sep 17 00:00:00 2001 From: Art Lowel Date: Tue, 2 May 2023 18:11:57 +0200 Subject: [PATCH 2/2] ensure the rel="noopener" attribute is only set when target="_blank" and remove "noreferrer" in all cases --- .../journal-issue-search-result-grid-element.component.html | 4 ++-- .../journal-volume-search-result-grid-element.component.html | 4 ++-- .../journal/journal-search-result-grid-element.component.html | 4 ++-- .../journal-issue-search-result-list-element.component.html | 2 +- .../journal-volume-search-result-list-element.component.html | 2 +- .../journal/journal-search-result-list-element.component.html | 2 +- .../org-unit-search-result-grid-element.component.html | 4 ++-- .../person/person-search-result-grid-element.component.html | 4 ++-- .../project/project-search-result-grid-element.component.html | 4 ++-- .../org-unit-search-result-list-element.component.html | 2 +- .../person/person-search-result-list-element.component.html | 2 +- .../project/project-search-result-list-element.component.html | 2 +- .../collection-grid-element.component.html | 4 ++-- .../community-grid-element.component.html | 4 ++-- .../collection-search-result-grid-element.component.html | 4 ++-- .../community-search-result-grid-element.component.html | 4 ++-- .../item/item-search-result-grid-element.component.html | 4 ++-- .../browse-entry-list-element.component.html | 2 +- .../collection-list-element.component.html | 2 +- .../community-list-element.component.html | 2 +- .../collection-search-result-list-element.component.html | 2 +- .../community-search-result-list-element.component.html | 2 +- .../item/item-search-result-list-element.component.html | 2 +- .../cc-license/submission-section-cc-licenses.component.html | 2 +- 24 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html index 028876b3d0..a54c78fb78 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html @@ -5,7 +5,7 @@ diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html index 65ff75a731..0ae775a9de 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html @@ -5,7 +5,7 @@ diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html index 0c5824c6d6..e71049bdbc 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html @@ -5,7 +5,7 @@ diff --git a/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html b/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html index fa4c06d36a..a51f55f5a1 100644 --- a/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html +++ b/src/app/entity-groups/journal-entities/item-list-elements/search-result-list-elements/journal-issue/journal-issue-search-result-list-element.component.html @@ -1,6 +1,6 @@ - - - diff --git a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html index 680a9909bc..7dafbf0dc2 100644 --- a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html +++ b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html @@ -5,7 +5,7 @@ diff --git a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html index 204f8fc8cb..54f7d73cdc 100644 --- a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html +++ b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/project/project-search-result-grid-element.component.html @@ -5,7 +5,7 @@ diff --git a/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html b/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html index fb0ad21b6e..52273d18aa 100644 --- a/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html +++ b/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html @@ -1,6 +1,6 @@ - - - - + @@ -11,7 +11,7 @@

{{object.name}}

{{object.shortDescription}}

- View + View
diff --git a/src/app/shared/object-grid/community-grid-element/community-grid-element.component.html b/src/app/shared/object-grid/community-grid-element/community-grid-element.component.html index 63097c4f57..9049d8ad18 100644 --- a/src/app/shared/object-grid/community-grid-element/community-grid-element.component.html +++ b/src/app/shared/object-grid/community-grid-element/community-grid-element.component.html @@ -1,5 +1,5 @@
- + @@ -11,7 +11,7 @@

{{object.name}}

{{object.shortDescription}}

- View + View
diff --git a/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html b/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html index 739fa6c7a8..e452353a95 100644 --- a/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html +++ b/src/app/shared/object-grid/search-result-grid-element/collection-search-result/collection-search-result-grid-element.component.html @@ -1,5 +1,5 @@
- + @@ -12,7 +12,7 @@

{{dso.name}}

{{dso.shortDescription}}

- View + View
diff --git a/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html b/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html index d8c253c8a9..4674d3d750 100644 --- a/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html +++ b/src/app/shared/object-grid/search-result-grid-element/community-search-result/community-search-result-grid-element.component.html @@ -1,5 +1,5 @@
- + @@ -12,7 +12,7 @@

{{dso.name}}

{{dso.shortDescription}}

- View + View
diff --git a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html index d2454b28e6..8d4421a15c 100644 --- a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html +++ b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.html @@ -3,7 +3,7 @@
- diff --git a/src/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.html b/src/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.html index e3455bf095..99d79f3670 100644 --- a/src/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.html +++ b/src/app/shared/object-list/browse-entry-list-element/browse-entry-list-element.component.html @@ -1,5 +1,5 @@
- + {{object.value}} diff --git a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html index c61adf5dad..3f2cff33c2 100644 --- a/src/app/shared/object-list/collection-list-element/collection-list-element.component.html +++ b/src/app/shared/object-list/collection-list-element/collection-list-element.component.html @@ -1,4 +1,4 @@ - + {{object.name}} diff --git a/src/app/shared/object-list/community-list-element/community-list-element.component.html b/src/app/shared/object-list/community-list-element/community-list-element.component.html index af01999ca7..fca6ff77c2 100644 --- a/src/app/shared/object-list/community-list-element/community-list-element.component.html +++ b/src/app/shared/object-list/community-list-element/community-list-element.component.html @@ -1,4 +1,4 @@ - + {{object.name}} diff --git a/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html index c98003cd1d..e85667382c 100644 --- a/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html +++ b/src/app/shared/object-list/search-result-list-element/collection-search-result/collection-search-result-list-element.component.html @@ -1,4 +1,4 @@ - +
diff --git a/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html index e0f0319ffc..bba6bf2c5e 100644 --- a/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html +++ b/src/app/shared/object-list/search-result-list-element/community-search-result/community-search-result-list-element.component.html @@ -1,4 +1,4 @@ - +
diff --git a/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html b/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html index 80a4fd81fd..a12989ada3 100644 --- a/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html +++ b/src/app/shared/object-list/search-result-list-element/item-search-result/item-types/item/item-search-result-list-element.component.html @@ -1,7 +1,7 @@ - {{ 'submission.sections.ccLicense.link' | translate }}
- + {{ licenseLink }}