diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2023-03-30 22:58:30 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-30 22:58:30 +0100 |
| commit | 0db9d47d2b3062ca867e0a7aa33ba7205307d062 (patch) | |
| tree | 3d6fc9128dd9ff82434c8ad112a01d023791cba5 /opendc-web/opendc-web-server/src/main/java/org/opendc | |
| parent | 526d6cd6b48b30cf7bbe40478d57bbc67e7027cc (diff) | |
| parent | e7d5c086832a24f3c6b98258b0b8eb1fbbd3336a (diff) | |
merge: Address issues with web UI (#145)
This pull request addresses several issues that have been reported for the OpenDC web UI.
## Implementation Notes :hammer_and_pick:
* Update dependencies for web UI
* Inform user when deleted topology is still used
* Do not offset hover layer after dragging
* Fix access to machines on lower shelves
* Do not allow selection of empty unit
* Fix rack deletion
Fixes #135, #136, #137, #138, #139
Diffstat (limited to 'opendc-web/opendc-web-server/src/main/java/org/opendc')
| -rw-r--r-- | opendc-web/opendc-web-server/src/main/java/org/opendc/web/server/rest/user/TopologyResource.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/opendc-web/opendc-web-server/src/main/java/org/opendc/web/server/rest/user/TopologyResource.java b/opendc-web/opendc-web-server/src/main/java/org/opendc/web/server/rest/user/TopologyResource.java index 2b66b64b..71491801 100644 --- a/opendc-web/opendc-web-server/src/main/java/org/opendc/web/server/rest/user/TopologyResource.java +++ b/opendc-web/opendc-web-server/src/main/java/org/opendc/web/server/rest/user/TopologyResource.java @@ -22,10 +22,12 @@ package org.opendc.web.server.rest.user; +import io.quarkus.hibernate.orm.panache.Panache; import io.quarkus.security.identity.SecurityIdentity; import java.time.Instant; import java.util.List; import javax.annotation.security.RolesAllowed; +import javax.persistence.PersistenceException; import javax.transaction.Transactional; import javax.validation.Valid; import javax.ws.rs.Consumes; @@ -193,6 +195,14 @@ public final class TopologyResource { entity.updatedAt = Instant.now(); entity.delete(); + + try { + // Flush the results, so we can check whether the constraints are not violated + Panache.flush(); + } catch (PersistenceException e) { + throw new WebApplicationException("Topology is still in use", 403); + } + return UserProtocol.toDto(entity, auth); } } |
