diff --git a/cerberus/src/app/applications/update-application/update-application.component.html b/cerberus/src/app/applications/update-application/update-application.component.html
index cea7b77..1f2b24a 100644
--- a/cerberus/src/app/applications/update-application/update-application.component.html
+++ b/cerberus/src/app/applications/update-application/update-application.component.html
@@ -1,6 +1,6 @@
Edit the application {{application?.name}}
-
diff --git a/cerberus/src/app/applications/update-application/update-application.component.scss b/cerberus/src/app/applications/update-application/update-application.component.scss
index e69de29..ea5d553 100644
--- a/cerberus/src/app/applications/update-application/update-application.component.scss
+++ b/cerberus/src/app/applications/update-application/update-application.component.scss
@@ -0,0 +1,18 @@
+.title {
+ position: relative;
+ display: flex;
+ align-items: center;
+
+ &:hover {
+ button {
+ opacity: 1;
+ }
+ }
+
+ button {
+ position: absolute;
+ right: 5px;
+ opacity: 0;
+ transition: opacity .2s ease;
+ }
+}
\ No newline at end of file
diff --git a/cerberus/src/app/applications/update-application/update-application.component.ts b/cerberus/src/app/applications/update-application/update-application.component.ts
index d3375d9..78968f9 100644
--- a/cerberus/src/app/applications/update-application/update-application.component.ts
+++ b/cerberus/src/app/applications/update-application/update-application.component.ts
@@ -4,6 +4,7 @@ import { Application } from 'src/app/core/entities/Application';
import { ReferentialData } from 'src/app/core/entities/ReferentialData';
import { ApplicationService } from 'src/app/core/services/application.service';
import { ModalService } from 'src/app/core/services/modal.service';
+import { ReferentialDataService } from 'src/app/core/services/referential-data.service';
@Component({
selector: 'app-update-application',
@@ -23,10 +24,15 @@ export class UpdateApplicationComponent implements OnInit {
constructor(
private _formBuilder: FormBuilder,
private _modalService: ModalService,
- private _applicationService: ApplicationService
+ private _applicationService: ApplicationService,
+ private _referentialDataService: ReferentialDataService
) {}
ngOnInit(): void {
+ this._referentialDataService.getServiceTypes()
+ .then(serviceTypes => this.serviceTypes = serviceTypes)
+ .catch(error => console.error('An error occured while loading service types.'));
+
this.application = this._modalService.data;
this.form.controls.name.setValue(this.application?.name);
this.form.controls.serviceName.setValue(this.application?.serviceName);
@@ -41,13 +47,18 @@ export class UpdateApplicationComponent implements OnInit {
onSubmit(): void {
if (this.form.valid) {
- const appToAdd: Application = this.form.value as Application;
- this._applicationService.add(appToAdd)
- .then(applicationAdded => {
- console.log('Application added.');
+ const appToUpdate = { ...this.application } as Application;
+ appToUpdate.name = this.form.controls.name.value;
+ appToUpdate.serviceName = this.form.controls.serviceName.value;
+ // appToUpdate.serviceType = this.form.controls.serviceType.value;
+ appToUpdate.image = this.form.controls.image.value;
+
+ this._applicationService.update(appToUpdate)
+ .then(() => {
+ console.log('Application uodated.');
this._modalService.close();
})
- .catch(error => console.error('An error occured while adding the new application.'));
+ .catch(error => console.error('An error occured while updating the application.'));
} else {
console.error('Form is invalid');
}
diff --git a/cerberus/src/app/core/services/application.service.ts b/cerberus/src/app/core/services/application.service.ts
index 04b6a96..efb9652 100644
--- a/cerberus/src/app/core/services/application.service.ts
+++ b/cerberus/src/app/core/services/application.service.ts
@@ -1,4 +1,4 @@
-import { HttpClient } from '@angular/common/http';
+import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Application } from '../entities/Application';
import { ApplicationStatus } from '../entities/ApplicationStatus';
@@ -17,6 +17,14 @@ export class ApplicationService {
}
add(application: Application): Promise {
+ const headers = new HttpHeaders()
+ .append('Content-Type', 'application/json');
return this._httpClient.post('/api/applications', application).toPromise();
}
+
+ update(application: Application): Promise {
+ const headers = new HttpHeaders()
+ .append('Content-Type', 'application/json');
+ return this._httpClient.put(`/api/applications/${application.id}`, application, { headers }).toPromise();
+ }
}
diff --git a/cerberus/src/components-styles/button.scss b/cerberus/src/components-styles/button.scss
index ead0688..6cef460 100644
--- a/cerberus/src/components-styles/button.scss
+++ b/cerberus/src/components-styles/button.scss
@@ -1,5 +1,9 @@
@import "../colors.scss";
+a.button {
+ text-decoration: none;
+}
+
button, a.button {
background-image: linear-gradient(
$btn-primary-background-top,
diff --git a/src/main/java/org/takiguchi/cerberus/cerberusapp/controller/ApplicationController.java b/src/main/java/org/takiguchi/cerberus/cerberusapp/controller/ApplicationController.java
index b8e890f..b4552a6 100644
--- a/src/main/java/org/takiguchi/cerberus/cerberusapp/controller/ApplicationController.java
+++ b/src/main/java/org/takiguchi/cerberus/cerberusapp/controller/ApplicationController.java
@@ -51,6 +51,7 @@ public class ApplicationController {
.withName(application.getName())
.withServiceName(application.getServiceName())
.withServiceType(application.getServiceType())
+ .withImage(application.getImage())
.build();
service.update(applicationToUpdate);
}
diff --git a/src/main/java/org/takiguchi/cerberus/cerberusapp/service/ApplicationService.java b/src/main/java/org/takiguchi/cerberus/cerberusapp/service/ApplicationService.java
index 0f654f0..6ea5206 100644
--- a/src/main/java/org/takiguchi/cerberus/cerberusapp/service/ApplicationService.java
+++ b/src/main/java/org/takiguchi/cerberus/cerberusapp/service/ApplicationService.java
@@ -50,6 +50,7 @@ public class ApplicationService {
.withName(application.getName())
.withServiceName(application.getServiceName())
.withServiceType(application.getServiceType())
+ .withImage(application.getImage())
.build()
)
.ifPresentOrElse(this::validateThenSave, NotFoundException::new);