diff --git a/.github/workflows/develop-deployment.yml b/.github/workflows/develop-deployment.yml
index c2a43f7d3..e8479f292 100644
--- a/.github/workflows/develop-deployment.yml
+++ b/.github/workflows/develop-deployment.yml
@@ -31,7 +31,7 @@ jobs:
uses: cypress-io/github-action@v4
with:
build: yarn run build
- start: yarn run dev
+ start: yarn run prod
wait-on: "http://localhost:3000"
browser: chrome
build-s3:
diff --git a/.github/workflows/develop-test.yml b/.github/workflows/develop-test.yml
index 7a49bd807..a60d505cc 100644
--- a/.github/workflows/develop-test.yml
+++ b/.github/workflows/develop-test.yml
@@ -31,7 +31,7 @@ jobs:
uses: cypress-io/github-action@v4
with:
build: yarn run build
- start: yarn run dev
+ start: yarn run prod
wait-on: 'http://localhost:3000'
browser: chrome
- name: Upload coverage reports to Codecov
diff --git a/.github/workflows/master-deployment.yml b/.github/workflows/master-deployment.yml
index 535890aec..06c1d1087 100644
--- a/.github/workflows/master-deployment.yml
+++ b/.github/workflows/master-deployment.yml
@@ -79,7 +79,7 @@ jobs:
context: .
file: ./Dockerfile
push: true
- tags: ${{ secrets.DOCKER_HUB_LABS_USERNAME }}/neodash:latest,${{ secrets.DOCKER_HUB_LABS_USERNAME }}/neodash:2.3.4
+ tags: ${{ secrets.DOCKER_HUB_LABS_USERNAME }}/neodash:latest,${{ secrets.DOCKER_HUB_LABS_USERNAME }}/neodash:2.3.5
build-docker-legacy:
needs: build-test
runs-on: neodash-runners
@@ -103,7 +103,7 @@ jobs:
context: .
file: ./Dockerfile
push: true
- tags: ${{ secrets.DOCKER_HUB_USERNAME }}/neodash:latest,${{ secrets.DOCKER_HUB_USERNAME }}/neodash:2.3.4
+ tags: ${{ secrets.DOCKER_HUB_USERNAME }}/neodash:latest,${{ secrets.DOCKER_HUB_USERNAME }}/neodash:2.3.5
deploy-gallery:
runs-on: neodash-runners
strategy:
diff --git a/Dockerfile b/Dockerfile
index 912fcd034..c31f51ae8 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -43,4 +43,4 @@ USER nginx
EXPOSE $NGINX_PORT
HEALTHCHECK cmd curl --fail "http://localhost:$NGINX_PORT" || exit 1
-LABEL version="2.3.4"
+LABEL version="2.3.5"
diff --git a/changelog.md b/changelog.md
index 5a98bd8ee..1e203fa53 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,17 @@
+## NeoDash 2.3.5
+This is a bugfix / stability release directly following 2.3.4.
+
+Improvements:
+- Fixed issue where orphan relationships prevented graph charts from working ([@BennuFire](https://github.com/BennuFire), [#586](https://github.com/neo4j-labs/neodash/pull/586))
+- Fix issue where only one style rule was used a time on tables. ([@BennuFire](https://github.com/BennuFire), [#632](https://github.com/neo4j-labs/neodash/pull/632))
+- Added information about source and target on Graph Chart information modal . ([@BennuFire](https://github.com/BennuFire), [#627](https://github.com/neo4j-labs/neodash/pull/627)) Based on [@brahmprakashMishra](https://github.com/brahmprakashMishra) PR
+- Fixed issue where bar charts where displaying black bars instead of scheme colors. ([@BennuFire](https://github.com/BennuFire), [#626](https://github.com/neo4j-labs/neodash/pull/626))
+- Added right subpath replacement on shared links redirection while in self deployments. ([@m-o-n-i-s-h](https://github.com/m-o-n-i-s-h), [#618](https://github.com/neo4j-labs/neodash/pull/618))
+- Dark theme tweaks. ([@BennuFire](https://github.com/BennuFire), [#585](https://github.com/neo4j-labs/neodash/pull/585))
+- Fixed parameter selector search where numbers were not found and sporadically displayed with decimal points. ([@BennuFire](https://github.com/BennuFire), [#633](https://github.com/neo4j-labs/neodash/pull/633))
+- Added a configuration in order to list sso providers to be used whenever a database has more than one configured. ([@BennuFire](https://github.com/BennuFire), [#624](https://github.com/neo4j-labs/neodash/pull/624))
+- Added 'Ignore undefined parameters' advanced setting support for optional parameters on a query. Now queries will assume a null value instead of returning the error 'Parameter not defined'. ([@BennuFire](https://github.com/BennuFire), [#625](https://github.com/neo4j-labs/neodash/pull/625))
+
## NeoDash 2.3.3 & 2.3.4
This is a bugfix / stability release directly following 2.3.2.
diff --git a/cypress.config.ts b/cypress.config.ts
index 2678d3e84..73948909e 100644
--- a/cypress.config.ts
+++ b/cypress.config.ts
@@ -13,7 +13,7 @@ export default defineConfig({
},
retries: {
runMode: 2,
- openMode: 0,
+ openMode: 2,
},
},
env: {
diff --git a/docs/modules/ROOT/pages/developer-guide/configuration.adoc b/docs/modules/ROOT/pages/developer-guide/configuration.adoc
index 6df3fdfba..a56946281 100644
--- a/docs/modules/ROOT/pages/developer-guide/configuration.adoc
+++ b/docs/modules/ROOT/pages/developer-guide/configuration.adoc
@@ -16,6 +16,7 @@ will look like this:
....
{
"ssoEnabled": false,
+ "ssoProviders": [],
"ssoDiscoveryUrl": "https://example.com",
"standalone": false,
"standaloneProtocol": "neo4j",
@@ -37,6 +38,8 @@ will look like this:
using SSO. This requires the app to be running in standalone mode, and a
valid ssoDiscoveryUrl to be set.
+|ssoProviders |List |[] |When using multiple SSO providers on the database, you can configure the list of providers (by id) to be used on Neodash. If empty, all providers will be displayed.
+
|ssoDiscoveryUrl |string |https://example.com |If ssoEnabled is true &
standalone mode is enabled, the URL to retrieve SSO auth config from.
diff --git a/docs/modules/ROOT/pages/developer-guide/deploy-a-build.adoc b/docs/modules/ROOT/pages/developer-guide/deploy-a-build.adoc
index 9454c7168..72942f3a1 100644
--- a/docs/modules/ROOT/pages/developer-guide/deploy-a-build.adoc
+++ b/docs/modules/ROOT/pages/developer-guide/deploy-a-build.adoc
@@ -37,7 +37,7 @@ Depending on the webserver type and version, this could be different directory.
As an example - to copy the files to an nginx webserver using `scp`:
```bash
-scp neodash-2.3.4 username@host:/usr/share/nginx/html
+scp neodash-2.3.5 username@host:/usr/share/nginx/html
```
NeoDash should now be visible by visiting your (sub)domain in the browser.
diff --git a/docs/modules/ROOT/pages/developer-guide/standalone-mode.adoc b/docs/modules/ROOT/pages/developer-guide/standalone-mode.adoc
index 1259143ed..b40bda419 100644
--- a/docs/modules/ROOT/pages/developer-guide/standalone-mode.adoc
+++ b/docs/modules/ROOT/pages/developer-guide/standalone-mode.adoc
@@ -39,6 +39,7 @@ variables to Docker:
....
docker run -it --rm -p 5005:5005 \
-e ssoEnabled=false \
+ -e ssoProviders=[] \
-e ssoDiscoveryUrl="https://example.com" \
-e standalone=true \
-e standaloneProtocol="neo4j" \
diff --git a/docs/modules/ROOT/pages/developer-guide/state-management.adoc b/docs/modules/ROOT/pages/developer-guide/state-management.adoc
index c7513269d..231f98483 100644
--- a/docs/modules/ROOT/pages/developer-guide/state-management.adoc
+++ b/docs/modules/ROOT/pages/developer-guide/state-management.adoc
@@ -127,6 +127,7 @@ standalone mode.
"standalone": false,
"oldDashboard": null,
"ssoEnabled": false,
+ "ssoProviders": [],
"ssoDiscoveryUrl": "https://example.com",
"standaloneProtocol": "neo4j",
"standaloneHost": "localhost",
diff --git a/docs/modules/ROOT/pages/quickstart.adoc b/docs/modules/ROOT/pages/quickstart.adoc
index f4872cc27..fea4b67ad 100644
--- a/docs/modules/ROOT/pages/quickstart.adoc
+++ b/docs/modules/ROOT/pages/quickstart.adoc
@@ -8,7 +8,7 @@ https://neodash.graphapp.io.
App Gallery].
. Using Docker:
```
-docker pull neo4jlabs/neodash:latest
+docker pull neo4jlabs/neodash:latest
docker run -it --rm -p 5005:5005 neo4jlabs/neodash
```
diff --git a/docs/modules/ROOT/pages/user-guide/reports/pie-chart.adoc b/docs/modules/ROOT/pages/user-guide/reports/pie-chart.adoc
index e5979b32f..9300388a7 100644
--- a/docs/modules/ROOT/pages/user-guide/reports/pie-chart.adoc
+++ b/docs/modules/ROOT/pages/user-guide/reports/pie-chart.adoc
@@ -49,6 +49,8 @@ the pie slices in order of size.
|Show Values in Slices |on/off |off |If enabled, show the category
values inside the pie slices.
+|Labels font Size |Number |13 |Define the size of the font for internal and external labels on the pie.
+
|Show categories next to Slices |on/off |off |If enabled, show the
category values next to the pie slices.
@@ -73,13 +75,13 @@ slice.
|Margin Left (px) |number |50 |The margin in pixels on the left side of
the visualization.
-|Margin Right (px) |number |24 |The margin in pixels on the right side
+|Margin Right (px) |number |50 |The margin in pixels on the right side
of the visualization.
-|Margin Top (px) |number |24 |The margin in pixels on the top side of
+|Margin Top (px) |number |50 |The margin in pixels on the top side of
the visualization.
-|Margin Bottom (px) |number |40 |The margin in pixels on the bottom side
+|Margin Bottom (px) |number |50 |The margin in pixels on the bottom side
of the visualization.
|Hide Selections |on/off |off |If enabled, hides the property selector
diff --git a/package.json b/package.json
index 414c889b7..b430ce577 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "neodash",
- "version": "2.3.4",
+ "version": "2.3.5",
"description": "NeoDash - Neo4j Dashboard Builder",
"neo4jDesktop": {
"apiVersion": "^1.2.0"
@@ -22,6 +22,7 @@
],
"scripts": {
"dev": "yarn webpack-dev-server --mode development",
+ "prod": "yarn webpack-dev-server --mode production",
"debug": "yarn --node-options='--inspect' webpack-dev-server --mode development",
"build": "yarn webpack --mode production --env production && cp -r public/* dist/",
"build-minimal": "yarn webpack --mode production --env production && cp -r public/* dist/",
@@ -43,8 +44,8 @@
"@mui/x-data-grid": "5.17.26",
"@mui/x-date-pickers": "^5.0.17",
"@neo4j-cypher/react-codemirror": "^1.0.3",
- "@neo4j-ndl/base": "1.10.1",
- "@neo4j-ndl/react": "1.10.2",
+ "@neo4j-ndl/base": "1.10.3",
+ "@neo4j-ndl/react": "1.10.8",
"@nivo/bar": "^0.83.0",
"@nivo/circle-packing": "^0.83.0",
"@nivo/core": "^0.83.0",
@@ -67,6 +68,7 @@
"leaflet": "^1.7.1",
"lodash.debounce": "^4.0.8",
"lodash.isequal": "^4.5.0",
+ "lodash.merge": "^4.6.2",
"mui-color": "^2.0.0-beta.2",
"mui-nested-menu": "^3.2.1",
"neo4j-client-sso": "^1.2.2",
@@ -116,7 +118,7 @@
"babel-loader": "^8.2.3",
"babel-plugin-istanbul": "^6.1.1",
"css-loader": "^3.6.0",
- "cypress": "^10.11.0",
+ "cypress": "^12.17.4",
"eslint": "^8.26.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0",
diff --git a/public/config.json b/public/config.json
index 6a203041f..17754d56b 100644
--- a/public/config.json
+++ b/public/config.json
@@ -1,5 +1,6 @@
{
"ssoEnabled": false,
+ "ssoProviders": [],
"ssoDiscoveryUrl": "https://example.com",
"standalone": false,
"standaloneProtocol": "neo4j",
diff --git a/public/index.html b/public/index.html
index 0c9cc4dd5..10499f7b3 100644
--- a/public/index.html
+++ b/public/index.html
@@ -30,6 +30,7 @@
+
diff --git a/public/style.css b/public/style.css
index a0a93e449..16ccc2fb5 100644
--- a/public/style.css
+++ b/public/style.css
@@ -228,4 +228,11 @@
transform: scale(0.95);
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
}
-}
\ No newline at end of file
+}
+
+/* Workaround for Needle not handling menu placement of dropdowns on modals */
+#overlay {
+ z-index: 99 !important;
+ position: absolute;
+}
+/* End workaround */
\ No newline at end of file
diff --git a/release-notes.md b/release-notes.md
index eafcfbd33..905e4f77f 100644
--- a/release-notes.md
+++ b/release-notes.md
@@ -1,11 +1,13 @@
-## NeoDash 2.3.3 & 2.3.4
-This is a bugfix / stability release directly following 2.3.2.
+## NeoDash 2.3.5
+This is a bugfix / stability release directly following 2.3.4.
Improvements:
-- Cleaned up dependencies, add lazy loading and code splitting in the bundle file for faster loading times. ([@BennuFire](https://github.com/BennuFire), [#545](https://github.com/neo4j-labs/neodash/pull/571))
-- Migrated all icons from Material UI to Needle icons. ([@BennuFire](https://github.com/BennuFire), [#545](https://github.com/neo4j-labs/neodash/pull/571))
-- Improved contrast for light and dark theme. ([@nielsdejong](https://github.com/nielsdejong), [#545](https://github.com/neo4j-labs/neodash/pull/566))
-- Fixed issue where dashboards were locked in read-only mode, after toggling in the dashboard settings. ([@nielsdejong](https://github.com/nielsdejong), [#545](https://github.com/neo4j-labs/neodash/pull/566))
-- Fixed issue where editing the name of a non-selected page changed the wrong page data. ([@BennuFire](https://github.com/BennuFire), [#545](https://github.com/neo4j-labs/neodash/pull/571))
-- Fixed issue where color picker was only working on popup selections. ([@BennuFire](https://github.com/BennuFire), [#579](https://github.com/neo4j-labs/neodash/pull/579))
-- Add user agent to driver session for better logging of NeoDash queries. ([@nielsdejong](https://github.com/nielsdejong), [#545](https://github.com/neo4j-labs/neodash/pull/574))
\ No newline at end of file
+- Fixed issue where orphan relationships prevented graph charts from working ([@BennuFire](https://github.com/BennuFire), [#586](https://github.com/neo4j-labs/neodash/pull/586))
+- Fix issue where only one style rule was used a time on tables. ([@BennuFire](https://github.com/BennuFire), [#632](https://github.com/neo4j-labs/neodash/pull/632))
+- Added information about source and target on Graph Chart information modal . ([@BennuFire](https://github.com/BennuFire), [#627](https://github.com/neo4j-labs/neodash/pull/627)) Based on [@brahmprakashMishra](https://github.com/brahmprakashMishra) PR
+- Fixed issue where bar charts where displaying black bars instead of scheme colors. ([@BennuFire](https://github.com/BennuFire), [#626](https://github.com/neo4j-labs/neodash/pull/626))
+- Added right subpath replacement on shared links redirection while in self deployments. ([@m-o-n-i-s-h](https://github.com/m-o-n-i-s-h), [#618](https://github.com/neo4j-labs/neodash/pull/618))
+- Dark theme tweaks. ([@BennuFire](https://github.com/BennuFire), [#585](https://github.com/neo4j-labs/neodash/pull/585))
+- Fixed parameter selector search where numbers were not found and sporadically displayed with decimal points. ([@BennuFire](https://github.com/BennuFire), [#633](https://github.com/neo4j-labs/neodash/pull/633))
+- Added a configuration in order to list sso providers to be used whenever a database has more than one configured. ([@BennuFire](https://github.com/BennuFire), [#624](https://github.com/neo4j-labs/neodash/pull/624))
+- Added 'Ignore undefined parameters' advanced setting support for optional parameters on a query. Now queries will assume a null value instead of returning the error 'Parameter not defined'. ([@BennuFire](https://github.com/BennuFire), [#625](https://github.com/neo4j-labs/neodash/pull/625))
\ No newline at end of file
diff --git a/scripts/config-entrypoint.sh b/scripts/config-entrypoint.sh
index 25374b647..2eb04129c 100644
--- a/scripts/config-entrypoint.sh
+++ b/scripts/config-entrypoint.sh
@@ -5,6 +5,7 @@ set -e
echo " \
{ \
\"ssoEnabled\": ${ssoEnabled:=false}, \
+ \"ssoProviders\": ${ssoProviders:=[]}, \
\"ssoDiscoveryUrl\": \"${ssoDiscoveryUrl:='https://example.com'}\", \
\"standalone\": "${standalone:=false}", \
\"standaloneProtocol\": \"${standaloneProtocol:='neo4j+s'}\", \
diff --git a/src/application/ApplicationActions.ts b/src/application/ApplicationActions.ts
index 49311d768..4f85a17c5 100644
--- a/src/application/ApplicationActions.ts
+++ b/src/application/ApplicationActions.ts
@@ -178,6 +178,12 @@ export const setSSOEnabled = (enabled: boolean, discoveryUrl: string) => ({
payload: { enabled, discoveryUrl },
});
+export const SET_SSO_PROVIDERS = 'APPLICATION/SET_SSO_PROVIDERS';
+export const setSSOProviders = (providers: []) => ({
+ type: SET_SSO_PROVIDERS,
+ payload: { providers },
+});
+
export const SET_WAIT_FOR_SSO = 'APPLICATION/SET_WAIT_FOR_SSO';
export const setWaitForSSO = (wait: boolean) => ({
type: SET_WAIT_FOR_SSO,
diff --git a/src/application/ApplicationReducer.ts b/src/application/ApplicationReducer.ts
index 23dcdd9a1..5e01776c7 100644
--- a/src/application/ApplicationReducer.ts
+++ b/src/application/ApplicationReducer.ts
@@ -21,6 +21,7 @@ import {
SET_SESSION_PARAMETERS,
SET_SHARE_DETAILS_FROM_URL,
SET_SSO_ENABLED,
+ SET_SSO_PROVIDERS,
SET_STANDALONE_DASHBOARD_DATEBASE,
SET_STANDALONE_ENABLED,
SET_STANDALONE_MODE,
@@ -112,6 +113,11 @@ export const applicationReducer = (state = initialState, action: { type: any; pa
state = update(state, { ssoEnabled: enabled, ssoDiscoveryUrl: discoveryUrl });
return state;
}
+ case SET_SSO_PROVIDERS: {
+ const { providers } = payload;
+ state = update(state, { ssoProviders: providers });
+ return state;
+ }
case SET_WAIT_FOR_SSO: {
const { wait } = payload;
state = update(state, { waitForSSO: wait });
diff --git a/src/application/ApplicationSelectors.ts b/src/application/ApplicationSelectors.ts
index 263fae4bf..e99758185 100644
--- a/src/application/ApplicationSelectors.ts
+++ b/src/application/ApplicationSelectors.ts
@@ -64,6 +64,7 @@ export const applicationHasReportHelpModalOpen = (state: any) => {
export const applicationGetSsoSettings = (state: any) => {
return {
ssoEnabled: state.application.ssoEnabled,
+ ssoProviders: state.application.ssoProviders,
ssoDiscoveryUrl: state.application.ssoDiscoveryUrl,
cachedSSODiscoveryUrl: state.application.cachedSSODiscoveryUrl,
};
diff --git a/src/application/ApplicationThunks.ts b/src/application/ApplicationThunks.ts
index d09ee1ed5..38590733b 100644
--- a/src/application/ApplicationThunks.ts
+++ b/src/application/ApplicationThunks.ts
@@ -30,6 +30,7 @@ import {
clearDesktopConnectionProperties,
clearNotification,
setSSOEnabled,
+ setSSOProviders,
setStandaloneEnabled,
setAboutModalOpen,
setStandaloneMode,
@@ -124,7 +125,7 @@ export const createConnectionThunk =
query,
parameters,
1,
- () => {},
+ () => { },
(records) => validateConnection(records)
);
} catch (e) {
@@ -254,7 +255,7 @@ export const handleSharedDashboardsThunk = () => (dispatch: any) => {
dispatch(onConfirmLoadSharedDashboardThunk());
}
- window.history.pushState({}, document.title, '/');
+ window.history.pushState({}, document.title, window.location.pathname);
} else {
dispatch(setConnectionModalOpen(false));
// dispatch(setWelcomeScreenOpen(false));
@@ -273,7 +274,7 @@ export const handleSharedDashboardsThunk = () => (dispatch: any) => {
false
)
);
- window.history.pushState({}, document.title, '/');
+ window.history.pushState({}, document.title, window.location.pathname);
}
} else {
// dispatch(resetShareDetails());
@@ -340,6 +341,7 @@ export const onConfirmLoadSharedDashboardThunk = () => (dispatch: any, getState:
export const loadApplicationConfigThunk = () => async (dispatch: any, getState: any) => {
let config = {
ssoEnabled: false,
+ ssoProviders: [],
ssoDiscoveryUrl: 'http://example.com',
standalone: false,
standaloneProtocol: 'neo4j',
@@ -377,6 +379,7 @@ export const loadApplicationConfigThunk = () => async (dispatch: any, getState:
}
const state = getState();
dispatch(setSSOEnabled(config.ssoEnabled, state.application.cachedSSODiscoveryUrl));
+ dispatch(setSSOProviders(config.ssoProviders));
const { standalone } = config;
dispatch(
diff --git a/src/card/settings/CardSettings.tsx b/src/card/settings/CardSettings.tsx
index c2bd3cb92..583bcf167 100644
--- a/src/card/settings/CardSettings.tsx
+++ b/src/card/settings/CardSettings.tsx
@@ -91,7 +91,11 @@ const NeoCardSettings = ({
);
return (
-