Skip to content

Commit c38d456

Browse files
committed
Fixes #210
Also fixed 404 when deleting a connection Navigate to production details for "Request producion status"
1 parent 24cd8ff commit c38d456

6 files changed

Lines changed: 32 additions & 24 deletions

File tree

client/src/connection/ConnectionAlert.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export const ConnectionAlert = ({
5858
alertType={AlertType.Warning}
5959
asChild={true}
6060
message={I18n.t("connection.productionActivationHint", {name: connectionsNeedActivationNames})}
61-
action={() => customProdTabAction ? customProdTabAction() : setTab("prod")}
61+
action={() => customProdTabAction ? customProdTabAction() : setTab("prod", "activate")}
6262
actionLabel={I18n.t("connection.productionActivationAction")}/>
6363
)
6464
}

client/src/connection/Overview.jsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import "./Overview.scss";
2-
import React, {useState} from "react";
2+
import React from "react";
33
import I18n from "../locale/I18n";
4-
import {Alert, AlertType} from "@surfnet/sds";
5-
import {isEmpty, splitListSemantically} from "../utils/Utils.js";
64
import {STATUS_LINK_TYPE, StatusLink} from "../components/StatusLink.jsx";
7-
import {CONNECTION_STATUSES, ENVIRONMENTS} from "../utils/Manage.js";
5+
import {ENVIRONMENTS} from "../utils/Manage.js";
86
import {ConnectionAlert} from "./ConnectionAlert.jsx";
97

108

client/src/connection/Testing.jsx

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ export const Testing = ({
109109
const {setFlash, config} = useAppStore(state => state);
110110
const navigate = useNavigate();
111111

112-
const [alertClosed, setAlertClosed] = useState(false);
113112
const [isCopyConnectionOpen, setIsCopyConnectionOpen] = useState(false);
114113
const [isMaxRefreshValidity, setIsMaxRefreshValidity] = useState(false);
115114
const [section, setSection] = useState(sections.technical);
@@ -138,10 +137,17 @@ export const Testing = ({
138137
if (!isEmpty(connectionId)) {
139138
const conn = application.connections.find(c => c.id === parseInt(connectionId, 10));
140139
if (isEmpty(conn)) {
141-
navigate("/404");
140+
navigate(`/connection/${application.id}/${isProduction ? "prod" : "testing"}`);
142141
} else {
143142
showConnectionDetails(conn);
144143
}
144+
} else {
145+
const urlSearchParams = new URLSearchParams(window.location.search);
146+
const action = urlSearchParams.get("action");
147+
if (action === "activate") {
148+
showConnectionDetails(connections
149+
.find(conn => conn.status === CONNECTION_STATUSES.COMPLETE || conn.status === CONNECTION_STATUSES.IN_PROGRESS))
150+
}
145151
}
146152
}, [application]);
147153

@@ -393,7 +399,7 @@ export const Testing = ({
393399
} else {
394400
setLoading(true);
395401
deleteConnectionById(connection.id).then(() => {
396-
refresh();
402+
refresh(isProduction ? "prod" : "testing");
397403
setConfirmation({open: false});
398404
setLoading(false);
399405
setFlash(I18n.t("connection.flash.deleted", {
@@ -1299,17 +1305,17 @@ export const Testing = ({
12991305
]
13001306

13011307
return (
1302-
<Entities entities={connections}
1303-
modelName="table-connections"
1304-
defaultSort="name"
1305-
columns={columns}
1306-
hideTitle={true}
1307-
showNew={false}
1308-
rowLinkMapper={(e, conn) => showConnectionDetails(conn)}
1309-
displaySearch={false}
1310-
searchAttributes={["name", "protocol"]}
1311-
inputFocus={true}>
1312-
</Entities>
1308+
<Entities entities={connections}
1309+
modelName="table-connections"
1310+
defaultSort="name"
1311+
columns={columns}
1312+
hideTitle={true}
1313+
showNew={false}
1314+
rowLinkMapper={(e, conn) => showConnectionDetails(conn)}
1315+
displaySearch={false}
1316+
searchAttributes={["name", "protocol"]}
1317+
inputFocus={true}>
1318+
</Entities>
13131319
)
13141320

13151321
};

client/src/pages/Connection.jsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,14 @@ export const Connection = () => {
108108
}, [application]);
109109

110110

111-
const refresh = () => {
111+
const refresh = (newTab = null) => {
112112
setLoading(true);
113113
getApplicationById(applicationId)
114114
.then(res => {
115115
setApplication(convertServerApplicationToClient(res, protocolOptions, profileOptions, arp));
116+
if (!isEmpty(newTab)) {
117+
navigate(`/connection/${applicationId}/${newTab}`)
118+
}
116119
setConnection(null);
117120
setDirty(false);
118121
setLoading(false);
@@ -146,7 +149,7 @@ export const Connection = () => {
146149
navigate(`/connection/${applicationId}/${newTab}`);
147150
}
148151

149-
const changeTab = newTab => {
152+
const changeTab = (newTab, action = null) => {
150153
if (dirty) {
151154
refresh()
152155
}
@@ -155,7 +158,8 @@ export const Connection = () => {
155158
setConnection(null);
156159
}
157160
setCurrentTab(newTab);
158-
navigate(`/connection/${applicationId}/${newTab}`);
161+
const queryPart = action !== null ? `?action=${action}` : "";
162+
navigate(`/connection/${applicationId}/${newTab}${queryPart}`);
159163
}
160164

161165
const renderCurrentTab = () => {

client/src/styles/application.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
}
2323
}
2424
svg.image-not-found, img {
25-
height: 110px;
25+
height: 80px;
2626
padding: 12px;
2727
border-radius: 4px;
2828
background-color: white;

server/src/main/java/access/repository/OrganizationRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public interface OrganizationRepository extends JpaRepository<Organization, Long
2020
Optional<Organization> findBySchacHomeOrganization(String schacHomeOrganization);
2121

2222
@EntityGraph(attributePaths = {
23-
"applications", "organizationMemberships.user", "invitations.invitee", "joinRequests.user"})
23+
"applications.connections", "organizationMemberships.user", "invitations.invitee", "joinRequests.user"})
2424
Optional<Organization> findDetailsById(Long id);
2525

2626
@EntityGraph(attributePaths = {"organizationMemberships.user"})

0 commit comments

Comments
 (0)