feat: remember last board, list for new card dialog
Signed-off-by: Luka Trovic <luka@nextcloud.com>
This commit is contained in:
@@ -149,11 +149,8 @@ describe('Card', function() {
|
|||||||
cy.get('.reference-picker-modal--content .reference-picker').should('be.visible')
|
cy.get('.reference-picker-modal--content .reference-picker').should('be.visible')
|
||||||
cy.get('.reference-picker-modal--content .reference-picker').contains('Create a new card')
|
cy.get('.reference-picker-modal--content .reference-picker').contains('Create a new card')
|
||||||
cy.get('.reference-picker-modal--content .reference-picker .card-title').should('be.visible').click().type(newCardTitle)
|
cy.get('.reference-picker-modal--content .reference-picker .card-title').should('be.visible').click().type(newCardTitle)
|
||||||
cy.get('.reference-picker-modal--content .reference-picker .multiselect-board').should('be.visible').click()
|
cy.get('.reference-picker-modal--content .reference-picker .multiselect-board').should('be.visible').contains(boardData.title)
|
||||||
cy.get('.reference-picker-modal--content .reference-picker .multiselect-board li:contains("' + boardData.title + '")').should('be.visible').click()
|
cy.get('.reference-picker-modal--content .reference-picker .multiselect-list').should('be.visible').contains(boardData.stacks[0].title)
|
||||||
cy.wait('@getBoard', { timeout: 7000 })
|
|
||||||
cy.get('.reference-picker-modal--content .reference-picker .multiselect-list').should('be.visible').click()
|
|
||||||
cy.get('.reference-picker-modal--content .reference-picker .multiselect-list li').eq(0).should('be.visible').click()
|
|
||||||
cy.get('.reference-picker-modal--content .reference-picker button.button-vue--vue-primary').should('be.visible').click()
|
cy.get('.reference-picker-modal--content .reference-picker button.button-vue--vue-primary').should('be.visible').click()
|
||||||
cy.wait('@save', { timeout: 7000 })
|
cy.wait('@save', { timeout: 7000 })
|
||||||
cy.get('.modal__card .ProseMirror').contains('/index.php/apps/deck/card/').should('be.visible')
|
cy.get('.modal__card .ProseMirror').contains('/index.php/apps/deck/card/').should('be.visible')
|
||||||
|
|||||||
@@ -129,6 +129,8 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.copiedCard = JSON.parse(JSON.stringify(this.card))
|
this.copiedCard = JSON.parse(JSON.stringify(this.card))
|
||||||
|
localStorage.setItem('deck.selectedBoardId', this.currentBoard.id)
|
||||||
|
localStorage.setItem('deck.selectedStackId', this.card.stackId)
|
||||||
},
|
},
|
||||||
|
|
||||||
async updateCardDue(val) {
|
async updateCardDue(val) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
:disabled="loading"
|
:disabled="loading"
|
||||||
label="title"
|
label="title"
|
||||||
class="selector-wrapper--selector multiselect-board"
|
class="selector-wrapper--selector multiselect-board"
|
||||||
@select="fetchBoardDetails">
|
@select="onSelectBoard">
|
||||||
<template slot="singleLabel" slot-scope="props">
|
<template slot="singleLabel" slot-scope="props">
|
||||||
<span>
|
<span>
|
||||||
<span :style="{ 'backgroundColor': '#' + props.option.color }" class="board-bullet" />
|
<span :style="{ 'backgroundColor': '#' + props.option.color }" class="board-bullet" />
|
||||||
@@ -47,7 +47,8 @@
|
|||||||
:max-height="100"
|
:max-height="100"
|
||||||
:disabled="loading || !selectedBoard"
|
:disabled="loading || !selectedBoard"
|
||||||
class="selector-wrapper--selector multiselect-list"
|
class="selector-wrapper--selector multiselect-list"
|
||||||
label="title" />
|
label="title"
|
||||||
|
@select="onSelectStack" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -220,6 +221,7 @@ export default {
|
|||||||
return board?.permissions?.PERMISSION_EDIT && !board?.archived && !board?.deletedAt
|
return board?.permissions?.PERMISSION_EDIT && !board?.archived && !board?.deletedAt
|
||||||
})
|
})
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
this.preSelectBoard()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async fetchBoardDetails(board) {
|
async fetchBoardDetails(board) {
|
||||||
@@ -230,6 +232,7 @@ export default {
|
|||||||
this.labels = response.data.labels
|
this.labels = response.data.labels
|
||||||
this.boardUsers = response.data.users
|
this.boardUsers = response.data.users
|
||||||
this.boardAcl = response.data.acl
|
this.boardAcl = response.data.acl
|
||||||
|
this.preSelectStack()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -295,6 +298,31 @@ export default {
|
|||||||
openNewCard() {
|
openNewCard() {
|
||||||
window.location = generateUrl('/apps/deck') + `#/board/${this.selectedBoard.id}/card/${this.newCard.id}`
|
window.location = generateUrl('/apps/deck') + `#/board/${this.selectedBoard.id}/card/${this.newCard.id}`
|
||||||
},
|
},
|
||||||
|
preSelectBoard() {
|
||||||
|
const selectedBoardId = Number(localStorage.getItem('deck.selectedBoardId'))
|
||||||
|
const preSelectedBoard = this.boards.find(item => item.id === selectedBoardId)
|
||||||
|
|
||||||
|
if (preSelectedBoard) {
|
||||||
|
this.selectedBoard = preSelectedBoard
|
||||||
|
this.onSelectBoard(preSelectedBoard)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
preSelectStack() {
|
||||||
|
const selectedStackId = Number(localStorage.getItem('deck.selectedStackId'))
|
||||||
|
const preSelectedStack = this.stacksFromBoard.find(item => item.id === selectedStackId)
|
||||||
|
|
||||||
|
if (preSelectedStack) {
|
||||||
|
this.selectedStack = preSelectedStack
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async onSelectBoard(board) {
|
||||||
|
localStorage.setItem('deck.selectedBoardId', board.id)
|
||||||
|
this.selectedStack = ''
|
||||||
|
await this.fetchBoardDetails(board)
|
||||||
|
},
|
||||||
|
onSelectStack(stack) {
|
||||||
|
localStorage.setItem('deck.selectedStackId', stack.id)
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user