Merge branch 'Development'

This commit is contained in:
Diamantis Tziotzios 2019-11-26 11:41:02 +02:00
commit 3ada5a0d3d
15 changed files with 96 additions and 21 deletions

View File

@ -90,7 +90,12 @@ public class Funder implements DataModel<eu.eudat.data.entities.Funder, Funder>
this.status = entity.getStatus();
this.created = entity.getCreated();
this.modified = entity.getModified();
this.source = "Internal";
String source = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source.equals("dmp")) {
this.source = "Internal";
} else {
this.source = source;
}
return this;
}
@ -100,7 +105,15 @@ public class Funder implements DataModel<eu.eudat.data.entities.Funder, Funder>
entity.setId(this.id);
entity.setLabel(this.label);
entity.setType(this.type);
entity.setReference(this.reference == null ? "dmp:" + this.label : this.source.toLowerCase() + ":" + this.reference);
if (this.source != null && this.source.equals("Internal")) this.source = "dmp";
if (this.reference != null && !this.reference.trim().isEmpty()
&& this.source != null && !this.source.trim().isEmpty()) {
if (this.source.equals(this.reference.substring(0, this.source.length()))) {
entity.setReference(this.reference);
} else {
entity.setReference(this.source.toLowerCase() + ":" + this.reference);
}
}
entity.setDefinition(this.definition);
entity.setCreated(this.created == null ? new Date() : this.created);
entity.setStatus(this.status != null ? this.getStatus() : eu.eudat.data.entities.Grant.Status.ACTIVE.getValue());

View File

@ -177,7 +177,12 @@ public class Grant implements DataModel<eu.eudat.data.entities.Grant, Grant> {
this.files = entity.getContent() != null ? Arrays.asList(new ContentFile(entity.getContent().getLabel(), UUID.fromString(entity.getContent().getUri().split(":")[1]), "final", entity.getContent().getExtension())) : Arrays.asList(new ContentFile("default.png", null, null, null));
if (entity.getFunder() != null)
this.funderId = entity.getFunder().getId();
this.source = "Internal";
String source = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source.equals("dmp")) {
this.source = "Internal";
} else {
this.source = source;
}
return this;
}
@ -189,7 +194,15 @@ public class Grant implements DataModel<eu.eudat.data.entities.Grant, Grant> {
entity.setAbbreviation(this.abbreviation);
entity.setLabel(this.label);
entity.setType(this.type);
entity.setReference(this.reference == null ? "dmp:" + this.label : this.source.toLowerCase() + ":" + this.reference);
if (this.source != null && this.source.equals("Internal")) this.source = "dmp";
if (this.reference != null && !this.reference.trim().isEmpty()
&& this.source != null && !this.source.trim().isEmpty()) {
if (this.source.equals(this.reference.substring(0, this.source.length()))) {
entity.setReference(this.reference);
} else {
entity.setReference(this.source.toLowerCase() + ":" + this.reference);
}
}
entity.setUri(this.uri);
entity.setDefinition(this.definition);
entity.setStartdate(this.startDate);

View File

@ -165,7 +165,12 @@ public class Project implements DataModel<eu.eudat.data.entities.Project, Projec
this.modified = entity.getModified();
this.description = entity.getDescription();
this.files = entity.getContent() != null ? Arrays.asList(new ContentFile(entity.getContent().getLabel(), UUID.fromString(entity.getContent().getUri().split(":")[1]), "final", entity.getContent().getExtension())) : Arrays.asList(new ContentFile("default.png", null, null, null));
this.source = "Internal";
String source = entity.getReference().substring(0, entity.getReference().indexOf(":"));
if (source.equals("dmp")) {
this.source = "Internal";
} else {
this.source = source;
}
return this;
}
@ -176,7 +181,15 @@ public class Project implements DataModel<eu.eudat.data.entities.Project, Projec
entity.setAbbreviation(this.abbreviation);
entity.setLabel(this.label);
entity.setType(this.type);
entity.setReference(this.reference == null ? "dmp:" + this.label : this.source.toLowerCase() + ":" + this.reference);
if (this.source != null && this.source.equals("Internal")) this.source = "dmp";
if (this.reference != null && !this.reference.trim().isEmpty()
&& this.source != null && !this.source.trim().isEmpty()) {
if (this.source.equals(this.reference.substring(0, this.source.length()))) {
entity.setReference(this.reference);
} else {
entity.setReference(this.source.toLowerCase() + ":" + this.reference);
}
}
entity.setUri(this.uri);
entity.setDefinition(this.definition);
entity.setStartdate(this.startDate);

