diff --git a/src/components/board/Board.vue b/src/components/board/Board.vue
index 3bf47d68f..64019b440 100644
--- a/src/components/board/Board.vue
+++ b/src/components/board/Board.vue
@@ -22,23 +22,27 @@
-
+
{{ t('deck', 'No lists available') }}
{{ t('deck', 'Create a new list to add cards to this board') }}
@@ -82,8 +86,9 @@ import { Container, Draggable } from 'vue-smooth-dnd'
import { mapState, mapGetters } from 'vuex'
import Controls from '../Controls.vue'
import DeckIcon from '../icons/DeckIcon.vue'
+import CheckIcon from 'vue-material-design-icons/Check.vue'
import Stack from './Stack.vue'
-import { NcEmptyContent, NcModal } from '@nextcloud/vue'
+import { NcEmptyContent, NcModal, NcButton, NcTextField, NcLoadingIcon } from '@nextcloud/vue'
import GlobalSearchResults from '../search/GlobalSearchResults.vue'
import { showError } from '../../helpers/errors.js'
import { createSession } from '../../sessions.js'
@@ -99,6 +104,10 @@ export default {
Stack,
NcEmptyContent,
NcModal,
+ NcTextField,
+ NcButton,
+ NcLoadingIcon,
+ CheckIcon,
CardSidebar,
},
inject: [
@@ -131,7 +140,7 @@ export default {
'canManage',
]),
stacksByBoard() {
- return this.$store.getters.stacksByBoard(this.board.id)
+ return this.board?.id ? this.$store.getters.stacksByBoard(this.board.id) : []
},
dragHandleSelector() {
return this.canEdit ? '.stack__title' : '.no-drag'
@@ -147,6 +156,11 @@ export default {
showArchived() {
this.fetchData()
},
+ isEmpty(newValue) {
+ newValue && this.$nextTick(() => {
+ this.$refs?.newStackInput.focus()
+ })
+ },
},
created() {
this.session = createSession(this.id)
@@ -236,13 +250,16 @@ export default {
text-align: center;
display: flex;
width: 100%;
- max-width: 200px;
margin: auto;
- margin-top: 20px;
+ margin-top: calc(var(--default-grid-baseline) * 4);
+ gap: var(--default-grid-baseline);
- input[type=text] {
+ input[type="text"] {
flex-grow: 1;
}
+ button[type="submit"] {
+ flex-shrink: 0;
+ }
}
.board-wrapper {