diff --git a/e2e-tests/cypress/e2e/browse-data.cy.js b/e2e-tests/cypress/e2e/browse-data.cy.js index d1bf1a492..f269f306d 100644 --- a/e2e-tests/cypress/e2e/browse-data.cy.js +++ b/e2e-tests/cypress/e2e/browse-data.cy.js @@ -28,7 +28,7 @@ describe('Data browser data', () => { cy.contains('Finished job script'); }); - it('Data archive editor', () => { + it('Data archive editor - macros', () => { cy.testid('WidgetIconPanel_archive').click(); cy.contains('Album').click(); cy.testid('DataGrid_itemFilters').click(); @@ -113,4 +113,48 @@ describe('Data browser data', () => { cy.contains('Check all').click(); cy.screenshot('sqlgen'); }); + + it('Macros in DB', () => { + cy.contains('MySql-connection').click(); + cy.contains('MyChinook').click(); + cy.contains('Customer').click(); + cy.contains('Leonie').click(); + cy.contains('Ramos').click({ shiftKey: true }); + cy.testid('DataGrid_itemColumns').click(); + cy.testid('DataGrid_itemFilters').click(); + cy.testid('DataGrid_itemReferences').click(); + cy.testid('DataGrid_itemMacros').click(); + cy.contains('Change text case').click(); + cy.contains('NIELSEN'); + cy.screenshot('macros'); + }); + + it('Perspectives', () => { + cy.contains('MySql-connection').click(); + cy.contains('MyChinook').click(); + cy.contains('Artist').rightclick(); + cy.contains('Design perspective query').click(); + + cy.testid('PerspectiveNodeRow_check_Artist_Album').click(); + cy.testid('PerspectiveNodeRow_expand_Artist_Album').click(); + cy.testid('PerspectiveNodeRow_check_Artist_Album_Track').click(); + + // check track is loaded + cy.contains('Put The Finger On You'); + + cy.screenshot('perspective1'); + }); + + it.only('Query editor', () => { + cy.contains('MySql-connection').click(); + cy.contains('MyChinook').click(); + cy.contains('Customer').rightclick(); + cy.contains('SQL template').click(); + cy.contains('CREATE TABLE').click(); + cy.get('body').realPress('PageDown'); + cy.get('body').realType('select * from Album where Album.'); + // code completion + cy.contains('ArtistId'); + cy.screenshot('query'); + }); }); diff --git a/packages/datalib/src/PerspectiveTreeNode.ts b/packages/datalib/src/PerspectiveTreeNode.ts index 6719c1543..054192d49 100644 --- a/packages/datalib/src/PerspectiveTreeNode.ts +++ b/packages/datalib/src/PerspectiveTreeNode.ts @@ -221,6 +221,11 @@ export abstract class PerspectiveTreeNode { return false; } + get pathIdentifier() { + if (this.parentNode) return `${this.parentNode.pathIdentifier}_${this.codeName}`; + return this.codeName; + } + hasDesignerIdInIncestors(designerId: string): boolean { if (designerId == this.designerId) return true; return this.parentNode?.hasDesignerIdInIncestors(designerId) || false; diff --git a/packages/web/src/icons/FontIcon.svelte b/packages/web/src/icons/FontIcon.svelte index c2875cca8..95feb253f 100644 --- a/packages/web/src/icons/FontIcon.svelte +++ b/packages/web/src/icons/FontIcon.svelte @@ -301,7 +301,15 @@ }; - +