Merge branch 'ui-refactoring' of https://gitlab.eudat.eu/dmp/OpenAIRE-EUDAT-DMP-service-pilot into ui-refactoring
This commit is contained in:
commit
aedc23a037
|
@ -4,6 +4,7 @@ import eu.eudat.data.entities.Organisation;
|
|||
|
||||
public class OrganisationCriteria extends Criteria<Organisation> {
|
||||
private String labelLike;
|
||||
private Boolean isPublic;
|
||||
|
||||
public String getLabelLike() {
|
||||
return labelLike;
|
||||
|
@ -11,4 +12,11 @@ public class OrganisationCriteria extends Criteria<Organisation> {
|
|||
public void setLabelLike(String labelLike) {
|
||||
this.labelLike = labelLike;
|
||||
}
|
||||
|
||||
public Boolean getPublic() {
|
||||
return isPublic;
|
||||
}
|
||||
public void setPublic(Boolean aPublic) {
|
||||
isPublic = aPublic;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,11 +10,11 @@ public class ProjectCriteria extends Criteria<Project> {
|
|||
private Date periodEnd;
|
||||
private String reference;
|
||||
private Integer projectStateType;
|
||||
private boolean isPublic;
|
||||
|
||||
public Date getPeriodStart() {
|
||||
return periodStart;
|
||||
}
|
||||
|
||||
public void setPeriodStart(Date periodStart) {
|
||||
this.periodStart = periodStart;
|
||||
}
|
||||
|
@ -22,7 +22,6 @@ public class ProjectCriteria extends Criteria<Project> {
|
|||
public Date getPeriodEnd() {
|
||||
return periodEnd;
|
||||
}
|
||||
|
||||
public void setPeriodEnd(Date periodEnd) {
|
||||
this.periodEnd = periodEnd;
|
||||
}
|
||||
|
@ -30,7 +29,6 @@ public class ProjectCriteria extends Criteria<Project> {
|
|||
public String getReference() {
|
||||
return reference;
|
||||
}
|
||||
|
||||
public void setReference(String reference) {
|
||||
this.reference = reference;
|
||||
}
|
||||
|
@ -38,8 +36,14 @@ public class ProjectCriteria extends Criteria<Project> {
|
|||
public Integer getProjectStateType() {
|
||||
return projectStateType;
|
||||
}
|
||||
|
||||
public void setProjectStateType(Integer projectStateType) {
|
||||
this.projectStateType = projectStateType;
|
||||
}
|
||||
|
||||
public boolean isPublic() {
|
||||
return isPublic;
|
||||
}
|
||||
public void setPublic(boolean aPublic) {
|
||||
isPublic = aPublic;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@ public class DMPDaoImpl extends DatabaseAccess<DMP> implements DMPDao {
|
|||
}
|
||||
|
||||
public QueryableList<DMP> getAuthenticated(QueryableList<DMP> query, UUID principal) {
|
||||
query.where((builder, root) -> builder.or(builder.equal(root.get("creator").get("id"), principal), builder.equal(root.join("users", JoinType.LEFT).get("id"), principal)));
|
||||
query.where((builder, root) -> builder.equal(root.join("users", JoinType.LEFT).join("user").get("id"), principal));
|
||||
return query;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package eu.eudat.data.dao.entities;
|
|||
import eu.eudat.data.dao.DatabaseAccess;
|
||||
import eu.eudat.data.dao.criteria.OrganisationCriteria;
|
||||
import eu.eudat.data.dao.databaselayer.service.DatabaseService;
|
||||
import eu.eudat.data.entities.DMP;
|
||||
import eu.eudat.data.entities.Organisation;
|
||||
import eu.eudat.data.entities.UserInfo;
|
||||
import eu.eudat.queryable.QueryableList;
|
||||
|
@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.persistence.criteria.JoinType;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
|
@ -29,6 +31,9 @@ public class OrganisationDaoImpl extends DatabaseAccess<Organisation> implements
|
|||
if (criteria.getLabelLike() != null) {
|
||||
query.where((builder, root) -> builder.like(builder.upper(root.get("label")), "%" + criteria.getLabelLike().toUpperCase() + "%"));
|
||||
}
|
||||
if (criteria.getPublic()) {
|
||||
query.where((builder, root) -> builder.equal(root.join("dmps", JoinType.LEFT).get("status"), DMP.DMPStatus.FINALISED.getValue()));
|
||||
}
|
||||
return query;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package eu.eudat.data.dao.entities;
|
|||
import eu.eudat.data.dao.DatabaseAccess;
|
||||
import eu.eudat.data.dao.criteria.ProjectCriteria;
|
||||
import eu.eudat.data.dao.databaselayer.service.DatabaseService;
|
||||
import eu.eudat.data.entities.DMP;
|
||||
import eu.eudat.data.entities.Project;
|
||||
import eu.eudat.data.entities.UserInfo;
|
||||
import eu.eudat.queryable.QueryableList;
|
||||
|
@ -45,6 +46,9 @@ public class ProjectDaoImpl extends DatabaseAccess<Project> implements ProjectDa
|
|||
builder.or(builder.greaterThan(root.get("enddate"), new Date())
|
||||
, builder.isNull(root.get("enddate"))));
|
||||
}
|
||||
if (criteria.isPublic()) {
|
||||
query.where((builder, root) -> builder.equal(root.join("dmps").get("status"), DMP.DMPStatus.FINALISED.getValue())).distinct();
|
||||
}
|
||||
query.where((builder, root) -> builder.notEqual(root.get("status"), Project.Status.DELETED.getValue()));
|
||||
return query;
|
||||
}
|
||||
|
|
|
@ -51,5 +51,12 @@ public class Organisations extends BaseController {
|
|||
DataTableData<Organisation> organisationDataTableData = this.organisationsManager.getPagedOrganisations(organisationsTableRequest, principal);
|
||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataTableData<Organisation>>().payload(organisationDataTableData).status(ApiMessageCode.NO_MESSAGE));
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, value = {"/public/organisations"}, produces = "application/json")
|
||||
public @ResponseBody
|
||||
ResponseEntity<ResponseItem<DataTableData<Organisation>>> getPublicPaged(@Valid @RequestBody OrganisationsTableRequest organisationsTableRequest) throws Exception{
|
||||
DataTableData<Organisation> organisationDataTableData = this.organisationsManager.getPublicPagedOrganisations(organisationsTableRequest);
|
||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataTableData<Organisation>>().payload(organisationDataTableData).status(ApiMessageCode.NO_MESSAGE));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,16 +2,22 @@ package eu.eudat.logic.managers;
|
|||
|
||||
import eu.eudat.data.dao.criteria.OrganisationCriteria;
|
||||
import eu.eudat.data.dao.entities.OrganisationDao;
|
||||
import eu.eudat.data.entities.DMP;
|
||||
import eu.eudat.data.query.items.table.dmp.DataManagmentPlanPublicTableRequest;
|
||||
import eu.eudat.data.query.items.table.organisations.OrganisationsTableRequest;
|
||||
import eu.eudat.logic.services.ApiContext;
|
||||
import eu.eudat.logic.services.operations.DatabaseRepository;
|
||||
import eu.eudat.models.HintedModelFactory;
|
||||
import eu.eudat.models.data.dmp.Organisation;
|
||||
import eu.eudat.models.data.helpers.common.DataTableData;
|
||||
import eu.eudat.models.data.listingmodels.DataManagementPlanListingModel;
|
||||
import eu.eudat.models.data.security.Principal;
|
||||
import eu.eudat.queryable.QueryableList;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -40,6 +46,22 @@ public class OrganisationsManager {
|
|||
DataTableData<Organisation> organisationDataTableData = new DataTableData<>();
|
||||
organisationDataTableData.setData(org);
|
||||
organisationDataTableData.setTotalCount(pagedItems.count());
|
||||
|
||||
return organisationDataTableData;
|
||||
}
|
||||
|
||||
public DataTableData<Organisation> getPublicPagedOrganisations(OrganisationsTableRequest organisationsTableRequest) throws Exception {
|
||||
organisationsTableRequest.getCriteria().setPublic(true);
|
||||
OrganisationDao organisationDao = databaseRepository.getOrganisationDao();
|
||||
|
||||
QueryableList<eu.eudat.data.entities.Organisation> items = organisationDao.getWithCriteria(organisationsTableRequest.getCriteria());
|
||||
QueryableList<eu.eudat.data.entities.Organisation> pagedItems = PaginationManager.applyPaging(items, organisationsTableRequest);
|
||||
|
||||
List<Organisation> org = pagedItems.toList().stream().distinct().map(item -> new Organisation().fromDataModel(item)).collect(Collectors.toList());
|
||||
DataTableData<Organisation> organisationDataTableData = new DataTableData<>();
|
||||
organisationDataTableData.setData(org);
|
||||
organisationDataTableData.setTotalCount(pagedItems.count());
|
||||
|
||||
return organisationDataTableData;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,6 +90,7 @@ public class ProjectManager {
|
|||
|
||||
public DataTableData<eu.eudat.models.data.project.ProjectListingModel> getPublicPaged(ProjectTableRequest projectTableRequest) throws Exception {
|
||||
ProjectDao projectRepository = databaseRepository.getProjectDao();
|
||||
projectTableRequest.getCriteria().setPublic(true);
|
||||
QueryableList<eu.eudat.data.entities.Project> items = projectRepository.getWithCriteria(projectTableRequest.getCriteria());
|
||||
QueryableList<eu.eudat.data.entities.Project> pagedItems = PaginationManager.applyPaging(items, projectTableRequest);
|
||||
DataTableData<eu.eudat.models.data.project.ProjectListingModel> dataTable = new DataTableData<>();
|
||||
|
|
|
@ -35,6 +35,7 @@ public class DataManagementPlanListingModel implements DataModel<DMP, DataManage
|
|||
private List<UserInfoListingModel> users;
|
||||
private String description;
|
||||
private String projectAbbreviation;
|
||||
private String projectId;
|
||||
|
||||
|
||||
public String getId() {
|
||||
|
@ -142,6 +143,13 @@ public class DataManagementPlanListingModel implements DataModel<DMP, DataManage
|
|||
this.projectAbbreviation = projectAbbreviation;
|
||||
}
|
||||
|
||||
public String getProjectId() {
|
||||
return projectId;
|
||||
}
|
||||
public void setProjectId(String projectId) {
|
||||
this.projectId = projectId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataManagementPlanListingModel fromDataModel(DMP entity) {
|
||||
this.id = entity.getId().toString();
|
||||
|
@ -163,6 +171,7 @@ public class DataManagementPlanListingModel implements DataModel<DMP, DataManage
|
|||
this.users = entity.getUsers().stream().map(x -> new UserInfoListingModel().fromDataModel(x)).collect(Collectors.toList());
|
||||
this.description = entity.getDescription();
|
||||
this.projectAbbreviation = entity.getProject().getAbbreviation();
|
||||
this.projectId = entity.getProject().getId().toString();
|
||||
|
||||
if (entity.getAssociatedDmps() != null && !entity.getAssociatedDmps().isEmpty()) {
|
||||
Document viewStyleDoc = XmlBuilder.fromXml(entity.getAssociatedDmps());
|
||||
|
|
|
@ -6,7 +6,8 @@ export interface DmpListingModel {
|
|||
description: String;
|
||||
status: DmpStatus;
|
||||
project: String;
|
||||
projectabbreviation: String;
|
||||
projectId: String;
|
||||
projectAbbreviation: String;
|
||||
profile: String;
|
||||
creationTime: String;
|
||||
modifiedTime: String;
|
||||
|
|
|
@ -63,7 +63,7 @@ export class ExternalSourcesService {
|
|||
|
||||
public searchDMPOrganizations(like: string): Observable<ExternalSourceItemModel[]> {
|
||||
return this.http.get<ExternalSourceItemModel[]>(this.actionUrl + 'organisations' + '?query=' + like, { headers: this.headers });
|
||||
}//organizationscriteria.criteria.like
|
||||
}
|
||||
|
||||
// TODO: currently not used.
|
||||
public searchDMPProfiles(like: string): Observable<ExternalSourceItemModel[]> {
|
||||
|
|
|
@ -26,4 +26,8 @@ export class OrganisationService {
|
|||
public searchInternalOrganisations(dataTableRequest: DataTableRequest<OrganisationCriteria>): Observable<DataTableData<OrganizationModel>> {
|
||||
return this.http.post<DataTableData<OrganizationModel>>(this.actionUrl + 'internal/organisations', dataTableRequest , { headers: this.headers });
|
||||
}
|
||||
|
||||
public searchPublicOrganisations(dataTableRequest: DataTableRequest<OrganisationCriteria>): Observable<DataTableData<OrganizationModel>> {
|
||||
return this.http.post<DataTableData<OrganizationModel>>(this.actionUrl + 'public/organisations', dataTableRequest , { headers: this.headers });
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
placeholder="{{'CRITERIA.DATA-SETS.SELECT-DMP' | translate }}"
|
||||
[configuration]="dmpAutoCompleteConfiguration">
|
||||
</app-multiple-auto-complete>
|
||||
<mat-icon matSuffix class="style-icon">arrow_drop_down</mat-icon>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<!-- End of Related DMP Filters -->
|
||||
|
@ -43,6 +44,7 @@
|
|||
placeholder="{{'CRITERIA.DATA-SETS.SELECT-PROJECTS' | translate }}"
|
||||
[configuration]="projectAutoCompleteConfiguration">
|
||||
</app-multiple-auto-complete>
|
||||
<mat-icon matSuffix class="style-icon">arrow_drop_down</mat-icon>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<!-- End of Related Projects Filters -->
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="main-content">
|
||||
<div class="container-fluid">
|
||||
<div class="card">
|
||||
<div class="card-header card-header-blue d-flex">
|
||||
<div class="card-header card-header-plain d-flex">
|
||||
<div class="card-desc d-flex flex-column justify-content-center">
|
||||
<h4 class="card-title">{{'DASHBOARD.DATASETS' | translate}} {{titlePrefix}}</h4>
|
||||
<p class="card-category">{{'DATASET-LISTING.SUBTITLE' | translate}}</p>
|
||||
|
|
|
@ -1,20 +1,50 @@
|
|||
<div class="listing-item" (click)="itemClicked()">
|
||||
<div class="col">
|
||||
<mat-icon *ngIf="isDraft" class="draft-bookmark">bookmark</mat-icon>
|
||||
<mat-icon *ngIf="!isDraft" class="finalized-bookmark">bookmark</mat-icon>
|
||||
<h4 *ngIf="isDraft"><span>DRAFT:</span> {{ dataset.label }}</h4>
|
||||
<h4 *ngIf="!isDraft">{{ dataset.label }}</h4>
|
||||
<p>{{ dataset.description }}</p>
|
||||
<div class="info">
|
||||
<div class="row">
|
||||
<div class="col-12 gray-container container-header">
|
||||
<!-- <p></p> -->
|
||||
<!-- <button mat-icon-button [matMenuTriggerFor]="actionsMenu" class="ml-auto"
|
||||
(click)="$event.stopImmediatePropagation();">
|
||||
<mat-icon class="more-horiz">more_horiz</mat-icon>
|
||||
</button> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 title">
|
||||
<mat-icon *ngIf="isDraft" class="draft-bookmark">bookmark</mat-icon>
|
||||
<mat-icon *ngIf="!isDraft" class="finalized-bookmark">bookmark</mat-icon>
|
||||
<h4 *ngIf="isDraft"><span>DRAFT:</span> {{ dataset.label }}</h4>
|
||||
<h4 *ngIf="!isDraft">{{ dataset.label }}</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<p class="mt-1 mb-2">{{dataset.description}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 about-item">
|
||||
<mat-icon class="gray-icon pt-2">storage</mat-icon>
|
||||
<h4 class="mt-2 ml-1 mr-3 p-1">{{ dataset.dmp }}</h4>
|
||||
|
||||
<mat-icon class="gray-icon pt-2">work_outline</mat-icon>
|
||||
<h4 class="mt-2 ml-1 mr-3 p-1">{{ dataset.project }}</h4>
|
||||
|
||||
<mat-icon class="gray-icon pt-2">assignment</mat-icon>
|
||||
<div class="pt-1">
|
||||
<div matTooltip="{{ dataset.profile }}" class="chip ml-2 mr-2">{{ dataset.profile }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="info">
|
||||
<h6>{{ dataset.dmp }}</h6>
|
||||
<p>{{ dataset.project }}</p>
|
||||
</div>
|
||||
<div class="row" style="margin-left: 0px !important">
|
||||
<div class="chip"><p>{{ dataset.profile }}</p></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="col-auto">
|
||||
<mat-icon>more_horiz</mat-icon>
|
||||
<div class="chip">
|
||||
<p>{{ dataset.profile }}</p>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- <mat-divider *ngIf="showDivider"></mat-divider> -->
|
||||
|
|
|
@ -1,4 +1,74 @@
|
|||
h4 {
|
||||
display: inline;
|
||||
padding-left: 1em;
|
||||
.gray-container {
|
||||
letter-spacing: 5px;
|
||||
color: #aaaaaa;
|
||||
}
|
||||
|
||||
.container-header {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
margin-top: 0px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.container-header p {
|
||||
letter-spacing: 5px;
|
||||
color: #aaaaaa;
|
||||
padding: 5px 30px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
display: inline;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.title h4 {
|
||||
padding-left: 30px;
|
||||
line-height: 2em;
|
||||
}
|
||||
|
||||
.about-item {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.about-item .length {
|
||||
color: rgb(70, 135, 240);
|
||||
}
|
||||
|
||||
.about-item .title {
|
||||
margin: 2px 10px;
|
||||
}
|
||||
|
||||
.about-item p {
|
||||
margin-left: auto;
|
||||
margin-bottom: 0px;
|
||||
padding-top: 7px;
|
||||
color: #aaaaaa;
|
||||
}
|
||||
|
||||
::ng-deep .mat-ripple-element {
|
||||
background-color: #2e74b649 !important;
|
||||
}
|
||||
|
||||
::ng-deep .mat-radio-container {
|
||||
border-radius: 1em;
|
||||
background: white;
|
||||
}
|
||||
|
||||
::ng-deep .mat-radio-button .mat-radio-outer-circle {
|
||||
border: 1px solid #aaaaaa;
|
||||
}
|
||||
|
||||
::ng-deep .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {
|
||||
border-color: #2e75b6;
|
||||
}
|
||||
|
||||
::ng-deep .mat-radio-button.mat-accent .mat-radio-inner-circle {
|
||||
color: #2e75b6;
|
||||
background-color: #2e75b6;
|
||||
}
|
||||
|
||||
.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element {
|
||||
background-color: #2e74b649;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div class="col" (click)="itemClicked()">
|
||||
<div class="row">
|
||||
<div class="col-12 gray-container container-header">
|
||||
{{dmp.projectabbreviation}}
|
||||
<p (click)="$event.stopImmediatePropagation(); projectClicked(dmp.projectId)">{{dmp.projectAbbreviation}}</p>
|
||||
<button mat-icon-button [matMenuTriggerFor]="actionsMenu" class="ml-auto" (click)="$event.stopImmediatePropagation();">
|
||||
<mat-icon class="more-horiz">more_horiz</mat-icon>
|
||||
</button>
|
||||
|
@ -45,7 +45,7 @@
|
|||
|
||||
<mat-icon class="gray-icon pt-2">assignment</mat-icon>
|
||||
<div *ngFor="let profile of dmp.associatedProfiles" class="pt-1">
|
||||
<div class="chip ml-2 mr-2">{{profile.label}}</div>
|
||||
<div matTooltip="{{profile.label}}" class="chip ml-2 mr-2">{{profile.label}}</div>
|
||||
</div>
|
||||
<p>Published {{dmp.creationTime | date: "shortDate"}}</p>
|
||||
</div>
|
||||
|
|
|
@ -10,8 +10,19 @@
|
|||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.container-header p {
|
||||
letter-spacing: 5px;
|
||||
color: #aaaaaa;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.container-header :hover {
|
||||
color: #4687e6;
|
||||
}
|
||||
|
||||
.about-item {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.about-item .length {
|
||||
|
|
|
@ -3,6 +3,7 @@ import { DmpListingModel } from '../../../../core/model/dmp/dmp-listing';
|
|||
import { MatDialog } from '@angular/material';
|
||||
import { DmpInvitationDialogComponent } from '../../invitation/dmp-invitation.component';
|
||||
import { Router } from '@angular/router';
|
||||
import { ProjectListingModel } from '../../../../core/model/project/project-listing';
|
||||
|
||||
@Component({
|
||||
selector: 'app-dmp-listing-item-component',
|
||||
|
@ -24,10 +25,6 @@ export class DmpListingItemComponent implements OnInit {
|
|||
else { this.isDraft = false }
|
||||
}
|
||||
|
||||
itemClicked() {
|
||||
this.onClick.emit(this.dmp);
|
||||
}
|
||||
|
||||
openShareDialog(rowId: any, rowName: any) {
|
||||
const dialogRef = this.dialog.open(DmpInvitationDialogComponent, {
|
||||
// height: '250px',
|
||||
|
@ -50,4 +47,12 @@ export class DmpListingItemComponent implements OnInit {
|
|||
viewVersions(rowId: String, rowLabel: String) {
|
||||
this.router.navigate(['/plans/versions/' + rowId], { queryParams: { groupLabel: rowLabel } });
|
||||
}
|
||||
|
||||
itemClicked() {
|
||||
this.onClick.emit(this.dmp);
|
||||
}
|
||||
|
||||
projectClicked(projectId: String) {
|
||||
this.router.navigate(['/projects/edit/' + projectId]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,19 +5,19 @@
|
|||
<mat-form-field class="col-11 search">
|
||||
<input matInput placeholder="{{'CRITERIA.PROJECTS.LIKE'| translate}}" name="dmpCriteriaName"
|
||||
[(ngModel)]="facetCriteria.like" (ngModelChange)="controlModified()">
|
||||
<mat-icon matSuffix class="style-icon">search</mat-icon>
|
||||
</mat-form-field>
|
||||
|
||||
<div class="col-10 gray-container">
|
||||
<h6 class="category-title">{{ 'FACET-SEARCH.PROJECT-STATUS.TITLE' | translate }}</h6>
|
||||
<mat-list-item><mat-radio-button value="0" (change)="projectStatusChanged($event)">Active</mat-radio-button></mat-list-item>
|
||||
<mat-list-item><mat-radio-button value="1" (change)="projectStatusChanged($event)">Inactive</mat-radio-button></mat-list-item>
|
||||
<mat-list-item><mat-radio-button value="0" (change)="projectStatusChanged($event)">{{ 'FACET-SEARCH.PROJECT-STATUS.OPTIONS.ACTIVE' | translate }}</mat-radio-button></mat-list-item>
|
||||
<mat-list-item><mat-radio-button value="1" (change)="projectStatusChanged($event)">{{ 'FACET-SEARCH.PROJECT-STATUS.OPTIONS.INACTIVE' | translate }}</mat-radio-button></mat-list-item>
|
||||
</div>
|
||||
|
||||
<div *ngIf="this.facetCriteria.projectStatus == ProjectStateType.OnGoing || this.facetCriteria.projectStatus == ProjectStateType.Finished"
|
||||
class="col-10 gray-container">
|
||||
<div class="col-10 gray-container">
|
||||
<h6 class="category-title">{{ 'FACET-SEARCH.PROJECT.TITLE' | translate }}</h6>
|
||||
<mat-form-field>
|
||||
<app-multiple-auto-complete placeholder="Select Project"
|
||||
<app-multiple-auto-complete placeholder="{{ 'CRITERIA.DATA-SETS.SELECT-PROJECTS' | translate }}"
|
||||
[configuration]="projectAutoCompleteConfiguration"
|
||||
(optionSelected)="onProjectOptionSelected($event)" (optionRemoved)="onProjectOptionRemoved($event)">
|
||||
</app-multiple-auto-complete>
|
||||
|
@ -28,7 +28,7 @@
|
|||
<div class="col-10 gray-container">
|
||||
<h6 class="category-title">{{ 'FACET-SEARCH.PROFILES.TITLE' | translate }}</h6>
|
||||
<mat-form-field>
|
||||
<app-multiple-auto-complete placeholder="Select Dataset Specification"
|
||||
<app-multiple-auto-complete placeholder="{{ 'CRITERIA.DATA-SETS.SELECT-SPEC' | translate }}"
|
||||
[configuration]="profileAutoCompleteConfiguration"
|
||||
(optionSelected)="onProfileOptionSelected($event)" (optionRemoved)="onProfileOptionRemoved($event)">
|
||||
</app-multiple-auto-complete>
|
||||
|
@ -39,7 +39,7 @@
|
|||
<div class="col-10 gray-container">
|
||||
<h6 class="category-title">{{ 'FACET-SEARCH.DMP-ORGANISATIONS.TITLE' | translate }}</h6>
|
||||
<mat-form-field>
|
||||
<app-multiple-auto-complete placeholder="Select Organization"
|
||||
<app-multiple-auto-complete placeholder="{{ 'CRITERIA.DATA-SETS.SELECT-ORGANIZATIONS' | translate }}"
|
||||
[configuration]="organizationAutoCompleteConfiguration"
|
||||
(optionSelected)="onOrganizationOptionSelected($event)"
|
||||
(optionRemoved)="onOrganizationOptionRemoved($event)">
|
||||
|
|
|
@ -37,11 +37,11 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
|||
ProjectStateType = ProjectStateType;
|
||||
projects: Observable<ProjectListingModel[]>;
|
||||
profiles: Observable<DatasetProfileModel[]>;
|
||||
dmpOrganisations: Observable<ExternalSourceItemModel[]>;
|
||||
dmpOrganisations: Observable<OrganizationModel[]>;
|
||||
projectOptions: Observable<ProjectListingModel[]>;
|
||||
projectStateOptions: Observable<any[]>;
|
||||
filteringOrganisationsAsync = false;
|
||||
filteredOrganisations: ExternalSourceItemModel[];
|
||||
filteredOrganisations: OrganizationModel[];
|
||||
status: ProjectStateType;
|
||||
IsChecked: boolean;
|
||||
IsIndeterminate: boolean;
|
||||
|
@ -118,7 +118,9 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
|||
]);
|
||||
});
|
||||
this.profiles = this.datasetProfileService.getDatasetProfiles();
|
||||
this.dmpOrganisations = this.externalSourcesService.searchDMPOrganizations('');
|
||||
const fields: Array<string> = new Array<string>();
|
||||
fields.push('asc');
|
||||
this.dmpOrganisations = this.organisationService.searchPublicOrganisations(new DataTableRequest<OrganisationCriteria>(0 , null, { fields: fields })).map(x => x.data);
|
||||
}
|
||||
|
||||
ngAfterViewInit(): void {
|
||||
|
@ -265,8 +267,13 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
|||
return this.datasetProfileService.getDatasetProfiles();
|
||||
}
|
||||
|
||||
dmpOrganisationSearch(value: string): Observable<ExternalSourceItemModel[]> {
|
||||
return this.externalSourcesService.searchDMPOrganizations(value);
|
||||
dmpOrganisationSearch(value: string): Observable<OrganizationModel[]> {
|
||||
const fields: Array<string> = new Array<string>();
|
||||
fields.push('asc');
|
||||
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||
dataTableRequest.criteria = new OrganisationCriteria();
|
||||
dataTableRequest.criteria.labelLike = value;
|
||||
return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data);
|
||||
}
|
||||
|
||||
removeOrganisation(organisation) {
|
||||
|
@ -279,7 +286,12 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
|||
}
|
||||
|
||||
getOrganisations() {
|
||||
return this.externalSourcesService.searchDMPOrganizations('');
|
||||
const fields: Array<string> = new Array<string>();
|
||||
fields.push('asc');
|
||||
const dataTableRequest: DataTableRequest<OrganisationCriteria> = new DataTableRequest(0, null, { fields: fields });
|
||||
dataTableRequest.criteria = new OrganisationCriteria();
|
||||
dataTableRequest.criteria.labelLike = '';
|
||||
return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data);
|
||||
}
|
||||
|
||||
filterProject(query: string) {
|
||||
|
@ -309,7 +321,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements
|
|||
dataTableRequest.criteria = new OrganisationCriteria();
|
||||
dataTableRequest.criteria.labelLike = value;
|
||||
|
||||
return this.organisationService.searchInternalOrganisations(dataTableRequest).map(x => x.data);
|
||||
return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data);
|
||||
}
|
||||
|
||||
displayLabel(value) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div class="col" (click)="itemClicked()">
|
||||
<div class="row">
|
||||
<div class="col-12 gray-container container-header">
|
||||
{{dmp.projectabbreviation}}
|
||||
{{dmp.projectAbbreviation}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
@ -26,7 +26,7 @@
|
|||
|
||||
<mat-icon class="gray-icon pt-2">assignment</mat-icon>
|
||||
<div *ngFor="let profile of dmp.associatedProfiles" class="pt-1">
|
||||
<div class="chip ml-2 mr-2">{{profile.label}}</div>
|
||||
<div matTooltip="{{profile.label}}" class="chip ml-2 mr-2">{{profile.label}}</div>
|
||||
</div>
|
||||
<p>Published {{dmp.creationTime | date: "shortDate"}}</p>
|
||||
</div>
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
.about-item {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.about-item .length {
|
||||
|
|
|
@ -488,8 +488,9 @@
|
|||
"ROLE": "Role",
|
||||
"ORGANIZATION": "Organization",
|
||||
"SELECT-ORGANIZATIONS": "Select Organizations",
|
||||
"SELECT-SPEC": "Select Dataset Specification",
|
||||
"RELATED-PROJECT": "Related Project",
|
||||
"SELECT-DMP": "DMP",
|
||||
"SELECT-DMP": "Select DMP",
|
||||
"RELATED-DMP": "Related DMPs"
|
||||
},
|
||||
"DMP": {
|
||||
|
|
|
@ -58,7 +58,11 @@ $theme: mat-light-theme($primary, $accent);
|
|||
background-color: rgb(70, 135, 230);
|
||||
color: #fff;
|
||||
text-transform: uppercase;
|
||||
font-weight: 500;
|
||||
font-weight: 500;
|
||||
max-width: 160px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.bordered-chip {
|
||||
|
@ -68,7 +72,11 @@ $theme: mat-light-theme($primary, $accent);
|
|||
background-color: rgb(236, 241, 249);
|
||||
color: rgb(68, 114, 196);
|
||||
text-transform: uppercase;
|
||||
font-weight: 500;
|
||||
font-weight: 500;
|
||||
max-width: 160px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.squared-chip {
|
||||
|
@ -76,7 +84,11 @@ $theme: mat-light-theme($primary, $accent);
|
|||
border: 0.1em solid rgb(236, 241, 249);
|
||||
border-radius: 0.5em;
|
||||
background-color: rgb(246, 246, 246);
|
||||
color: rgb(127, 127, 127);
|
||||
color: rgb(127, 127, 127);
|
||||
max-width: 160px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
mat-icon {
|
||||
|
@ -123,11 +135,15 @@ $theme: mat-light-theme($primary, $accent);
|
|||
.draft-bookmark {
|
||||
color: #e7e6e6;
|
||||
display: inline;
|
||||
position: absolute;
|
||||
padding-top: 3px
|
||||
}
|
||||
|
||||
.finalized-bookmark {
|
||||
color: #92d050;
|
||||
display: inline;
|
||||
position: absolute;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
h4 span {
|
||||
|
|
Loading…
Reference in New Issue