diff --git a/package.json b/package.json index 171137490..ee0ba6b62 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "@nextcloud/vue": "^1.4.1", "blueimp-md5": "^2.13.0", "dompurify": "^2.0.8", + "moment": "^2.24.0", "nextcloud-vue-collections": "^0.7.2", "p-queue": "^6.3.0", "url-search-params-polyfill": "^8.0.0", diff --git a/src/components/card/CardSidebar.vue b/src/components/card/CardSidebar.vue index be97d440b..7335d32ec 100644 --- a/src/components/card/CardSidebar.vue +++ b/src/components/card/CardSidebar.vue @@ -276,7 +276,7 @@ export default { this.copiedCard = JSON.parse(JSON.stringify(this.currentCard)) this.allLabels = this.currentCard.labels - if (this.currentCard.assignedUsers.length > 0) { + if (this.currentCard.assignedUsers && this.currentCard.assignedUsers.length > 0) { this.assignedUsers = this.currentCard.assignedUsers.map((item) => item.participant) } else { this.assignedUsers = [] diff --git a/src/components/cards/CardBadges.vue b/src/components/cards/CardBadges.vue index 1f73cf583..74c0e72a1 100644 --- a/src/components/cards/CardBadges.vue +++ b/src/components/cards/CardBadges.vue @@ -22,16 +22,10 @@ @@ -227,13 +157,6 @@ export default { $card-spacing: 10px; $card-padding: 10px; - .fade-enter-active, .fade-leave-active { - transition: opacity .125s; - } - .fade-enter, .fade-leave-to { - opacity: 0; - } - body.dark .card { border: 1px solid var(--color-border); } @@ -290,8 +213,8 @@ export default { display: flex; flex-direction: row; overflow: hidden; - padding: 1px 3px; - border-radius: 3px; + padding: 3px 7px; + border-radius: 15px; font-size: 85%; margin-right: 3px; margin-bottom: 3px; @@ -314,13 +237,56 @@ export default { .card-controls { display: flex; margin-left: $card-padding; - margin-right: $card-padding; & > div { display: flex; max-height: 44px; } } } + .right { + display: flex; + align-items: flex-start; + margin-right: 9px; + } + + .icon.due { + background-position: 4px center; + border-radius: 3px; + margin-top: 9px; + margin-bottom: 9px; + padding: 3px 4px; + font-size: 90%; + display: flex; + align-items: center; + opacity: .5; + flex-shrink: 1; + z-index: 2; + + .icon { + background-size: contain; + } + + &.overdue { + background-color: var(--color-error); + color: var(--color-primary-text); + opacity: .7; + } + &.now { + background-color: var(--color-warning); + opacity: .7; + } + &.next { + background-color: var(--color-background-dark); + opacity: .7; + } + + span { + margin-left: 20px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + } + } .compact { min-height: 50px; @@ -340,20 +306,4 @@ export default { color: transparent; } } - - .modal__content { - width: 25vw; - min-width: 250px; - height: 120px; - text-align: center; - margin: 20px 20px 60px 20px; - - .multiselect { - margin-bottom: 10px; - } - } - - .modal__content button { - float: right; - }