Skip to content

Commit

Permalink
Merge pull request #160 from mercedes-benz/develop
Browse files Browse the repository at this point in the history
OUPT Sprint 44 / Neodash 2.4.9 merge
  • Loading branch information
m-o-n-i-s-h authored Dec 10, 2024
2 parents bd7380d + b760424 commit 32ccb85
Show file tree
Hide file tree
Showing 105 changed files with 2,118 additions and 1,118 deletions.
7 changes: 6 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"extends": ["eslint:recommended", "prettier", "plugin:@typescript-eslint/recommended"], // this is optional
"env": {
"browser": true,
"node": true
"node": true,
"jest": true
},
"settings": {
"react": {
Expand Down Expand Up @@ -166,5 +167,9 @@
],
"symbol-description": "error",
"yoda": "error"
},
"globals": {
"cy": "readonly",
"Cypress": "readonly"
}
}
4 changes: 2 additions & 2 deletions .github/workflows/master-deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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.4.8
tags: ${{ secrets.DOCKER_HUB_LABS_USERNAME }}/neodash:latest,${{ secrets.DOCKER_HUB_LABS_USERNAME }}/neodash:2.4.9
build-docker-legacy:
needs: build-test
runs-on: neodash-runners
Expand All @@ -103,7 +103,7 @@ jobs:
context: .
file: ./Dockerfile
push: true
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/neodash:latest,${{ secrets.DOCKER_HUB_USERNAME }}/neodash:2.4.8
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/neodash:latest,${{ secrets.DOCKER_HUB_USERNAME }}/neodash:2.4.9
deploy-gallery:
runs-on: neodash-runners
strategy:
Expand Down
22 changes: 15 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@

## NeoDash - Neo4j Dashboard Builder
NeoDash is an open source tool for visualizing your Neo4j data. It lets you group visualizations together as dashboards, and allow for interactions between reports.
## NeoDash Labs - Neo4j Dashboard Builder

![screenshot](public/screenshot.png)
![screenshot](evolving.png)

