diff --git a/cypress.config.mjs b/cypress.config.mjs
index e1ff5a7b51..889089b86d 100644
--- a/cypress.config.mjs
+++ b/cypress.config.mjs
@@ -45,11 +45,36 @@ export default defineConfig({
devServer: {
framework: 'vue',
bundler: 'vite',
+ viteConfig: {
+ plugins: [vue(), nodePolyfills()],
+ optimizeDeps: {
+ exclude: [
+ 'vite-plugin-node-polyfills/shims/buffer',
+ 'vite-plugin-node-polyfills/shims/global',
+ 'vite-plugin-node-polyfills/shims/process'
+ ],
+ force: true
+ },
+ define: {
+ global: 'globalThis',
+ },
+ },
},
setupNodeEvents(on, config) {
on('file:preprocessor', vitePreprocessor({
plugins: [vue(), nodePolyfills()],
configFile: false,
+ optimizeDeps: {
+ exclude: [
+ 'vite-plugin-node-polyfills/shims/buffer',
+ 'vite-plugin-node-polyfills/shims/global',
+ 'vite-plugin-node-polyfills/shims/process'
+ ],
+ force: true
+ },
+ define: {
+ global: 'globalThis',
+ },
}))
return config
},
diff --git a/cypress/component/ContentReferenceWidget.cy.js b/cypress/component/ContentReferenceWidget.cy.js
index de260e1385..acd16c04d5 100644
--- a/cypress/component/ContentReferenceWidget.cy.js
+++ b/cypress/component/ContentReferenceWidget.cy.js
@@ -114,5 +114,5 @@ function mountContentWidget(richObject) {
// Get some often used elements
cy.get('[data-cy="contentReferenceWidget"] .options').as('options')
cy.get('[data-cy="contentReferenceWidget"] .NcTable table').as('table')
- cy.get('@table').find('tbody tr[data-cy="customTableRow"]').as('rows')
+ cy.get('@table').find('tr[data-cy="customTableRow"]').as('rows')
}
diff --git a/cypress/e2e/view-filtering-selection.cy.js b/cypress/e2e/view-filtering-selection.cy.js
index 950bafe199..8c72204e3f 100644
--- a/cypress/e2e/view-filtering-selection.cy.js
+++ b/cypress/e2e/view-filtering-selection.cy.js
@@ -25,57 +25,57 @@ describe('Filtering in a view by selection columns', () => {
cy.createSelectionCheckColumn('check', null, false)
// add row
- cy.get('button').contains('Create row').click()
+ cy.get('[data-cy="createRowBtn"]').click()
cy.fillInValueTextLine('title', 'first row')
cy.fillInValueSelection('selection', 'sel1')
cy.fillInValueSelectionMulti('multi selection', ['A', 'B'])
cy.fillInValueSelectionCheck('check')
- cy.get('button').contains('Save').click()
+ cy.get('[data-cy="createRowSaveButton"]').click()
// add row
- cy.get('button').contains('Create row').click()
+ cy.get('[data-cy="createRowBtn"]').click()
cy.fillInValueTextLine('title', 'second row')
cy.fillInValueSelection('selection', 'sel2')
cy.fillInValueSelectionMulti('multi selection', ['B'])
cy.fillInValueSelectionCheck('check')
- cy.get('button').contains('Save').click()
+ cy.get('[data-cy="createRowSaveButton"]').click()
// add row
- cy.get('button').contains('Create row').click()
+ cy.get('[data-cy="createRowBtn"]').click()
cy.fillInValueTextLine('title', 'third row')
cy.fillInValueSelection('selection', 'sel3')
cy.fillInValueSelectionMulti('multi selection', ['C', 'B', 'D'])
- cy.get('button').contains('Save').click()
+ cy.get('[data-cy="createRowSaveButton"]').click()
// add row
- cy.get('button').contains('Create row').click()
+ cy.get('[data-cy="createRowBtn"]').click()
cy.fillInValueTextLine('title', 'fourth row')
cy.fillInValueSelectionMulti('multi selection', ['A'])
cy.fillInValueSelectionCheck('check')
- cy.get('button').contains('Save').click()
+ cy.get('[data-cy="createRowSaveButton"]').click()
// add row
- cy.get('button').contains('Create row').click()
+ cy.get('[data-cy="createRowBtn"]').click()
cy.fillInValueTextLine('title', 'fifths row')
cy.fillInValueSelection('selection', 'sel4')
cy.fillInValueSelectionMulti('multi selection', ['D'])
cy.fillInValueSelectionCheck('check')
- cy.get('button').contains('Save').click()
+ cy.get('[data-cy="createRowSaveButton"]').click()
// add row
- cy.get('button').contains('Create row').click()
+ cy.get('[data-cy="createRowBtn"]').click()
cy.fillInValueTextLine('title', 'sixths row')
cy.fillInValueSelection('selection', 'sel1')
cy.fillInValueSelectionMulti('multi selection', ['C', 'D'])
cy.fillInValueSelectionCheck('check')
- cy.get('button').contains('Save').click()
+ cy.get('[data-cy="createRowSaveButton"]').click()
// add row
- cy.get('button').contains('Create row').click()
+ cy.get('[data-cy="createRowBtn"]').click()
cy.fillInValueTextLine('title', 'sevenths row')
cy.fillInValueSelection('selection', 'sel2')
cy.fillInValueSelectionMulti('multi selection', ['A', 'C', 'B', 'D'])
- cy.get('button').contains('Save').click()
+ cy.get('[data-cy="createRowSaveButton"]').click()
})
it('Filter view for single selection', () => {
@@ -89,7 +89,7 @@ describe('Filtering in a view by selection columns', () => {
cy.get('.modal-container #settings-section_title input').type(title)
// ## add filter
- cy.get('button').contains('Add new filter group').click()
+ cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
cy.get('ul.vs__dropdown-menu li span[title="selection"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -156,7 +156,7 @@ describe('Filtering in a view by selection columns', () => {
cy.get('.modal-container #settings-section_title input').type(title)
// ## add filter
- cy.get('button').contains('Add new filter group').click()
+ cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -197,7 +197,7 @@ describe('Filtering in a view by selection columns', () => {
cy.get('.modal-container #settings-section_title input').type(title)
// ## add filter
- cy.get('button').contains('Add new filter group').click()
+ cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -238,7 +238,7 @@ describe('Filtering in a view by selection columns', () => {
cy.get('.modal-container #settings-section_title input').type(title)
// ## add filter
- cy.get('button').contains('Add new filter group').click()
+ cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -246,7 +246,7 @@ describe('Filtering in a view by selection columns', () => {
cy.get('.modal-container .filter-group .v-select.select').eq(2).click()
cy.get('ul.vs__dropdown-menu li span[title="A"]').click()
- cy.get('button').contains('Add new filter').click()
+ cy.get('[data-cy="filterGroupAddFilterBtn"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(3).click()
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(4).click()
@@ -287,7 +287,7 @@ describe('Filtering in a view by selection columns', () => {
cy.get('.modal-container #settings-section_title input').type(title)
// ## add filter
- cy.get('button').contains('Add new filter group').click()
+ cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -295,7 +295,7 @@ describe('Filtering in a view by selection columns', () => {
cy.get('.modal-container .filter-group .v-select.select').eq(2).click()
cy.get('ul.vs__dropdown-menu li span[title="A"]').click()
- cy.get('button').contains('Add new filter').click()
+ cy.get('[data-cy="filterGroupAddFilterBtn"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(3).click()
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(4).click()
@@ -303,7 +303,7 @@ describe('Filtering in a view by selection columns', () => {
cy.get('.modal-container .filter-group .v-select.select').eq(5).click()
cy.get('ul.vs__dropdown-menu li span[title="B"]').click()
- cy.get('button').contains('Add new filter group').click()
+ cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(6).click()
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(7).click()
@@ -344,7 +344,7 @@ describe('Filtering in a view by selection columns', () => {
cy.get('.modal-container #settings-section_title input').type(title)
// ## add filter
- cy.get('button').contains('Add new filter group').click()
+ cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
cy.get('ul.vs__dropdown-menu li span[title="check"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -384,8 +384,8 @@ describe('Filtering in a view by selection columns', () => {
cy.get('.v-popper__popper li button span').contains('Create view').click({ force: true })
cy.get('.modal-container #settings-section_title input').type(title)
- // ## add filter
- cy.get('button').contains('Add new filter group').click()
+ // ## add filter
+ cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
cy.get('ul.vs__dropdown-menu li span[title="check"]').click()
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -402,11 +402,11 @@ describe('Filtering in a view by selection columns', () => {
cy.contains('.app-navigation-entry-link span', title).should('exist')
// # insert a checked row
- cy.get('button').contains('Create row').click()
+ cy.get('[data-cy="createRowBtn"]').click()
cy.fillInValueTextLine('title', 'checked row')
cy.fillInValueSelectionCheck('check')
cy.intercept({ method: 'GET', url: '**/apps/tables/view/*/row/*/present' }).as('isRowInViewPresent')
- cy.get('button').contains('Save').click()
+ cy.get('[data-cy="createRowSaveButton"]').click()
// ## check server response for /view/{viewId}/row/{id}/present
cy.wait('@isRowInViewPresent').then(({ response: { body: { present } } }) => {
@@ -417,10 +417,10 @@ describe('Filtering in a view by selection columns', () => {
cy.contains('[data-cy="ncTable"] [data-cy="customTableRow"]', 'checked row').should('be.visible')
// # insert a unchecked row
- cy.get('button').contains('Create row').click()
+ cy.get('[data-cy="createRowBtn"]').click()
cy.fillInValueTextLine('title', 'unchecked row')
cy.intercept({ method: 'GET', url: '**/apps/tables/view/*/row/*/present' }).as('isRowInViewPresent')
- cy.get('button').contains('Save').click()
+ cy.get('[data-cy="createRowSaveButton"]').click()
// ## check server response for /view/{viewId}/row/{id}/present
cy.wait('@isRowInViewPresent').then(({ response: { body: { present } } }) => {
@@ -448,7 +448,7 @@ describe('Filtering in a view by selection columns', () => {
// # inline edit row
// ## uncheck row
cy.intercept({ method: 'GET', url: '**/apps/tables/view/*/row/*/present' }).as('isRowInViewPresent')
- cy.contains('[data-cy="ncTable"] [data-cy="customTableRow"]', 'first row').closest('[data-cy="customTableRow"]').find('.inline-editing-container .checkbox-radio-switch').click()
+ cy.contains('[data-cy="ncTable"] [data-cy="customTableRow"]', 'first row').closest('[data-cy="customTableRow"]').find('.inline-editing-container input').click({ force: true })
// ## check server response for /view/{viewId}/row/{id}/present
cy.wait('@isRowInViewPresent').then(({ response: { body: { present } } }) => {
diff --git a/src/App.vue b/src/App.vue
index 7cf2ba5a9c..faece768d5 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -166,7 +166,7 @@ export default {
}
-
-