View File

@ -70,12 +70,17 @@
<!-- SAVE BUTTON -->
<div class="col-6 d-flex" *ngIf="!viewOnly">
<div class="row mt-4">
<button mat-raised-button class="col-auto mr-2" color="primary" type="button col-auto" (click)='onSubmit()' [disabled]="!form.valid">Save</button>
<button mat-raised-button class="col-auto" color="primary" type="button col-auto" (click)='finalize()' [disabled]="!form.valid">Finalize</button>
<button mat-raised-button class="col-auto mr-2" color="primary" type="button col-auto" (click)='onSubmit()' [disabled]="!form.valid">{{'DATASET-PROFILE-EDITOR.ACTIONS.SAVE' | translate}}</button>
<button mat-raised-button class="col-auto" color="primary" type="button col-auto" (click)='finalize()' [disabled]="!form.valid">{{'DATASET-PROFILE-EDITOR.ACTIONS.FINALIZE' | translate}}</button>
</div>
</div>
<!-- SAVE BUTTON WHEN FINALIZED-->
<div class="col-6 d-flex" *ngIf="showUpdateButton()">
<div class="row mt-4">
<button mat-raised-button class="col-auto mr-2" color="primary" type="button col-auto" (click)='updateFinalized()' [disabled]="!form.valid">{{'DATASET-PROFILE-EDITOR.ACTIONS.UPDATE' | translate}}</button>
</div>
</div>
<!-- DELETE BUTTON -->
<div class="col-6" *ngIf="viewOnly"></div>
<div class="col-6 d-flex justify-content-end" *ngIf="!isNew">
<div class="row mt-4">
<button mat-raised-button color="primary" (click)="delete()">

View File

@ -222,6 +222,18 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn
this.onSubmit();
}
updateFinalized() {
this.datasetProfileService.updateForm(this.datasetProfileId, this.form.getRawValue())
.pipe(takeUntil(this._destroyed))
.subscribe(() => {
this.router.navigate(['/dataset-profiles']);
});
}
showUpdateButton() {
return !this.isNew && this.dataModel.status === DatasetProfileEnum.FINALIZED;
}
isStepActive(step: number) {
return this.stepper && this.stepper.selectedIndex === step;
}

View File

@ -136,7 +136,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr
// this.availableProfiles = this.datasetWizardModel.dmp.profiles;
},
error => {
this.uiNotificationService.snackBarNotification(this.language.instant('DATASET-WIZARD.MESSAGES.DATAESET-NOT-FOUND'), SnackBarNotificationLevel.Error);
this.uiNotificationService.snackBarNotification(this.language.instant('DATASET-WIZARD.MESSAGES.DATASET-NOT-FOUND'), SnackBarNotificationLevel.Error);
this.router.navigate(['/datasets/edit/' + this.itemId]);
return observableOf(null);
});

View File

@ -22,6 +22,7 @@
<div *ngIf="isAuthenticated();else loginoption" class="col-auto">
<img mat-card-avatar *ngIf="this.principalHasAvatar()" [src]="this.getPrincipalAvatar()" (click)="openProfile()">
<img mat-card-avatar *ngIf="!this.principalHasAvatar()" [src]="this.getDefaultAvatar()" (click)="openProfile()">
</div>
<ng-template #loginoption>

View File

