From c25c9d72cfa9ee8176fb1e29d86be021014837d3 Mon Sep 17 00:00:00 2001 From: Ioannis Kalyvas Date: Mon, 23 Jul 2018 16:09:19 +0300 Subject: [PATCH] no message --- .../main/java/eu/eudat/data/entities/DMP.java | 2 +- .../java/eu/eudat/data/entities/Project.java | 2 +- .../queryengine/src/main/java/Main.java | 11 +- .../query/engine/builder/QueryBuilder.java | 10 +- .../engine/builder/QueryBuilderImpl.java | 40 +++++- .../expressions/ComparisonExpression.java | 4 + .../query/engine/expressions/Expression.java | 1 + .../query/engine/predicates/AndPredicate.java | 11 -- .../predicates/ComparisonPredicate.java | 3 +- .../query/engine/predicates/Predicate.java | 6 +- .../managers/DataManagementPlanManager.java | 25 ++-- .../DataManagementPlanListingModel.java | 14 +- .../models/data/urls/DatasetUrlListing.java | 25 ++++ .../src/main/resources/application.properties | 4 +- dmp-frontend/src/app/app.component.html | 2 +- dmp-frontend/src/app/app.component.ts | 8 +- .../dataset-wizard.component.html | 6 +- .../dataset-wizard.component.ts | 23 ++++ .../app/dmps/editor/dmp-editor.component.html | 6 +- .../app/dmps/editor/dmp-editor.component.ts | 13 +- .../dmps/listing/dmp-listing.component.html | 8 +- .../app/dmps/listing/dmp-listing.component.ts | 11 +- .../src/app/homepage/homepage.component.html | 66 ++++----- .../listing/project-listing.component.html | 2 +- .../breadcrumb/breadcrumb.component.ts | 2 +- .../activity/recent-activity.component.html | 128 +++++++++--------- .../app/welcomepage/welcomepage.component.ts | 2 +- dmp-frontend/src/assets/lang/en.json | 3 +- docker-compose.yml | 80 +++++------ 29 files changed, 314 insertions(+), 204 deletions(-) delete mode 100644 dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/predicates/AndPredicate.java create mode 100644 dmp-backend/web/src/main/java/eu/eudat/models/data/urls/DatasetUrlListing.java diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMP.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMP.java index 8ccd7c8c6..d2ca7e85d 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMP.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/DMP.java @@ -15,7 +15,7 @@ import java.util.*; @NamedEntityGraph( name = "dataManagementPlanListingModel", attributeNodes = {@NamedAttributeNode("organisations"), @NamedAttributeNode("researchers"), - @NamedAttributeNode("project"), @NamedAttributeNode("creator"), @NamedAttributeNode("profile"), @NamedAttributeNode("dataset")} + @NamedAttributeNode("project"),@NamedAttributeNode("users"), @NamedAttributeNode("creator"), @NamedAttributeNode("profile"), @NamedAttributeNode("dataset")} ), @NamedEntityGraph( name = "fullyDetailed", diff --git a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java index 5a8e2dc7f..edf3de954 100644 --- a/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java +++ b/dmp-backend/data/src/main/java/eu/eudat/data/entities/Project.java @@ -22,7 +22,7 @@ import java.util.UUID; @NamedEntityGraph( name = "projectListingItem", attributeNodes = {@NamedAttributeNode(value = "dmps", subgraph = "dmps"), @NamedAttributeNode(value = "content")}, - subgraphs = @NamedSubgraph(name = "dmps", attributeNodes = {@NamedAttributeNode("creator"), @NamedAttributeNode("users")}) + subgraphs = @NamedSubgraph(name = "dmps", attributeNodes = {@NamedAttributeNode("creator"),@NamedAttributeNode("project"), @NamedAttributeNode("users")}) ) }) public class Project implements DataEntity { diff --git a/dmp-backend/queryengine/src/main/java/Main.java b/dmp-backend/queryengine/src/main/java/Main.java index d8e1c8d56..1d2da52a3 100644 --- a/dmp-backend/queryengine/src/main/java/Main.java +++ b/dmp-backend/queryengine/src/main/java/Main.java @@ -1,14 +1,19 @@ import eu.eudat.data.entities.DataRepository; import eu.eudat.query.engine.builder.QueryBuilder; import eu.eudat.query.engine.builder.QueryBuilderImpl; +import eu.eudat.query.engine.predicates.ComparisonPredicate; /** * Created by ikalyvas on 7/5/2018. */ public class Main { + public static void main(String[] args){ + new Main().Test(); + } public void Test(){ - QueryBuilder queryBuilder = new QueryBuilderImpl<>(); - queryBuilder.where((entity, comparisonExpression) -> comparisonExpression.field("id").greaterThan(5)); - //queryBuilder.and(((entity, expression) -> expression.field("id").greaterThan(4)),((entity, expression) -> expression.field("id").greaterThan(5))); + QueryBuilder queryBuilder = new QueryBuilderImpl<>(DataRepository.class); + queryBuilder.where((comparisonExpression) -> comparisonExpression.field("id").greaterThan(5) ); + queryBuilder.where((comparisonExpression) -> comparisonExpression.field("label").equal("mitsos") ); + queryBuilder.toList(); } } diff --git a/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/builder/QueryBuilder.java b/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/builder/QueryBuilder.java index d81cb366c..07d96b1a2 100644 --- a/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/builder/QueryBuilder.java +++ b/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/builder/QueryBuilder.java @@ -1,16 +1,16 @@ package eu.eudat.query.engine.builder; import eu.eudat.query.engine.expressions.Expression; -import eu.eudat.query.engine.predicates.AndPredicate; -import eu.eudat.query.engine.predicates.ComparisonPredicate; +import eu.eudat.query.engine.predicates.Predicate; + +import java.util.List; /** * Created by ikalyvas on 7/5/2018. */ public interface QueryBuilder { - Expression where(ComparisonPredicate wherePredicate); - - Expression and(AndPredicate andPredicate); +

Expression where(P wherePredicate); + List toList(); } diff --git a/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/builder/QueryBuilderImpl.java b/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/builder/QueryBuilderImpl.java index 2ded22651..f1211415b 100644 --- a/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/builder/QueryBuilderImpl.java +++ b/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/builder/QueryBuilderImpl.java @@ -1,22 +1,50 @@ package eu.eudat.query.engine.builder; +import eu.eudat.query.engine.expressions.ComparisonExpression; import eu.eudat.query.engine.expressions.Expression; -import eu.eudat.query.engine.predicates.AndPredicate; -import eu.eudat.query.engine.predicates.ComparisonPredicate; +import eu.eudat.query.engine.predicates.Predicate; + +import java.lang.annotation.Annotation; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.Optional; /** * Created by ikalyvas on 7/5/2018. */ public class QueryBuilderImpl implements QueryBuilder { + private List expressions = new LinkedList<>(); + private Class tClass; - @Override - public Expression where(ComparisonPredicate wherePredicate) { - return null; + public QueryBuilderImpl(Class tClass) { + this.tClass = tClass; } @Override - public Expression and(AndPredicate andPredicate) { + public

Expression where(P wherePredicate) { + ComparisonExpression comparisonExpression = new ComparisonExpression(); + Expression expression = wherePredicate.apply(comparisonExpression); + this.expressions.add(expression); + return expression; + } + + @Override + public List toList() { + String query = "Select * from "; + Optional optionalAnnotation = Arrays.stream(this.tClass.getAnnotations()) + .filter(x-> x.annotationType().equals(javax.persistence.Table.class)) + .findFirst(); + + javax.persistence.Table annotation = optionalAnnotation.isPresent() ? (javax.persistence.Table)optionalAnnotation.get() : null; + query += annotation.name()+" "; + for (Expression expression : expressions) { + if(expressions.indexOf(expression) > 0) query+= " and "; + else query += " where "; + query += expression.evaluate(); + } + System.out.println(query); return null; } } diff --git a/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/expressions/ComparisonExpression.java b/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/expressions/ComparisonExpression.java index 38d59facf..7c418741f 100644 --- a/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/expressions/ComparisonExpression.java +++ b/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/expressions/ComparisonExpression.java @@ -40,4 +40,8 @@ public class ComparisonExpression extends AbstractFieldExpression { - Expression and(ComparisonPredicate... predicates); -} diff --git a/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/predicates/ComparisonPredicate.java b/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/predicates/ComparisonPredicate.java index 49c5da05a..56147519f 100644 --- a/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/predicates/ComparisonPredicate.java +++ b/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/predicates/ComparisonPredicate.java @@ -1,9 +1,10 @@ package eu.eudat.query.engine.predicates; import eu.eudat.query.engine.expressions.ComparisonExpression; +import eu.eudat.query.engine.expressions.Expression; /** * Created by ikalyvas on 7/5/2018. */ -public interface ComparisonPredicate extends Predicate { +public interface ComparisonPredicate extends Predicate { } diff --git a/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/predicates/Predicate.java b/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/predicates/Predicate.java index 50598f472..9cf40e784 100644 --- a/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/predicates/Predicate.java +++ b/dmp-backend/queryengine/src/main/java/eu/eudat/query/engine/predicates/Predicate.java @@ -1,11 +1,11 @@ package eu.eudat.query.engine.predicates; +import eu.eudat.query.engine.expressions.ComparisonExpression; import eu.eudat.query.engine.expressions.Expression; /** * Created by ikalyvas on 7/5/2018. */ -public interface Predicate { - Expression where(T entity, E expression); - +public interface Predicate { + Expression apply( E expression); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java index 8ca498a76..a7c0cc317 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DataManagementPlanManager.java @@ -1,6 +1,7 @@ package eu.eudat.logic.managers; -import eu.eudat.logic.builders.entity.UserInfoBuilder; +import eu.eudat.configurations.dynamicproject.DynamicProjectConfiguration; +import eu.eudat.configurations.dynamicproject.entities.Property; import eu.eudat.data.dao.criteria.DynamicFieldsCriteria; import eu.eudat.data.dao.criteria.OrganisationCriteria; import eu.eudat.data.dao.criteria.ProjectCriteria; @@ -9,10 +10,10 @@ import eu.eudat.data.dao.entities.*; import eu.eudat.data.entities.*; import eu.eudat.data.query.items.item.dmp.DataManagementPlanCriteriaRequest; import eu.eudat.data.query.items.table.dmp.DataManagementPlanTableRequest; -import eu.eudat.configurations.dynamicproject.DynamicProjectConfiguration; -import eu.eudat.configurations.dynamicproject.entities.Property; import eu.eudat.exceptions.datamanagementplan.DMPWithDatasetsException; import eu.eudat.exceptions.security.UnauthorisedException; +import eu.eudat.logic.builders.entity.UserInfoBuilder; +import eu.eudat.logic.services.ApiContext; import eu.eudat.models.HintedModelFactory; import eu.eudat.models.data.dmp.DataManagementPlan; import eu.eudat.models.data.dmp.DataManagementPlanNewVersionModel; @@ -23,7 +24,6 @@ import eu.eudat.models.data.listingmodels.DataManagementPlanListingModel; import eu.eudat.models.data.listingmodels.DatasetListingModel; import eu.eudat.models.data.security.Principal; import eu.eudat.queryable.QueryableList; -import eu.eudat.logic.services.ApiContext; import org.springframework.http.*; import org.springframework.scheduling.annotation.Async; import org.springframework.web.client.RestTemplate; @@ -41,12 +41,19 @@ public class DataManagementPlanManager { QueryableList authItems = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getAuthenticated(items, userInfo); QueryableList pagedItems = PaginationManager.applyPaging(authItems, dataManagementPlanTableRequest); - DataTableData dataTable = new DataTableData(); + DataTableData dataTable = new DataTableData<>(); - CompletableFuture itemsFuture = pagedItems - .selectAsync(item -> new DataManagementPlanListingModel().fromDataModel(item)).whenComplete((resultList, throwable) -> { - dataTable.setData(resultList); - }); + CompletableFuture itemsFuture = pagedItems.withHint(HintedModelFactory.getHint(DataManagementPlanListingModel.class)) + .selectAsync(item -> { + item.setDataset( + item.getDataset().stream() + .filter(dataset -> dataset.getDmp().getCreator().getId().equals(userInfo.getId()) + || dataset.isPublic() + || dataset.getDmp().getUsers().stream() + .filter(x -> x.getId().equals(userInfo.getId())).collect(Collectors.toList()).size() > 0).collect(Collectors.toSet())); + return new DataManagementPlanListingModel().fromDataModel(item); + }) + .whenComplete((resultList, throwable) -> dataTable.setData(resultList)); CompletableFuture countFuture = authItems.countAsync().whenComplete((count, throwable) -> { dataTable.setTotalCount(count); diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java index 9c8658dde..afd2a3de9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/listingmodels/DataManagementPlanListingModel.java @@ -4,7 +4,9 @@ import eu.eudat.data.entities.DMP; import eu.eudat.models.DataModel; import eu.eudat.models.data.dmp.Organisation; import eu.eudat.logic.utilities.helpers.LabelBuilder; +import eu.eudat.models.data.urls.DatasetUrlListing; +import java.util.List; import java.util.UUID; import java.util.stream.Collectors; @@ -18,7 +20,7 @@ public class DataManagementPlanListingModel implements DataModel datasets; public String getId() { return id; @@ -84,12 +86,12 @@ public class DataManagementPlanListingModel implements DataModel getDatasets() { + return datasets; } - public void setNumOfDatasets(Integer numOfDatasets) { - this.numOfDatasets = numOfDatasets; + public void setDatasets(List datasets) { + this.datasets = datasets; } @Override @@ -102,7 +104,7 @@ public class DataManagementPlanListingModel implements DataModel new DatasetUrlListing().fromDataModel(x)).collect(Collectors.toList()); return this; } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/urls/DatasetUrlListing.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/urls/DatasetUrlListing.java new file mode 100644 index 000000000..5fdc713ca --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/urls/DatasetUrlListing.java @@ -0,0 +1,25 @@ +package eu.eudat.models.data.urls; + +import eu.eudat.data.entities.Dataset; + +/** + * Created by ikalyvas on 7/23/2018. + */ +public class DatasetUrlListing extends UrlListing { + @Override + public DatasetUrlListing fromDataModel(Dataset entity) { + this.setLabel(entity.getLabel()); + this.setUrl(entity.getId().toString()); + return this; + } + + @Override + public Dataset toDataModel() throws Exception { + return null; + } + + @Override + public String getHint() { + return null; + } +} diff --git a/dmp-backend/web/src/main/resources/application.properties b/dmp-backend/web/src/main/resources/application.properties index d2c3c7ad7..c90250d71 100644 --- a/dmp-backend/web/src/main/resources/application.properties +++ b/dmp-backend/web/src/main/resources/application.properties @@ -71,5 +71,5 @@ http-logger.initial-delay = 0 http-logger.delay = 10 http-logger.server-address = http://logstash:31311 #############################Elastic Search###################################### -elasticsearch.host = localhost -elasticsearch.port = 9201 +elasticsearch.host = elasticsearch-dmp +elasticsearch.port = 9200 diff --git a/dmp-frontend/src/app/app.component.html b/dmp-frontend/src/app/app.component.html index b80834747..cbb177565 100644 --- a/dmp-frontend/src/app/app.component.html +++ b/dmp-frontend/src/app/app.component.html @@ -9,7 +9,7 @@

- +
diff --git a/dmp-frontend/src/app/app.component.ts b/dmp-frontend/src/app/app.component.ts index 91a6f96c3..c5ed6a64a 100644 --- a/dmp-frontend/src/app/app.component.ts +++ b/dmp-frontend/src/app/app.component.ts @@ -4,6 +4,7 @@ import { TranslateService } from '@ngx-translate/core'; import { LanguageResolverService } from './services/language-resolver/language-resolver.service'; import { BreadCrumbResolverService } from './services/breadcrumb/breadcrumb-resolver.service'; import { Observable } from 'rxjs/Observable'; +import { AuthService } from './services/auth/auth.service'; declare const gapi: any; @@ -20,10 +21,11 @@ export class AppComponent implements OnInit { hasBreadCrumb = Observable.of(false); sideNavOpen = false; - + constructor( private router: Router, private route: ActivatedRoute, + private authentication: AuthService, private translate: TranslateService, private languageService: LanguageResolverService, private breadCrumbResolverService: BreadCrumbResolverService @@ -60,6 +62,10 @@ export class AppComponent implements OnInit { } + public isAuthenticated(): boolean { + return !(!this.authentication.current()) + } + goToDMPs() { this.router.navigate(['/dmps'], { queryParams: { /*refresh : Math.random() ,returnUrl: this.state.url*/ } }); } diff --git a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.html b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.html index 3ae118597..eb5708df5 100644 --- a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.html +++ b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.html @@ -13,10 +13,10 @@
-
@@ -175,7 +175,7 @@ - {{'DATASET-EDITOR.FIELDS.TAG' | translate}} + {{'DATASET-EDITOR.FIELDS.TAGS' | translate}}
-
+
@@ -52,7 +52,7 @@ [configuration]="projectAutoCompleteConfiguration" titleKey="label" [control]="formGroup.get('project')" [required]="true"> - + diff --git a/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts b/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts index 6f841e67a..38e2341d1 100644 --- a/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts +++ b/dmp-frontend/src/app/dmps/editor/dmp-editor.component.ts @@ -117,11 +117,22 @@ export class DataManagementPlanEditorComponent implements AfterViewInit, IBreadC }); } else { this.dataManagementPlan = new DataManagementPlanModel(); - setTimeout(() => { + setTimeout(async () => { this.formGroup = this.dataManagementPlan.buildForm(); if (this.formGroup.get("profile") && this.formGroup.get("profile").value) { this.textCtrl.patchValue(this.formGroup.get("profile").value); } + this.breadCrumbs = Observable.of([ + { + parentComponentName: "DataManagementPlanListingComponent", + label: 'DMPs', + url: "dmps", + }, + { + parentComponentName: null, + label: "New DMP", + url: "/dmps/new" + }]) }); } diff --git a/dmp-frontend/src/app/dmps/listing/dmp-listing.component.html b/dmp-frontend/src/app/dmps/listing/dmp-listing.component.html index 4da90fbb5..cf95a25c5 100644 --- a/dmp-frontend/src/app/dmps/listing/dmp-listing.component.html +++ b/dmp-frontend/src/app/dmps/listing/dmp-listing.component.html @@ -45,11 +45,11 @@ {{row.version}} - - + + {{'DMP-LISTING.COLUMNS.DATASETS' | translate}} - - {{row.numOfDatasets}} + + diff --git a/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts b/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts index c55dd4ee1..22d0a47c0 100644 --- a/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts +++ b/dmp-frontend/src/app/dmps/listing/dmp-listing.component.ts @@ -35,7 +35,7 @@ export class DataManagementPlanListingComponent implements OnInit, IBreadCrumbCo breadCrumbs: Observable = Observable.of([]); dataSource: DataManagementPlanDataSource | null; - displayedColumns: String[] = ['name', 'project', 'creationTime', 'organisations', 'version', 'numOfDatasets', 'actions']; + displayedColumns: String[] = ['name', 'project', 'creationTime', 'organisations', 'version', 'datasets', 'actions']; itemId: string; projectId: string; showProject: boolean; @@ -180,7 +180,14 @@ export class DataManagementPlanDataSource extends DataSource { if (!result) { return []; } if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; } - return result.data; + return result.data.map(item => { + item["datasets"].map(dmp => { + dmp.url = "datasets/edit/" + dmp.url; + dmp.all = "datasets/dmp/" + item.id + return dmp; + }) + return item; + }); }); } diff --git a/dmp-frontend/src/app/homepage/homepage.component.html b/dmp-frontend/src/app/homepage/homepage.component.html index fadc422d0..1b8131b69 100644 --- a/dmp-frontend/src/app/homepage/homepage.component.html +++ b/dmp-frontend/src/app/homepage/homepage.component.html @@ -1,35 +1,35 @@
-
-
-
-

{{ 'HOMEPAGE.OPEN-DMPS.STATS' | translate }}

-

{{ 'HOMEPAGE.MY-DMPS.STATS' | translate }}

-
-
-
-
- - -
-
- - -
-
- - -
-
-
-
- -
-
+
+
+
+

{{ 'HOMEPAGE.OPEN-DMPS.STATS' | translate }}

+

{{ 'HOMEPAGE.MY-DMPS.STATS' | translate }}

+
-
\ No newline at end of file +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ +
+
+
+
diff --git a/dmp-frontend/src/app/projects/listing/project-listing.component.html b/dmp-frontend/src/app/projects/listing/project-listing.component.html index 0a88cc1ad..f249b494b 100644 --- a/dmp-frontend/src/app/projects/listing/project-listing.component.html +++ b/dmp-frontend/src/app/projects/listing/project-listing.component.html @@ -42,7 +42,7 @@ - {{'PROJECT-LISTING.COLUMNS.DMPS' | translate}} + {{'PROJECT-LISTING.COLUMNS.DMPS' | translate}} diff --git a/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.ts b/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.ts index 07baa4df7..ce01d27de 100644 --- a/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.ts +++ b/dmp-frontend/src/app/shared/components/breadcrumb/breadcrumb.component.ts @@ -31,7 +31,7 @@ export class BreadcrumbComponent implements OnInit { buildBreadCrumb(route: ActivatedRoute): Observable { - return this.breadCrumbService.resolve(route); + return this.breadCrumbService.resolve(route).map(x => { x.unshift({ label: "Home", url: "/welcome" }); return x; }); } navigate(url, params) { diff --git a/dmp-frontend/src/app/users/activity/recent-activity.component.html b/dmp-frontend/src/app/users/activity/recent-activity.component.html index 3133e0393..2398aba7d 100644 --- a/dmp-frontend/src/app/users/activity/recent-activity.component.html +++ b/dmp-frontend/src/app/users/activity/recent-activity.component.html @@ -1,68 +1,68 @@
-
- - - - {{'RECENT-ACTIVITY.MY-TITLE-PROJECT' | translate}} - - - - - -

- {{activity.label}} -

-

- {{activity.timestamp | date:'shortDate'}} -

-
-
-
+
+ + + + {{'RECENT-ACTIVITY.MY-TITLE-PROJECT' | translate}} + + + + + +

+ {{activity.label}} +

+

+ {{activity.timestamp | date:'shortDate'}} +

+
+
+
-
+ -
-
- - - - {{'RECENT-ACTIVITY.MY-TITLE-DMP' | translate}} - - - - - -

- {{activity.label}} -

-

- {{activity.timestamp | date:'shortDate'}} -

-
-
-
-
-
-
- - - - {{'RECENT-ACTIVITY.MY-TITLE-DATASET' | translate}} - - - - - -

- {{activity.label}} -

-

- {{activity.timestamp | date:'shortDate'}} -

-
-
+
+
+ + + + {{'RECENT-ACTIVITY.MY-TITLE-DMP' | translate}} + + + + + +

+ {{activity.label}} +

+

+ {{activity.timestamp | date:'shortDate'}} +

+
+
+
+
+
+
+ + + + {{'RECENT-ACTIVITY.MY-TITLE-DATASET' | translate}} + + + + + +

+ {{activity.label}} +

+

+ {{activity.timestamp | date:'shortDate'}} +

+
+
-
-
-
-
\ No newline at end of file + + +
+
diff --git a/dmp-frontend/src/app/welcomepage/welcomepage.component.ts b/dmp-frontend/src/app/welcomepage/welcomepage.component.ts index 89bce9cc9..e77a9a5fd 100644 --- a/dmp-frontend/src/app/welcomepage/welcomepage.component.ts +++ b/dmp-frontend/src/app/welcomepage/welcomepage.component.ts @@ -24,7 +24,7 @@ export class WelcomepageComponent implements OnInit, IBreadCrumbComponent { } ngOnInit() { - this.breadCrumbs = Observable.of([{ parentComponentName: null, label: 'Home', url: "/welcome" }]) + //this.breadCrumbs = Observable.of([{ parentComponentName: null, label: 'Home', url: "/welcome" }]) } } diff --git a/dmp-frontend/src/assets/lang/en.json b/dmp-frontend/src/assets/lang/en.json index c84aade7e..d702eebcc 100644 --- a/dmp-frontend/src/assets/lang/en.json +++ b/dmp-frontend/src/assets/lang/en.json @@ -213,7 +213,8 @@ "EXTERNAL-DATASETS": "External Datasets", "EXTERNAL-DATASET-TYPE": "External Datasets Type", "EXTERNAL-DATASET-INFO": "External Datasets Info", - "DATAREPOSITORIES-INFO": "Data Repositories Info" + "DATAREPOSITORIES-INFO": "Data Repositories Info", + "TAGS": "Tags" }, "ACTIONS": { "SAVE": "Save", diff --git a/docker-compose.yml b/docker-compose.yml index 42fcd5682..bed3fac32 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,7 +28,7 @@ services: container_name: dmp-backend ports: ['0.0.0.0:8080:8080'] links: - - logstash:logstash + # - logstash:logstash - elasticsearch-dmp:elasticsearch-dmp networks: ['stack','elasticsearch-dmp'] @@ -48,7 +48,7 @@ services: container_name: elasticsearch-dmp volumes: - ./elastic-config/elasticsearch-custom.yml:/usr/share/elasticsearch/config/elasticsearch.yml - environment: ['http.host=0.0.0.0','transport.host=0.0.0.0'] + environment: ['http.host=0.0.0.0','transport.host=0.0.0.0','discovery.type=single-node'] ports: ['0.0.0.0:9201:9200','0.0.0.0:9301:9300'] networks: ['elasticsearch-dmp'] volumes: @@ -56,31 +56,31 @@ services: ##########################ELK-STACK###################################################################### - elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:${TAG} - container_name: elasticsearch - environment: ['http.host=0.0.0.0', 'transport.host=127.0.0.1', 'ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] - ports: ['0.0.0.0:9200:9200'] - networks: ['stack'] - volumes: - - esdata:/usr/share/elasticsearch/data + # elasticsearch: + # image: docker.elastic.co/elasticsearch/elasticsearch:${TAG} + # container_name: elasticsearch + # environment: ['http.host=0.0.0.0', 'transport.host=127.0.0.1', 'ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + # ports: ['0.0.0.0:9200:9200'] + # networks: ['stack'] + # volumes: + # - esdata:/usr/share/elasticsearch/data - kibana: - image: docker.elastic.co/kibana/kibana:${TAG} - container_name: kibana - ports: ['0.0.0.0:5601:5601'] - networks: ['stack'] - depends_on: ['elasticsearch'] + # kibana: + # image: docker.elastic.co/kibana/kibana:${TAG} + # container_name: kibana + # ports: ['0.0.0.0:5601:5601'] + # networks: ['stack'] + # depends_on: ['elasticsearch'] - logstash: - image: docker.elastic.co/logstash/logstash:${TAG} - container_name: logstash - volumes: - - ./ELK.Docker/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf - ports: ['0.0.0.0:31311:31311'] + # logstash: + # image: docker.elastic.co/logstash/logstash:${TAG} + # container_name: logstash + # volumes: + # - ./ELK.Docker/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf + # ports: ['0.0.0.0:31311:31311'] - networks: ['stack'] - depends_on: ['elasticsearch', 'setup_logstash'] + # networks: ['stack'] + # depends_on: ['elasticsearch', 'setup_logstash'] #filebeat: # image: docker.elastic.co/beats/filebeat:${TAG} @@ -97,23 +97,23 @@ services: # depends_on: ['elasticsearch', 'setup_heartbeat'] # Run a short-lived container to set up Logstash. - setup_logstash: - image: centos:7 - container_name: setup_logstash - volumes: ['./ELK.Docker/scripts/setup-logstash.sh:/usr/local/bin/setup-logstash.sh:ro'] - command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-logstash.sh | tr -d "\r" | bash'] - environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] - networks: ['stack'] - depends_on: ['elasticsearch'] + # setup_logstash: + # image: centos:7 + # container_name: setup_logstash + # volumes: ['./ELK.Docker/scripts/setup-logstash.sh:/usr/local/bin/setup-logstash.sh:ro'] + # command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-logstash.sh | tr -d "\r" | bash'] + # environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + # networks: ['stack'] + # depends_on: ['elasticsearch'] - setup_kibana: - image: centos:7 - container_name: setup_kibana - volumes: ['./ELK.Docker/scripts/setup-kibana.sh:/usr/local/bin/setup-kibana.sh:ro'] - command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-kibana.sh | tr -d "\r" | bash'] - environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] - networks: ['stack'] - depends_on: ['elasticsearch'] + # setup_kibana: + # image: centos:7 + # container_name: setup_kibana + # volumes: ['./ELK.Docker/scripts/setup-kibana.sh:/usr/local/bin/setup-kibana.sh:ro'] + # command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-kibana.sh | tr -d "\r" | bash'] + # environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] + # networks: ['stack'] + # depends_on: ['elasticsearch'] #setup_filebeat: # image: docker.elastic.co/beats/filebeat:${TAG}