mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-09 11:03:05 +00:00
[CST-18964] Restored matomo trackerUrl optional setting.
feat: - This configuration would be only used on the angular side, if not specified will use the backend default.
This commit is contained in:
@@ -78,8 +78,27 @@ describe('MatomoService', () => {
|
||||
expect(matomoTracker.forgetConsentGiven).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should initialize tracker with correct parameters in production', () => {
|
||||
it('should initialize tracker with values from angular configuration', () => {
|
||||
environment.production = true;
|
||||
environment.matomo = { trackerUrl: 'http://localhost:80801' };
|
||||
configService.findByPropertyName.withArgs(MATOMO_TRACKER_URL).and.returnValue(
|
||||
createSuccessfulRemoteDataObject$(Object.assign(new ConfigurationProperty(),{ values: ['http://matomo'] })),
|
||||
);
|
||||
configService.findByPropertyName.withArgs(MATOMO_SITE_ID).and.returnValue(
|
||||
createSuccessfulRemoteDataObject$(Object.assign(new ConfigurationProperty(), { values: ['1'] })));
|
||||
orejimeService.getSavedPreferences.and.returnValue(of({ matomo: true }));
|
||||
service.init();
|
||||
|
||||
expect(matomoTracker.setConsentGiven).toHaveBeenCalled();
|
||||
expect(matomoInitializer.initializeTracker).toHaveBeenCalledWith({
|
||||
siteId: '1',
|
||||
trackerUrl: 'http://localhost:80801',
|
||||
});
|
||||
});
|
||||
|
||||
it('should initialize tracker with REST configuration correct parameters in production', () => {
|
||||
environment.production = true;
|
||||
environment.matomo = { trackerUrl: '' };
|
||||
configService.findByPropertyName.withArgs(MATOMO_TRACKER_URL).and.returnValue(
|
||||
createSuccessfulRemoteDataObject$(Object.assign(new ConfigurationProperty(),{ values: ['http://example.com'] })),
|
||||
);
|
||||
|
@@ -10,6 +10,7 @@ import {
|
||||
combineLatest,
|
||||
from as fromPromise,
|
||||
Observable,
|
||||
of,
|
||||
switchMap,
|
||||
} from 'rxjs';
|
||||
import {
|
||||
@@ -114,6 +115,11 @@ export class MatomoService {
|
||||
* @returns An Observable that emits the Matomo tracker URL if available.
|
||||
*/
|
||||
getTrackerUrl$() {
|
||||
|
||||
if (isNotEmpty(environment.matomo?.trackerUrl)) {
|
||||
return of(environment.matomo.trackerUrl);
|
||||
}
|
||||
|
||||
return this.configService.findByPropertyName(MATOMO_TRACKER_URL)
|
||||
.pipe(
|
||||
getFirstCompletedRemoteData(),
|
||||
|
@@ -24,6 +24,7 @@ import { InfoConfig } from './info-config.interface';
|
||||
import { ItemConfig } from './item-config.interface';
|
||||
import { LangConfig } from './lang-config.interface';
|
||||
import { MarkdownConfig } from './markdown-config.interface';
|
||||
import { MatomoConfig } from './matomo-config.interface';
|
||||
import { MediaViewerConfig } from './media-viewer-config.interface';
|
||||
import { INotificationBoardOptions } from './notifications-config.interfaces';
|
||||
import { QualityAssuranceConfig } from './quality-assurance.config';
|
||||
@@ -66,6 +67,7 @@ interface AppConfig extends Config {
|
||||
search: SearchConfig;
|
||||
notifyMetrics: AdminNotifyMetricsRow[];
|
||||
liveRegion: LiveRegionConfig;
|
||||
matomo?: MatomoConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -19,6 +19,7 @@ import { InfoConfig } from './info-config.interface';
|
||||
import { ItemConfig } from './item-config.interface';
|
||||
import { LangConfig } from './lang-config.interface';
|
||||
import { MarkdownConfig } from './markdown-config.interface';
|
||||
import { MatomoConfig } from './matomo-config.interface';
|
||||
import { MediaViewerConfig } from './media-viewer-config.interface';
|
||||
import { INotificationBoardOptions } from './notifications-config.interfaces';
|
||||
import { QualityAssuranceConfig } from './quality-assurance.config';
|
||||
@@ -600,4 +601,5 @@ export class DefaultAppConfig implements AppConfig {
|
||||
isVisible: false,
|
||||
};
|
||||
|
||||
matomo: MatomoConfig = {};
|
||||
}
|
||||
|
12
src/config/matomo-config.interface.ts
Normal file
12
src/config/matomo-config.interface.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { Config } from './config.interface';
|
||||
|
||||
/**
|
||||
* Configuration interface for Matomo tracking
|
||||
*/
|
||||
export interface MatomoConfig extends Config {
|
||||
/**
|
||||
* This tracker url will be used instead of the one configured on REST side (matomo.tracker.url)
|
||||
* only if set inside the config.*.yml configuration file
|
||||
*/
|
||||
trackerUrl?: string;
|
||||
}
|
Reference in New Issue
Block a user