@ -92,13 +92,17 @@ export class NavigationComponent extends BaseComponent implements OnInit {
}
public principalHasAvatar(): boolean {
return this.authentication.current().avatarUrl != null;
return this.authentication.current().avatarUrl != null && this.authentication.current().avatarUrl.length > 0;
}
public getPrincipalAvatar(): string {
return this.authentication.current().avatarUrl;
}
public getDefaultAvatar(): string {
return 'assets/images/profile-placeholder.png';
}
openProfile() {
const dialogRef = this.dialog.open(UserDialogComponent, {
hasBackdrop: true,

View File

@ -2,8 +2,8 @@
<div mat-dialog-title>
<div class="row">
<div class="col-auto">
<img mat-card-avatar class="my-mat-card-avatar" *ngIf="this.principalHasAvatar()"
[src]="this.getPrincipalAvatar()">
<img mat-card-avatar class="my-mat-card-avatar" *ngIf="this.principalHasAvatar()" [src]="this.getPrincipalAvatar()">
<img mat-card-avatar class="my-mat-card-avatar" *ngIf="!this.principalHasAvatar()" [src]="this.getDefaultAvatar()">
</div>
<span class="user-label col">{{this.getPrincipalName()}}</span>
</div>

View File

@ -36,13 +36,17 @@ export class UserDialogComponent implements OnInit {
}
public principalHasAvatar(): boolean {
return this.authentication.current() && this.authentication.current().avatarUrl != null;
return this.authentication.current() && this.authentication.current().avatarUrl != null && this.authentication.current().avatarUrl.length > 0;
}
public getPrincipalAvatar(): string {
return this.authentication.current() && this.authentication.current().avatarUrl;
}
public getDefaultAvatar(): string {
return 'assets/images/profile-placeholder.png';
}
public navigateToProfile() {
this.dialogRef.close();
this.router.navigate(['/profile']);

View File

@ -54,8 +54,8 @@
<!-- Login -->
<li class="nav-item" *ngIf="isAuthenticated();else loginoption">
<img mat-card-avatar class="my-mat-card-avatar" *ngIf="this.principalHasAvatar()"
[src]="this.getPrincipalAvatar()" (click)="openProfile()">
<img mat-card-avatar class="my-mat-card-avatar" *ngIf="this.principalHasAvatar()" [src]="this.getPrincipalAvatar()" (click)="openProfile()">
<img mat-card-avatar class="my-mat-card-avatar" *ngIf="!this.principalHasAvatar()" [src]="this.getDefaultAvatar()" (click)="openProfile()">
</li>
<ng-template #loginoption>
<button mat-button [routerLink]=" ['/login'] ">

View File

@ -152,13 +152,17 @@ export class NavbarComponent extends BaseComponent implements OnInit {
}
public principalHasAvatar(): boolean {
return this.authentication.current().avatarUrl != null;
return this.authentication.current().avatarUrl != null && this.authentication.current().avatarUrl.length > 0;
}
public getPrincipalAvatar(): string {
return this.authentication.current().avatarUrl;
}
public getDefaultAvatar(): string {
return 'assets/images/profile-placeholder.png';
}
public isAdmin(): boolean {
if (!this.authentication.current()) { return false; }
const principalRoles = this.authentication.current().authorities;

View File

@ -29,8 +29,8 @@
<li class="nav-item">
<a class="nav-link" *ngIf="isAuthenticated();else loginoption">
<p style="display: flex; align-items: center;" [routerLink]=" ['/profile']">
<img mat-card-avatar class="my-mat-card-avatar" *ngIf="this.principalHasAvatar()"
[src]="this.getPrincipalAvatar()">
<img mat-card-avatar class="my-mat-card-avatar" *ngIf="this.principalHasAvatar()" [src]="this.getPrincipalAvatar()">
<img mat-card-avatar class="my-mat-card-avatar" *ngIf="!this.principalHasAvatar()" [src]="this.getDefaultAvatar()">
<span class="d-lg-none d-md-block">{{ 'SIDE-BAR.ACCOUNT' | translate }}</span>
</p>
</a>

View File

@ -146,13 +146,17 @@ export class SidebarComponent implements OnInit {
}
public principalHasAvatar(): boolean {
return this.authentication.current().avatarUrl != null;
return this.authentication.current().avatarUrl != null && this.authentication.current().avatarUrl.length > 0;
}
public getPrincipalAvatar(): string {
return this.authentication.current().avatarUrl;
}
public getDefaultAvatar(): string {
return 'assets/images/profile-placeholder.png';
}
public isAuthenticated(): boolean {
const myBollean = this.isAdmin();
return !(!this.authentication.current());

View File

@ -330,6 +330,8 @@
},
"ACTIONS": {
"SAVE": "Save",
"FINALIZE": "Finalize",
"UPDATE": "Update",
"CANCEL": "Cancel",
"DELETE": "Delete",
"ADD-PAGE": "Add Page +",
@ -453,7 +455,7 @@
"UPDATE-DATASET-PROFILE": "Update Template"
},
"MESSAGES": {
"DATAESET-NOT-FOUND": "Dataset Description does not exist",
"DATASET-NOT-FOUND": "Dataset Description does not exist",
"SUCCESS-UPDATE-DATASET-PROFILE": "Dataset Description Template updated successfully"
},
"UPLOAD": {