Skip to content

Commit be49a84

Browse files
authored
Merge pull request #2018 from nextcloud/scope-smartpicker-css
fix: Scope CSS styles
2 parents 91e391e + 185a2ad commit be49a84

13 files changed

Lines changed: 118 additions & 91 deletions

File tree

cypress.config.mjs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,36 @@ export default defineConfig({
4545
devServer: {
4646
framework: 'vue',
4747
bundler: 'vite',
48+
viteConfig: {
49+
plugins: [vue(), nodePolyfills()],
50+
optimizeDeps: {
51+
exclude: [
52+
'vite-plugin-node-polyfills/shims/buffer',
53+
'vite-plugin-node-polyfills/shims/global',
54+
'vite-plugin-node-polyfills/shims/process'
55+
],
56+
force: true
57+
},
58+
define: {
59+
global: 'globalThis',
60+
},
61+
},
4862
},
4963
setupNodeEvents(on, config) {
5064
on('file:preprocessor', vitePreprocessor({
5165
plugins: [vue(), nodePolyfills()],
5266
configFile: false,
67+
optimizeDeps: {
68+
exclude: [
69+
'vite-plugin-node-polyfills/shims/buffer',
70+
'vite-plugin-node-polyfills/shims/global',
71+
'vite-plugin-node-polyfills/shims/process'
72+
],
73+
force: true
74+
},
75+
define: {
76+
global: 'globalThis',
77+
},
5378
}))
5479
return config
5580
},

cypress/component/ContentReferenceWidget.cy.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,5 +114,5 @@ function mountContentWidget(richObject) {
114114
// Get some often used elements
115115
cy.get('[data-cy="contentReferenceWidget"] .options').as('options')
116116
cy.get('[data-cy="contentReferenceWidget"] .NcTable table').as('table')
117-
cy.get('@table').find('tbody tr[data-cy="customTableRow"]').as('rows')
117+
cy.get('@table').find('tr[data-cy="customTableRow"]').as('rows')
118118
}

cypress/e2e/view-filtering-selection.cy.js

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,57 +25,57 @@ describe('Filtering in a view by selection columns', () => {
2525
cy.createSelectionCheckColumn('check', null, false)
2626

2727
// add row
28-
cy.get('button').contains('Create row').click()
28+
cy.get('[data-cy="createRowBtn"]').click()
2929
cy.fillInValueTextLine('title', 'first row')
3030
cy.fillInValueSelection('selection', 'sel1')
3131
cy.fillInValueSelectionMulti('multi selection', ['A', 'B'])
3232
cy.fillInValueSelectionCheck('check')
33-
cy.get('button').contains('Save').click()
33+
cy.get('[data-cy="createRowSaveButton"]').click()
3434

3535
// add row
36-
cy.get('button').contains('Create row').click()
36+
cy.get('[data-cy="createRowBtn"]').click()
3737
cy.fillInValueTextLine('title', 'second row')
3838
cy.fillInValueSelection('selection', 'sel2')
3939
cy.fillInValueSelectionMulti('multi selection', ['B'])
4040
cy.fillInValueSelectionCheck('check')
41-
cy.get('button').contains('Save').click()
41+
cy.get('[data-cy="createRowSaveButton"]').click()
4242

4343
// add row
44-
cy.get('button').contains('Create row').click()
44+
cy.get('[data-cy="createRowBtn"]').click()
4545
cy.fillInValueTextLine('title', 'third row')
4646
cy.fillInValueSelection('selection', 'sel3')
4747
cy.fillInValueSelectionMulti('multi selection', ['C', 'B', 'D'])
48-
cy.get('button').contains('Save').click()
48+
cy.get('[data-cy="createRowSaveButton"]').click()
4949

5050
// add row
51-
cy.get('button').contains('Create row').click()
51+
cy.get('[data-cy="createRowBtn"]').click()
5252
cy.fillInValueTextLine('title', 'fourth row')
5353
cy.fillInValueSelectionMulti('multi selection', ['A'])
5454
cy.fillInValueSelectionCheck('check')
55-
cy.get('button').contains('Save').click()
55+
cy.get('[data-cy="createRowSaveButton"]').click()
5656

5757
// add row
58-
cy.get('button').contains('Create row').click()
58+
cy.get('[data-cy="createRowBtn"]').click()
5959
cy.fillInValueTextLine('title', 'fifths row')
6060
cy.fillInValueSelection('selection', 'sel4')
6161
cy.fillInValueSelectionMulti('multi selection', ['D'])
6262
cy.fillInValueSelectionCheck('check')
63-
cy.get('button').contains('Save').click()
63+
cy.get('[data-cy="createRowSaveButton"]').click()
6464

6565
// add row
66-
cy.get('button').contains('Create row').click()
66+
cy.get('[data-cy="createRowBtn"]').click()
6767
cy.fillInValueTextLine('title', 'sixths row')
6868
cy.fillInValueSelection('selection', 'sel1')
6969
cy.fillInValueSelectionMulti('multi selection', ['C', 'D'])
7070
cy.fillInValueSelectionCheck('check')
71-
cy.get('button').contains('Save').click()
71+
cy.get('[data-cy="createRowSaveButton"]').click()
7272

7373
// add row
74-
cy.get('button').contains('Create row').click()
74+
cy.get('[data-cy="createRowBtn"]').click()
7575
cy.fillInValueTextLine('title', 'sevenths row')
7676
cy.fillInValueSelection('selection', 'sel2')
7777
cy.fillInValueSelectionMulti('multi selection', ['A', 'C', 'B', 'D'])
78-
cy.get('button').contains('Save').click()
78+
cy.get('[data-cy="createRowSaveButton"]').click()
7979
})
8080

8181
it('Filter view for single selection', () => {
@@ -89,7 +89,7 @@ describe('Filtering in a view by selection columns', () => {
8989
cy.get('.modal-container #settings-section_title input').type(title)
9090

9191
// ## add filter
92-
cy.get('button').contains('Add new filter group').click()
92+
cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
9393
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
9494
cy.get('ul.vs__dropdown-menu li span[title="selection"]').click()
9595
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -156,7 +156,7 @@ describe('Filtering in a view by selection columns', () => {
156156
cy.get('.modal-container #settings-section_title input').type(title)
157157

158158
// ## add filter
159-
cy.get('button').contains('Add new filter group').click()
159+
cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
160160
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
161161
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
162162
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -197,7 +197,7 @@ describe('Filtering in a view by selection columns', () => {
197197
cy.get('.modal-container #settings-section_title input').type(title)
198198

199199
// ## add filter
200-
cy.get('button').contains('Add new filter group').click()
200+
cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
201201
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
202202
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
203203
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -238,15 +238,15 @@ describe('Filtering in a view by selection columns', () => {
238238
cy.get('.modal-container #settings-section_title input').type(title)
239239

240240
// ## add filter
241-
cy.get('button').contains('Add new filter group').click()
241+
cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
242242
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
243243
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
244244
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
245245
cy.get('ul.vs__dropdown-menu li span[title="Contains"]').click()
246246
cy.get('.modal-container .filter-group .v-select.select').eq(2).click()
247247
cy.get('ul.vs__dropdown-menu li span[title="A"]').click()
248248

249-
cy.get('button').contains('Add new filter').click()
249+
cy.get('[data-cy="filterGroupAddFilterBtn"]').click()
250250
cy.get('.modal-container .filter-group .v-select.select').eq(3).click()
251251
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
252252
cy.get('.modal-container .filter-group .v-select.select').eq(4).click()
@@ -287,23 +287,23 @@ describe('Filtering in a view by selection columns', () => {
287287
cy.get('.modal-container #settings-section_title input').type(title)
288288

289289
// ## add filter
290-
cy.get('button').contains('Add new filter group').click()
290+
cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
291291
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
292292
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
293293
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
294294
cy.get('ul.vs__dropdown-menu li span[title="Contains"]').click()
295295
cy.get('.modal-container .filter-group .v-select.select').eq(2).click()
296296
cy.get('ul.vs__dropdown-menu li span[title="A"]').click()
297297

298-
cy.get('button').contains('Add new filter').click()
298+
cy.get('[data-cy="filterGroupAddFilterBtn"]').click()
299299
cy.get('.modal-container .filter-group .v-select.select').eq(3).click()
300300
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
301301
cy.get('.modal-container .filter-group .v-select.select').eq(4).click()
302302
cy.get('ul.vs__dropdown-menu li span[title="Contains"]').click()
303303
cy.get('.modal-container .filter-group .v-select.select').eq(5).click()
304304
cy.get('ul.vs__dropdown-menu li span[title="B"]').click()
305305

306-
cy.get('button').contains('Add new filter group').click()
306+
cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
307307
cy.get('.modal-container .filter-group .v-select.select').eq(6).click()
308308
cy.get('ul.vs__dropdown-menu li span[title="multi selection"]').click()
309309
cy.get('.modal-container .filter-group .v-select.select').eq(7).click()
@@ -344,7 +344,7 @@ describe('Filtering in a view by selection columns', () => {
344344
cy.get('.modal-container #settings-section_title input').type(title)
345345

346346
// ## add filter
347-
cy.get('button').contains('Add new filter group').click()
347+
cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
348348
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
349349
cy.get('ul.vs__dropdown-menu li span[title="check"]').click()
350350
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -384,8 +384,8 @@ describe('Filtering in a view by selection columns', () => {
384384
cy.get('.v-popper__popper li button span').contains('Create view').click({ force: true })
385385
cy.get('.modal-container #settings-section_title input').type(title)
386386

387-
// ## add filter
388-
cy.get('button').contains('Add new filter group').click()
387+
// ## add filter
388+
cy.get('[data-cy="filterFormFilterGroupBtn"]').click()
389389
cy.get('.modal-container .filter-group .v-select.select').eq(0).click()
390390
cy.get('ul.vs__dropdown-menu li span[title="check"]').click()
391391
cy.get('.modal-container .filter-group .v-select.select').eq(1).click()
@@ -402,11 +402,11 @@ describe('Filtering in a view by selection columns', () => {
402402
cy.contains('.app-navigation-entry-link span', title).should('exist')
403403

404404
// # insert a checked row
405-
cy.get('button').contains('Create row').click()
405+
cy.get('[data-cy="createRowBtn"]').click()
406406
cy.fillInValueTextLine('title', 'checked row')
407407
cy.fillInValueSelectionCheck('check')
408408
cy.intercept({ method: 'GET', url: '**/apps/tables/view/*/row/*/present' }).as('isRowInViewPresent')
409-
cy.get('button').contains('Save').click()
409+
cy.get('[data-cy="createRowSaveButton"]').click()
410410

411411
// ## check server response for /view/{viewId}/row/{id}/present
412412
cy.wait('@isRowInViewPresent').then(({ response: { body: { present } } }) => {
@@ -417,10 +417,10 @@ describe('Filtering in a view by selection columns', () => {
417417
cy.contains('[data-cy="ncTable"] [data-cy="customTableRow"]', 'checked row').should('be.visible')
418418

419419
// # insert a unchecked row
420-
cy.get('button').contains('Create row').click()
420+
cy.get('[data-cy="createRowBtn"]').click()
421421
cy.fillInValueTextLine('title', 'unchecked row')
422422
cy.intercept({ method: 'GET', url: '**/apps/tables/view/*/row/*/present' }).as('isRowInViewPresent')
423-
cy.get('button').contains('Save').click()
423+
cy.get('[data-cy="createRowSaveButton"]').click()
424424

425425
// ## check server response for /view/{viewId}/row/{id}/present
426426
cy.wait('@isRowInViewPresent').then(({ response: { body: { present } } }) => {
@@ -448,7 +448,7 @@ describe('Filtering in a view by selection columns', () => {
448448
// # inline edit row
449449
// ## uncheck row
450450
cy.intercept({ method: 'GET', url: '**/apps/tables/view/*/row/*/present' }).as('isRowInViewPresent')
451-
cy.contains('[data-cy="ncTable"] [data-cy="customTableRow"]', 'first row').closest('[data-cy="customTableRow"]').find('.inline-editing-container .checkbox-radio-switch').click()
451+
cy.contains('[data-cy="ncTable"] [data-cy="customTableRow"]', 'first row').closest('[data-cy="customTableRow"]').find('.inline-editing-container input').click({ force: true })
452452

453453
// ## check server response for /view/{viewId}/row/{id}/present
454454
cy.wait('@isRowInViewPresent').then(({ response: { body: { present } } }) => {

src/App.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ export default {
166166
}
167167
168168
</style>
169-
<style lang="scss">
169+
<style lang="scss" scoped>
170170
171171
h1 {
172172
font-size: 1.98em;

src/modules/main/partials/editViewPartials/filter/FilterGroup.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
:close-after-click="true"
2020
type="tertiary"
2121
:aria-label="t('tables', 'Add new filter')"
22+
data-cy="filterGroupAddFilterBtn"
2223
@click="addFilter">
2324
{{ t('tables', 'Add new filter') }}
2425
<template #icon>

src/modules/main/partials/editViewPartials/sort/SortForm.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ export default {
122122
* - Not all columns that are sortable on the front-end are sortable on the back-end.
123123
* - Example: "selection" fields — the front-end can sort them by value (since it has it),
124124
* but the back-end only stores an ID and cannot easily JOIN the value for sorting.
125+
* @param col {AbstractColumn} The column to check.
125126
*/
126127
canBeSorted(col) {
127128
return ![

src/modules/navigation/partials/NavigationTableItem.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ export default {
311311
},
312312
}
313313
</script>
314-
<style lang="scss">
314+
<style lang="scss" scoped>
315315
316316
.app-navigation-entry.active {
317317
.icon-share {

src/pages/Table.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export default {
4141
},
4242
}
4343
</script>
44-
<style lang="scss">
44+
<style lang="scss" scoped>
4545
.main-table-view {
4646
width: max-content;
4747
min-width: var(--app-content-width, 100%);

src/pages/View.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export default {
3636
},
3737
}
3838
</script>
39-
<style lang="scss">
39+
<style lang="scss" scoped>
4040
.main-view-view {
4141
width: max-content;
4242
min-width: var(--app-content-width, 100%);

src/shared/components/ncTable/NcTable.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ export default {
278278
}
279279
</style>
280280
281-
<style lang="scss">
281+
<style lang="scss" scoped>
282282
.image_container.widget-file {
283283
height: auto !important;
284284
}

0 commit comments

Comments
 (0)