In September 2024 **Neo4j [announced](https://www.datanami.com/2024/09/04/neo4j-simplifies-graph-database-in-the-cloud/#:~:text=NeoDash%20is%20an%20open%20source,was%20open%20source%2C%20not%20supported) NeoDash is evolving into a fully supported dashboard builder, as part of the Neo4j product suite**.

This project (NeoDash Labs) will still be available and contain experimental features, but will **not** have official support. If you're interested to get official support for NeoDash as part of a Neo4j License agreement, please reach out to your Neo4j contact person.

## About NeoDash Labs
NeoDash is a web-based tool for visualizing your Neo4j data. It lets you group visualizations together as dashboards, and allow for interactions between reports.

Neodash supports presenting your data as tables, graphs, bar charts, line charts, maps and more. It contains a Cypher editor to directly write the Cypher queries that populate the reports. You can save dashboards to your database, and share them with others.

## Try NeoDash
## Try NeoDash Labs
You can run NeoDash in one of three ways:

1. You can install NeoDash into Neo4j Desktop from the [graph app gallery](https://install.graphapp.io). NeoDash will automatically connect to your active database.
2. You can run NeoDash from a web browser by visiting http://neodash.graphapp.io.
1. You can install NeoDash Labs into Neo4j Desktop from the [graph app gallery](https://install.graphapp.io). NeoDash will automatically connect to your active database.
> Note: never versions of Neo4j Desktop do not support adding experimental graph apps such as NeoDash.
2. You can run NeoDash Labs from a web browser by visiting http://neodash.graphapp.io.
3. For on-prem deployments, you can build the application yourself, or pull the latest Docker image from Docker Hub.
```
# Run the application on http://localhost:5005
Expand Down Expand Up @@ -79,4 +87,4 @@ If you have any questions about NeoDash, please reach out to the maintainers:
- Connect with us on the [Neo4j Discord](https://neo4j.com/developer/discord/).
- Create a post on the Neo4j [Community Forum](https://community.neo4j.com/).

> NeoDash is a free and open-source tool developed by the Neo4j community - not an official Neo4j product. If you have a need for a commercial agreement around training, custom extensions or other services, please contact the [Neo4j Professional Services](https://neo4j.com/professional-services/) team.
> NeoDash Labs is a free and open-source tool developed by the Neo4j community - not an official Neo4j product. Use at your own risk!
20 changes: 20 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
## NeoDash 2.4.9
This release adds some minor changes to documentation and implements some community contributions.
- Added notice about project evolution: [#967](https://github.com/neo4j-labs/neodash/pull/967)
- Added community contributions and bug fixes:
[#967](https://github.com/neo4j-labs/neodash/pull/967)
[#894](https://github.com/neo4j-labs/neodash/pull/894)
[#822](https://github.com/neo4j-labs/neodash/pull/822)
[#951](https://github.com/neo4j-labs/neodash/pull/951)
[#946](https://github.com/neo4j-labs/neodash/pull/946)
[#944](https://github.com/neo4j-labs/neodash/pull/944)
[#943](https://github.com/neo4j-labs/neodash/pull/943)
[#938](https://github.com/neo4j-labs/neodash/pull/938)
[#935](https://github.com/neo4j-labs/neodash/pull/935)
[#918](https://github.com/neo4j-labs/neodash/pull/918)
[#908](https://github.com/neo4j-labs/neodash/pull/908)
[#906](https://github.com/neo4j-labs/neodash/pull/906)
[#902](https://github.com/neo4j-labs/neodash/pull/902)
[#895](https://github.com/neo4j-labs/neodash/pull/895)
[#893](https://github.com/neo4j-labs/neodash/pull/893)

## NeoDash 2.4.8
This is a minor release containing an important fix and other minor fixes:

Expand Down
1 change: 1 addition & 0 deletions cypress.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ export default defineConfig({
projectId: 'a8nh14',
video: false,
e2e: {
defaultCommandTimeout: 20000,
experimentalMemoryManagement: true,
numTestsKeptInMemory: 0,
baseUrl: 'http://localhost:3000',
Expand Down
156 changes: 156 additions & 0 deletions cypress/Page.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
const DB_URL = 'localhost';
const DB_USERNAME = 'neo4j';
const DB_PASSWORD = 'test1234';

export class Page {
constructor(cardSelector) {
this.cardSelector = cardSelector;
}

init() {
cy.viewport(1920, 1080);
cy.visit('/', {
onBeforeLoad(win) {
win.localStorage.clear();
},
});
return this;
}

createNewDashboard() {
cy.get('#form-dialog-title').then(($div) => {
const text = $div.text();
if (text == 'NeoDash - Neo4j Dashboard Builder') {
cy.wait(100);
// Create new dashboard
cy.contains('New Dashboard').click();
}
});
return this;
}

connectToNeo4j() {
cy.get('#form-dialog-title', { timeout: 20000 }).should('contain', 'Connect to Neo4j');
cy.get('#url').clear().type(DB_URL);
cy.get('#dbusername').clear().type(DB_USERNAME);
cy.get('#dbpassword').type(DB_PASSWORD);
cy.get('button').contains('Connect').click();
cy.wait(100);
return this;
}

enableReportActions() {
cy.get('main button[aria-label="Extensions').should('be.visible').click();
cy.get('#checkbox-actions').scrollIntoView();
cy.get('#checkbox-actions').should('be.visible').click();
cy.get('.ndl-dialog-close').scrollIntoView().should('be.visible').click();
cy.wait(100);
return this;
}

enableAdvancedVisualizations() {
cy.get('main button[aria-label="Extensions').should('be.visible').click();
cy.get('#checkbox-advanced-charts').should('be.visible').click();
cy.get('.ndl-dialog-close').scrollIntoView().should('be.visible').click();
cy.wait(100);
return this;
}

enableFormsExtension() {
cy.get('main button[aria-label="Extensions').should('be.visible').click();
cy.get('#checkbox-forms').scrollIntoView();
cy.get('#checkbox-forms').should('be.visible').click();
cy.get('.ndl-dialog-close').scrollIntoView().should('be.visible').click();
cy.wait(100);
return this;
}

selectReportOfType(type) {
cy.get('main .react-grid-item button[aria-label="add report"]').should('be.visible').click();
cy.get('main .react-grid-item')
.contains('No query specified.')
.parentsUntil('.react-grid-item')
.find('button[aria-label="settings"]', { timeout: 2000 })
.should('be.visible')
.click();
cy.get(`${this.cardSelector} #type`, { timeout: 2000 }).should('be.visible').click();
cy.contains(type).click();
cy.wait(100);
return this;
}

createReportOfType(type, query, fast = false, run = true) {
this.selectReportOfType(type);
if (fast) {
cy.get(`${this.cardSelector} .ReactCodeMirror`).type(query, {
delay: 1,
parseSpecialCharSequences: false,
});
} else {
cy.get(`${this.cardSelector} .ReactCodeMirror`).type(query, { parseSpecialCharSequences: false });
}
cy.wait(400);

if (run) {
this.closeSettings();
}

cy.wait(100);
return this;
}

openSettings() {
cy.get(this.cardSelector).find('button[aria-label="settings"]', { WAITING_TIME: 2000 }).click();
cy.wait(100);
return this;
}

closeSettings() {
cy.get(`${this.cardSelector} button[aria-label="run"]`).click();
cy.wait(100);
return this;
}

openAdvancedSettings() {
this.openSettings();
cy.get(this.cardSelector).contains('Advanced settings').click();
cy.wait(100);
return this;
}

closeAdvancedSettings() {
cy.get(this.cardSelector).contains('Advanced settings').click();
this.closeSettings();
return this;
}

openReportActionsMenu() {
this.openSettings();
cy.get(this.cardSelector).find('button[aria-label="custom actions"]').click();
cy.wait(100);
return this;
}

updateDropdownAdvancedSetting(settingLabel, targetValue) {
this.openAdvancedSettings();
cy.get(`${this.cardSelector} .ndl-dropdown`).contains(settingLabel).siblings('div').click();
cy.contains(targetValue).click();
this.closeAdvancedSettings();
return this;
}

updateChartQuery(query) {
this.openSettings();

cy.get(this.cardSelector)
.find('.ndl-cypher-editor div[role="textbox"]')
.should('be.visible')
.click()
.clear()
.type(query);
cy.wait(100);

this.closeSettings();
return this;
}
}
Loading

0 comments on commit 32ccb85

Please sign in to comment.