diff --git a/src/app/core/component/cardrenderer/card-renderer.component.ts b/src/app/core/component/cardrenderer/card-renderer.component.ts
index 3cfc9e74..60ef9e88 100644
--- a/src/app/core/component/cardrenderer/card-renderer.component.ts
+++ b/src/app/core/component/cardrenderer/card-renderer.component.ts
@@ -6,11 +6,13 @@ import Pattern from '../../model/hal/pattern.model';
import { HalLink } from '../../model/hal/hal-link.interface';
import { PatternService } from '../../service/pattern.service';
import { ToasterService } from 'angular2-toaster';
+import { MatDialog } from "@angular/material/dialog";
+import { DeleteConfirmationDialogComponent } from "../delete-confirmation-dialog/delete-confirmation-dialog.component";
@Component({
selector: 'pp-card-renderer',
templateUrl: './card-renderer.component.html',
- styleUrls: ['./card-renderer.component.scss']
+ styleUrls: [ './card-renderer.component.scss' ]
})
export class CardRendererComponent {
@@ -22,23 +24,37 @@ export class CardRendererComponent {
private router: Router,
private activatedRoute: ActivatedRoute,
private patternService: PatternService,
- private toasterService: ToasterService) {
+ private toasterService: ToasterService,
+ private dialog: MatDialog) {
}
navigate(pattern: UriEntity): void {
this.zone.run(() => {
- this.router.navigate([UriConverter.doubleEncodeUri(pattern.uri)], { relativeTo: this.activatedRoute });
+ this.router.navigate([ UriConverter.doubleEncodeUri(pattern.uri) ], { relativeTo: this.activatedRoute });
});
}
delete(pattern: Pattern): void {
- this.patternService.deletePattern(pattern._links.self.href)
- .subscribe(
- value => this.handlePatternDelete(pattern),
- error => {
- this.toasterService.pop('error', 'Could not delete pattern!');
- }
- );
+ this.dialog.open(DeleteConfirmationDialogComponent, {
+ data: {
+ name: pattern.name,
+ }
+ })
+ .afterClosed().subscribe(dialoganswer => {
+ if (dialoganswer) {
+ this.patternService.deletePattern(pattern._links.self.href)
+ .subscribe(
+ value => {
+ this.handlePatternDelete(pattern);
+ this.toasterService.pop('success', 'Pattern deleted!');
+ },
+ error => {
+ this.toasterService.pop('error', 'Could not delete pattern!', "A Pattern can only be deleted if it is not a part of any Pattern Views");
+ }
+ );
+ }
+ });
+
}
getLinkCount(directedEdges: HalLink[] | HalLink): number {
@@ -51,15 +67,15 @@ export class CardRendererComponent {
private collectAllEdgesOfPattern(pattern: Pattern): HalLink[] {
let collectedEdges: HalLink[] = [];
if (pattern._links.outgoingDirectedEdges) {
- Array.isArray(pattern._links.outgoingDirectedEdges) ? collectedEdges = [...collectedEdges, ...pattern._links.outgoingDirectedEdges] :
+ Array.isArray(pattern._links.outgoingDirectedEdges) ? collectedEdges = [ ...collectedEdges, ...pattern._links.outgoingDirectedEdges ] :
collectedEdges.push(pattern._links.outgoingDirectedEdges);
}
if (pattern._links.ingoingDirectedEdges) {
- Array.isArray(pattern._links.ingoingDirectedEdges) ? collectedEdges = [...collectedEdges, ...pattern._links.ingoingDirectedEdges] :
+ Array.isArray(pattern._links.ingoingDirectedEdges) ? collectedEdges = [ ...collectedEdges, ...pattern._links.ingoingDirectedEdges ] :
collectedEdges.push(pattern._links.ingoingDirectedEdges);
}
if (pattern._links.undirectedEdges) {
- Array.isArray(pattern._links.undirectedEdges) ? collectedEdges = [...collectedEdges, ...pattern._links.undirectedEdges] :
+ Array.isArray(pattern._links.undirectedEdges) ? collectedEdges = [ ...collectedEdges, ...pattern._links.undirectedEdges ] :
collectedEdges.push(pattern._links.undirectedEdges);
}
return collectedEdges;
diff --git a/src/app/core/component/create-edit-pattern-language/create-edit-pattern-language.component.ts b/src/app/core/component/create-edit-pattern-language/create-edit-pattern-language.component.ts
index 1b7c571a..4d3ec129 100644
--- a/src/app/core/component/create-edit-pattern-language/create-edit-pattern-language.component.ts
+++ b/src/app/core/component/create-edit-pattern-language/create-edit-pattern-language.component.ts
@@ -90,11 +90,12 @@ export class CreateEditPatternLanguageComponent implements OnInit {
if (this.patternLanguageForm.valid) {
switch (this.componentDialogType) {
- case CreateEditComponentDialogType.PATTERN_VIEW:
+ case CreateEditComponentDialogType.PATTERN_VIEW : case CreateEditComponentDialogType.DESIGN_MODEL:
this.saveClicked.emit({
dialogResult: {
- name: this.name.value
+ name: this.name.value,
+ logo: this.iconUrl.value,
}
});
this.dialogRef.close();
@@ -123,17 +124,6 @@ export class CreateEditPatternLanguageComponent implements OnInit {
});
this.dialogRef.close();
break;
-
- case CreateEditComponentDialogType.DESIGN_MODEL:
-
- this.saveClicked.emit({
- dialogResult: {
- name: this.name.value,
- logo: this.iconUrl.value
- }
- });
- this.dialogRef.close();
- break;
}
}
}
diff --git a/src/app/core/component/delete-confirmation-dialog/delete-confirmation-dialog.component.html b/src/app/core/component/delete-confirmation-dialog/delete-confirmation-dialog.component.html
index fdcbe3f4..d6520076 100644
--- a/src/app/core/component/delete-confirmation-dialog/delete-confirmation-dialog.component.html
+++ b/src/app/core/component/delete-confirmation-dialog/delete-confirmation-dialog.component.html
@@ -1,7 +1,9 @@
-
Edit or Delete Relation
+Do you really want to delete {{data.name}}?
+Do you really want to delete this item?
-
diff --git a/src/app/core/service/pattern-language.service.ts b/src/app/core/service/pattern-language.service.ts
index 6e1d9173..74b1f246 100644
--- a/src/app/core/service/pattern-language.service.ts
+++ b/src/app/core/service/pattern-language.service.ts
@@ -107,4 +107,9 @@ export class PatternLanguageService implements GraphDataService {
getEdgeTypes(): Observable {
return of();
}
+
+ deletePatternLanguage(patternLanguageId: string){
+ const url = this.repoEndpoint + '/patternLanguages/' + patternLanguageId;
+ return this.http.delete(url);
+ }
}
diff --git a/src/app/core/service/pattern-view.service.ts b/src/app/core/service/pattern-view.service.ts
index 5a93586d..8018aa9b 100644
--- a/src/app/core/service/pattern-view.service.ts
+++ b/src/app/core/service/pattern-view.service.ts
@@ -91,13 +91,13 @@ export class PatternViewService implements GraphDataService {
return this.http.get>(patternContainer._links.undirectedEdges.href);
}
- getDirectedEdgeById(patternViewId, edgeId: string) : Observable{
- return this.http.get(this.repoEndpoint + /patternViews/+ patternViewId + /directedEdges/ + edgeId)
+ getDirectedEdgeById(patternViewId, edgeId: string): Observable {
+ return this.http.get(this.repoEndpoint + /patternViews/ + patternViewId + /directedEdges/ + edgeId)
}
- getUndirectedEdgeById(patternViewId, edgeId: string) : Observable{
- return this.http.get(this.repoEndpoint + /patternViews/+ patternViewId + /undirectedEdges/ + edgeId)
+ getUndirectedEdgeById(patternViewId, edgeId: string): Observable {
+ return this.http.get(this.repoEndpoint + /patternViews/ + patternViewId + /undirectedEdges/ + edgeId)
}
deleteLink(patternLink: any): Observable {
@@ -116,10 +116,14 @@ export class PatternViewService implements GraphDataService {
return of();
}
- removeRelationFromView(patternContainer: PatternContainer, relation: any):void {
- relation.markerStart === undefined?
- this.http.delete(patternContainer._links.directedEdges.href + '/' + relation.id).subscribe():
+ removeRelationFromView(patternContainer: PatternContainer, relation: any): void {
+ relation.markerStart === undefined ?
+ this.http.delete(patternContainer._links.directedEdges.href + '/' + relation.id).subscribe() :
this.http.delete(patternContainer._links.undirectedEdges.href + '/' + relation.id).subscribe();
}
+ deletePatternView(patternViewId: PatternContainer) {
+ return this.http.delete(patternViewId._links.self.href);
+ }
+
}
diff --git a/src/app/core/service/pattern.service.ts b/src/app/core/service/pattern.service.ts
index 481e4096..742af464 100644
--- a/src/app/core/service/pattern.service.ts
+++ b/src/app/core/service/pattern.service.ts
@@ -68,8 +68,6 @@ export class PatternService {
}
getPatternById(patternLanguage: PatternLanguage, patternId: String): Observable {
- console.log('patternid');
- console.log(patternId);
return this.http.get (this.repoEndpoint + '/patternLanguages/' + patternLanguage.id + '/patterns/' + patternId);
}
diff --git a/src/app/design-model-module/component/design-model-management/design-model-management.component.html b/src/app/design-model-module/component/design-model-management/design-model-management.component.html
index ce958f56..2449f99b 100644
--- a/src/app/design-model-module/component/design-model-management/design-model-management.component.html
+++ b/src/app/design-model-module/component/design-model-management/design-model-management.component.html
@@ -6,23 +6,28 @@
diff --git a/src/app/design-model-module/component/design-model-management/design-model-management.component.scss b/src/app/design-model-module/component/design-model-management/design-model-management.component.scss
index e1007dd5..3f53a98e 100644
--- a/src/app/design-model-module/component/design-model-management/design-model-management.component.scss
+++ b/src/app/design-model-module/component/design-model-management/design-model-management.component.scss
@@ -3,10 +3,16 @@
word-break: break-word;
}
-.mat-card-actions {
- text-align: center;
+.mat-card-title {
+ width: 10rem;
+ word-break: break-word;
+ cursor: pointer;
+}
+
+.mat-card-image{
+ cursor: pointer;
}
-.landing-card {
+.mat-card-avatar{
cursor: pointer;
}
diff --git a/src/app/design-model-module/component/design-model-management/design-model-management.component.ts b/src/app/design-model-module/component/design-model-management/design-model-management.component.ts
index ffd838ad..186bbd89 100644
--- a/src/app/design-model-module/component/design-model-management/design-model-management.component.ts
+++ b/src/app/design-model-module/component/design-model-management/design-model-management.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, NgZone, OnInit } from '@angular/core';
import {
CreateEditComponentDialogType,
CreateEditPatternLanguageComponent
@@ -12,12 +12,15 @@ import { ToasterService } from 'angular2-toaster';
import { Observable } from 'rxjs';
import { DesignModelService } from '../../service/design-model.service';
import { DesignModelResponse } from '../../model/hal/design-model-response';
+import { ActivatedRoute, Router } from "@angular/router";
+import { DesignModel } from "../../model/hal/design-model";
+import { DeleteConfirmationDialogComponent } from "../../../core/component/delete-confirmation-dialog/delete-confirmation-dialog.component";
@Component({
selector: 'pp-design-model-management',
templateUrl: './design-model-management.component.html',
- styleUrls: ['./design-model-management.component.scss']
+ styleUrls: [ './design-model-management.component.scss' ]
})
export class DesignModelManagementComponent implements OnInit {
@@ -27,7 +30,10 @@ export class DesignModelManagementComponent implements OnInit {
constructor(private designModelService: DesignModelService,
private dialog: MatDialog,
private patternLanguageService: PatternLanguageService,
- private toastService: ToasterService) {
+ private toastService: ToasterService,
+ private activatedRoute: ActivatedRoute,
+ private router: Router,
+ private zone: NgZone) {
}
@@ -67,4 +73,29 @@ export class DesignModelManagementComponent implements OnInit {
}
);
}
+
+ navigate(model: DesignModel): void {
+ this.zone.run(() => {
+ this.router.navigate([ model.id ], { relativeTo: this.activatedRoute });
+ })
+ }
+
+ delete(designModel: DesignModel) {
+ const dialogRef = this.dialog.open(DeleteConfirmationDialogComponent, {
+ data: {
+ name: designModel.name,
+ }
+ }).afterClosed().subscribe(dialogAnswer => {
+ if (dialogAnswer) {
+ this.designModelService.deleteDesignModel(designModel).subscribe((respone) => {
+ for (let i = 0; i < this.designModelResponse._embedded.designModels.length; i++) {
+ this.designModelResponse._embedded.designModels[i].id === designModel.id ? this.designModelResponse._embedded.designModels.splice(i, 1) : null;
+ }
+ this.toastService.pop('success', 'Design Model deleted!');
+ },(error) => {
+ this.toastService.pop('error', 'Design Model could not be deleted!');
+ });
+ }
+ })
+ }
}
diff --git a/src/app/design-model-module/service/design-model.service.ts b/src/app/design-model-module/service/design-model.service.ts
index 6b611063..d1399e2f 100644
--- a/src/app/design-model-module/service/design-model.service.ts
+++ b/src/app/design-model-module/service/design-model.service.ts
@@ -232,4 +232,8 @@ export class DesignModelService implements GraphDataService, GraphDataSavePatter
return of({ graph: graphNodes });
}
+
+ deleteDesignModel(designModel: DesignModel){
+ return this.httpClient.delete(designModel._links.self.href);
+ }
}
diff --git a/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.html b/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.html
index 42825e39..d73f1895 100644
--- a/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.html
+++ b/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.html
@@ -17,11 +17,11 @@
-
-
+
-
{{patternLanguage.name}}
@@ -31,13 +31,16 @@
-
-
+
pageviewView
+ (click)="navigateToPL(patternLanguage)">pageview View
+
+
+ delete
diff --git a/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.scss b/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.scss
index 79875a2c..13641442 100644
--- a/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.scss
+++ b/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.scss
@@ -22,3 +22,15 @@
min-height: 20rem !important;
min-width: 13rem !important;
}
+
+.mat-card-title {
+ cursor: pointer;
+}
+
+.mat-card-image{
+ cursor: pointer;
+}
+
+.mat-card-avatar{
+ cursor: pointer;
+}
diff --git a/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.ts b/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.ts
index 5f017f2f..5b0c0d25 100644
--- a/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.ts
+++ b/src/app/pattern-language-management/pattern-language-management/pattern-language-management.component.ts
@@ -27,6 +27,7 @@ import { DialogPatternLanguageResult } from '../data/DialogPatternLanguageResult
import { map } from 'rxjs/operators';
import PatternLanguageModel from '../../core/model/hal/pattern-language-model.model';
import UriEntity from '../../core/model/hal/uri-entity.model';
+import { DeleteConfirmationDialogComponent } from "../../core/component/delete-confirmation-dialog/delete-confirmation-dialog.component";
@Component({
selector: 'pp-pattern-language-management',
@@ -64,6 +65,7 @@ export class PatternLanguageManagementComponent implements OnInit {
ngOnInit() {
this.patternLanguages = Array.from(this.activatedRoute.snapshot.data.patternlanguages.values())
.sort(PatternLanguageManagementComponent.sortPatternLanguages);
+ this.reloadPatternRepo();
}
async reloadPatternRepo() {
@@ -72,14 +74,13 @@ export class PatternLanguageManagementComponent implements OnInit {
map(result => result.sort(PatternLanguageManagementComponent.sortPatternLanguages)))
.subscribe(result => {
this.patternLanguages = result;
- this._toasterService.pop('success', 'Reloaded Pattern Languages');
this.cdr.detectChanges();
return result;
});
this.cdr.detectChanges();
}
- navigateToPL(pl: UriEntity): void {
+ navigateToPL(pl: PatternLanguageModel): void {
this.zone.run(() => {
this.router.navigate([pl.id], { relativeTo: this.activatedRoute });
});
@@ -107,4 +108,24 @@ export class PatternLanguageManagementComponent implements OnInit {
});
});
}
+
+ delete(patternLanguage: PatternLanguageModel) {
+ const dialogRef = this.dialog.open(DeleteConfirmationDialogComponent, {
+ data: {
+ name: patternLanguage.name,
+ }
+ }).afterClosed().subscribe(dialogAnswer => {
+ if(dialogAnswer){
+ this.patternLanguageService.deletePatternLanguage(patternLanguage.id).subscribe((response) =>{
+ this.patternLanguages.splice(this.patternLanguages.indexOf(patternLanguage),1);
+ this._toasterService.pop('success', 'Pattern Language deleted!');
+ },(error) => {
+ this._toasterService.pop('error', 'Pattern Language could not be deleted!', 'A Pattern Language can only be deleted if it does not contain any patterns.');
+ });
+
+
+ }
+ })
+
+ }
}
diff --git a/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.html b/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.html
index 25c03f14..ac65582c 100644
--- a/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.html
+++ b/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.html
@@ -1,11 +1,28 @@
-
-
- {{entity.name}}
-
+
+
+
+
+
+
+
+ {{patternView.name}}
+
+
+
+
+
+
+
+ pageview View
+
+
+ delete
+
+
+
+
diff --git a/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.scss b/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.scss
index e58849e7..f5e9fc4d 100644
--- a/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.scss
+++ b/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.scss
@@ -16,3 +16,17 @@
margin: auto;
}
}
+
+.mat-card-title {
+ width: 10rem;
+ word-break: break-word;
+ cursor: pointer;
+}
+
+.mat-card-image{
+ cursor: pointer;
+}
+
+.mat-card-avatar{
+ cursor: pointer;
+}
diff --git a/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.ts b/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.ts
index 7ee551f7..8f9e1a14 100644
--- a/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.ts
+++ b/src/app/pattern-view-management/pattern-view-management/pattern-view-management.component.ts
@@ -16,11 +16,12 @@ import { ToasterService } from 'angular2-toaster';
import { UriConverter } from '../../core/util/uri-converter';
import UriEntity from '../../core/model/hal/uri-entity.model';
import { ActivatedRoute, Router } from '@angular/router';
+import { DeleteConfirmationDialogComponent } from "../../core/component/delete-confirmation-dialog/delete-confirmation-dialog.component";
@Component({
selector: 'pp-solution-language-management',
templateUrl: './pattern-view-management.component.html',
- styleUrls: ['./pattern-view-management.component.scss']
+ styleUrls: [ './pattern-view-management.component.scss' ]
})
export class PatternViewManagementComponent implements OnInit {
public patternViewResponse;
@@ -46,7 +47,7 @@ export class PatternViewManagementComponent implements OnInit {
navigate(view: UriEntity): void {
this.zone.run(() => {
- this.router.navigate([UriConverter.doubleEncodeUri(view.uri)], { relativeTo: this.activatedRoute });
+ this.router.navigate([ UriConverter.doubleEncodeUri(view.uri) ], { relativeTo: this.activatedRoute });
});
}
@@ -58,6 +59,7 @@ export class PatternViewManagementComponent implements OnInit {
.saveClicked
.pipe(
tap((result: DialogPatternLanguageResult) => {
+ console.log(result.dialogResult);
view =
result.dialogResult;
}),
switchMap(() => this.patternViewService.savePatternView(this.patternViewResponse._links.patternViews.href, view)),
@@ -70,4 +72,24 @@ export class PatternViewManagementComponent implements OnInit {
});
}
+ deletePatternView(patternView: PatternContainer) {
+ const dialogRef = this.dialog.open(DeleteConfirmationDialogComponent, {
+ data: {
+ name: patternView.name,
+ }
+ }).afterClosed().subscribe(dialogAnswer => {
+ if (dialogAnswer) {
+ this.patternViewService.deletePatternView(patternView).subscribe((response) => {
+ for (let i = 0; i < this.patternViewResponse._embedded.patternViews.length; i++) {
+ this.patternViewResponse._embedded.patternViews[i].id === patternView.id ? this.patternViewResponse._embedded.patternViews.splice(i, 1) : null;
+ }
+ this.toastService.pop('success', 'Pattern View deleted!');
+ },
+ (error) => {
+ this.toastService.pop('error', 'Pattern View could not be deleted!');
+ }
+ );
+ }
+ })
+ }
}