Merge remote-tracking branch 'origin/ui-redesign' into ui-redesign

This commit is contained in:
George Kalampokis 2020-07-24 10:50:34 +03:00
commit b0067f20b5
24 changed files with 164 additions and 61 deletions

View File

@ -176,12 +176,12 @@ public class DataManagementPlanOverviewModel implements DataModel<DMP, DataManag
this.id = entity.getId().toString();
this.label = entity.getLabel();
this.groupId = entity.getGroupId();
this.status = entity.getStatus();
return this;
}
public DataManagementPlanOverviewModel fromDataModelDatasets(DMP entity) {
this.fromDataModel(entity);
this.status = entity.getStatus();
this.version = entity.getVersion();
this.grant = new GrantOverviewModel().fromDataModel(entity.getGrant());
if (entity.getProfile() != null) this.profile = entity.getProfile().getLabel();

View File

@ -34,14 +34,16 @@
<span *ngIf="activity.status === 1 && activity.public === false" class="col-auto"><span class="material-icons icon-align">done</span>{{ enumUtils.toDmpStatusString(activity.status) }}</span>
<span *ngIf="activity.status === 0" class=" col-auto draft"><span class="material-icons icon-align">create</span>{{ enumUtils.toDmpStatusString(activity.status) }}</span>
<span>.</span>
<span *ngIf="lockStatusMap.get(activity.id)" class="col-auto"><span class="material-icons icon-align">lock_outline</span>{{'DMP-OVERVIEW.LOCKED' | translate}}</span>
<span *ngIf="lockStatusMap.get(activity.id)">.</span>
<span class="col">{{'DATASET-LISTING.COLUMNS.GRANT' | translate}}: {{activity.grant}}</span>
</div>
<div class="d-flex flex-direction-row pt-3 pb-3">
<div class="col-auto dataset-subtitle">{{'DATASET-LISTING.TOOLTIP.PART-OF' | translate}}
<div class="col-auto dmp-label ml-4">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div>
<div class="col-auto dataset-subtitle pr-0">{{'DATASET-LISTING.TOOLTIP.PART-OF' | translate}}
<div class="col-auto dmp-label ml-3">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div>
</div>
<!-- <div class="col-auto dmp-label">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div> -->
<div class="col dmp-title">{{'DATASET-LISTING.TOOLTIP.DMP-FOR' | translate}}: {{activity.dmp}}</div>
<div class="col dmp-title">{{activity.dmp}}</div>
</div>
</div>
<div class="dataset-card-actions">
@ -54,7 +56,7 @@
<button mat-menu-item (click)="openDmpSearchDialogue(activity.id)" class="menu-item">
<mat-icon>file_copy</mat-icon>{{'DATASET-WIZARD.ACTIONS.COPY-DATASET' | translate}}
</button>
<button mat-menu-item (click)="openConfirm(activity.id)" class="menu-item">
<button mat-menu-item *ngIf="!lockStatusMap.get(activity.id)" (click)="openConfirm(activity.id)" class="menu-item">
<mat-icon>delete</mat-icon>{{ 'DATASET-WIZARD.ACTIONS.DELETE' | translate }}
</button>
<!-- <button mat-menu-item *ngIf="needsUpdate(activity)" class="menu-item" (click)="openUpdateDatasetProfileDialogue(activity.id);">

View File

@ -23,6 +23,8 @@ import { UiNotificationService } from '@app/core/services/notification/ui-notifi
import { DmpInvitationDialogComponent } from '@app/ui/dmp/invitation/dmp-invitation-dialog.component';
import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order';
import { Location } from '@angular/common';
import { Role } from '@app/core/common/enum/role';
import { LockService } from '@app/core/services/lock/lock.service';
@Component({
selector: 'app-drafts',
@ -37,6 +39,7 @@ export class DraftsComponent extends BaseComponent implements OnInit {
datasetDrafts: DatasetListingModel[];
datasetDraftsTypeEnum = RecentActivityType;
status: number;
lockStatusMap = new Map();
totalCount: number;
startIndex: number = 0;
@ -57,7 +60,8 @@ export class DraftsComponent extends BaseComponent implements OnInit {
private datasetWizardService: DatasetWizardService,
public enumUtils: EnumUtils,
private uiNotificationService: UiNotificationService,
private location: Location
private location: Location,
private lockService: LockService
) {
super();
}
@ -74,6 +78,14 @@ export class DraftsComponent extends BaseComponent implements OnInit {
this.datasetDrafts = response.data;
this.totalCount = response.totalCount;
this.totalCountDraftDatasets.emit(this.datasetDrafts.length);
this.datasetDrafts.forEach(recentActivity => {
let lockStatus: Boolean;
this.lockService.checkLockStatus(recentActivity.id).pipe(takeUntil(this._destroyed))
.subscribe(status => {
lockStatus = status;
this.lockStatusMap.set(recentActivity.id, lockStatus);
});
});
});
this.formGroup.get('like').valueChanges
.pipe(takeUntil(this._destroyed))
@ -191,6 +203,11 @@ export class DraftsComponent extends BaseComponent implements OnInit {
});
}
isUserOwner(activity: DatasetListingModel): boolean {
const principal: Principal = this.authentication.current();
if (principal) return principal.id === activity.users.find(x => x.role === Role.Owner).id;
}
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']);

View File

@ -35,6 +35,8 @@
<span *ngIf="activity.status === 1 && activity.public === false" class="col-auto"><span class="material-icons icon-align">done</span>{{ enumUtils.toDmpStatusString(activity.status) }}</span>
<span *ngIf="activity.status === 0" class=" col-auto draft"><span class="material-icons icon-align">create</span>{{ enumUtils.toDmpStatusString(activity.status) }}</span>
<span>.</span>
<span *ngIf="lockStatusMap.get(activity.id)" class="col-auto"><span class="material-icons icon-align">lock_outline</span>{{'DMP-OVERVIEW.LOCKED' | translate}}</span>
<span *ngIf="lockStatusMap.get(activity.id)">.</span>
<span class="col-auto">{{'DMP-LISTING.VERSION' | translate}} {{activity.version}}</span>
<span>.</span>
<span class="col">{{ 'DMP-LISTING.GRANT' | translate }}: {{activity.grant}}</span>
@ -51,8 +53,8 @@
</div>
<div class="dmp-card-actions">
<a class="col-auto border-right pointer" [matMenuTriggerFor]="exportMenu"><span class="material-icons icon-align pr-2">open_in_new</span>{{'DMP-LISTING.ACTIONS.EXPORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isDraftDmp(activity) && isUserOwner" (click)="addDataset(activity.id)"><span class="material-icons icon-align">add</span>{{'DMP-LISTING.ACTIONS.ADD-DATASET-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isUserOwner"(click)="openShareDialog(activity.id, activity.title)"><span class="material-icons icon-align pr-2">group_add</span>{{'DMP-LISTING.ACTIONS.INVITE-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isDraftDmp(activity)" (click)="addDataset(activity.id)"><span class="material-icons icon-align">add</span>{{'DMP-LISTING.ACTIONS.ADD-DATASET-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isUserOwner(activity)" (click)="openShareDialog(activity.id, activity.title)"><span class="material-icons icon-align pr-2">group_add</span>{{'DMP-LISTING.ACTIONS.INVITE-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isAuthenticated()" (click)="cloneClicked(activity)"><span class="material-icons icon-align pr-2">filter_none</span>{{'DMP-LISTING.ACTIONS.CLONE' | translate}}</a>
<a class="col-auto pointer" [matMenuTriggerFor]="actionsMenu"><span class="material-icons icon-align pl-2">more_horiz</span></a>
</div>
@ -82,7 +84,7 @@
<button mat-menu-item (click)="viewVersions(getGroupId(activity), activity.title)">
<mat-icon>library_books</mat-icon>{{'DMP-LISTING.ACTIONS.VIEW-VERSION' | translate}}
</button>
<button mat-menu-item *ngIf="isUserOwner(activity)" (click)="deleteClicked(activity)" class="menu-item">
<button mat-menu-item *ngIf="isUserOwner(activity) && !lockStatusMap.get(activity.id)" (click)="deleteClicked(activity)" class="menu-item">
<mat-icon>delete</mat-icon>{{ 'DMP-LISTING.ACTIONS.DELETE' | translate }}
</button>
</mat-menu>
@ -103,14 +105,16 @@
<span *ngIf="activity.status === 1 && activity.public === false" class="col-auto"><span class="material-icons icon-align">done</span>{{ enumUtils.toDmpStatusString(activity.status) }}</span>
<span *ngIf="activity.status === 0" class=" col-auto draft"><span class="material-icons icon-align">create</span>{{ enumUtils.toDmpStatusString(activity.status) }}</span>
<span>.</span>
<span *ngIf="lockStatusMap.get(activity.id)" class="col-auto"><span class="material-icons icon-align">lock_outline</span>{{'DMP-OVERVIEW.LOCKED' | translate}}</span>
<span *ngIf="lockStatusMap.get(activity.id)">.</span>
<span class="col">{{'DATASET-LISTING.COLUMNS.GRANT' | translate}}: {{activity.grant}}</span>
</div>
<div class="d-flex flex-direction-row pt-3 pb-3">
<div class="col-auto dataset-subtitle">{{'DATASET-LISTING.TOOLTIP.PART-OF' | translate}}
<div class="col-auto dmp-label ml-4">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div>
<div class="col-auto dataset-subtitle pr-0">{{'DATASET-LISTING.TOOLTIP.PART-OF' | translate}}
<div class="col-auto dmp-label ml-3">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div>
</div>
<!-- <div class="col-auto dmp-label">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div> -->
<div class="col dmp-title">{{'DATASET-LISTING.TOOLTIP.DMP-FOR' | translate}}: {{ getDmp(activity) }}</div>
<div class="col dmp-title">{{ getDmp(activity) }}</div>
</div>
</div>
<div class="dataset-card-actions">
@ -123,7 +127,7 @@
<button mat-menu-item (click)="openDmpSearchDialogue(activity)" class="menu-item">
<mat-icon>file_copy</mat-icon>{{'DATASET-WIZARD.ACTIONS.COPY-DATASET' | translate}}
</button>
<button mat-menu-item (click)="openConfirm(activity.id)" class="menu-item">
<button mat-menu-item *ngIf="!lockStatusMap.get(activity.id)" (click)="openConfirm(activity.id)" class="menu-item">
<mat-icon>delete</mat-icon>{{ 'DATASET-WIZARD.ACTIONS.DELETE' | translate }}
</button>
<!-- <button mat-menu-item *ngIf="needsUpdate(activity)" class="menu-item" (click)="openUpdateDatasetProfileDialogue(activity.id);">

View File

@ -31,6 +31,7 @@ import { FormControl, FormBuilder } from '@angular/forms';
import { DatasetCopyDialogueComponent } from '@app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component';
import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order';
import { Location } from '@angular/common';
import { LockService } from '@app/core/services/lock/lock.service';
@Component({
selector: 'app-recent-edited-activity',
@ -44,6 +45,7 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
allRecentActivities: RecentActivityModel[];
recentActivityTypeEnum = RecentActivityType;
isDraft: boolean;
lockStatusMap = new Map();
totalCount: number;
startIndex: number = 0;
dmpOffset: number = 0;
@ -66,7 +68,8 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
private dialog: MatDialog,
private uiNotificationService: UiNotificationService,
private datasetWizardService: DatasetWizardService,
private location: Location
private location: Location,
private lockService: LockService
) {
super();
}
@ -85,6 +88,12 @@ export class RecentEditedActivityComponent extends BaseComponent implements OnIn
.subscribe(response => {
this.allRecentActivities = response;
this.allRecentActivities.forEach(recentActivity => {
let lockStatus: Boolean;
this.lockService.checkLockStatus(recentActivity.id).pipe(takeUntil(this._destroyed))
.subscribe(status => {
lockStatus = status;
this.lockStatusMap.set(recentActivity.id, lockStatus);
});
if (recentActivity.type === RecentActivityType.Dataset) {
this.datasetOffset = this.datasetOffset + 1;
} else if (recentActivity.type === RecentActivityType.Dmp) {

View File

@ -34,14 +34,16 @@
<span *ngIf="activity.status === 1 && activity.public === false" class="col-auto"><span class="material-icons icon-align">done</span>{{ enumUtils.toDmpStatusString(activity.status) }}</span>
<span *ngIf="activity.status === 0" class=" col-auto draft"><span class="material-icons icon-align">create</span>{{ enumUtils.toDmpStatusString(activity.status) }}</span>
<span>.</span>
<span *ngIf="lockStatusMap.get(activity.id)" class="col-auto"><span class="material-icons icon-align">lock_outline</span>{{'DMP-OVERVIEW.LOCKED' | translate}}</span>
<span *ngIf="lockStatusMap.get(activity.id)">.</span>
<span class="col">{{'DATASET-LISTING.COLUMNS.GRANT' | translate}}: {{activity.grant}}</span>
</div>
<div class="d-flex flex-direction-row pt-3 pb-3">
<div class="col-auto dataset-subtitle">{{'DATASET-LISTING.TOOLTIP.PART-OF' | translate}}
<div class="col-auto dmp-label ml-4">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div>
<div class="col-auto dataset-subtitle pr-0">{{'DATASET-LISTING.TOOLTIP.PART-OF' | translate}}
<div class="col-auto dmp-label ml-3">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div>
</div>
<!-- <div class="col-auto dmp-label">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div> -->
<div class="col dmp-title">{{'DATASET-LISTING.TOOLTIP.DMP-FOR' | translate}}: {{activity.dmp}}</div>
<div class="col dmp-title">{{activity.dmp}}</div>
</div>
</div>
<div class="dataset-card-actions">
@ -54,7 +56,7 @@
<button mat-menu-item *ngIf="isAuthenticated()" (click)="openDmpSearchDialogue(activity.id)" class="menu-item">
<mat-icon>file_copy</mat-icon>{{'DATASET-WIZARD.ACTIONS.COPY-DATASET' | translate}}
</button>
<button mat-menu-item *ngIf="isUserOwner(activity)" (click)="openConfirm(activity.id)" class="menu-item">
<button mat-menu-item *ngIf="!lockStatusMap.get(activity.id)" (click)="openConfirm(activity.id)" class="menu-item">
<mat-icon>delete</mat-icon>{{ 'DATASET-WIZARD.ACTIONS.DELETE' | translate }}
</button>
<!-- <button mat-menu-item *ngIf="needsUpdate(activity)" class="menu-item" (click)="openUpdateDatasetProfileDialogue(activity.id);">

View File

@ -24,6 +24,7 @@ import { DmpInvitationDialogComponent } from '@app/ui/dmp/invitation/dmp-invitat
import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order';
import { Role } from '@app/core/common/enum/role';
import { Location } from '@angular/common';
import { LockService } from '@app/core/services/lock/lock.service';
@Component({
selector: 'app-recent-edited-dataset-activity',
@ -45,6 +46,7 @@ export class RecentEditedDatasetActivityComponent extends BaseComponent implemen
// publicMode = false;
order = RecentActivityOrder;
lockStatusMap = new Map();
constructor(
private authentication: AuthService,
@ -55,7 +57,8 @@ export class RecentEditedDatasetActivityComponent extends BaseComponent implemen
public router: Router,
private datasetWizardService: DatasetWizardService,
private uiNotificationService: UiNotificationService,
private location: Location
private location: Location,
private lockService: LockService
) {
super();
}
@ -72,6 +75,14 @@ export class RecentEditedDatasetActivityComponent extends BaseComponent implemen
.getPaged(datasetDataTableRequest)
.subscribe(response => {
this.datasetActivities = response.data;
this.datasetActivities.forEach(recentActivity => {
let lockStatus: Boolean;
this.lockService.checkLockStatus(recentActivity.id).pipe(takeUntil(this._destroyed))
.subscribe(status => {
lockStatus = status;
this.lockStatusMap.set(recentActivity.id, lockStatus);
});
});
this.totalCount = response.totalCount;
this.totalCountDatasets.emit(this.datasetActivities.length);
});

View File

@ -34,6 +34,8 @@
<span *ngIf="activity.status === 1 && activity.public === false" class="col-auto"><span class="material-icons icon-align">done</span>{{ enumUtils.toDmpStatusString(activity.status) }}</span>
<span *ngIf="activity.status === 0" class=" col-auto draft"><span class="material-icons icon-align">create</span>{{ enumUtils.toDmpStatusString(activity.status) }}</span>
<span>.</span>
<span *ngIf="lockStatusMap.get(activity.id)" class="col-auto"><span class="material-icons icon-align">lock_outline</span>{{'DMP-OVERVIEW.LOCKED' | translate}}</span>
<span *ngIf="lockStatusMap.get(activity.id)">.</span>
<span class="col-auto">{{'DMP-LISTING.VERSION' | translate}} {{activity.version}}</span>
<span>.</span>
<span class="col">{{ 'DMP-LISTING.GRANT' | translate }}: {{activity.grant}}</span>
@ -50,8 +52,8 @@
</div>
<div class="dmp-card-actions">
<a class="col-auto border-right pointer" [matMenuTriggerFor]="exportMenu"><span class="material-icons icon-align pr-2">open_in_new</span>{{'DMP-LISTING.ACTIONS.EXPORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isDraftDmp(activity) && isUserOwner" (click)="addDataset(activity.id)"><span class="material-icons icon-align">add</span>{{'DMP-LISTING.ACTIONS.ADD-DATASET-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isUserOwner" (click)="openShareDialog(activity.id, activity.label)"><span class="material-icons icon-align pr-2">group_add</span>{{'DMP-LISTING.ACTIONS.INVITE-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isDraftDmp(activity)" (click)="addDataset(activity.id)"><span class="material-icons icon-align">add</span>{{'DMP-LISTING.ACTIONS.ADD-DATASET-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isUserOwner(activity)" (click)="openShareDialog(activity.id, activity.label)"><span class="material-icons icon-align pr-2">group_add</span>{{'DMP-LISTING.ACTIONS.INVITE-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isAuthenticated()" (click)="cloneClicked(activity)"><span class="material-icons icon-align pr-2">filter_none</span>{{'DMP-LISTING.ACTIONS.CLONE' | translate}}</a>
<a class="col-auto pointer" [matMenuTriggerFor]="actionsMenu"><span class="material-icons icon-align pl-2">more_horiz</span></a>
</div>
@ -81,7 +83,7 @@
<button mat-menu-item (click)="viewVersions(activity.groupId, activity.label)">
<mat-icon>library_books</mat-icon>{{'DMP-LISTING.ACTIONS.VIEW-VERSION' | translate}}
</button>
<button mat-menu-item *ngIf="isUserOwner(activity)" (click)="deleteClicked()" class="menu-item">
<button mat-menu-item *ngIf="isUserOwner(activity) && !lockStatusMap.get(activity.id)" (click)="deleteClicked()" class="menu-item">
<mat-icon>delete</mat-icon>{{ 'DMP-LISTING.ACTIONS.DELETE' | translate }}
</button>
</mat-menu>

View File

@ -23,6 +23,7 @@ import { Role } from '@app/core/common/enum/role';
import { FormBuilder, FormControl } from '@angular/forms';
import { RecentActivityOrder } from '@app/core/common/enum/recent-activity-order';
import { Location } from '@angular/common';
import { LockService } from '@app/core/services/lock/lock.service';
@Component({
selector: 'app-recent-edited-dmp-activity',
@ -37,6 +38,7 @@ export class RecentEditedDmpActivityComponent extends BaseComponent implements O
datasetActivities: DatasetListingModel[];
recentActivityTypeEnum = RecentActivityType;
isDraft: boolean;
lockStatusMap = new Map();
totalCount: number;
startIndex: number = 0;
@ -57,7 +59,8 @@ export class RecentEditedDmpActivityComponent extends BaseComponent implements O
private language: TranslateService,
private dialog: MatDialog,
private uiNotificationService: UiNotificationService,
private location: Location
private location: Location,
private lockService: LockService
) {
super();
}
@ -74,6 +77,14 @@ export class RecentEditedDmpActivityComponent extends BaseComponent implements O
.getPaged(dmpDataTableRequest, "listing")
.subscribe(response => {
this.dmpActivities = response.data;
this.dmpActivities.forEach(recentActivity => {
let lockStatus: Boolean;
this.lockService.checkLockStatus(recentActivity.id).pipe(takeUntil(this._destroyed))
.subscribe(status => {
lockStatus = status;
this.lockStatusMap.set(recentActivity.id, lockStatus);
});
});
this.totalCount = response.totalCount;
this.totalCountDmps.emit(this.dmpActivities.length);
// this.totalCount < this.pageSize ? this.totalCountDmps.emit(response.totalCount) : this.totalCountDmps.emit(this.pageSize);

View File

@ -1,25 +1,27 @@
<div class="dataset-card">
<a [routerLink]="['../datasets/overview/' + dataset.id]" class="pointer">
<a [routerLink]="isPublic ? ['/datasets/publicOverview/' + dataset.id] : ['/datasets/overview/' + dataset.id]" class="pointer">
<div class="d-flex flex-direction-row">
<div class="col-auto dataset-label">{{'DATASET-LISTING.DATASET-DESCRIPTION' | translate}}</div>
<div class="col-auto ml-auto edited-date">{{'DATASET-LISTING.STATES.EDITED' | translate}}: {{dataset.modified | date:"longDate"}}</div>
</div>
<div class="col-auto dataset-title">{{'DATASET-LISTING.DATASET-DESCRIPTION' | translate}}: {{dataset.label}}</div>
<div class="dataset-subtitle">
<span class="col-auto">{{ roleDisplay(dataset.users) }}</span>
<span>.</span>
<span *ngIf="isUserDatasetRelated()" class="col-auto">{{ roleDisplay(dataset.users) }}</span>
<span *ngIf="isUserDatasetRelated()">.</span>
<span class="col-auto" *ngIf="dataset.status === 1 && dataset.public === true"><span class="material-icons icon-align">public</span>{{'DATASET-LISTING.STATES.PUBLIC' | translate}}</span>
<span *ngIf="dataset.status === 1 && dataset.public === false" class="col-auto"><span class="material-icons icon-align">done</span>{{ enumUtils.toDmpStatusString(dataset.status) }}</span>
<span *ngIf="dataset.status === 0" class=" col-auto draft"><span class="material-icons icon-align">create</span>{{ enumUtils.toDmpStatusString(dataset.status) }}</span>
<span>.</span>
<span *ngIf="lockStatus" class="col-auto"><span class="material-icons icon-align">lock_outline</span>{{'DMP-OVERVIEW.LOCKED' | translate}}</span>
<span *ngIf="lockStatus">.</span>
<span class="col">{{'DATASET-LISTING.COLUMNS.GRANT' | translate}}: {{dataset.grant}}</span>
</div>
<div class="d-flex flex-direction-row pt-3 pb-3">
<div class="col-auto dataset-subtitle">{{'DATASET-LISTING.TOOLTIP.PART-OF' | translate}}
<div class="col-auto dmp-label ml-4">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div>
<div class="col-auto dataset-subtitle pr-0">{{'DATASET-LISTING.TOOLTIP.PART-OF' | translate}}
<div class="col-auto dmp-label ml-3">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div>
</div>
<!-- <div class="col-auto dmp-label">{{'DATASET-LISTING.TOOLTIP.DMP' | translate}}</div> -->
<div class="col dmp-title">{{'DATASET-LISTING.TOOLTIP.DMP-FOR' | translate}}: {{dataset.dmp}}</div>
<div class="col dmp-title">{{dataset.dmp}}</div>
</div>
</a>
<div class="dataset-card-actions">
@ -32,7 +34,7 @@
<button *ngIf="isAuthenticated()" mat-menu-item (click)="openDmpSearchDialogue(dataset)" class="menu-item">
<mat-icon>file_copy</mat-icon>{{'DATASET-WIZARD.ACTIONS.COPY-DATASET' | translate}}
</button>
<button *ngIf="isUserOwner" mat-menu-item (click)="openConfirm(dataset.id)" class="menu-item">
<button *ngIf="isUserDatasetRelated() && !lockStatus" mat-menu-item (click)="openConfirm(dataset.id)" class="menu-item">
<mat-icon>delete</mat-icon>{{ 'DATASET-WIZARD.ACTIONS.DELETE' | translate }}
</button>
<!-- <button mat-menu-item *ngIf="needsUpdate(activity)" class="menu-item" (click)="openUpdateDatasetProfileDialogue(activity.id);">

View File

@ -64,7 +64,6 @@ export class DatasetListingItemComponent extends BaseComponent implements OnInit
else {
this.isDraft = false;
this.isDeleted = false;
this.checkLockStatus(this.dataset.id);
this.setIsUserOwner();
}
}
@ -246,6 +245,19 @@ export class DatasetListingItemComponent extends BaseComponent implements OnInit
}
}
isUserDatasetRelated() {
const principal: Principal = this.authentication.current();
let isRelated: boolean = false;
if (this.dataset && principal) {
this.dataset.users.forEach(element => {
if (element.id === principal.id) {
isRelated = true;
}
})
}
return isRelated;
}
// onCallbackError(error: any) {

View File

@ -17,8 +17,8 @@
{{ roleDisplayFromList(dataset.users) }}
</p>
</div>
<span>.</span>
<div class="d-flex ml-2 mr-2">
<span *ngIf="isUserDatasetRelated()" class="mr-2">.</span>
<div class="d-flex mr-2">
<div *ngIf="dataset.public" class="d-flex flex-row">
<mat-icon class="status-icon">public</mat-icon>
{{'DMP-OVERVIEW.PUBLIC' | translate}}
@ -49,12 +49,12 @@
matTooltipPosition="above">
<mat-icon class="mat-mini-fab-icon">content_copy</mat-icon>
</button>
<button *ngIf="isDraftDataset(dataset) && isUserOwner && !lockStatus"
<button *ngIf="isDraftDataset(dataset) && !lockStatus"
(click)="editClicked(dataset)" mat-mini-fab class="mr-3 actions-btn"
matTooltip="{{'DMP-LISTING.ACTIONS.EDIT' | translate}}" matTooltipPosition="above">
<mat-icon class="mat-mini-fab-icon">create</mat-icon>
</button>
<button *ngIf="isUserOwner && !lockStatus" (click)="deleteClicked()" mat-mini-fab
<button *ngIf="isUserDatasetRelated() && !lockStatus" (click)="deleteClicked()" mat-mini-fab
class="mr-3 actions-btn" matTooltip="{{'DMP-LISTING.ACTIONS.DELETE' | translate}}"
matTooltipPosition="above">
<mat-icon class="mat-mini-fab-icon">delete</mat-icon>
@ -65,7 +65,6 @@
<button class="dmp-btn" (click)="dmpClicked(dataset.dmp.id)">
<div class="dmp-btn-label">
{{ this.dataset.dmp.label }}
<!-- {{ 'DATASET-LISTING.TOOLTIP.DMP-FOR' | translate }}: {{ dataset.datasetTemplate.label }} -->
</div>
<mat-icon>launch</mat-icon>
</button>
@ -92,7 +91,7 @@
</div>
<div class="col-md-4 col-lg-4 p-0">
<div class="frame mb-3 pt-4 pl-3 pr-5 pb-1">
<div *ngIf="!dataset.status && isDraftDataset(dataset) && isUserOwner && !lockStatus">
<div *ngIf="!dataset.status && isDraftDataset(dataset) && !lockStatus">
<div class="row ml-0 mr-0 pl-4 d-flex align-items-center" (click)="finalize(dataset)">
<button mat-mini-fab class="finalize-btn">
<mat-icon class="mat-mini-fab-icon check-icon">check</mat-icon>
@ -103,7 +102,7 @@
<hr class="hr-line">
</div>
</div>
<div *ngIf="hasReversableStatus(dataset) && !lockStatus" class="row ml-0 mr-0 pl-4 pb-3 d-flex align-items-center" (click)="reverse(dataset)">
<div *ngIf="hasReversableStatus(dataset)" class="row ml-0 mr-0 pl-4 pb-3 d-flex align-items-center" (click)="reverse(dataset)">
<button mat-mini-fab class="frame-btn">
<mat-icon class="mat-mini-fab-icon">unarchive</mat-icon>
</button>

View File

@ -148,7 +148,10 @@ export class DatasetOverviewComponent extends BaseComponent implements OnInit {
checkLockStatus(id: string) {
this.lockService.checkLockStatus(id).pipe(takeUntil(this._destroyed))
.subscribe(lockStatus => this.lockStatus = lockStatus);
.subscribe(lockStatus => {
this.lockStatus = lockStatus;
});
}
onFetchingDeletedCallbackError(redirectRoot: string) {

View File

@ -5,7 +5,7 @@
<a class="col-auto d-flex" (click)="closeCard()"><span class="ml-auto pt-3 material-icons clear-icon">clear</span></a>
<div class="card-content info-text mb-0 pt-0">
<p>{{'DMP-LISTING.TEXT-INFO' | translate}}</p>
<p class="mt-4 pt-2">{{'DMP-LISTING.TEXT-INFO-QUESTION' | translate}} <u>{{'DMP-LISTING.LINK-ZENODO' | translate}}</u> {{'DMP-LISTING.GET-IDEA' | translate}}</p>
<p class="mt-4 pt-2">{{'DMP-LISTING.TEXT-INFO-QUESTION' | translate}} <a class="zenodo-link" href="https://zenodo.org/communities/liber-dmp-cat/?page=1&size=20" target="_blank">{{'DMP-LISTING.LINK-ZENODO' | translate}}</a> {{'DMP-LISTING.GET-IDEA' | translate}}</p>
</div>
</div>
<div class="filter-btn" [style.right]="dialog.openDialogs.length > 0 ? '446px' : '0px'" [style.width]="scrollbar ? '57px' : '37px'" (click)="openFiltersDialog()">

View File

@ -218,7 +218,12 @@
opacity: 0.6;
}
.pointer:hover {
.zenodo-link {
text-decoration: underline;
color: black;
}
.pointer:hover, .zenodo-link:hover {
color: #00b29f;
}

View File

@ -6,12 +6,14 @@
</div>
<div class="col-auto" [ngClass]="{'dmp-title': !isDraft, 'dmp-title-draft': isDraft}">{{dmp.label}}</div>
<div class="dmp-subtitle">
<span class="col-auto">{{ roleDisplay(dmp.users) }}</span>
<span>.</span>
<span *ngIf="isUserDMPRelated()" class="col-auto">{{ roleDisplay(dmp.users) }}</span>
<span *ngIf="isUserDMPRelated()">.</span>
<span class="col-auto" *ngIf="dmp.status === 1 && dmp.public === true"><span class="material-icons icon-align">public</span>{{'TYPES.DMP-VISIBILITY.PUBLIC' | translate}}</span>
<span *ngIf="dmp.status === 1 && dmp.public === false" class="col-auto"><span class="material-icons icon-align">done</span>{{ enumUtils.toDmpStatusString(dmp.status) }}</span>
<span *ngIf="dmp.status === 0" class=" col-auto draft"><span class="material-icons icon-align">create</span>{{ enumUtils.toDmpStatusString(dmp.status) }}</span>
<span>.</span>
<span *ngIf="lockStatus" class="col-auto"><span class="material-icons icon-align">lock_outline</span>{{'DMP-OVERVIEW.LOCKED' | translate}}</span>
<span *ngIf="lockStatus">.</span>
<span class="col-auto">{{'DMP-LISTING.VERSION' | translate}} {{dmp.version}}</span>
<span>.</span>
<span class="col">{{ 'DMP-LISTING.GRANT' | translate }}: {{dmp.grant}}</span>
@ -28,9 +30,9 @@
</a>
<div class="dmp-card-actions">
<a class="col-auto border-right pointer" [matMenuTriggerFor]="exportMenu"><span class="material-icons icon-align pr-2">open_in_new</span>{{'DMP-LISTING.ACTIONS.EXPORT' | translate}}</a>
<a class="col-auto border-right pointer" (click)="addDataset(dmp.id)"><span class="material-icons icon-align">add</span>{{'DMP-LISTING.ACTIONS.ADD-DATASET-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" (click)="openShareDialog(dmp.id, dmp.label)"><span class="material-icons icon-align pr-2">group_add</span>{{'DMP-LISTING.ACTIONS.INVITE-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" (click)="cloneClicked(dmp)"><span class="material-icons icon-align pr-2">filter_none</span>{{'DMP-LISTING.ACTIONS.CLONE' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isDraftDmp(dmp)" (click)="addDataset(dmp.id)"><span class="material-icons icon-align">add</span>{{'DMP-LISTING.ACTIONS.ADD-DATASET-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isUserOwner(dmp)" (click)="openShareDialog(dmp.id, dmp.label)"><span class="material-icons icon-align pr-2">group_add</span>{{'DMP-LISTING.ACTIONS.INVITE-SHORT' | translate}}</a>
<a class="col-auto border-right pointer" *ngIf="isAuthenticated()" (click)="cloneClicked(dmp)"><span class="material-icons icon-align pr-2">filter_none</span>{{'DMP-LISTING.ACTIONS.CLONE' | translate}}</a>
<a class="col-auto pointer" [matMenuTriggerFor]="actionsMenu"><span class="material-icons icon-align pl-2">more_horiz</span></a>
</div>
@ -59,7 +61,6 @@
<button mat-menu-item (click)="viewVersions(dmp.groupId, dmp.label)">
<mat-icon>library_books</mat-icon>{{'DMP-LISTING.ACTIONS.VIEW-VERSION' | translate}}
</button>
<!-- <button mat-menu-item *ngIf="isDraftDmp(dmp) && isUserOwner(dmp)" (click)="deleteClicked()" class="menu-item"> -->
<button mat-menu-item *ngIf="isUserOwner(dmp) && !lockStatus" (click)="deleteClicked(dmp)" class="menu-item">
<mat-icon>delete</mat-icon>{{ 'DMP-LISTING.ACTIONS.DELETE' | translate }}
</button>

View File

@ -60,11 +60,14 @@ export class DmpListingItemComponent extends BaseComponent implements OnInit {
this.isDraft = false;
this.isFinalized = true;
this.isPublished = false;
this.checkLockStatus(this.dmp.id);
if (this.dmp.public == true) { this.isPublished = true }
}
}
public isAuthenticated(): boolean {
return !(!this.authentication.current());
}
checkLockStatus(id: string) {
this.lockService.checkLockStatus(id).pipe(takeUntil(this._destroyed))
.subscribe(lockStatus => this.lockStatus = lockStatus);
@ -131,6 +134,19 @@ export class DmpListingItemComponent extends BaseComponent implements OnInit {
}
}
isUserDMPRelated() {
const principal: Principal = this.authentication.current();
let isRelated: boolean = false;
if (this.dmp && principal) {
this.dmp.users.forEach(element => {
if (element.id === principal.id) {
isRelated = true;
}
})
}
return isRelated;
}
cloneClicked(dmp: DmpListingModel) {
this.router.navigate(['/plans/clone/' + dmp.id]);
}

View File

@ -16,8 +16,8 @@
<p class="ml-0 mr-2 mb-0 label2-txt">
{{ roleDisplayFromList(dmp.users) }}</p>
</div>
<span>.</span>
<div class="d-flex ml-2 mr-2">
<span *ngIf="isUserDMPRelated()" class="mr-2">.</span>
<div class="d-flex mr-2">
<div *ngIf="dmp.isPublic" class="d-flex flex-row">
<mat-icon class="status-icon">public</mat-icon>
{{'DMP-OVERVIEW.PUBLIC' | translate}}
@ -100,7 +100,7 @@
</div>
</div>
<div class="row mt-2 add-dataset-txt">
<button class="add-dataset-btn" *ngIf="isDraftDmp(dmp) && isUserOwner"
<button class="add-dataset-btn" *ngIf="isDraftDmp(dmp)"
(click)="addDataset(dmp.id)">
<mat-icon>add</mat-icon>
{{'DMP-LISTING.ACTIONS.ADD-DATASET-SHORT' | translate}}
@ -131,7 +131,7 @@
</div>
</div>
<div class="frame mb-3 pt-4 pl-3 pr-5 pb-1">
<div *ngIf="!dmp.status && isDraftDmp(dmp) && isUserOwner && !lockStatus">
<div *ngIf="isDraftDmp(dmp) && isUserOwner && !lockStatus">
<div class="row ml-0 mr-0 pl-4 d-flex align-items-center" (click)="finalize(dmp)">
<button mat-mini-fab class="finalize-btn">
<mat-icon class="mat-mini-fab-icon">check</mat-icon>
@ -149,7 +149,7 @@
</button>
<p class="mb-0 pl-2 frame-txt">{{ 'DMP-LISTING.ACTIONS.DEPOSIT' | translate }}</p>
</div>
<div *ngIf="(isFinalizedDmp(dmp) && hasDoi(dmp) && !isPublishedDMP(dmp)) && isUserOwner"
<div *ngIf="isFinalizedDmp(dmp) && hasDoi(dmp) && !isPublishedDMP(dmp) && isUserOwner"
(click)="reverse(dmp)" class="row ml-0 mr-0 pl-4 pb-3 d-flex align-items-center">
<button mat-mini-fab class="frame-btn">
<mat-icon class="mat-mini-fab-icon">unarchive</mat-icon>

View File

@ -191,7 +191,7 @@
letter-spacing: 0.009em;
color: #7d7d7d;
width: 12em;
height: 1em;
height: 1.2em;
overflow: hidden;
border: none;
padding: 0px;

View File

@ -66,25 +66,32 @@
<div class="row title-4">Translators</div>
</div>
<div class="card mt-3 flex-row">
<img class="col-4 flag" alt="Flag of Greece" src="../assets/img/flag-greece.png">
<div class="col-8 card-body" class="flex-column align-items-center">
<img class="col-4 flag" alt="Flag of Greece" src="../assets/img/flag-of-greece.png">
<div class="col-8 card-body pl-0" class="flex-column align-items-center">
<p class="card-text-1">Athena Research & Innovation Center</p>
<p class="card-text-2">Dimitra Aglamisi, Elli Papadopoulou</p>
</div>
</div>
<div class="card flex-row">
<img class="col-4 card-img" alt="Flag of Spain" src="../assets/img/NoPath - Copy (7).png">
<div class="col-8 card-body" class="flex-column align-items-center">
<img class="col-4 card-img" alt="Flag of Spain" src="../assets/img/flag-of-spain.png">
<div class="col-8 card-body pl-0" class="flex-column align-items-center">
<p class="card-text-1">Consorcio Madroño</p>
<p class="card-text-2">Lanko López, Juan Corrales Correyero, Fernando González Ballesteros</p>
</div>
</div>
<div class="card flex-row">
<img class="col-4 card-img" alt="Flag of Turkey" src="../assets/img/Image 82.png">
<div class="col-8 card-body" class="flex-column align-items-center">
<img class="col-4 card-img" alt="Flag of Turkey" src="../assets/img/flag-of-turkey.png">
<div class="col-8 card-body pl-0" class="flex-column align-items-center">
<p class="card-text-1">Turkish Higher Education Council Research Data and Open Data working group</p>
</div>
</div>
</div>
<div class="card flex-row">
<img class="col-4 flag" alt="Flag of Austria" src="../assets/img/flag-of-germany.png">
<div class="col-8 card-body pl-0" class="flex-column align-items-center">
<p class="card-text-1">UNIVERSITY OF VIENNA</p>
<p class="card-text-2">Gerda McNeill, Raman Ganguly, Mihaela Hubert</p>
</div>
</div>
</div>
</section>
<!-- Footer-->

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB