diff --git a/dmp-frontend/src/app/app.module.ts b/dmp-frontend/src/app/app.module.ts index e61742887..8c4c7e3a9 100644 --- a/dmp-frontend/src/app/app.module.ts +++ b/dmp-frontend/src/app/app.module.ts @@ -40,6 +40,7 @@ import { OpenDMPCustomTranslationCompiler } from './utilities/translate/opendmp- import { CoreAnnotationServiceModule } from 'annotation-service/services/core-service.module'; import { CoreNotificationServiceModule } from '@notification-service/services/core-service.module'; import { DepositOauth2DialogModule } from './ui/misc/deposit-oauth2-dialog/deposit-oauth2-dialog.module'; +import { AnalyticsService } from './core/services/matomo/analytics-service'; // AoT requires an exported function for factories export function HttpLoaderFactory(languageHttpService: LanguageHttpService) { @@ -182,7 +183,8 @@ export function InstallationConfigurationFactory(appConfig: ConfigurationService }, Title, CookieService, - MatomoService + MatomoService, + AnalyticsService ], bootstrap: [AppComponent] }) diff --git a/dmp-frontend/src/app/core/model/configuration-models/analytics-providers.model.ts b/dmp-frontend/src/app/core/model/configuration-models/analytics-providers.model.ts new file mode 100644 index 000000000..0c223ceec --- /dev/null +++ b/dmp-frontend/src/app/core/model/configuration-models/analytics-providers.model.ts @@ -0,0 +1,67 @@ + +export class AnalyticsProviders { + private _providers: AnalyticsProvider[]; + get providers(): AnalyticsProvider[] { + return this._providers; + } + + set providers(providers: AnalyticsProvider[]) { + this._providers = providers; + } + + public static parseValue(value: any): AnalyticsProviders { + const analyticsProvidersObj: AnalyticsProviders = new AnalyticsProviders(); + + analyticsProvidersObj.providers = []; + for (let providerValue of value.providers) { + const providerObj: AnalyticsProvider = AnalyticsProvider.parseValue(providerValue); + analyticsProvidersObj.providers.push(providerObj); + } + + return analyticsProvidersObj; + } +} + +export class AnalyticsProvider { + private _type: AnalyticsProviderType; + + get type(): AnalyticsProviderType { + return this._type; + } + + set type(type: AnalyticsProviderType) { + this._type = type; + } + + private _enabled: boolean; + + get enabled(): boolean { + return this._enabled; + } + + set enabled(enabled: boolean) { + this._enabled = enabled; + } + + private _options: any; + + get options(): any { + return this._options; + } + + set options(options: any) { + this._options = options; + } + + public static parseValue(value: any): AnalyticsProvider { + const obj: AnalyticsProvider = new AnalyticsProvider(); + obj.type = value.type; + obj.enabled = value.enabled; + obj.options = value.options; + return obj; + } +} + +export enum AnalyticsProviderType { + Matomo = "matomo" +} diff --git a/dmp-frontend/src/app/core/services/configuration/configuration.service.ts b/dmp-frontend/src/app/core/services/configuration/configuration.service.ts index e19029555..eb28daed4 100644 --- a/dmp-frontend/src/app/core/services/configuration/configuration.service.ts +++ b/dmp-frontend/src/app/core/services/configuration/configuration.service.ts @@ -10,6 +10,7 @@ import { HttpClient } from '@angular/common/http'; import { KeycloakConfiguration } from '@app/core/model/configuration-models/keycloak-configuration.model'; import { Guid } from '@common/types/guid'; import { AuthProviders } from '@app/core/model/configuration-models/auth-providers.model'; +import { AnalyticsProviders } from '@app/core/model/configuration-models/analytics-providers.model'; @Injectable({ providedIn: 'root', @@ -153,6 +154,11 @@ export class ConfigurationService extends BaseComponent { get authProviders(): AuthProviders { return this._authProviders; } + + private _analyticsProviders: AnalyticsProviders; + get analyticsProviders(): AnalyticsProviders { + return this._analyticsProviders; + } private _researcherId: any; get researcherId(): boolean { @@ -239,6 +245,7 @@ export class ConfigurationService extends BaseComponent { this._newReleaseNotificationLink = config.newReleaseNotification?.link; this._newReleaseNotificationVersionCode = config.newReleaseNotification?.versionCode; this._authProviders = AuthProviders.parseValue(config.authProviders); + this._analyticsProviders = AnalyticsProviders.parseValue(config.analytics); this._researcherId = config.referenceTypes.researcherId; this._grantId = config.referenceTypes.grantId; this._organizationId = config.referenceTypes.organizationId; diff --git a/dmp-frontend/src/app/core/services/matomo/analytics-service.ts b/dmp-frontend/src/app/core/services/matomo/analytics-service.ts new file mode 100644 index 000000000..1a705c3a1 --- /dev/null +++ b/dmp-frontend/src/app/core/services/matomo/analytics-service.ts @@ -0,0 +1,31 @@ +import { Injectable } from "@angular/core"; +import { ConfigurationService } from "../configuration/configuration.service"; +import { MatomoService } from "./matomo-service"; +import { AnalyticsProviderType, AnalyticsProviders } from "@app/core/model/configuration-models/analytics-providers.model"; + +@Injectable() +export class AnalyticsService { + + public static Dashboard: string = 'Home Dashboard'; + + constructor( + private configurationService: ConfigurationService, + private matomoService: MatomoService + ) { } + + trackPageView(customTitle?: string): void { + const analytics: AnalyticsProviders = this.configurationService.analyticsProviders; + for (let provider of analytics.providers) { + switch(provider.type) { + case(AnalyticsProviderType.Matomo): + this.matomoService.trackPageViewCopy(provider, customTitle); + } + } + } + + trackSiteSearch(keyword: string, category?: string, resultsCount?: number): void { + } + + trackDownload(category: "dmps" | "datasets" | "descriptions", type: string, id: string): void { + } +} \ No newline at end of file diff --git a/dmp-frontend/src/app/core/services/matomo/matomo-service.ts b/dmp-frontend/src/app/core/services/matomo/matomo-service.ts index 16c07734a..f1e994d79 100644 --- a/dmp-frontend/src/app/core/services/matomo/matomo-service.ts +++ b/dmp-frontend/src/app/core/services/matomo/matomo-service.ts @@ -2,6 +2,7 @@ import { Injectable } from '@angular/core'; import { MatomoInitializerService, MatomoTracker } from 'ngx-matomo-client'; import { AuthService } from '../auth/auth.service'; import { ConfigurationService } from '../configuration/configuration.service'; +import { AnalyticsProvider } from '@app/core/model/configuration-models/analytics-providers.model'; @Injectable() export class MatomoService { @@ -28,6 +29,14 @@ export class MatomoService { this.matomoTracker.trackPageView(customTitle); } } + + trackPageViewCopy(provider: AnalyticsProvider, customTitle?: string): void { + if (provider.enabled) { + var principalid = this.authService.userId(); + if (principalid != null) { this.matomoTracker.setUserId(principalid.toString()); } + this.matomoTracker.trackPageView(customTitle); + } + } trackSiteSearch(keyword: string, category?: string, resultsCount?: number): void { if (this.configurationService.matomoEnabled) { diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/dmp-blueprint-editor.component.html b/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/dmp-blueprint-editor.component.html index cd23a0c54..9f05b9f31 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/dmp-blueprint-editor.component.html +++ b/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/dmp-blueprint-editor.component.html @@ -254,7 +254,7 @@
-
+
{{'DMP-BLUEPRINT-EDITOR.FIELDS.DESCRIPTION-TEMPLATE' | translate}} @@ -262,7 +262,7 @@ {{'GENERAL.VALIDATION.REQUIRED' | translate}}
-
+
{{'DMP-BLUEPRINT-EDITOR.FIELDS.DESCRIPTION-TEMPLATE-LABEL' | translate}} @@ -270,7 +270,7 @@ {{'GENERAL.VALIDATION.REQUIRED' | translate}}
-
+
{{'DMP-BLUEPRINT-EDITOR.FIELDS.DESCRIPTION-TEMPLATE-MIN-MULTIPLICITY' | translate}} @@ -278,7 +278,7 @@ {{'GENERAL.VALIDATION.REQUIRED' | translate}}
-
+
{{'DMP-BLUEPRINT-EDITOR.FIELDS.DESCRIPTION-TEMPLATE-MAX-MULTIPLICITY' | translate}} diff --git a/dmp-frontend/src/app/ui/dashboard/dashboard.component.scss b/dmp-frontend/src/app/ui/dashboard/dashboard.component.scss index 0ccc87c62..ebc9ca405 100644 --- a/dmp-frontend/src/app/ui/dashboard/dashboard.component.scss +++ b/dmp-frontend/src/app/ui/dashboard/dashboard.component.scss @@ -96,7 +96,6 @@ .personal-usage { text-align: left; font-weight: 300; - font-family: "Roboto", sans-serif; font-size: 1.25rem; letter-spacing: 0px; color: #212121; @@ -127,7 +126,6 @@ text-align: left; text-decoration: underline; font-weight: 300; - font-family: "Roboto", sans-serif; font-size: 1rem; letter-spacing: 0px; color: var(--primary-color-2); @@ -137,7 +135,6 @@ .link-disabled { text-align: left; font-weight: 300; - font-family: "Roboto", sans-serif; font-size: 1rem; letter-spacing: 0px; color: #212121; @@ -147,7 +144,6 @@ .latest-activity-title { text-align: left; font-weight: 300; - font-family: "Roboto", sans-serif; font-size: 1.25rem; letter-spacing: 0px; color: #212121; @@ -186,16 +182,6 @@ input[type="text"] { padding-left: 15px; } -.edited-date { - text-align: left; - font-weight: 300; - font-family: "Roboto", sans-serif; - line-height: 2.4; - letter-spacing: 0px; - color: #212121; - opacity: 0.6; -} - .dmp-label { background: var(--primary-color) 0% 0% no-repeat padding-box; border-radius: 4px 0px; @@ -220,43 +206,6 @@ input[type="text"] { font-weight: 400; } -.dmp-title, -.dataset-title { - text-align: left; - font-weight: 600; - font-family: "Roboto", sans-serif; - font-size: 1rem; - // opacity: 0.81; - padding-top: 0.75rem; - padding-bottom: 0.55rem; - color: #212121; -} - -.dataset-subtitle, -.dmp-subtitle { - display: flex; - flex-direction: row; - text-align: left; - font-weight: 400; - font-family: "Roboto", sans-serif; - font-size: 0.875rem; - opacity: 1; - align-items: center; - color: #848484; -} - -.dmp-title-draft, -.dataset-title-draft { - text-align: left; - font-weight: 600; - font-family: "Roboto", sans-serif; - font-size: 1rem; - // opacity: 0.81; - padding-top: 0.75rem; - padding-bottom: 0.55rem; - color: #f16868; -} - .icon-align { display: inline-flex; vertical-align: middle; diff --git a/dmp-frontend/src/app/ui/dashboard/dashboard.component.ts b/dmp-frontend/src/app/ui/dashboard/dashboard.component.ts index 2a360b5ec..7a3244041 100644 --- a/dmp-frontend/src/app/ui/dashboard/dashboard.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/dashboard.component.ts @@ -18,6 +18,7 @@ import { CookieService } from 'ngx-cookie-service'; import { takeUntil } from 'rxjs/operators'; import { StartNewDescriptionDialogComponent } from '../description/start-new-description-dialog/start-new-description-dialog.component'; import { StartNewDmpDialogComponent } from '../dmp/new/start-new-dmp-dialogue/start-new-dmp-dialog.component'; +import { AnalyticsService } from '@app/core/services/matomo/analytics-service'; @Component({ @@ -43,6 +44,7 @@ export class DashboardComponent extends BaseComponent implements OnInit { private language: TranslateService, private guidedTourService: GuidedTourService, private matomoService: MatomoService, + private analyticsService: AnalyticsService, public referenceTypeService: ReferenceTypeService, private fb: UntypedFormBuilder, private cookieService: CookieService, @@ -62,7 +64,8 @@ export class DashboardComponent extends BaseComponent implements OnInit { } }); - this.matomoService.trackPageView('Home Dashboard'); + this.analyticsService.trackPageView(AnalyticsService.Dashboard); + // this.matomoService.trackPageView('Home Dashboard'); if (!this.isAuthenticated()) { this.dashboardService.getPublicDashboardStatistics() diff --git a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.css b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.css index 2ae47a234..e04ff07f7 100644 --- a/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.css +++ b/dmp-frontend/src/app/ui/dashboard/drafts/drafts.component.css @@ -1,14 +1,3 @@ -.latest-activity-title { - text-align: left; - font-weight: 300; - font-family: "Roboto", sans-serif; - font-size: 1.25rem; - letter-spacing: 0px; - color: #212121; - opacity: 0.6; - padding-bottom: 1.2rem; -} - .dmp-card, .dataset-card { min-width: 712px; @@ -39,7 +28,6 @@ input[type="text"] { .edited-date { text-align: left; font-weight: 300; - font-family: "Roboto", sans-serif; line-height: 2.4; letter-spacing: 0px; color: #212121; @@ -69,43 +57,6 @@ input[type="text"] { font-weight: 400; } -.dmp-title, -.dataset-title { - text-align: left; - font-weight: 600; - font-family: "Roboto", sans-serif; - font-size: 1rem; - /* opacity: 0.81; */ - padding-top: 0.75rem; - padding-bottom: 0.55rem; - color: #212121; -} - -.dataset-subtitle, -.dmp-subtitle { - display: flex; - flex-direction: row; - text-align: left; - font-weight: 400; - font-family: "Roboto", sans-serif; - font-size: 0.875rem; - opacity: 1; - align-items: center; - color: #848484; -} - -.dmp-title-draft, -.dataset-title-draft { - text-align: left; - font-weight: 600; - font-family: "Roboto", sans-serif; - font-size: 1rem; - /* opacity: 0.81; */ - padding-top: 0.75rem; - padding-bottom: 0.55rem; - color: #f16868; -} - .icon-align { display: inline-flex; vertical-align: middle; diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.css b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.css index d39318901..98c7999f0 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.css +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.css @@ -1,26 +1,3 @@ -.latest-activity-title { - text-align: left; - font-weight: 300; - font-family: "Roboto", sans-serif; - font-size: 1.25rem; - letter-spacing: 0px; - color: #212121; - opacity: 0.6; - padding-bottom: 1.2rem; -} - -.dmp-card, -.dataset-card { - min-width: 712px; - /* min-height: 308px; */ - background: #ffffff 0% 0% no-repeat padding-box; - box-shadow: 0px 3px 6px #0000001a; - border-radius: 4px; - opacity: 1; - margin-top: 2.43rem; - margin-bottom: 1rem; -} - .remove-border-bottom ::ng-deep .mat-tab-header { border-bottom: none; } @@ -36,16 +13,6 @@ input[type="text"] { padding-left: 15px; } -.edited-date { - text-align: left; - font-weight: 300; - font-family: "Roboto", sans-serif; - line-height: 2.4; - letter-spacing: 0px; - color: #212121; - opacity: 0.6; -} - .dmp-label { background: var(--primary-color) 0% 0% no-repeat padding-box; border-radius: 4px 0px; @@ -69,43 +36,6 @@ input[type="text"] { font-weight: 400; } -.dmp-title, -.dataset-title { - text-align: left; - font-weight: 600; - font-family: "Roboto", sans-serif; - font-size: 1rem; - /* opacity: 0.81; */ - padding-top: 0.75rem; - padding-bottom: 0.55rem; - color: #212121; -} - -.dataset-subtitle, -.dmp-subtitle { - display: flex; - flex-direction: row; - text-align: left; - font-weight: 400; - font-family: "Roboto", sans-serif; - font-size: 0.875rem; - opacity: 1; - align-items: center; - color: #848484; -} - -.dmp-title-draft, -.dataset-title-draft { - text-align: left; - font-weight: 600; - font-family: "Roboto", sans-serif; - font-size: 1rem; - /* opacity: 0.81; */ - padding-top: 0.75rem; - padding-bottom: 0.55rem; - color: #f16868; -} - .icon-align { display: inline-flex; vertical-align: middle; diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.scss b/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.scss index 402416656..9fb8a1fa2 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.scss +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-description-activity/recent-edited-description-activity.component.scss @@ -1,26 +1,3 @@ -.latest-activity-title { - text-align: left; - font-weight: 300; - font-family: "Roboto", sans-serif; - font-size: 1.25rem; - letter-spacing: 0px; - color: #212121; - opacity: 0.6; - padding-bottom: 1.2rem; -} - -.dmp-card, -.description-card { - min-width: 712px; - /* min-height: 308px; */ - background: #ffffff 0% 0% no-repeat padding-box; - box-shadow: 0px 3px 6px #0000001a; - border-radius: 4px; - opacity: 1; - margin-top: 2.43rem; - margin-bottom: 1rem; -} - .remove-border-bottom ::ng-deep .mat-tab-header { border-bottom: none; } @@ -36,16 +13,6 @@ input[type="text"] { padding-left: 15px; } -.edited-date { - text-align: left; - font-weight: 300; - font-family: "Roboto", sans-serif; - line-height: 2.4; - letter-spacing: 0px; - color: #212121; - opacity: 0.6; -} - .dmp-label { background: var(--primary-color) 0% 0% no-repeat padding-box; border-radius: 4px 0px; @@ -69,43 +36,6 @@ input[type="text"] { font-weight: 400; } -.dmp-title, -.description-title { - text-align: left; - font-weight: 600; - font-family: "Roboto", sans-serif; - font-size: 1rem; - // opacity: 0.81; - padding-top: 0.75rem; - padding-bottom: 0.55rem; - color: #212121; -} - -.description-subtitle, -.dmp-subtitle { - display: flex; - flex-direction: row; - text-align: left; - font-weight: 400; - font-family: "Roboto", sans-serif; - font-size: 0.875rem; - opacity: 1; - align-items: center; - color: #848484; -} - -.dmp-title-draft, -.description-title-draft { - text-align: left; - font-weight: 600; - font-family: "Roboto", sans-serif; - font-size: 1rem; - // opacity: 0.81; - padding-top: 0.75rem; - padding-bottom: 0.55rem; - color: #f16868; -} - .icon-align { display: inline-flex; vertical-align: middle; diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.css b/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.css index 6829e925e..c28a3cc62 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.css +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-dmp-activity/recent-edited-dmp-activity.component.css @@ -1,14 +1,3 @@ -.latest-activity-title { - text-align: left; - font-weight: 300; - font-family: "Roboto", sans-serif; - font-size: 1.25rem; - letter-spacing: 0px; - color: #212121; - opacity: 0.6; - padding-bottom: 1.2rem; -} - .dmp-card, .dataset-card { min-width: 712px; /* min-height: 308px; */ @@ -35,16 +24,6 @@ input[type="text"] { padding-left: 15px; } -.edited-date { - text-align: left; - font-weight: 300; - font-family: "Roboto", sans-serif; - line-height: 2.4; - letter-spacing: 0px; - color: #212121; - opacity: 0.6; -} - .dmp-label { background: var(--primary-color) 0% 0% no-repeat padding-box; border-radius: 4px 0px; @@ -67,41 +46,6 @@ input[type="text"] { color: #212121; } -.dmp-title, .dataset-title { - text-align: left; - font-weight: 600; - font-family: "Roboto", sans-serif; - font-size: 1rem; - /* opacity: 0.81; */ - padding-top: 0.75rem; - padding-bottom: 0.55rem; - color: #212121; -} - -.dataset-subtitle, .dmp-subtitle { - display: flex; - flex-direction: row; - text-align: left; - font-weight: 400; - font-family: "Roboto", sans-serif; - font-size: 0.875rem; - opacity: 1; - align-items: center; - color: #848484; -} - -.dmp-title-draft, -.dataset-title-draft { - text-align: left; - font-weight: 600; - font-family: "Roboto", sans-serif; - font-size: 1rem; - /* opacity: 0.81; */ - padding-top: 0.75rem; - padding-bottom: 0.55rem; - color: #f16868; -} - .icon-align { display: inline-flex; vertical-align: middle; diff --git a/dmp-frontend/src/app/ui/description/description-copy-dialog/description-copy-dialog.component.html b/dmp-frontend/src/app/ui/description/description-copy-dialog/description-copy-dialog.component.html index b1576211b..0165ab8fc 100644 --- a/dmp-frontend/src/app/ui/description/description-copy-dialog/description-copy-dialog.component.html +++ b/dmp-frontend/src/app/ui/description/description-copy-dialog/description-copy-dialog.component.html @@ -4,19 +4,24 @@
close
- - - - -
- - {{'DESCRIPTION-COPY-DIALOG.DMP-SECTION' | translate}} - - {{section.label}} - - +
+
+ + + + +
+
+
+
+ + {{'DESCRIPTION-COPY-DIALOG.DMP-SECTION' | translate}} + + {{section.label}} + + +
-
diff --git a/dmp-frontend/src/app/ui/description/editor/description-editor.component.scss b/dmp-frontend/src/app/ui/description/editor/description-editor.component.scss index cbf91f166..4503a14f3 100644 --- a/dmp-frontend/src/app/ui/description/editor/description-editor.component.scss +++ b/dmp-frontend/src/app/ui/description/editor/description-editor.component.scss @@ -250,7 +250,6 @@ .dmp-title { text-align: left; font-weight: 700; - font-family: "Roboto", sans-serif; font-size: 1rem; color: #212121; overflow: hidden; diff --git a/dmp-frontend/src/app/ui/description/editor/description-form/components/form-field/form-field.component.html b/dmp-frontend/src/app/ui/description/editor/description-form/components/form-field/form-field.component.html index 5d89b65e8..ea8ee24e8 100644 --- a/dmp-frontend/src/app/ui/description/editor/description-form/components/form-field/form-field.component.html +++ b/dmp-frontend/src/app/ui/description/editor/description-form/components/form-field/form-field.component.html @@ -17,10 +17,10 @@
- + - +
@@ -53,6 +53,7 @@ {{propertiesFormGroup?.get(field.id).get('textListValue').getError('backendError').message}} {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }} @@ -62,6 +63,7 @@ {{propertiesFormGroup?.get(field.id).get('textValue').getError('backendError').message}} {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}
@@ -75,6 +77,7 @@ {{propertiesFormGroup?.get(field.id).get('textListValue').getError('backendError').message}} {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }} @@ -84,6 +87,7 @@ {{propertiesFormGroup?.get(field.id).get('textValue').getError('backendError').message}} {{'GENERAL.VALIDATION.REQUIRED' | translate}} + {{ "TYPES.DATASET-PROFILE-COMBO-BOX-TYPE.EXTERNAL-SOURCE-HINT" | translate }}
diff --git a/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.scss b/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.scss index 00f861bd0..3b5125266 100644 --- a/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.scss +++ b/dmp-frontend/src/app/ui/description/listing/listing-item/description-listing-item.component.scss @@ -100,14 +100,12 @@ input[type="text"] { opacity: 1; width: 347px; height: 56px; - font-family: Arial, FontAwesome; padding-left: 15px; } .edited-date { text-align: left; font-weight: 300; - font-family: "Roboto", sans-serif; line-height: 2.4; letter-spacing: 0px; color: #212121; @@ -141,7 +139,6 @@ input[type="text"] { .description-title { text-align: left; font-weight: 600; - font-family: "Roboto", sans-serif; font-size: 1rem; // opacity: 0.81; padding-top: 0.75rem; @@ -149,24 +146,20 @@ input[type="text"] { color: #212121; } -.description-subtitle, -.dmp-subtitle { +.description-subtitle { display: flex; flex-direction: row; text-align: left; font-weight: 400; - font-family: "Roboto", sans-serif; font-size: 0.875rem; opacity: 1; align-items: center; color: #848484; } -.dmp-title-draft, .description-title-draft { text-align: left; font-weight: 600; - font-family: "Roboto", sans-serif; font-size: 1rem; // opacity: 0.81; padding-top: 0.75rem; diff --git a/dmp-frontend/src/app/ui/description/overview/description-overview.component.html b/dmp-frontend/src/app/ui/description/overview/description-overview.component.html index 4673e3d5b..710dca7c6 100644 --- a/dmp-frontend/src/app/ui/description/overview/description-overview.component.html +++ b/dmp-frontend/src/app/ui/description/overview/description-overview.component.html @@ -183,10 +183,10 @@

{{ 'DESCRIPTION-OVERVIEW.DESCRIPTION-AUTHORS' | translate }}

-
+
@@ -197,13 +197,10 @@ {{ getSectionNameById(dmpUser.sectionId) }}

-
- - +
-
diff --git a/dmp-frontend/src/app/ui/description/overview/description-overview.component.scss b/dmp-frontend/src/app/ui/description/overview/description-overview.component.scss index 72d87a6e5..f4ee17589 100644 --- a/dmp-frontend/src/app/ui/description/overview/description-overview.component.scss +++ b/dmp-frontend/src/app/ui/description/overview/description-overview.component.scss @@ -116,7 +116,7 @@ } .account_btn { - background: white; + background: transparent; color: #d5d5d5; border: none; height: 2.9em; @@ -300,3 +300,12 @@ display: flex; justify-content: center; } + +.author-focused { + background-color: #e0e0e0; + border-radius: 3px; +} + +.author-icon-focused { + color: #a8a8a8 !important; +} diff --git a/dmp-frontend/src/app/ui/description/overview/description-overview.component.ts b/dmp-frontend/src/app/ui/description/overview/description-overview.component.ts index cf16a2e94..411724726 100644 --- a/dmp-frontend/src/app/ui/description/overview/description-overview.component.ts +++ b/dmp-frontend/src/app/ui/description/overview/description-overview.component.ts @@ -71,6 +71,8 @@ export class DescriptionOverviewComponent extends BaseComponent implements OnIni canReview = false; canInviteDmpUsers = false; + authorFocus: Guid; + constructor( private route: ActivatedRoute, private router: Router, @@ -214,6 +216,14 @@ export class DescriptionOverviewComponent extends BaseComponent implements OnIni } else return false; } + focusOnAuthor(userId: Guid): void { + this.authorFocus = userId; + console.log(this.authorFocus); + } + + resetAuthorFocus(): void { + this.authorFocus = null; + } openShareDialog() { const dialogRef = this.dialog.open(DmpInvitationDialogComponent, { diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss index 9f90fdda3..8f3056232 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.scss @@ -141,7 +141,6 @@ input[type="text"] { .edited-date { text-align: left; font-weight: 300; - font-family: "Roboto", sans-serif; line-height: 2.4; letter-spacing: 0px; color: #212121; @@ -174,7 +173,6 @@ input[type="text"] { .dataset-title { text-align: left; font-weight: 600; - font-family: "Roboto", sans-serif; font-size: 1rem; // opacity: 0.81; padding-top: 0.75rem; @@ -188,7 +186,6 @@ input[type="text"] { flex-direction: row; text-align: left; font-weight: 400; - font-family: "Roboto", sans-serif; font-size: 0.875rem; opacity: 1; align-items: center; @@ -199,7 +196,6 @@ input[type="text"] { .dataset-title-draft { text-align: left; font-weight: 600; - font-family: "Roboto", sans-serif; font-size: 1rem; // opacity: 0.81; padding-top: 0.75rem; diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html index b9d95cf59..9fb728bce 100644 --- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html +++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html @@ -240,43 +240,40 @@
-
-
-

{{ 'DMP-OVERVIEW.DMP-AUTHORS' | translate }}

-
-
-
-
- -
-
- -

{{ dmpUser.user?.name }} - - ({{ 'DMP-OVERVIEW.YOU' | translate }}) -

-

- {{ enumUtils.toDmpUserRoleString(dmpUser.role) }} - - {{ 'DMP-OVERVIEW.ROLES.ALL-SECTIONS' | translate}} - {{ getSectionNameById(dmpUser.sectionId) }} -

-
-
- -
+
+

{{ 'DMP-OVERVIEW.DMP-AUTHORS' | translate }}

+
+
+
+
+ +
+
+ +

{{ dmpUser.user?.name }} + + ({{ 'DMP-OVERVIEW.YOU' | translate }}) +

+

+ {{ enumUtils.toDmpUserRoleString(dmpUser.role) }} - + {{ 'DMP-OVERVIEW.ROLES.ALL-SECTIONS' | translate}} + {{ getSectionNameById(dmpUser.sectionId) }} +

+
+
+
- -
- -
+
+
+
diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.scss b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.scss index ef4b00695..af5c994b1 100644 --- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.scss +++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.scss @@ -114,7 +114,7 @@ } .account_btn { - background: white; + background: transparent; color: #d5d5d5; border: none; height: 2.9em; @@ -264,7 +264,6 @@ display: flex; flex-direction: row; justify-content: space-between; - width: 100%; } .authors-label { @@ -348,3 +347,12 @@ justify-content: space-between; border: none; } + +.author-focused { + background-color: #e0e0e0; + border-radius: 3px; +} + +.author-icon-focused { + color: #a8a8a8 !important; +} diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts index 2a8c4dc24..06026b331 100644 --- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts +++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts @@ -82,6 +82,8 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { dmpStatusEnum = DmpStatus; dmpUserRoleEnum = DmpUserRole; + authorFocus: Guid; + constructor( private route: ActivatedRoute, private router: Router, @@ -216,6 +218,15 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { } else return false; } + focusOnAuthor(userId: Guid): void { + this.authorFocus = userId; + console.log(this.authorFocus); + } + + resetAuthorFocus(): void { + this.authorFocus = null; + } + canEditDmp(): boolean{ return (this.isDraftDmp()) && (this.dmp.authorizationFlags?.some(x => x === AppPermission.EditDmp) || this.authentication.hasPermission(AppPermission.EditDmp)) && this.isPublicView == false && this.dmp.belongsToCurrentTenant != false; } diff --git a/dmp-frontend/src/app/ui/reference/reference-field/reference-field.component.html b/dmp-frontend/src/app/ui/reference/reference-field/reference-field.component.html index 7c0dbdb46..1d539e3b7 100644 --- a/dmp-frontend/src/app/ui/reference/reference-field/reference-field.component.html +++ b/dmp-frontend/src/app/ui/reference/reference-field/reference-field.component.html @@ -4,7 +4,11 @@ {{form.getError('backendError').message}} {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{hint}} + {{hint}} + + {{'REFERENCE-FIELD.COULD-NOT-FIND-MESSAGE' | translate}} + {{'REFERENCE-FIELD.ACTIONS.INSERT-MANUALLY' | translate}} + {{label?.length > 0 ? label : referenceType?.name}} @@ -12,9 +16,11 @@ {{form.getError('backendError').message}} {{'GENERAL.VALIDATION.REQUIRED' | translate}} - {{hint}} + {{hint}} + + {{'REFERENCE-FIELD.COULD-NOT-FIND-MESSAGE' | translate}} + {{'REFERENCE-FIELD.ACTIONS.INSERT-MANUALLY' | translate}} +
- {{'REFERENCE-FIELD.COULD-NOT-FIND-MESSAGE' | translate}} - {{'REFERENCE-FIELD.ACTIONS.INSERT-MANUALLY' | translate}}
diff --git a/dmp-frontend/src/app/ui/reference/reference-field/reference-field.component.scss b/dmp-frontend/src/app/ui/reference/reference-field/reference-field.component.scss index 61060bb96..81f22ba8e 100644 --- a/dmp-frontend/src/app/ui/reference/reference-field/reference-field.component.scss +++ b/dmp-frontend/src/app/ui/reference/reference-field/reference-field.component.scss @@ -2,14 +2,14 @@ text-decoration: underline; color: var(--primary-color-3); cursor: pointer; - font-size: 1rem; + // font-size: 1rem; font-weight: 400; } .not-found { // cursor: pointer; color: #333; - font-size: 1rem; + // font-size: 1rem; font-weight: 400; padding: 0rem 0.5rem 0rem 0rem; } diff --git a/dmp-frontend/src/app/ui/sidebar/sidebar-footer/sidebar-footer.component.css b/dmp-frontend/src/app/ui/sidebar/sidebar-footer/sidebar-footer.component.css index f0b6ea5b8..d5d41797e 100644 --- a/dmp-frontend/src/app/ui/sidebar/sidebar-footer/sidebar-footer.component.css +++ b/dmp-frontend/src/app/ui/sidebar/sidebar-footer/sidebar-footer.component.css @@ -13,7 +13,6 @@ cursor: pointer; display: inline-flex; font-size: small; - font-family: 'Roboto'; } .sidebar-footer .option:hover { diff --git a/dmp-frontend/src/app/ui/sidebar/sidebar.component.css b/dmp-frontend/src/app/ui/sidebar/sidebar.component.css index a7e615f2f..dbbe8ac8e 100644 --- a/dmp-frontend/src/app/ui/sidebar/sidebar.component.css +++ b/dmp-frontend/src/app/ui/sidebar/sidebar.component.css @@ -41,7 +41,6 @@ color: #000000; opacity: 1; font-size: 0.93rem; - font-family: 'Roboto',sans-serif; } .nav-subrow { @@ -54,7 +53,6 @@ color: #000000; opacity: 1; font-size: 0.93rem; - font-family: 'Roboto',sans-serif; } .nav-row:hover { diff --git a/dmp-frontend/src/assets/config/config.json b/dmp-frontend/src/assets/config/config.json index 83be8f664..e3cd639ea 100644 --- a/dmp-frontend/src/assets/config/config.json +++ b/dmp-frontend/src/assets/config/config.json @@ -42,6 +42,18 @@ "url": "https://beta.analytics.openaire.eu/", "siteId": 361 }, + "analytics": { + "providers": [ + { + "enabled": true, + "type": "matomo", + "options": { + "url": "https://beta.analytics.openaire.eu/", + "siteId": 361 + } + } + ] + }, "lockInterval": 60000, "guideAssets": "assets/images/guide", "allowOrganizationCreator": true, diff --git a/dmp-frontend/src/assets/css/demo.css b/dmp-frontend/src/assets/css/demo.css index 20a553eb5..c95ed71c0 100644 --- a/dmp-frontend/src/assets/css/demo.css +++ b/dmp-frontend/src/assets/css/demo.css @@ -408,9 +408,6 @@ input[type=email], select { p { text-align: left; - font-family: 'Roboto', sans-serif; - /* font-weight: 300; - font-size: 1.25rem; */ letter-spacing: 0px; color: #212121; } diff --git a/dmp-frontend/src/styles.scss b/dmp-frontend/src/styles.scss index 088147143..e8f1b71be 100644 --- a/dmp-frontend/src/styles.scss +++ b/dmp-frontend/src/styles.scss @@ -72,7 +72,7 @@ $mat-typography: mat.define-typography-config($font-family: 'Roboto, sans-serif; // $subheading-1: mat.define-typography-level($font-size: 20px, $font-weight: 500, $font-family: 'Roboto, sans-serif;'), $body-2: mat.define-typography-level($font-size: 16px, $font-weight: 400, $font-family: 'Roboto, sans-serif;'), $body-1: mat.define-typography-level($font-size: 18px, $font-weight: 400, $font-family: 'Roboto, sans-serif;'), - $caption: mat.define-typography-level($font-size: 16px, $font-weight: Medium, $font-family: 'Roboto, sans-serif;'), + // $caption: mat.define-typography-level($font-size: 16px, $font-weight: Medium, $font-family: 'Roboto, sans-serif;'), $button: mat.define-typography-level($font-size: 16px, $font-weight: 500, $font-family: 'Roboto, sans-serif;'), // Line-height must be unit-less fraction of the font-size. // $input: mat.define-typography-level($font-size: inherit, $line-height: 1.125, $font-weight: 500, $font-family: 'Roboto, sans-serif;'),