Merge branch 'Development' of https://gitlab.eudat.eu/dmp/OpenAIRE-EUDAT-DMP-service-pilot into Development
This commit is contained in:
commit
d617ad0bb1
|
@ -163,7 +163,6 @@ public class DMP implements Serializable,DataEntity<DMP> {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Set<UserInfo> getUsers() {
|
public Set<UserInfo> getUsers() {
|
||||||
return users;
|
return users;
|
||||||
}
|
}
|
||||||
|
@ -262,7 +261,7 @@ public class DMP implements Serializable,DataEntity<DMP> {
|
||||||
this.description = entity.getDescription();
|
this.description = entity.getDescription();
|
||||||
this.researchers = entity.getResearchers();
|
this.researchers = entity.getResearchers();
|
||||||
this.organisations = entity.getOrganisations();
|
this.organisations = entity.getOrganisations();
|
||||||
this.users = entity.getUsers();
|
if (entity.getUsers() != null) this.users = entity.getUsers();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -21,6 +21,7 @@ public class FieldSet implements DatabaseViewStyleDefinition,XmlSerializable<Fie
|
||||||
private String extendedDescription;
|
private String extendedDescription;
|
||||||
private Multiplicity multiplicity;
|
private Multiplicity multiplicity;
|
||||||
private boolean hasCommentField;
|
private boolean hasCommentField;
|
||||||
|
private String commentFieldValue;
|
||||||
public List<Field> getFields() {
|
public List<Field> getFields() {
|
||||||
return fields;
|
return fields;
|
||||||
}
|
}
|
||||||
|
@ -85,12 +86,19 @@ public class FieldSet implements DatabaseViewStyleDefinition,XmlSerializable<Fie
|
||||||
this.hasCommentField = hasCommentField;
|
this.hasCommentField = hasCommentField;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCommentFieldValue() {
|
||||||
|
return commentFieldValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCommentFieldValue(String commentFieldValue) {
|
||||||
|
this.commentFieldValue = commentFieldValue;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Element toXml(Document doc) {
|
public Element toXml(Document doc) {
|
||||||
Element fieldSet = doc.createElement("fieldSet");
|
Element fieldSet = doc.createElement("fieldSet");
|
||||||
fieldSet.setAttribute("id", this.id);
|
fieldSet.setAttribute("id", this.id);
|
||||||
fieldSet.setAttribute("ordinal", ""+this.ordinal);
|
fieldSet.setAttribute("ordinal", ""+this.ordinal);
|
||||||
fieldSet.setAttribute("hasCommentField",""+this.hasCommentField);
|
|
||||||
Element title = doc.createElement("title");
|
Element title = doc.createElement("title");
|
||||||
title.setTextContent(this.title);
|
title.setTextContent(this.title);
|
||||||
|
|
||||||
|
@ -104,12 +112,17 @@ public class FieldSet implements DatabaseViewStyleDefinition,XmlSerializable<Fie
|
||||||
multiplicity.setAttribute("min", ""+this.multiplicity.getMin());
|
multiplicity.setAttribute("min", ""+this.multiplicity.getMin());
|
||||||
multiplicity.setAttribute("max", ""+this.multiplicity.getMax());
|
multiplicity.setAttribute("max", ""+this.multiplicity.getMax());
|
||||||
|
|
||||||
|
Element commentField = doc.createElement("commentField");
|
||||||
|
commentField.setAttribute("hasCommentField",""+this.hasCommentField);
|
||||||
|
commentField.setAttribute("commentFieldValue",this.commentFieldValue);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Element fieldsElement = doc.createElement("fields");
|
Element fieldsElement = doc.createElement("fields");
|
||||||
for(Field field : fields){
|
for(Field field : fields){
|
||||||
fieldsElement.appendChild(field.toXml(doc));
|
fieldsElement.appendChild(field.toXml(doc));
|
||||||
}
|
}
|
||||||
|
fieldSet.appendChild(commentField);
|
||||||
fieldSet.appendChild(fieldsElement);
|
fieldSet.appendChild(fieldsElement);
|
||||||
fieldSet.appendChild(multiplicity);
|
fieldSet.appendChild(multiplicity);
|
||||||
fieldSet.appendChild(title);
|
fieldSet.appendChild(title);
|
||||||
|
@ -123,14 +136,15 @@ public class FieldSet implements DatabaseViewStyleDefinition,XmlSerializable<Fie
|
||||||
this.id = element.getAttribute("id");
|
this.id = element.getAttribute("id");
|
||||||
this.ordinal = Integer.parseInt(element.getAttribute("ordinal"));
|
this.ordinal = Integer.parseInt(element.getAttribute("ordinal"));
|
||||||
this.fields = new LinkedList();
|
this.fields = new LinkedList();
|
||||||
this.hasCommentField = Boolean.parseBoolean(element.getAttribute("hasCommentField"));
|
|
||||||
Element title = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "title");
|
Element title = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "title");
|
||||||
this.title = title.getTextContent();
|
this.title = title.getTextContent();
|
||||||
Element description = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "description");
|
Element description = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "description");
|
||||||
this.description = description.getTextContent();
|
this.description = description.getTextContent();
|
||||||
Element extendedDescription = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "extendedDescription");
|
Element extendedDescription = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "extendedDescription");
|
||||||
this.extendedDescription = extendedDescription.getTextContent();
|
this.extendedDescription = extendedDescription.getTextContent();
|
||||||
|
Element commentField = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "commentField");
|
||||||
|
this.hasCommentField = Boolean.parseBoolean(commentField.getAttribute("hasCommentField"));
|
||||||
|
this.commentFieldValue = commentField.getAttribute("commentFieldValue");
|
||||||
Element fields = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "fields");
|
Element fields = (Element)XmlBuilder.getNodeFromListByTagName(element.getChildNodes(), "fields");
|
||||||
|
|
||||||
if(fields!=null){
|
if(fields!=null){
|
||||||
|
|
|
@ -41,7 +41,8 @@ public class DataManagementPlanManager {
|
||||||
|
|
||||||
public eu.eudat.models.dmp.DataManagementPlan getSingle(DMPDao dmpsRepository, String id, Principal principal) throws InstantiationException, IllegalAccessException {
|
public eu.eudat.models.dmp.DataManagementPlan getSingle(DMPDao dmpsRepository, String id, Principal principal) throws InstantiationException, IllegalAccessException {
|
||||||
DMP dataManagementPlanEntity = dmpsRepository.find(UUID.fromString(id));
|
DMP dataManagementPlanEntity = dmpsRepository.find(UUID.fromString(id));
|
||||||
if(dataManagementPlanEntity.getUsers().stream().filter(userInfo -> userInfo.getId() == principal.getId()).collect(Collectors.toList()).size()==0)throw new UnauthorisedException();
|
if (dataManagementPlanEntity.getCreator().getId()!=principal.getId()&&dataManagementPlanEntity.getUsers().stream().filter(userInfo -> userInfo.getId() == principal.getId()).collect(Collectors.toList()).size() == 0)
|
||||||
|
throw new UnauthorisedException();
|
||||||
eu.eudat.models.dmp.DataManagementPlan datamanagementPlan = new eu.eudat.models.dmp.DataManagementPlan();
|
eu.eudat.models.dmp.DataManagementPlan datamanagementPlan = new eu.eudat.models.dmp.DataManagementPlan();
|
||||||
datamanagementPlan.fromDataModel(dataManagementPlanEntity);
|
datamanagementPlan.fromDataModel(dataManagementPlanEntity);
|
||||||
return datamanagementPlan;
|
return datamanagementPlan;
|
||||||
|
|
|
@ -22,6 +22,7 @@ public class FieldSet implements Comparable,PropertiesModelBuilder, ViewStyleDef
|
||||||
private List<Field> fields;
|
private List<Field> fields;
|
||||||
private List<FieldSet> multiplicityItems;
|
private List<FieldSet> multiplicityItems;
|
||||||
private boolean hasCommentField;
|
private boolean hasCommentField;
|
||||||
|
private String commentFieldValue;
|
||||||
public List<Field> getFields() {
|
public List<Field> getFields() {
|
||||||
Collections.sort(this.fields);
|
Collections.sort(this.fields);
|
||||||
return fields;
|
return fields;
|
||||||
|
@ -79,8 +80,6 @@ public class FieldSet implements Comparable,PropertiesModelBuilder, ViewStyleDef
|
||||||
this.multiplicity = multiplicity;
|
this.multiplicity = multiplicity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public List<FieldSet> getMultiplicityItems() {
|
public List<FieldSet> getMultiplicityItems() {
|
||||||
return multiplicityItems;
|
return multiplicityItems;
|
||||||
}
|
}
|
||||||
|
@ -93,12 +92,20 @@ public class FieldSet implements Comparable,PropertiesModelBuilder, ViewStyleDef
|
||||||
this.ordinal = ordinal;
|
this.ordinal = ordinal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setHasCommentField(boolean hasCommentField) {
|
||||||
|
this.hasCommentField = hasCommentField;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean getHasCommentField() {
|
public boolean getHasCommentField() {
|
||||||
return hasCommentField;
|
return hasCommentField;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHasCommentField(boolean hasCommentField) {
|
public String getCommentFieldValue() {
|
||||||
this.hasCommentField = hasCommentField;
|
return commentFieldValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCommentFieldValue(String commentFieldValue) {
|
||||||
|
this.commentFieldValue = commentFieldValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -109,6 +116,7 @@ public class FieldSet implements Comparable,PropertiesModelBuilder, ViewStyleDef
|
||||||
item.setOrdinal(this.ordinal);
|
item.setOrdinal(this.ordinal);
|
||||||
item.setHasCommentField(this.hasCommentField);
|
item.setHasCommentField(this.hasCommentField);
|
||||||
item.setMultiplicity(this.multiplicity);
|
item.setMultiplicity(this.multiplicity);
|
||||||
|
item.setCommentFieldValue(this.commentFieldValue);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,6 +130,7 @@ public class FieldSet implements Comparable,PropertiesModelBuilder, ViewStyleDef
|
||||||
this.extendedDescription = item.getExtendedDescription();
|
this.extendedDescription = item.getExtendedDescription();
|
||||||
this.hasCommentField = item.getHasCommentField();
|
this.hasCommentField = item.getHasCommentField();
|
||||||
this.multiplicity = item.getMultiplicity();
|
this.multiplicity = item.getMultiplicity();
|
||||||
|
this.commentFieldValue = item.getCommentFieldValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class LinkedInTokenValidator implements TokenValidator {
|
||||||
LinkedInProfile linkedInProfile = linkedInService.profileOperations().getUserProfile();
|
LinkedInProfile linkedInProfile = linkedInService.profileOperations().getUserProfile();
|
||||||
LoginProviderUser user = new LoginProviderUser();
|
LoginProviderUser user = new LoginProviderUser();
|
||||||
|
|
||||||
if (user.getEmail() == null) throw new UnauthorisedException("Cannot login user.LinkedIn account did not provide email");
|
if (linkedInProfile.getEmailAddress() == null) throw new UnauthorisedException("Cannot login user.LinkedIn account did not provide email");
|
||||||
user.setEmail(linkedInProfile.getEmailAddress());
|
user.setEmail(linkedInProfile.getEmailAddress());
|
||||||
user.setIsVerified(true); //TODO
|
user.setIsVerified(true); //TODO
|
||||||
user.setName(linkedInProfile.getFirstName() + " " + linkedInProfile.getLastName());
|
user.setName(linkedInProfile.getFirstName() + " " + linkedInProfile.getLastName());
|
||||||
|
|
|
@ -80,7 +80,7 @@ public class AuthenticationService {
|
||||||
credential.setCreationTime(new Date());
|
credential.setCreationTime(new Date());
|
||||||
credential.setStatus(1);
|
credential.setStatus(1);
|
||||||
credential.setLastUpdateTime(new Date());
|
credential.setLastUpdateTime(new Date());
|
||||||
credential.setProvider((int) TokenValidatorFactoryImpl.LoginProvider.FACEBOOK.getValue());
|
credential.setProvider((int) profile.getProvider().getValue());
|
||||||
credential.setSecret(profile.getSecret());
|
credential.setSecret(profile.getSecret());
|
||||||
if(userInfo == null) {
|
if(userInfo == null) {
|
||||||
userInfo = new UserInfo();
|
userInfo = new UserInfo();
|
||||||
|
|
|
@ -19,7 +19,7 @@ configuration.externalUrls = file:///C:\\Users\\ikalyvas\\Documents\\Projects\\O
|
||||||
spring.mail.default-encoding=UTF-8
|
spring.mail.default-encoding=UTF-8
|
||||||
spring.mail.host=smtp.gmail.com
|
spring.mail.host=smtp.gmail.com
|
||||||
spring.mail.username=kalivasioan@gmail.com
|
spring.mail.username=kalivasioan@gmail.com
|
||||||
spring.mail.password=A3b*1*92
|
spring.mail.password=A3b*1*92giannis
|
||||||
spring.mail.port=587
|
spring.mail.port=587
|
||||||
spring.mail.protocol=smtp
|
spring.mail.protocol=smtp
|
||||||
spring.mail.test-connection=false
|
spring.mail.test-connection=false
|
||||||
|
@ -38,7 +38,7 @@ google.login.clientId = 524432312250-sc9qsmtmbvlv05r44onl6l93ia3k9deo.apps.googl
|
||||||
########################LINKEDIN LOGIN Properties#############################HiR4hQH9HNubKC5iKQy0l4mAZ
|
########################LINKEDIN LOGIN Properties#############################HiR4hQH9HNubKC5iKQy0l4mAZ
|
||||||
linkedin.login.clientId = 86bl8vfk77clh9
|
linkedin.login.clientId = 86bl8vfk77clh9
|
||||||
linkedin.login.clientSecret = 2OCO9e3wKylW05Tt
|
linkedin.login.clientSecret = 2OCO9e3wKylW05Tt
|
||||||
linkedin.login.redirect_uri = 2OCO9e3wKylW05Tt
|
linkedin.login.redirect_uri = http://localhost:4200/login/linkedin
|
||||||
|
|
||||||
########################LINKEDIN LOGIN Properties#############################
|
########################LINKEDIN LOGIN Properties#############################
|
||||||
twitter.login.clientId = HiR4hQH9HNubKC5iKQy0l4mAZ
|
twitter.login.clientId = HiR4hQH9HNubKC5iKQy0l4mAZ
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
<mat-step [stepControl]="formGroup">
|
<mat-step [stepControl]="formGroup">
|
||||||
<form *ngIf="formGroup" [formGroup]="formGroup">
|
<form *ngIf="formGroup" [formGroup]="formGroup">
|
||||||
<ng-template matStepLabel>{{'DATASET-WIZARD.FIRST-STEP.TITLE' | translate}}</ng-template>
|
<ng-template matStepLabel>{{'DATASET-WIZARD.FIRST-STEP.TITLE' | translate}}</ng-template>
|
||||||
<auto-complete class="full-width" placeholder="{{'DATASET-WIZARD.FIRST-STEP.DMP' | translate}}" [configuration]="dmpAutoCompleteConfiguration"
|
<auto-complete class="mat-form-field-full-width" placeholder="{{'DATASET-WIZARD.FIRST-STEP.DMP' | translate}}" [configuration]="dmpAutoCompleteConfiguration"
|
||||||
titleKey="label" [control]="formGroup.get('dmp')" [required]="true">
|
titleKey="label" [control]="formGroup.get('dmp')" [required]="true">
|
||||||
</auto-complete>
|
</auto-complete>
|
||||||
<auto-complete class="full-width" placeholder="{{'DATASET-WIZARD.FIRST-STEP.PROFILE' | translate}}" [configuration]="datasetProfileAutoCompleteConfiguration"
|
<auto-complete class="mat-form-field-full-width" placeholder="{{'DATASET-WIZARD.FIRST-STEP.PROFILE' | translate}}" [configuration]="datasetProfileAutoCompleteConfiguration"
|
||||||
titleKey="label" [control]="formGroup.get('profile')" [required]="true" [disabled]="!formGroup.get('dmp').value">
|
titleKey="label" [control]="formGroup.get('profile')" [required]="true" [disabled]="!formGroup.get('dmp').value">
|
||||||
</auto-complete>
|
</auto-complete>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -11,10 +11,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.data-management-plan-editor {
|
.data-management-plan-editor {
|
||||||
|
.mat-form-field-full-width{
|
||||||
mat-form-field {
|
mat-form-field {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.mat-card {
|
.mat-card {
|
||||||
margin: 16px 0;
|
margin: 16px 0;
|
||||||
|
|
|
@ -3,8 +3,9 @@
|
||||||
|
|
||||||
<app-datasets-criteria-component></app-datasets-criteria-component>
|
<app-datasets-criteria-component></app-datasets-criteria-component>
|
||||||
<mat-card class="mat-card">
|
<mat-card class="mat-card">
|
||||||
|
<mat-card-header>
|
||||||
<mat-progress-bar *ngIf="dataSource?.isLoadingResults" mode="query"></mat-progress-bar>
|
<mat-progress-bar *ngIf="dataSource?.isLoadingResults" mode="query"></mat-progress-bar>
|
||||||
|
</mat-card-header>
|
||||||
<mat-table [dataSource]="dataSource" matSort>
|
<mat-table [dataSource]="dataSource" matSort>
|
||||||
|
|
||||||
<!-- Column Definition: Name -->
|
<!-- Column Definition: Name -->
|
||||||
|
|
|
@ -2,10 +2,6 @@
|
||||||
margin: 24px;
|
margin: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mat-progress-bar {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-fab-bottom-right {
|
.mat-fab-bottom-right {
|
||||||
top: auto !important;
|
top: auto !important;
|
||||||
right: 20px !important;
|
right: 20px !important;
|
||||||
|
|
|
@ -5,14 +5,14 @@
|
||||||
<mat-card-title *ngIf="!isNew">{{'DATASET-EDITOR.TITLE.EDIT' | translate}} {{dataset.label}}</mat-card-title>
|
<mat-card-title *ngIf="!isNew">{{'DATASET-EDITOR.TITLE.EDIT' | translate}} {{dataset.label}}</mat-card-title>
|
||||||
<mat-card-content>
|
<mat-card-content>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field class="full-width">
|
||||||
<input matInput placeholder="{{'DATASET-EDITOR.FIELDS.NAME' | translate}}" type="text" name="label" formControlName="label"
|
<input matInput placeholder="{{'DATASET-EDITOR.FIELDS.NAME' | translate}}" type="text" name="label" formControlName="label"
|
||||||
required>
|
required>
|
||||||
<mat-error *ngIf="formGroup.get('label').errors?.backendError">{{baseErrorModel.label}}</mat-error>
|
<mat-error *ngIf="formGroup.get('label').errors?.backendError">{{baseErrorModel.label}}</mat-error>
|
||||||
<mat-error *ngIf="formGroup.get('label').errors?.required">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
<mat-error *ngIf="formGroup.get('label').errors?.required">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field class="full-width">
|
||||||
<input matInput placeholder="{{'DATASET-EDITOR.FIELDS.URI' | translate}}" type="text" name="uri" formControlName="uri" required>
|
<input matInput placeholder="{{'DATASET-EDITOR.FIELDS.URI' | translate}}" type="text" name="uri" formControlName="uri" required>
|
||||||
<mat-error *ngIf="formGroup.get('uri').errors?.backendError">{{baseErrorModel.uri}}</mat-error>
|
<mat-error *ngIf="formGroup.get('uri').errors?.backendError">{{baseErrorModel.uri}}</mat-error>
|
||||||
<mat-error *ngIf="formGroup.get('uri').errors?.required">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
<mat-error *ngIf="formGroup.get('uri').errors?.required">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
|
|
|
@ -11,10 +11,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.project-editor {
|
.project-editor {
|
||||||
|
.mat-form-field-full-width{
|
||||||
mat-form-field {
|
mat-form-field {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.mat-card {
|
.mat-card {
|
||||||
margin: 16px 0;
|
margin: 16px 0;
|
|
@ -18,7 +18,7 @@ import { ExternalSourcesItemModel } from "../../models/external-sources/External
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-dataset-editor-component',
|
selector: 'app-dataset-editor-component',
|
||||||
templateUrl: 'dataset-editor.component.html',
|
templateUrl: 'dataset-editor.component.html',
|
||||||
styleUrls: ['./dataset-editor.component.css'],
|
styleUrls: ['./dataset-editor.component.scss'],
|
||||||
providers: [DatasetService, ExternalSourcesService],
|
providers: [DatasetService, ExternalSourcesService],
|
||||||
encapsulation: ViewEncapsulation.None
|
encapsulation: ViewEncapsulation.None
|
||||||
})
|
})
|
||||||
|
|
|
@ -3,8 +3,9 @@
|
||||||
|
|
||||||
<app-dmp-criteria-component></app-dmp-criteria-component>
|
<app-dmp-criteria-component></app-dmp-criteria-component>
|
||||||
<mat-card class="mat-card">
|
<mat-card class="mat-card">
|
||||||
|
<mat-card-header>
|
||||||
<mat-progress-bar *ngIf="dataSource?.isLoadingResults" mode="query"></mat-progress-bar>
|
<mat-progress-bar *ngIf="dataSource?.isLoadingResults" mode="query"></mat-progress-bar>
|
||||||
|
</mat-card-header>
|
||||||
<mat-table [dataSource]="dataSource" matSort>
|
<mat-table [dataSource]="dataSource" matSort>
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,7 +50,7 @@
|
||||||
<mat-cell *matCellDef="let row">
|
<mat-cell *matCellDef="let row">
|
||||||
<mat-menu #actionsMenu="matMenu">
|
<mat-menu #actionsMenu="matMenu">
|
||||||
<button mat-menu-item (click)="rowClick(row.id)"><mat-icon>mode_edit</mat-icon>{{'DMP-LISTING.ACTIONS.EDIT' | translate}}</button>
|
<button mat-menu-item (click)="rowClick(row.id)"><mat-icon>mode_edit</mat-icon>{{'DMP-LISTING.ACTIONS.EDIT' | translate}}</button>
|
||||||
<button mat-menu-item (click)="openShareDialog(row.id)"><mat-icon>insert_invitation</mat-icon>{{'DMP-LISTING.ACTIONS.INVITE' | translate}}</button>
|
<button mat-menu-item (click)="openShareDialog(row.id,row.label)"><mat-icon>insert_invitation</mat-icon>{{'DMP-LISTING.ACTIONS.INVITE' | translate}}</button>
|
||||||
</mat-menu>
|
</mat-menu>
|
||||||
<button mat-icon-button [matMenuTriggerFor]="actionsMenu">
|
<button mat-icon-button [matMenuTriggerFor]="actionsMenu">
|
||||||
<mat-icon>more_vert</mat-icon>
|
<mat-icon>more_vert</mat-icon>
|
||||||
|
|
|
@ -2,10 +2,6 @@
|
||||||
margin: 24px;
|
margin: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mat-progress-bar {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-fab-bottom-right {
|
.mat-fab-bottom-right {
|
||||||
top: auto !important;
|
top: auto !important;
|
||||||
right: 20px !important;
|
right: 20px !important;
|
||||||
|
|
|
@ -58,12 +58,13 @@ export class DataManagementPlanListingComponent implements OnInit {
|
||||||
return defaultCriteria;
|
return defaultCriteria;
|
||||||
}
|
}
|
||||||
|
|
||||||
openShareDialog(rowId: any) {
|
openShareDialog(rowId: any, rowName: any) {
|
||||||
let dialogRef = this.dialog.open(InvitationComponent, {
|
let dialogRef = this.dialog.open(InvitationComponent, {
|
||||||
height: '200px',
|
height: '200px',
|
||||||
width: '700px',
|
width: '700px',
|
||||||
data: {
|
data: {
|
||||||
dmpId: rowId
|
dmpId: rowId,
|
||||||
|
dmpName: rowName
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<mat-card-title *ngIf="!isNew">{{formGroup.get('label').value}}</mat-card-title>
|
<mat-card-title *ngIf="!isNew">{{formGroup.get('label').value}}</mat-card-title>
|
||||||
<mat-card-content>
|
<mat-card-content>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field class="full-width">
|
||||||
<input matInput placeholder="{{'DMP-EDITOR.FIELDS.NAME' | translate}}" type="text" name="label" formControlName="label" required>
|
<input matInput placeholder="{{'DMP-EDITOR.FIELDS.NAME' | translate}}" type="text" name="label" formControlName="label" required>
|
||||||
<mat-error *ngIf="formGroup.get('label').errors?.backendError">{{baseErrorModel.label}}</mat-error>
|
<mat-error *ngIf="formGroup.get('label').errors?.backendError">{{baseErrorModel.label}}</mat-error>
|
||||||
<mat-error *ngIf="formGroup.get('label').errors?.required">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
<mat-error *ngIf="formGroup.get('label').errors?.required">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
<mat-error *ngIf="formGroup.get('description').errors?.required">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
<mat-error *ngIf="formGroup.get('description').errors?.required">{{'GENERAL.VALIDATION.REQUIRED' | translate}}</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<auto-complete class="full-width" placeholder="{{'DMP-EDITOR.FIELDS.PROJECT' | translate}}"
|
<auto-complete class="mat-form-field-full-width" placeholder="{{'DMP-EDITOR.FIELDS.PROJECT' | translate}}"
|
||||||
[configuration]="projectAutoCompleteConfiguration"
|
[configuration]="projectAutoCompleteConfiguration"
|
||||||
titleKey="label"
|
titleKey="label"
|
||||||
[control]="formGroup.get('project')"
|
[control]="formGroup.get('project')"
|
||||||
|
|
|
@ -11,10 +11,14 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.data-management-plan-editor {
|
.data-management-plan-editor {
|
||||||
|
|
||||||
|
.mat-form-field-full-width{
|
||||||
mat-form-field {
|
mat-form-field {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.mat-card {
|
.mat-card {
|
||||||
margin: 16px 0;
|
margin: 16px 0;
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
<div>
|
<form *ngIf="formGroup" [formGroup]="formGroup">
|
||||||
<form *ngIf="formGroup" (ngSubmit)="formSubmit()" [formGroup]="formGroup">
|
<h1 mat-dialog-title>{{'INVITATION-EDITOR.TITLE' | translate}} {{data.dmpName}}</h1>
|
||||||
<td-chips color="accent" [items]="filteredUsers" formControlName="users" placeholder="{{'INVITATION-EDITOR.TITLE' | translate}}"
|
<div mat-dialog-content>
|
||||||
(inputChange)="filterUsers($event)" [requireMatch]="false">
|
<td-chips color="accent" [items]="filteredUsers" formControlName="users" placeholder="{{'INVITATION-EDITOR.AUTOCOMPLETE-TITLE' | translate}}"
|
||||||
|
(inputChange)="filterUsers($event)" requireMatch>
|
||||||
<ng-template td-chip let-chip="chip">
|
<ng-template td-chip let-chip="chip">
|
||||||
<div class="tc-grey-100 bgc-teal-700" td-chip-avatar>{{chip.name.substring(0, 1).toUpperCase()}}</div>
|
<div class="tc-grey-100 bgc-teal-700" td-chip-avatar>{{chip.name.substring(0, 1).toUpperCase()}}</div>
|
||||||
{{chip.name}}
|
{{chip.name}}
|
||||||
|
@ -13,6 +14,10 @@
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<mat-progress-bar [style.height.px]="2" *ngIf="filteredUsersAsync" mode="indeterminate"></mat-progress-bar>
|
<mat-progress-bar [style.height.px]="2" *ngIf="filteredUsersAsync" mode="indeterminate"></mat-progress-bar>
|
||||||
</td-chips>
|
</td-chips>
|
||||||
<button mat-raised-button color="primary" (click)="send()" type="button">{{'INVITATION-EDITOR.ACTIONS.SEND-INVITATION' | translate}}</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div mat-dialog-actions>
|
||||||
|
<div layout="row" class="full-width text-right" align="end">
|
||||||
|
<button mat-raised-button color="primary" (click)="send()" type="button">{{'INVITATION-EDITOR.ACTIONS.SEND-INVITATION' | translate}}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
|
@ -3,7 +3,9 @@
|
||||||
|
|
||||||
<app-projects-criteria-component></app-projects-criteria-component>
|
<app-projects-criteria-component></app-projects-criteria-component>
|
||||||
<mat-card class="mat-card">
|
<mat-card class="mat-card">
|
||||||
|
<mat-card-header>
|
||||||
<mat-progress-bar *ngIf="dataSource?.isLoadingResults" mode="query"></mat-progress-bar>
|
<mat-progress-bar *ngIf="dataSource?.isLoadingResults" mode="query"></mat-progress-bar>
|
||||||
|
</mat-card-header>
|
||||||
|
|
||||||
<mat-table [dataSource]="dataSource" matSort>
|
<mat-table [dataSource]="dataSource" matSort>
|
||||||
|
|
||||||
|
@ -41,9 +43,7 @@
|
||||||
<mat-row *matRowDef="let row; columns: displayedColumns" (click)="rowClick(row.id)"></mat-row>
|
<mat-row *matRowDef="let row; columns: displayedColumns" (click)="rowClick(row.id)"></mat-row>
|
||||||
|
|
||||||
</mat-table>
|
</mat-table>
|
||||||
<mat-paginator #paginator
|
<mat-paginator #paginator [length]="dataSource?.totalCount" [pageSizeOptions]="[10, 25, 100]">
|
||||||
[length]="dataSource?.totalCount"
|
|
||||||
[pageSizeOptions]="[10, 25, 100]">
|
|
||||||
</mat-paginator>
|
</mat-paginator>
|
||||||
</mat-card>
|
</mat-card>
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,6 @@
|
||||||
margin: 24px;
|
margin: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mat-progress-bar {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mat-fab-bottom-right {
|
.mat-fab-bottom-right {
|
||||||
top: auto !important;
|
top: auto !important;
|
||||||
|
|
|
@ -159,7 +159,8 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"INVITATION-EDITOR": {
|
"INVITATION-EDITOR": {
|
||||||
"TITLE": "User/Email",
|
"TITLE": "Send Invitations for ",
|
||||||
|
"AUTOCOMPLETE-TITLE": "User/Email",
|
||||||
"ACTIONS": {
|
"ACTIONS": {
|
||||||
"SEND-INVITATION": "Send Invitations",
|
"SEND-INVITATION": "Send Invitations",
|
||||||
"CANCEL": "Cancel"
|
"CANCEL": "Cancel"
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue