From ba92f57d52b78c248ce85d70aad6e937ef4dc269 Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Tue, 23 Jul 2024 18:04:15 +0300 Subject: [PATCH 01/11] try to fix links at datatable --- javascript/src/components/Common/utils.js | 18 ++++-------------- javascript/src/components/datatable.js | 5 +++++ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/javascript/src/components/Common/utils.js b/javascript/src/components/Common/utils.js index a0cc8a5..bf903f2 100644 --- a/javascript/src/components/Common/utils.js +++ b/javascript/src/components/Common/utils.js @@ -141,20 +141,10 @@ export function calculateMinMax(dataArray) { return [min, max] } -export const createAnchorElement = (title, link) => { - const anchor = document.createElement('a'); - const linkText = document.createTextNode(title); - anchor.appendChild(linkText); - anchor.title = title; - anchor.href = link; - - // FIXME: - // Trying to pass an object directly to the datatable will fail. We need to - // get the HTML string from the element. This causes inconsistent behavior - // which we need to solve. For now we leave it as is. - return anchor.outerHTML; - // return anchor; -} +export const createAnchorElement = (title, link) => ({ + title, + link, +}); export const axisChartOptions = (title, hAxisFormat, hAxisTicks) => { return ( diff --git a/javascript/src/components/datatable.js b/javascript/src/components/datatable.js index c32cbb4..2440272 100644 --- a/javascript/src/components/datatable.js +++ b/javascript/src/components/datatable.js @@ -150,6 +150,7 @@ class Datatable extends Component { } listNames = (names, key) => { + //console.log("listNames called with:", names.title); if (this.props.columnSep && key == this.props.columnSep && typeof names === 'string') { return renderToString( ) + } else if (names && typeof names === 'object' && names.title && names.link) { + return renderToString( + {names.title} + ); } else return ( names ) From 350259ab51744ca8de0ebe4596d5dc79ccb1b245 Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Wed, 24 Jul 2024 10:24:39 +0300 Subject: [PATCH 02/11] try another fix for links from datatable --- javascript/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/javascript/package.json b/javascript/package.json index 224a9bc..701dc3d 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -60,7 +60,6 @@ "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "*" }, - "homepage": ".", "scripts": { "start": "react-scripts start", "build": "react-scripts build", From c7cb12b37ddf921dfd2400237a192a084b6737b6 Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Wed, 24 Jul 2024 10:43:20 +0300 Subject: [PATCH 03/11] revert change --- javascript/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/javascript/package.json b/javascript/package.json index 701dc3d..224a9bc 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -60,6 +60,7 @@ "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "*" }, + "homepage": ".", "scripts": { "start": "react-scripts start", "build": "react-scripts build", From 70a7d974dce0f49ce3304ba78216e4c9353c03fd Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Wed, 24 Jul 2024 13:41:26 +0300 Subject: [PATCH 04/11] another try for fix url at database --- javascript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/package.json b/javascript/package.json index 224a9bc..e8aedf1 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -60,7 +60,7 @@ "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "*" }, - "homepage": ".", + "homepage": "https://aai-dev.egi.eu/", "scripts": { "start": "react-scripts start", "build": "react-scripts build", From d8a84963c33f7935bf6fd3be42bb277bb45533c0 Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Wed, 24 Jul 2024 13:57:56 +0300 Subject: [PATCH 05/11] another try for fix url at database --- javascript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/package.json b/javascript/package.json index e8aedf1..d13a101 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -60,7 +60,7 @@ "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "*" }, - "homepage": "https://aai-dev.egi.eu/", + "homepage": "https://aai-dev.egi.eu/metrics/", "scripts": { "start": "react-scripts start", "build": "react-scripts build", From 533402de6d0dbe8c253022827090b11f4336fa43 Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Tue, 6 Aug 2024 09:19:55 +0300 Subject: [PATCH 06/11] try to make homepage variable dynamic --- javascript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/package.json b/javascript/package.json index d13a101..8c95cd2 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -60,7 +60,7 @@ "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "*" }, - "homepage": "https://aai-dev.egi.eu/metrics/", + "homepage": "./metrics/", "scripts": { "start": "react-scripts start", "build": "react-scripts build", From 7c227271ffe606806c801acb6492fa4a8e7bafb2 Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Tue, 6 Aug 2024 09:43:28 +0300 Subject: [PATCH 07/11] try another fix to make homepage variable dynamic --- javascript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/package.json b/javascript/package.json index 8c95cd2..820861a 100644 --- a/javascript/package.json +++ b/javascript/package.json @@ -60,7 +60,7 @@ "devDependencies": { "@babel/plugin-proposal-private-property-in-object": "*" }, - "homepage": "./metrics/", + "homepage": "/metrics/", "scripts": { "start": "react-scripts start", "build": "react-scripts build", From c7d8e6feb2ceddbab31b6e12e420305f2687f8b1 Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Tue, 6 Aug 2024 10:08:49 +0300 Subject: [PATCH 08/11] add identifier if name doesnt exist for idps,sps (datatable) --- javascript/src/components/Idps/idpsDataTable.js | 2 +- javascript/src/components/Sps/spsDataTable.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/src/components/Idps/idpsDataTable.js b/javascript/src/components/Idps/idpsDataTable.js index c2bc8ed..83e4cb6 100644 --- a/javascript/src/components/Idps/idpsDataTable.js +++ b/javascript/src/components/Idps/idpsDataTable.js @@ -94,7 +94,7 @@ const IdpsDataTable = ({ && loginsPerIpd.isFetched && loginsPerIpd.isSuccess && loginsPerIpd?.data?.map(idp => ({ - "Identity Provider Name": (cookies.userinfo == undefined && !!permissions?.actions?.identity_providers?.['view']) ? idp.name : createAnchorElement(idp.name, `/metrics/identity-providers/${idp.id}`), + "Identity Provider Name": (cookies.userinfo == undefined && !!permissions?.actions?.identity_providers?.['view']) ? idp.name : createAnchorElement(idp.name != '' ? idp.name : idp.entityid, `/metrics/identity-providers/${idp.id}`), "Identity Provider Identifier": idp.entityid, "Number of Logins": idp.count })) diff --git a/javascript/src/components/Sps/spsDataTable.js b/javascript/src/components/Sps/spsDataTable.js index b055335..1d2cf15 100644 --- a/javascript/src/components/Sps/spsDataTable.js +++ b/javascript/src/components/Sps/spsDataTable.js @@ -91,7 +91,7 @@ const SpsDataTable = ({ && !loginsPerSp.isFetching && loginsPerSp.isSuccess && loginsPerSp?.data?.map(sp => ({ - "Service Provider Name": (cookies.userinfo == undefined && !!permissions?.actions?.service_providers?.['view']) ? sp.name : createAnchorElement(sp.name, `/metrics/services/${sp.id}`), + "Service Provider Name": (cookies.userinfo == undefined && !!permissions?.actions?.service_providers?.['view']) ? sp.name : createAnchorElement(sp.name != '' ? sp.name : sp.identifier, `/metrics/services/${sp.id}`), "Service Provider Identifier": sp.identifier, "Number of Logins": sp.count })) From 48f119114f673bdcba85616ae6c146ab0d4b43be Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Sat, 10 Aug 2024 14:29:44 +0300 Subject: [PATCH 09/11] fix problem with pie chart links --- javascript/src/components/Dashboard/loginIdpPieChart.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/javascript/src/components/Dashboard/loginIdpPieChart.js b/javascript/src/components/Dashboard/loginIdpPieChart.js index 4fe1040..8942efa 100644 --- a/javascript/src/components/Dashboard/loginIdpPieChart.js +++ b/javascript/src/components/Dashboard/loginIdpPieChart.js @@ -27,7 +27,7 @@ const LoginIdpPieChart = ({ today.setDate(today.getDate() - 1); formatEndDate(today) - let idpsChartArray = [["Identity Provider", "Logins"], ['', 0]]; + let idpsChartArray = [["Identity Provider", "Logins"]]; const [idps, setIdps] = useState(idpsChartArray); const params = { @@ -112,9 +112,9 @@ const LoginIdpPieChart = ({ function selectHandler() { - var selection = chart.getSelection(); + var selection = chart.getSelection(); if (selection.length) { - var identifier = idpsArray[selection[0].row]; + var identifier = idpsArray[selection[0].row]; goToSpecificProviderHandler(identifier[0]) } } From 0638628f49ccad4ab459cc29b30818a24efe944a Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Mon, 2 Sep 2024 13:20:36 +0300 Subject: [PATCH 10/11] fix clicking ids/sps from the list pie chart --- .../src/components/Dashboard/loginIdpPieChart.js | 13 +++++++------ .../src/components/Dashboard/loginSpPieChart.js | 11 ++++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/javascript/src/components/Dashboard/loginIdpPieChart.js b/javascript/src/components/Dashboard/loginIdpPieChart.js index 8942efa..646c222 100644 --- a/javascript/src/components/Dashboard/loginIdpPieChart.js +++ b/javascript/src/components/Dashboard/loginIdpPieChart.js @@ -12,7 +12,7 @@ import {getLoginsPerIdp} from "../../utils/queries"; import {optionsPieChart} from "../../utils/helpers/enums"; import {convertDateByGroup, formatStartDate, formatEndDate} from "../Common/utils"; -var idpsArray = []; + const LoginIdpPieChart = ({ spId, tenenvId, @@ -28,8 +28,9 @@ const LoginIdpPieChart = ({ formatEndDate(today) let idpsChartArray = [["Identity Provider", "Logins"]]; + let idpsArray = []; const [idps, setIdps] = useState(idpsChartArray); - + const [idpsAr, setIdpsArray] = useState(idpsArray); const params = { params: { 'tenenv_id': tenenvId, @@ -57,6 +58,7 @@ const LoginIdpPieChart = ({ idpsArray.push([element.id, element.name, element.identifier]) }) setIdps(idpsChartArray) + setIdpsArray(idpsArray) }) }, [uniqueLogins]) @@ -90,10 +92,9 @@ const LoginIdpPieChart = ({ callback: ({chartWrapper, google}) => { const chart = chartWrapper.getChart(); - if (cookies.userinfo != undefined - && !!permissions?.actions?.identity_providers?.['view']) { + google.visualization.events.addListener(chart, 'click', selectHandler); - } + google.visualization.events.addListener(chart, 'onmouseover', showTooltip); google.visualization.events.addListener(chart, 'onmouseout', hideTooltip); @@ -114,7 +115,7 @@ const LoginIdpPieChart = ({ var selection = chart.getSelection(); if (selection.length) { - var identifier = idpsArray[selection[0].row]; + var identifier = idpsAr[selection[0].row]; goToSpecificProviderHandler(identifier[0]) } } diff --git a/javascript/src/components/Dashboard/loginSpPieChart.js b/javascript/src/components/Dashboard/loginSpPieChart.js index cfed697..6f1898f 100644 --- a/javascript/src/components/Dashboard/loginSpPieChart.js +++ b/javascript/src/components/Dashboard/loginSpPieChart.js @@ -12,7 +12,6 @@ import {useQuery} from "react-query"; import {optionsPieChart} from "../../utils/helpers/enums"; import {convertDateByGroup, formatStartDate, formatEndDate} from "../Common/utils"; -var spsArray = []; const LoginSpPieChart = ({ idpId, @@ -21,7 +20,9 @@ const LoginSpPieChart = ({ goToSpecificProviderHandler }) => { let spsChartArray = [["Service Provider", "Logins"]]; + let spsArray = []; const [sps, setSps] = useState(spsChartArray); + const [spsAr, setSpsArray] = useState(spsArray); const oneYearAgo = new Date(); oneYearAgo.setFullYear(oneYearAgo.getFullYear() - 1); formatStartDate(oneYearAgo) @@ -59,6 +60,7 @@ const LoginSpPieChart = ({ spsArray.push([element.id, element.name, element.identifier]) }) setSps(spsChartArray) + setSpsArray(spsArray) }) }, [uniqueLogins]) @@ -91,10 +93,9 @@ const LoginSpPieChart = ({ callback: ({chartWrapper, google}) => { const chart = chartWrapper.getChart(); - if (cookies.userinfo != undefined - && !!permissions?.actions?.service_providers?.['view']) { + google.visualization.events.addListener(chart, 'click', selectHandler); - } + google.visualization.events.addListener(chart, 'onmouseover', showTooltip); google.visualization.events.addListener(chart, 'onmouseout', hideTooltip); @@ -112,7 +113,7 @@ const LoginSpPieChart = ({ function selectHandler() { var selection = chart.getSelection(); if (selection.length) { - var identifier = spsArray[selection[0].row]; + var identifier = spsAr[selection[0].row]; goToSpecificProviderHandler(identifier[0], "sp") } } From be354c084a070d87781b066c6c1b0e3759566a3d Mon Sep 17 00:00:00 2001 From: Nick Mastoris Date: Mon, 2 Sep 2024 13:47:43 +0300 Subject: [PATCH 11/11] fix permissions --- javascript/src/components/Dashboard/loginIdpPieChart.js | 7 ++++--- javascript/src/components/Dashboard/loginSpPieChart.js | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/javascript/src/components/Dashboard/loginIdpPieChart.js b/javascript/src/components/Dashboard/loginIdpPieChart.js index 646c222..613334e 100644 --- a/javascript/src/components/Dashboard/loginIdpPieChart.js +++ b/javascript/src/components/Dashboard/loginIdpPieChart.js @@ -92,9 +92,10 @@ const LoginIdpPieChart = ({ callback: ({chartWrapper, google}) => { const chart = chartWrapper.getChart(); - - google.visualization.events.addListener(chart, 'click', selectHandler); - + if (cookies.userinfo != undefined + && !!permissions?.actions?.identity_providers?.['view']) { + google.visualization.events.addListener(chart, 'click', selectHandler); + } google.visualization.events.addListener(chart, 'onmouseover', showTooltip); google.visualization.events.addListener(chart, 'onmouseout', hideTooltip); diff --git a/javascript/src/components/Dashboard/loginSpPieChart.js b/javascript/src/components/Dashboard/loginSpPieChart.js index 6f1898f..48c3c8b 100644 --- a/javascript/src/components/Dashboard/loginSpPieChart.js +++ b/javascript/src/components/Dashboard/loginSpPieChart.js @@ -93,9 +93,10 @@ const LoginSpPieChart = ({ callback: ({chartWrapper, google}) => { const chart = chartWrapper.getChart(); - + if (cookies.userinfo != undefined + && !!permissions?.actions?.service_providers?.['view']) { google.visualization.events.addListener(chart, 'click', selectHandler); - + } google.visualization.events.addListener(chart, 'onmouseover', showTooltip); google.visualization.events.addListener(chart, 'onmouseout', hideTooltip);