diff --git a/dmp-frontend/src/app/app.component.scss b/dmp-frontend/src/app/app.component.scss
index 68549ddb0..f0b0cde9c 100644
--- a/dmp-frontend/src/app/app.component.scss
+++ b/dmp-frontend/src/app/app.component.scss
@@ -28,6 +28,10 @@
opacity: 1;
}
+.sidenav-content {
+ background-color: whitesmoke;
+}
+
.sidebar-shadow {
box-shadow: 0 4px 18px 0px rgba(0, 0, 0, 0.12), 0 7px 10px -5px rgba(0, 0, 0, 0.15);
z-index: 100;
diff --git a/dmp-frontend/src/app/core/model/dataset/dataset-listing.ts b/dmp-frontend/src/app/core/model/dataset/dataset-listing.ts
index 5202636ab..78fbb8596 100644
--- a/dmp-frontend/src/app/core/model/dataset/dataset-listing.ts
+++ b/dmp-frontend/src/app/core/model/dataset/dataset-listing.ts
@@ -11,10 +11,13 @@ export interface DatasetListingModel {
registries: String;
services: String;
description: String;
- status: Number;
+ status: number;
created: Date;
modified: Date;
finalizedAt: Date;
dmpPublishedAt?: Date;
version: number;
+ users: any[];
+ public: boolean;
+ isProfileLatestVersion: boolean;
}
diff --git a/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts b/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts
index 93b02558d..b2811228c 100644
--- a/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts
+++ b/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts
@@ -1,4 +1,5 @@
import { DmpStatus } from "../../common/enum/dmp-status";
+import { DmpAssociatedProfileModel } from '../dmp-profile/dmp-associated-profile';
export interface DmpListingModel {
id: string;
@@ -17,7 +18,7 @@ export interface DmpListingModel {
groupId: string;
version: number;
datasets: any[];
- associatedProfiles: any[];
+ associatedProfiles: DmpAssociatedProfileModel[];
users: any[];
public: boolean;
}
diff --git a/dmp-frontend/src/app/core/model/dmp/dmp-overview.ts b/dmp-frontend/src/app/core/model/dmp/dmp-overview.ts
index d6ac742cf..da5802817 100644
--- a/dmp-frontend/src/app/core/model/dmp/dmp-overview.ts
+++ b/dmp-frontend/src/app/core/model/dmp/dmp-overview.ts
@@ -1,5 +1,4 @@
import { OrganizationModel } from "../organisation/organization";
-import { DatasetUrlListing } from "../dataset/dataset-url-listing";
import { UserInfoListingModel } from "../user/user-info-listing";
import { DmpAssociatedProfileModel } from "../dmp-profile/dmp-associated-profile";
import { ResearcherModel } from "../researcher/researcher";
diff --git a/dmp-frontend/src/app/ui/dashboard/dashboard.component.html b/dmp-frontend/src/app/ui/dashboard/dashboard.component.html
index 4eb1246b5..e830d50b6 100644
--- a/dmp-frontend/src/app/ui/dashboard/dashboard.component.html
+++ b/dmp-frontend/src/app/ui/dashboard/dashboard.component.html
@@ -1,4 +1,4 @@
-
+
-
clear
-
What is a DMP in ARGOS
-
A Data Management Plan (DMP) is a living document describing the datasets that are generated and/ or re-used
- during and after a research lifetime. DMPs aim to provide researchers with essential information to re-produce,
- re-distribute and re-purpose research results thus assuring for their validity and exploitation.
-
- New with DMPs? Visit OpenAIRE’s Guide for Researchers to learn more about how to create one!
-
-
-
Start your first DMP
-
-
+
+
What is a DMP in ARGOS
+
A Data Management Plan (DMP) is a living document describing the datasets that are generated and/ or re-used
+ during and after a research lifetime. DMPs aim to provide researchers with essential information to re-produce,
+ re-distribute and re-purpose research results thus assuring for their validity and exploitation.
+
+ New with DMPs? Visit OpenAIRE’s Guide for Researchers to learn more about how to create one!
+
+
+
Start your first DMP
+
+
-
-
+
+
+
-
clear
-
A DMP in Argos consists of key information about research,
- such as purpose,
- objectives and researchers involved, but also about documentation of research datasets,
- namely Dataset
- Descriptions , that highlight the steps followed and the means used across data
- management activities.
+
clear
+
+ {{'DASHBOARD.DMP-ABOUT-BEG' | translate}}
+ {{'DASHBOARD.DATASET-DESCRIPTIONS' | translate}}
+ {{'DASHBOARD.DMP-ABOUT-END' | translate}}
- Add Dataset
- Description
+ {{'DASHBOARD.ACTIONS.ADD-DATASET-DESCRIPTION' | translate}}
Latest activity
-
+
+
+ {{'GENERAL.ACTIONS.LOAD-MORE' | translate}}
+
+
+
+
+
+
+
+
+
+ {{'GENERAL.ACTIONS.LOAD-MORE' | translate}}
+
+
+
+
+
+
+ {{'GENERAL.ACTIONS.LOAD-MORE' | translate}}
+
-
-
-
-
- Load more
-
diff --git a/dmp-frontend/src/app/ui/dashboard/dashboard.component.scss b/dmp-frontend/src/app/ui/dashboard/dashboard.component.scss
index 0f1cf98cc..914d21664 100644
--- a/dmp-frontend/src/app/ui/dashboard/dashboard.component.scss
+++ b/dmp-frontend/src/app/ui/dashboard/dashboard.component.scss
@@ -1,7 +1,7 @@
.main-content {
background-color: #f5f5f5;
padding-top: 3.68rem;
- padding-bottom: 10rem;
+ padding-bottom: 3rem;
// padding-left: 3.31rem;
padding-left: 1rem;
margin: 0;
diff --git a/dmp-frontend/src/app/ui/dashboard/dashboard.module.ts b/dmp-frontend/src/app/ui/dashboard/dashboard.module.ts
index e8f39241c..9026dc3e8 100644
--- a/dmp-frontend/src/app/ui/dashboard/dashboard.module.ts
+++ b/dmp-frontend/src/app/ui/dashboard/dashboard.module.ts
@@ -16,6 +16,7 @@ import { CommonUiModule } from '@common/ui/common-ui.module';
import { ConfirmationDialogModule } from '@common/modules/confirmation-dialog/confirmation-dialog.module';
import { GuestModule } from '../guest/guest.module';
import { GuestComponent } from '../guest/guest.component';
+import { RecentEditedDatasetActivityComponent } from './recent-edited-dataset-activity/recent-edited-dataset-activity.component';
@NgModule({
imports: [
@@ -35,7 +36,8 @@ import { GuestComponent } from '../guest/guest.component';
RecentEditedActivityComponent,
DraftsComponent,
DmpInfoCounterComponent,
- DatasetInfoCounterComponent
+ DatasetInfoCounterComponent,
+ RecentEditedDatasetActivityComponent
],
entryComponents: [
QuickWizardCreateAdd
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 89fa66950..c2ce5bb3c 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
@@ -171,6 +171,9 @@ input[type="text"] {
color: #f16868;
}
+.pointer {
+ cursor: pointer;
+}
/* th {
text-transform: uppercase;
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html
index cba011c2f..d46bd9a1d 100644
--- a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html
+++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.html
@@ -1,51 +1,77 @@
-
-
-
{{ 'DMP-LISTING.DMP' | translate }}
-
{{ 'DMP-LISTING.EDITED' | translate }}: {{ activity.modifiedTime | date: "longDate" }}
+
+
+
+
{{ 'DMP-LISTING.DMP' | translate }}
+
{{ 'DMP-LISTING.EDITED' | translate }}: {{ activity.modifiedTime | date: "longDate" }}
+
+
{{activity.label}}
+
+ {{ roleDisplay(activity.users) }}
+ .
+ public {{'TYPES.DMP-VISIBILITY.PUBLIC' | translate}}
+ done {{ enumUtils.toDmpStatusString(activity.status) }}
+ create {{ enumUtils.toDmpStatusString(activity.status) }}
+ .
+ {{'DMP-LISTING.VERSION' | translate}} {{activity.version}}
+ .
+ {{ 'DMP-LISTING.GRANT' | translate }}: {{activity.grant}}
+
+
{{'DMP-LISTING.CONTAINED-DATASETS' | translate}}: ({{activity.datasets.length}})
+
+
+
+
{{dataset.label}},
+
{{dataset.label}}
+
+
+
3" [routerLink]="['../plans/overview/' + activity.id]">{{'GENERAL.ACTIONS.SHOW-MORE' | translate}}
-
{{activity.label}}
-
- Owner
- .
- public {{'TYPES.DMP-VISIBILITY.PUBLIC' | translate}}
- done {{ enumUtils.toDmpStatusString(activity.status) }}
- create {{ enumUtils.toDmpStatusString(activity.status) }}
- .
- Version 1
- .
- {{ 'DMP-LISTING.GRANT' | translate }}: {{activity.grant}}
-
-
Contained Dataset Descriptions (5)
-
-
-
-
Dataset description: Horizon 2020
- for Grant DMP of Dataset description
-
-
Show
- more
+
+
+
+
+ {{'GENERAL.FILE-TYPES.PDF' | translate}}
+
+
+
+ {{'GENERAL.FILE-TYPES.DOC' | translate}}
+
+
+
+ {{'GENERAL.FILE-TYPES.XML' | translate}}
+
+
+
+ {{'GENERAL.FILE-TYPES.JSON' | translate}}
+
+
+
+
+ queue {{'DMP-LISTING.ACTIONS.NEW-VERSION' | translate}}
+
+
+ library_books {{'DMP-LISTING.ACTIONS.VIEW-VERSION' | translate}}
+
+
+
-
+
.
Grant: NEANIAS Project
@@ -67,16 +92,15 @@
DMP plan
-
+ -->
+
+
+
+
{{'DATASET-LISTING.DATASET-DESCRIPTION' | translate}}
+
{{'DATASET-LISTING.STATES.EDITED' | translate}}: {{activity.modified | date:"longDate"}}
+
+ {{'DATASET-LISTING.DATASET-DESCRIPTION' | translate}}: {{activity.label}}
+
+ {{ roleDisplay(activity.users) }}
+ .
+ public {{'DATASET-LISTING.STATES.PUBLIC' | translate}}
+ done {{ enumUtils.toDmpStatusString(activity.status) }}
+ create {{ enumUtils.toDmpStatusString(activity.status) }}
+ .
+ {{'DATASET-LISTING.COLUMNS.GRANT' | translate}}: {{activity.grant}}
+
+
+
{{'DATASET-LISTING.TOOLTIP.PART-OF' | translate}}
+
{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}
+
{{'DATASET-LISTING.TOOLTIP.DMP-FOR' | translate}}: {{activity.dmp}}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{'GENERAL.FILE-TYPES.PDF' | translate}}
+
+
+
+ {{'GENERAL.FILE-TYPES.DOC' | translate}}
+
+
+
+ {{'GENERAL.FILE-TYPES.XML' | translate}}
+
+
+
+
+
+
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.scss b/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.scss
new file mode 100644
index 000000000..e7c8878da
--- /dev/null
+++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.scss
@@ -0,0 +1,176 @@
+.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;
+}
+
+input[type="text"] {
+ background: #fafafa 0% 0% no-repeat padding-box;
+ border: 1px solid #d1d1d1;
+ border-radius: 4px;
+ 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;
+ opacity: 0.6;
+}
+
+.dmp-label {
+ background: #129d99 0% 0% no-repeat padding-box;
+ border-radius: 4px 0px;
+ opacity: 1;
+ width: 67px;
+ height: 37px;
+ color: #ffffff;
+ line-height: 2.4;
+ opacity: 0.75;
+}
+
+.dataset-label {
+ width: 158px;
+ height: 37px;
+ background: #f7dd72 0% 0% no-repeat padding-box;
+ border-radius: 4px 0px;
+ text-align: left;
+ line-height: 2.8;
+ font-size: 0.875rem;
+ letter-spacing: 0px;
+ color: #212121;
+ opacity: 0.75;
+}
+
+.dmp-title,
+.dataset-title {
+ text-align: left;
+ font-weight: 500;
+ 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 {
+ text-align: left;
+ font-weight: 500;
+ 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;
+ padding-bottom: 0.4rem;
+}
+
+.dataset-card-actions,
+.dmp-card-actions {
+ display: flex;
+ flex-direction: row;
+ border-top: 1px solid #dbdbdb;
+ line-height: 4;
+ color: #848484;
+}
+
+.dataset-card-actions a,
+.dmp-card-actions a {
+ color: #848484 !important;
+ text-decoration: none !important;
+}
+
+.dataset-card-actions a:hover,
+.dmp-card-actions a:hover {
+ color: #129d99 !important;
+}
+
+.dmp-dataset-descriptions-title {
+ color: #000000;
+ opacity: 0.6;
+ padding-top: 1.5rem;
+ padding-bottom: 0.8rem;
+}
+
+.dmp-dataset-descriptions-name {
+ color: #000000;
+ opacity: 0.6;
+ font-weight: 700;
+}
+
+.show-more {
+ color: black !important;
+}
+
+.show-more:hover {
+ color: #129d99 !important;
+}
+
+.btn-load-more {
+ border: 2px solid #212121;
+ border-radius: 30px;
+ opacity: 1;
+ width: 132px;
+ height: 40px;
+ margin-top: 4.125rem;
+}
+
+.btn-load-more:hover {
+ background-color: black;
+ color: white;
+}
+
+.draft {
+ color: #f16868;
+}
+
+.pointer {
+ cursor: pointer;
+}
diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts b/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts
new file mode 100644
index 000000000..d46264e0f
--- /dev/null
+++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-dataset-activity/recent-edited-dataset-activity.component.ts
@@ -0,0 +1,224 @@
+import { Component, OnInit } from '@angular/core';
+import { DatasetListingModel } from '@app/core/model/dataset/dataset-listing';
+import { DatasetService } from '@app/core/services/dataset/dataset.service';
+import { DataTableRequest } from '@app/core/model/data-table/data-table-request';
+import { DatasetCriteria } from '@app/core/query/dataset/dataset-criteria';
+import { AuthService } from '@app/core/services/auth/auth.service';
+import { BaseComponent } from '@common/base/base.component';
+import { Principal } from '@app/core/model/auth/principal';
+import { TranslateService } from '@ngx-translate/core';
+import { EnumUtils } from '@app/core/services/utilities/enum-utils.service';
+import { FormControl } from '@angular/forms';
+import { DatasetCopyDialogueComponent } from '@app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component';
+import { MatDialog } from '@angular/material';
+import { takeUntil } from 'rxjs/operators';
+import { Router } from '@angular/router';
+import { DatasetWizardService } from '@app/core/services/dataset-wizard/dataset-wizard.service';
+import * as FileSaver from 'file-saver';
+import { ConfirmationDialogComponent } from '@common/modules/confirmation-dialog/confirmation-dialog.component';
+import { ValidationErrorModel } from '@common/forms/validation/error-model/validation-error-model';
+import { UiNotificationService } from '@app/core/services/notification/ui-notification-service';
+import { SnackBarNotificationLevel } from '@common/modules/notification/ui-notification-service';
+import { DatasetStatus } from '@app/core/common/enum/dataset-status';
+
+@Component({
+ selector: 'app-recent-edited-dataset-activity',
+ templateUrl: './recent-edited-dataset-activity.component.html',
+ styleUrls: ['./recent-edited-dataset-activity.component.scss']
+})
+export class RecentEditedDatasetActivityComponent extends BaseComponent implements OnInit {
+
+ datasetActivities: DatasetListingModel[];
+ // publicMode = false;
+
+ constructor(
+ private authentication: AuthService,
+ private datasetService: DatasetService,
+ private language: TranslateService,
+ public enumUtils: EnumUtils,
+ public dialog: MatDialog,
+ public router: Router,
+ private datasetWizardService: DatasetWizardService,
+ private uiNotificationService: UiNotificationService
+ ) {
+ super();
+ }
+
+ ngOnInit() {
+ if (this.isAuthenticated()) {
+ const fields: Array = ["-modified"];
+ const datasetDataTableRequest: DataTableRequest = new DataTableRequest(0, 5, { fields: fields });
+ datasetDataTableRequest.criteria = new DatasetCriteria();
+ datasetDataTableRequest.criteria.like = "";
+ this.datasetService
+ .getPaged(datasetDataTableRequest)
+ .subscribe(response => {
+ this.datasetActivities = response.data;
+ });
+ }
+ }
+
+ public isAuthenticated(): boolean {
+ return !!this.authentication.current();
+ }
+
+ roleDisplay(value: any) {
+ const principal: Principal = this.authentication.current();
+ let role: number;
+ if (principal) {
+ value.forEach(element => {
+ if (principal.id === element.id) {
+ role = element.role;
+ }
+ });
+ }
+ if (role === 0) {
+ return this.language.instant('DMP-LISTING.OWNER');
+ }
+ else if (role === 1) {
+ return this.language.instant('DMP-LISTING.MEMBER');
+ }
+ else {
+ return this.language.instant('DMP-LISTING.OWNER');
+ }
+ }
+
+ openDmpSearchDialogue(dataset: DatasetListingModel) {
+ const formControl = new FormControl();
+ const dialogRef = this.dialog.open(DatasetCopyDialogueComponent, {
+ width: '500px',
+ restoreFocus: false,
+ data: {
+ formControl: formControl,
+ datasetId: dataset.id,
+ datasetProfileId: dataset.profile,
+ datasetProfileExist: false,
+ confirmButton: this.language.instant('DATASET-WIZARD.DIALOGUE.COPY'),
+ cancelButton: this.language.instant('DATASET-WIZARD.DIALOGUE.CANCEL')
+ }
+ });
+
+ dialogRef.afterClosed().pipe(takeUntil(this._destroyed))
+ .subscribe(result => {
+ if (result && result.datasetProfileExist) {
+ const newDmpId = result.formControl.value.id
+ this.router.navigate(['/datasets/copy/' + result.datasetId], { queryParams: { newDmpId: newDmpId } });
+ }
+ });
+ }
+
+ openConfirm(id: string): void {
+ const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
+ maxWidth: '300px',
+ restoreFocus: false,
+ data: {
+ message: this.language.instant('GENERAL.CONFIRMATION-DIALOG.DELETE-ITEM'),
+ confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.DELETE'),
+ cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL'),
+ isDeleteConfirmation: true
+ }
+ });
+ dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
+ if (result) {
+ this.datasetWizardService.delete(id)
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(
+ complete => this.onCallbackSuccess(),
+ error => this.onCallbackError(error)
+ );
+ }
+ });
+ }
+
+ getFilenameFromContentDispositionHeader(header: string): string {
+ const regex: RegExp = new RegExp(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/g);
+
+ const matches = header.match(regex);
+ let filename: string;
+ for (let i = 0; i < matches.length; i++) {
+ const match = matches[i];
+ if (match.includes('filename="')) {
+ filename = match.substring(10, match.length - 1);
+ break;
+ } else if (match.includes('filename=')) {
+ filename = match.substring(9);
+ break;
+ }
+ }
+ return filename;
+ }
+
+ downloadPDF(dataset: DatasetListingModel): void {
+ this.datasetWizardService.downloadPDF(dataset.id as string)
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(response => {
+ const blob = new Blob([response.body], { type: 'application/pdf' });
+ const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition'));
+
+ FileSaver.saveAs(blob, filename);
+ });
+ }
+
+ downloadDOCX(dataset: DatasetListingModel): void {
+ this.datasetWizardService.downloadDOCX(dataset.id as string)
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(response => {
+ const blob = new Blob([response.body], { type: 'application/msword' });
+ const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition'));
+
+ FileSaver.saveAs(blob, filename);
+ });
+
+ }
+
+ downloadXML(dataset: DatasetListingModel): void {
+ this.datasetWizardService.downloadXML(dataset.id as string)
+ .pipe(takeUntil(this._destroyed))
+ .subscribe(response => {
+ const blob = new Blob([response.body], { type: 'application/xml' });
+ const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition'));
+
+ FileSaver.saveAs(blob, filename);
+ });
+ }
+
+ onCallbackSuccess(id?: String): void {
+ this.uiNotificationService.snackBarNotification(this.language.instant('GENERAL.SNACK-BAR.SUCCESSFUL-UPDATE'), SnackBarNotificationLevel.Success);
+ id ? this.router.navigate(['/reload']).then(() => { this.router.navigate(['/datasets', 'edit', id]); }) : this.router.navigate(['/datasets']);
+ }
+
+ onCallbackError(error: any) {
+ this.setErrorModel(error.error);
+ }
+
+ openUpdateDatasetProfileDialogue(id: string) {
+ const dialogRef = this.dialog.open(ConfirmationDialogComponent, {
+ restoreFocus: false,
+ data: {
+ message: this.language.instant('DATASET-EDITOR.VERSION-DIALOG.QUESTION'),
+ confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'),
+ cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL'),
+ isDeleteConfirmation: false
+ }
+ });
+ dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
+ if (result) {
+ this.uiNotificationService.snackBarNotification(this.language.instant('DATASET-WIZARD.MESSAGES.SUCCESS-UPDATE-DATASET-PROFILE'), SnackBarNotificationLevel.Success);
+ this.router.navigate(['/datasets/profileupdate/' + id]);
+ }
+ });
+ }
+
+ public setErrorModel(validationErrorModel: ValidationErrorModel) {
+ }
+
+ needsUpdate(activity: DatasetListingModel) {
+ if (activity.isProfileLatestVersion || (activity.status === DatasetStatus.Finalized)
+ || (activity.isProfileLatestVersion == undefined && activity.status == undefined)) {
+ return false;
+ }
+ else {
+ return true;
+ }
+ }
+}
diff --git a/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts b/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts
index 34acb8049..58ccae56c 100644
--- a/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts
+++ b/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts
@@ -62,7 +62,6 @@ export class DmpListingComponent extends BaseComponent implements OnInit, IBread
}
ngOnInit() {
- console.log(this.router.url);
this.isPublic = this.router.url.startsWith('/explore-plans');
if (!this.isPublic && isNullOrUndefined(this.authService.current())) {
this.router.navigateByUrl("/explore-plans");
diff --git a/dmp-frontend/src/app/ui/guest/guest.component.ts b/dmp-frontend/src/app/ui/guest/guest.component.ts
index 08dc66cb3..461cae13f 100644
--- a/dmp-frontend/src/app/ui/guest/guest.component.ts
+++ b/dmp-frontend/src/app/ui/guest/guest.component.ts
@@ -54,7 +54,6 @@ export class GuestComponent implements OnInit {
const dialogRef = this.dialog.open(SignInDialogComponent);
dialogRef.afterClosed().subscribe(result => {
- console.log(`Dialog result: ${result}`);
});
}
diff --git a/dmp-frontend/src/app/ui/navbar/navbar.component.html b/dmp-frontend/src/app/ui/navbar/navbar.component.html
index 62e765002..a815836d1 100644
--- a/dmp-frontend/src/app/ui/navbar/navbar.component.html
+++ b/dmp-frontend/src/app/ui/navbar/navbar.component.html
@@ -20,7 +20,7 @@
-
+
diff --git a/dmp-frontend/src/assets/i18n/en.json b/dmp-frontend/src/assets/i18n/en.json
index dcbde5076..3c80a55ef 100644
--- a/dmp-frontend/src/assets/i18n/en.json
+++ b/dmp-frontend/src/assets/i18n/en.json
@@ -77,6 +77,7 @@
"ACTIONS": {
"VIEW-ALL": "View All",
"SHOW-MORE": "Show more",
+ "LOAD-MORE": "Load more",
"SHOW-LESS": "Show less",
"LOG-IN": "Log in"
},
@@ -392,6 +393,8 @@
"MEMBER": "Member",
"CREATOR": "Creator",
"EDITED": "Edited",
+ "VERSION": "Version",
+ "CONTAINED-DATASETS": "Contained Dataset Descriptions",
"COLUMNS": {
"NAME": "Name",
"GRANT": "Grant",
@@ -412,6 +415,7 @@
"INVITE": "Invite Contributors",
"INVITE-SHORT": "Invite",
"ADD-DATASET": "Add Dataset Description To DMP",
+ "ADD-DATASET-DESCRIPTION": "Add dataset description",
"ADD-DATASET-SHORT": "Add Dataset",
"DATASETS": "List All DMP Dataset Descriptions",
"NEW-VERSION": "New Version",
@@ -553,6 +557,7 @@
},
"DATASET-LISTING": {
"TITLE": "Dataset Descriptions",
+ "DATASET-DESCRIPTION": "Dataset Description",
"SELECT-DATASETS-TO-CLONE": "Select which datasets to include in the new DMP. Selected datasets will be editable.",
"SELECT-DATASETS-NONE": "Not available Dataset Descriptions for this DMP.",
"COLUMNS": {
@@ -578,7 +583,13 @@
"MAKE-IT-PUBLIC": "Make it public",
"VIEW": "View",
"NEW": "New Dataset Description",
- "CREATE-NEW": "Create new Dataset Description"
+ "CREATE-NEW": "Create new Dataset Description",
+ "EXPORT": "Export",
+ "INVITE-COLLABORATORS": "Invite collaborators"
+ },
+ "STATES": {
+ "EDITED": "Edited",
+ "PUBLIC": "Public"
},
"TOOLTIP": {
"DATASET-STATUS": {
@@ -588,7 +599,9 @@
"DMP": "DMP",
"GRANT": "Grant",
"TEMPLATES-INVOLVED": "Dataset Description Template",
- "VERSION": "DMP Version"
+ "VERSION": "DMP Version",
+ "PART-OF": "Part of",
+ "DMP-FOR": "DMP for"
}
},
"DATASET-PUBLIC-LISTING": {
@@ -1110,7 +1123,19 @@
"MY-DATASETS": "My Dataset Descriptions",
"DATASETS": "Dataset Descriptions",
"SEARCH": "SEARCH...",
- "DATA-MANAGEMENT-PLANS": "DATA MANAGEMENT PLANS"
+ "DATA-MANAGEMENT-PLANS": "DATA MANAGEMENT PLANS",
+ "PERSONAL-USAGE": "Personal Usage",
+ "DMPS": "DMPs",
+ "DATASET-DESCRIPTIONS": "Dataset Descriptions",
+ "GRANTS": "Grants",
+ "RELATED-ORGANISATIONS": "Related Organisations",
+ "DRAFTS": "Drafts",
+ "DMP-ABOUT-BEG": "A DMP in Argos consists of key information about research, such as purpose, objectives and researchers involved, but also about documentation of research datasets, namely",
+ "DMP-ABOUT-END": ", that highlight the steps followed and the means used across data management activities.",
+ "ACTIONS": {
+ "ADD-DATASET-DESCRIPTION": "Add Dataset Description",
+ "ADD-DMP-DESCRIPTION": "Add DMP Description"
+ }
},
"USER-DIALOG": {
"USER-PROFILE": "My Profile",
diff --git a/dmp-frontend/src/assets/i18n/es.json b/dmp-frontend/src/assets/i18n/es.json
index 28d418e44..87c4782c4 100644
--- a/dmp-frontend/src/assets/i18n/es.json
+++ b/dmp-frontend/src/assets/i18n/es.json
@@ -392,6 +392,8 @@
"MEMBER": "Miembro",
"CREATOR": "Creator",
"EDITED": "Editado en",
+ "VERSION": "Versión",
+ "CONTAINED-DATASETS": "Descripción del Dataset contenidos",
"COLUMNS": {
"NAME": "Nombre",
"GRANT": "Subvención",
@@ -411,8 +413,8 @@
"EDIT": "Editar",
"INVITE": "Invitar a participantes",
"INVITE-SHORT": "Invitar",
- "ADD-DATASET": "Añadir la descripción del Dataset al PGD",
"ADD-DATASET-SHORT": "Añadir Dataset",
+ "ADD-DATASET-DESCRIPTION": "Añadir la descripción del Dataset",
"DATASETS": "List All PGD Dataset Descriptions",
"NEW-VERSION": "Nueva versión",
"START-NEW-VERSION": "Inicio Nueva versión",
@@ -553,6 +555,7 @@
},
"DATASET-LISTING": {
"TITLE": "Descripciones del Dataset",
+ "DATASET-DESCRIPTION": "Descripción del Dataset",
"SELECT-DATASETS-TO-CLONE": "Seleccione qué datasets incluye en el nuevo PDG. Los datasets será editables.",
"SELECT-DATASETS-NONE": "Las descripciones del Dataset no está disponibles para este PGD.",
"COLUMNS": {
@@ -578,7 +581,13 @@
"MAKE-IT-PUBLIC": "Hacer público",
"VIEW": "Vista",
"NEW": "Nueva descripción del Dataset",
- "CREATE-NEW": "Crear una nueva descripción del Dataset"
+ "CREATE-NEW": "Crear una nueva descripción del Dataset",
+ "EXPORT": "Exportar",
+ "INVITE-COLLABORATORS": "Invitar a colaboradores"
+ },
+ "STATES": {
+ "EDITED": "Editado",
+ "PUBLIC": "Publicado"
},
"TOOLTIP": {
"DATASET-STATUS": {
@@ -1101,7 +1110,17 @@
"MY-DATASETS": "Mis descripciones del Dataset",
"DATASETS": "descripciones del Dataset",
"SEARCH": "BUSCAR...",
- "DATA-MANAGEMENT-PLANS": "PLANES DE GESTIÓN DE DATOS"
+ "DATA-MANAGEMENT-PLANS": "PLANES DE GESTIÓN DE DATOS",
+ "PERSONAL-USAGE": "Uso Personal",
+ "DMPS": "DMPs",
+ "DATASET-DESCRIPTIONS": "Descripciones del dataset",
+ "GRANTS": "Subvenciones",
+ "RELATED-ORGANISATIONS": "Organizaciones Relacionadas",
+ "DRAFTS": "Borradores",
+ "ACTIONS": {
+ "ADD-DATASET-DESCRIPTION": "Agregar Dataset Descripción",
+ "ADD-DMP-DESCRIPTION": "Agregar DMP Descripción"
+ }
},
"USER-DIALOG": {
"USER-PROFILE": "Mi perfil",
diff --git a/dmp-frontend/src/assets/i18n/gr.json b/dmp-frontend/src/assets/i18n/gr.json
index a56b92d08..767c0efac 100644
--- a/dmp-frontend/src/assets/i18n/gr.json
+++ b/dmp-frontend/src/assets/i18n/gr.json
@@ -392,6 +392,8 @@
"MEMBER": "Μέλος",
"CREATOR": "Συντάκτης",
"EDITED": "Επεξεργάστηκε",
+ "VERSION": "Έκδοση",
+ "CONTAINED-DATASETS": "Δεδομένα που συμπεριλαμβάνει",
"COLUMNS": {
"NAME": "Τίτλος",
"GRANT": "Επιχορήγηση",
@@ -412,7 +414,8 @@
"INVITE": "Πρόσκληση Συνεργατών",
"INVITE-SHORT": "Πρόσκληση",
"ADD-DATASET": "Προσθήκη Περιγραφής Συνόλου Δεδομένων στο Σχέδιο Διαχείρισης Δεδομένων",
- "ADD-DATASET-SHORT": "Προσθήκη Περιγραφής Συνόλου Δεδομένων",
+ "ADD-DATASET-SHORT": "Προσθήκη Συνόλου Δεδομένων",
+ "ADD-DATASET-DESCRIPTION": "Προσθήκη Περιγραφής Συνόλου Δεδομένων",
"DATASETS": "Κατάλογος όλων των Περιγραφών Συνόλου Δεδομένων",
"NEW-VERSION": "Νέα Έκδοση",
"START-NEW-VERSION": "Νέα Έκδοση",
@@ -549,6 +552,7 @@
},
"DATASET-LISTING": {
"TITLE": "Περιγραφές Συνόλων Δεδομένων",
+ "DATASET-DESCRIPTION": "Περιγραφή Δεδομένων",
"SELECT-DATASETS-TO-CLONE": "Επιλογή των συνόλων δεδομένων που θα συμπεριληφθούν στο νέο Σχέδιο Διαχείρισης Δεδομένων. Τα επιλεγμένα σύνολα δεδομένα θα είναι επεξεργάσιμα.",
"SELECT-DATASETS-NONE": "Μη διαθέσιμες Περιγραφές Συνόλου Δεδομένων για αυτό το Σχέδιο Διαχείρισης Δεδομένων",
"COLUMNS": {
@@ -574,7 +578,13 @@
"MAKE-IT-PUBLIC": "Δημοσιοποιήστε",
"VIEW": "Προβολή",
"NEW": "Νέα Περιγραφή Συνόλου Δεδομένων",
- "CREATE-NEW": "Δημιουργία νέας Περιγραφής Συνόλου Δεδομένων"
+ "CREATE-NEW": "Δημιουργία νέας Περιγραφής Συνόλου Δεδομένων",
+ "EXPORT": "Εξαγωγή",
+ "INVITE-COLLABORATORS": "Προσκάλεσε συνεργάτες"
+ },
+ "STATES": {
+ "EDITED": "Επεξεργάστηκε",
+ "PUBLIC": "Δημοσιευμένο"
},
"TOOLTIP": {
"DATASET-STATUS": {
@@ -1088,7 +1098,17 @@
"MY-DATASETS": "Οι Περιγραφές Συνόλων Δεδομένων μου",
"DATASETS": "Περιγραφές Συνόλων Δεδομένων",
"SEARCH": "ΑΝΑΖΗΤΗΣΗ...",
- "DATA-MANAGEMENT-PLANS": "ΣΧΕΔΙΑ ΔΙΑΧΕΙΡΙΣΗΣ ΔΕΔΟΜΕΝΩΝ"
+ "DATA-MANAGEMENT-PLANS": "ΣΧΕΔΙΑ ΔΙΑΧΕΙΡΙΣΗΣ ΔΕΔΟΜΕΝΩΝ",
+ "PERSONAL-USAGE": "Προσωπική Χρήση",
+ "DMPS": "DMPs",
+ "DATASET-DESCRIPTIONS": "Περιγραφές Dataset",
+ "GRANTS": "Grants",
+ "RELATED-ORGANISATIONS": "Σχετικοί Οργανισμοί",
+ "DRAFTS": "Προσχέδια",
+ "ACTIONS": {
+ "ADD-DATASET-DESCRIPTION": "Προσθήκη Περιγραφή Dataset",
+ "ADD-DMP-DESCRIPTION": "Προσθήκη Περιγραφή DMP"
+ }
},
"USER-DIALOG": {
"USER-PROFILE": "Το Προφίλ μου",
diff --git a/dmp-frontend/src/styles.scss b/dmp-frontend/src/styles.scss
index 4d0ab7955..6f8546081 100644
--- a/dmp-frontend/src/styles.scss
+++ b/dmp-frontend/src/styles.scss
@@ -163,7 +163,7 @@
.main-content {
background-color: #f5f5f5;
padding-top: 3.68rem;
- padding-bottom: 10rem;
+ padding-bottom: 3rem;
// padding-left: 3.31rem;
padding-left: 1rem;
margin: 0;