Fix No Add Card + etc.

Thanks to mimZD and xet7 !

Fixes #6108
This commit is contained in:
Lauri Ojansivu 2026-02-07 03:52:16 +02:00
parent c7b46c86c3
commit 55710835fe
15 changed files with 53 additions and 12 deletions

View file

@ -925,7 +925,8 @@ template(name="cardAssigneesPopup")
if userData.username
| (#{userData.username})
if isCardAssignee
i.fa.fa-check if currentUser.isWorker
i.fa.fa-check
if currentUser.isWorker
ul.pop-over-list.js-card-assignee-list
li.item(class="{{#if currentUser.isCardAssignee}}active{{/if}}")
a.name.js-select-assignee(href="#")

View file

@ -157,7 +157,7 @@ BlazeComponent.extendComponent({
textarea.focus();
},
deleteItem() {
async deleteItem() {
const checklist = this.currentData().checklist;
const item = this.currentData().item;
if (checklist && item && item._id) {

View file

@ -137,7 +137,7 @@
height: clamp(20px, 2.5vw, 28px);
position: absolute;
right: 0vw;
top: 6vh;
top: 4vh;
display: none;
z-index: 1;
}

View file

@ -46,7 +46,8 @@ template(name="minicard")
span {{_ 'upload-failed'}}
else if $eq status 'completed'
.upload-progress-success
i.fa.fa-check span {{_ 'upload-completed'}}
i.fa.fa-check
span {{_ 'upload-completed'}}
.minicard-title
if $eq 'prefix-with-full-path' currentBoard.presentParentTask

View file

@ -198,7 +198,7 @@ body.list-resizing-active * {
.list-header .list-header-plus-top {
position: absolute !important;
top: 5px !important;
right: 10px !important;
right: 30px !important;
z-index: 15 !important;
display: inline-block !important;
padding: 4px !important;
@ -207,7 +207,7 @@ body.list-resizing-active * {
.list-header .list-header-handle-desktop {
position: absolute !important;
top: 5px !important;
right: 40px !important;
right: 80px !important;
z-index: 15 !important;
display: inline-block !important;
cursor: move !important;

View file

@ -25,6 +25,13 @@ template(name="listBody")
+minicard(this)
if (showSpinner (idOrNull ../../_id))
+spinnerList
if canSeeAddCard
+inlinedForm(autoclose=false position="bottom")
+addCardForm(listId=_id position="bottom")
else
a.open-minicard-composer.js-card-composer.js-open-inlined-form(title="{{_ 'add-card-to-bottom-of-list'}}")
i.fa.fa-plus
| {{_ 'add-card'}}
+inlinedForm(autoclose=false position="bottom")
+addCardForm(listId=_id position="bottom")

View file

@ -59,6 +59,9 @@ template(name="listHeader")
unless currentUser.isCommentOnly
unless currentUser.isReadOnly
unless currentUser.isReadAssignedOnly
if canSeeAddCard
a.js-add-card.list-header-plus-top(title="{{_ 'add-card-to-top-of-list'}}")
i.fa.fa-plus
a.js-open-list-menu(title="{{_ 'listActionPopup-title'}}")
i.fa.fa-bars
else
@ -84,6 +87,12 @@ template(name="listHeader")
unless currentUser.isReadAssignedOnly
//if isBoardAdmin
// a.fa.js-list-star.list-header-plus-top(class="fa-star{{#unless starred}}-o{{/unless}}")
if isTouchScreenOrShowDesktopDragHandles
a.list-header-handle-desktop.handle.js-list-handle(title="{{_ 'drag-list'}}")
i.fa.fa-arrows
if canSeeAddCard
a.js-add-card.list-header-plus-top(title="{{_ 'add-card-to-top-of-list'}}")
i.fa.fa-plus
a.js-open-list-menu(title="{{_ 'listActionPopup-title'}}")
i.fa.fa-bars

View file

@ -123,6 +123,15 @@ BlazeComponent.extendComponent({
this.collapsed(!this.collapsed());
},
'click .js-open-list-menu': Popup.open('listAction'),
'click .js-add-card.list-header-plus-top'(event) {
const listDom = $(event.target).parents(
`#js-list-${this.currentData()._id}`,
)[0];
const listComponent = BlazeComponent.getComponentForElement(listDom);
listComponent.openForm({
position: 'top',
});
},
'click .js-unselect-list'() {
Session.set('currentList', null);
},

View file

@ -52,7 +52,8 @@ template(name="dueCardsViewChangePopup")
i.fa.fa-user
| {{_ 'dueCardsViewChange-choice-me'}}
if $eq Utils.dueCardsView "me"
i.fa.fa-check hr
i.fa.fa-check
hr
li
with "dueCardsViewChange-choice-all"
a.js-due-cards-view-all
@ -62,4 +63,4 @@ template(name="dueCardsViewChangePopup")
+viewer
| {{_ 'dueCardsViewChange-choice-all-description' }}
if $eq Utils.dueCardsView "all"
i.fa.fa-check
i.fa.fa-check

View file

@ -84,4 +84,5 @@ template(name="setCardActionsColorPopup")
.palette-colors: each colors
span.card-label.palette-color.js-palette-color(class="card-details-{{color}}")
if(isSelected color)
i.fa.fa-check button.primary.confirm.js-submit {{_ 'save'}}
i.fa.fa-check
button.primary.confirm.js-submit {{_ 'save'}}

View file

@ -57,7 +57,8 @@ template(name="filterSidebar")
= profile.fullname
| (<span class="username">{{ username }}</span>)
if Filter.members.isSelected _id
i.fa.fa-check hr
i.fa.fa-check
hr
h3
i.fa.fa-user
| {{_ 'filter-assignee-label'}}

View file

@ -35,6 +35,8 @@ template(name="swimlaneFixedHeader")
i.fa.fa-caret-down
a.js-open-swimlane-menu(title="{{_ 'swimlaneActionPopup-title'}}")
i.fa.fa-bars
a.js-open-add-swimlane-menu.swimlane-header-plus-icon(title="{{_ 'add-swimlane'}}")
i.fa.fa-plus
if isTouchScreenOrShowDesktopDragHandles
unless isTouchScreen
a.swimlane-header-handle.handle.js-swimlane-header-handle
@ -114,7 +116,8 @@ template(name="setSwimlaneColorPopup")
each colors
span.card-label.palette-color.js-palette-color(class="card-details-{{color}}")
if(isSelected color)
i.fa.fa-check // Buttons aligned left too
i.fa.fa-check
// Buttons aligned left too
.flush-left
button.primary.confirm.js-submit(style="margin-left:0") {{_ 'save'}}
button.js-remove-color.negate.wide.right(style="margin-left:8px") {{_ 'unset-color'}}

View file

@ -39,6 +39,7 @@ BlazeComponent.extendComponent({
this.collapsed(!this.collapsed());
},
'click .js-open-swimlane-menu': Popup.open('swimlaneAction'),
'click .js-open-add-swimlane-menu': Popup.open('swimlaneAdd'),
submit: this.editTitle,
},
];

View file

@ -109,12 +109,13 @@
.swimlane .swimlane-header-wrap .swimlane-header-plus-icon {
top: calc(50% + 6px);
padding: 5px;
margin-left: 20px;
font-size: 22px;
color: #a6a6a6;
}
.swimlane .swimlane-header-wrap .swimlane-header-menu-icon {
top: calc(50% + 6px);
padding: 5px;
padding-left: 5px;
font-size: 22px;
}
.swimlane .swimlane-header-wrap .swimlane-header-handle {

View file

@ -9,9 +9,15 @@ template(name="swimlane")
if currentListIsInThisSwimlane _id
+list(currentList)
unless currentList
if currentUser.isBoardMember
unless currentUser.isCommentOnly
+addListForm
each lists
+miniList(this)
else
if currentUser.isBoardMember
unless currentUser.isCommentOnly
+addListForm
each lists
if visible this
+list(this)