From 7635423f52ed23f7b58dabd3d69d857693f600bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julius=20H=C3=A4rtl?= Date: Thu, 8 Feb 2024 10:12:57 +0100 Subject: [PATCH] fix: Adapt to new nextcloud vue version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl (cherry picked from commit e1de6d317b842e7e5ef4f3e89a08b17372f2f776) --- cypress/e2e/cardFeatures.js | 33 +++---- cypress/e2e/sharingFeatures.js | 3 + cypress/support/commands.js | 9 +- src/App.vue | 4 +- src/CardMoveDialog.vue | 31 +++--- src/CardSelector.vue | 12 +-- src/components/ActivityEntry.vue | 2 +- src/components/AttachmentDragAndDrop.vue | 2 +- src/components/Controls.vue | 8 +- src/components/board/BoardSidebar.vue | 2 +- src/components/board/SharingTabSidebar.vue | 18 ++-- src/components/card/AssignmentSelector.vue | 25 ++--- src/components/card/CardSidebar.vue | 2 +- src/components/card/CardSidebarTabDetails.vue | 3 +- src/components/card/DueDateSelector.vue | 2 +- src/components/card/TagSelector.vue | 50 +++++----- src/components/cards/AvatarList.vue | 96 ++++++++++++------- src/components/cards/CardItem.vue | 2 +- src/components/cards/badges/DueDate.vue | 2 +- src/components/navigation/AppNavigation.vue | 12 +-- .../navigation/AppNavigationAddBoard.vue | 2 +- .../navigation/AppNavigationBoard.vue | 19 ++-- .../navigation/AppNavigationBoardCategory.vue | 2 +- src/directives/focus.js | 22 +++++ src/init-reference.js | 48 ++++++---- src/views/CreateNewCardCustomPicker.vue | 28 +++--- 26 files changed, 252 insertions(+), 187 deletions(-) create mode 100644 src/directives/focus.js diff --git a/cypress/e2e/cardFeatures.js b/cypress/e2e/cardFeatures.js index 60344ec05..8817b0b56 100644 --- a/cypress/e2e/cardFeatures.js +++ b/cypress/e2e/cardFeatures.js @@ -69,11 +69,13 @@ describe('Card', function() { .first().click() cy.get('.modal-mask.card-selector .card-title').should('be.visible').click().type(newCardTitle) cy.get('.modal-mask.card-selector .multiselect-board').should('be.visible').click() - cy.get('.modal-mask.card-selector .multiselect-board li:contains("' + boardData.title + '")').should('be.visible').click() + cy.get('.vs__dropdown-menu [data-cy="board-select-title"]:contains("' + boardData.title + '")').should('be.visible').click() + cy.wait('@getBoard', { timeout: 7000 }) cy.get('.modal-mask.card-selector .multiselect-list').should('be.visible').click() - cy.get('.modal-mask.card-selector .multiselect-list li').eq(0).should('be.visible').click() + cy.get('.vs__dropdown-menu span[title="TestList"]').should('be.visible').click() + cy.get('.modal-mask.card-selector button.button-vue--vue-primary').should('be.visible').click() cy.wait('@save', { timeout: 7000 }) @@ -101,13 +103,13 @@ describe('Card', function() { }) cy.get('.modal__card').should('be.visible') - cy.get('.app-sidebar-header__maintitle').contains('Hello world') + cy.get('.app-sidebar-header__mainname').contains('Hello world') }) it('Attachment from files app', () => { cy.get('.card:contains("Hello world")').should('be.visible').click() cy.get('.modal__card').should('be.visible') - cy.get('.app-sidebar-tabs__tab [data-id="attachments"]').click() + cy.get('#tab-button-attachments').click() cy.get('button.icon-upload').should('be.visible') cy.get('button.icon-folder').should('be.visible') .click() @@ -118,11 +120,11 @@ describe('Card', function() { cy.get('.attachment-list .basename').contains('welcome.txt') }) - it('Shows the modal with the editor', () => { + it.only('Shows the modal with the editor', () => { cy.get('.card:contains("Hello world")').should('be.visible').click() cy.intercept({ method: 'PUT', url: '**/apps/deck/cards/*' }).as('save') cy.get('.modal__card').should('be.visible') - cy.get('.app-sidebar-header__maintitle').contains('Hello world') + cy.get('.app-sidebar-header__mainname').contains('Hello world') cy.get('.modal__card .ProseMirror h1').contains('Hello world').should('be.visible') cy.get('.modal__card .ProseMirror h1') .click() @@ -229,20 +231,13 @@ describe('Card', function() { cy.get(`.card:contains("${newCardTitle}")`).should('be.visible').click() cy.get('#app-sidebar-vue [data-test="tag-selector"]').should('be.visible').click() - cy.get('.multiselect__option:contains("Action needed")').should('be.visible').click() + cy.get('.vs__dropdown-menu .tag:contains("Action needed")').should('be.visible').click() + cy.get('.vs__selected .tag:contains("Action needed")').should('be.visible') + cy.get('.vs__dropdown-menu .tag:contains("Later")').should('be.visible').click() - cy.get('[data-test="tag-selector"] .selector-wrapper--icon').click() - cy.get('.multiselect__option:contains("Action needed")').should('not.be.visible') - - cy.get('[data-test="tag-selector"] .multiselect__tags .tag:contains("Action needed")') - .should('be.visible') - - cy.get(`.card:contains("${newCardTitle}")`).find('.labels li:contains("Action needed")') - .should('be.visible') - - cy.get('#app-sidebar-vue [data-test="tag-selector"]').should('be.visible').click() - cy.get('.multiselect__option:contains("Later")').should('be.visible').click() - cy.get('.multiselect__option:contains("Action needed")').should('be.visible').click() + cy.get('.vs__selected .tag:contains("Action needed")').should('be.visible') + cy.get('.vs__selected .tag:contains("Action needed")') + .parent().find('button').click() cy.get(`.card:contains("${newCardTitle}")`).find('.labels li:contains("Later")') .should('be.visible') diff --git a/cypress/e2e/sharingFeatures.js b/cypress/e2e/sharingFeatures.js index 634af242b..f5da482e1 100644 --- a/cypress/e2e/sharingFeatures.js +++ b/cypress/e2e/sharingFeatures.js @@ -38,7 +38,10 @@ describe('Board', function() { cy.get('.board-title').contains(board.title) cy.shareBoardWithUi(recipient.userId) + + cy.intercept({ method: 'PUT', url: '**/apps/deck/boards/*/acl/*' }).as('setAcl') cy.get(`[data-cy="acl-participant:${recipient.userId}"]`).find('[data-cy="action:permission-edit"]').click() + cy.wait('@setAcl') cy.login(recipient) cy.visit(`/apps/deck/#/board/${boardId}`) diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 8001cbed8..dbef64203 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -107,11 +107,14 @@ Cypress.Commands.add('getNavigationEntry', (boardTitle) => { }) Cypress.Commands.add('shareBoardWithUi', (userId) => { + cy.intercept({ method: 'GET', url: `**/ocs/v2.php/apps/files_sharing/api/v1/sharees?search=${userId}*` }).as('fetchRecipients') cy.get('[aria-label="Open details"]').click() cy.get('.app-sidebar').should('be.visible') - cy.get('.multiselect__input').type(`${userId}`) - cy.get('.multiselect__content .multiselect__element').first().contains(userId) - cy.get('.multiselect__input').type('{enter}') + cy.get('.select input').type(`${userId}`) + cy.wait('@fetchRecipients', { timeout: 7000 }) + + cy.get('.vs__dropdown-menu .option').first().contains(userId) + cy.get('.select input').type('{enter}') cy.get('.shareWithList').contains(userId) }) diff --git a/src/App.vue b/src/App.vue index 029917875..0c4cb6693 100644 --- a/src/App.vue +++ b/src/App.vue @@ -200,11 +200,13 @@ export default { background-image: url('../img/color_picker.svg'); } - .multiselect { + .v-select { width: 100%; } .modal__card { + width: 100%; + min-width: 100%; height: 100vh; max-height: calc(100vh - 120px); overflow: auto; diff --git a/src/CardMoveDialog.vue b/src/CardMoveDialog.vue index 286cea6cc..0b978ec7d 100644 --- a/src/CardMoveDialog.vue +++ b/src/CardMoveDialog.vue @@ -2,21 +2,20 @@