mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 21:17:18 -04:00
Link description
This commit is contained in:
parent
5644ef66af
commit
64367a01dd
7 changed files with 50 additions and 19 deletions
|
@ -109,10 +109,10 @@ template(name="cardDetails")
|
|||
a.js-open-inlined-form {{_ 'view-it'}}
|
||||
= ' - '
|
||||
a.js-close-inlined-form {{_ 'discard'}}
|
||||
else if description
|
||||
else if getDescription
|
||||
h3.card-details-item-title {{_ 'description'}}
|
||||
+viewer
|
||||
= description
|
||||
= getDescription
|
||||
|
||||
.card-details-items
|
||||
.card-details-item.card-details-item-name
|
||||
|
|
|
@ -43,7 +43,8 @@ BlazeComponent.extendComponent({
|
|||
},
|
||||
|
||||
canModifyCard() {
|
||||
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
|
||||
return Meteor.user() && Meteor.user().isBoardMember() &&
|
||||
!Meteor.user().isCommentOnly() && !this.currentData().isImported();
|
||||
},
|
||||
|
||||
scrollParentContainer() {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
template(name="minicard")
|
||||
.minicard(
|
||||
class="{{#if importedCard}}imported-card{{/if}}"
|
||||
class="{{#if importedBoard}}imported-board{{/if}}")
|
||||
class="{{#if isImportedCard}}imported-card{{/if}}"
|
||||
class="{{#if isImportedBoard}}imported-board{{/if}}")
|
||||
if cover
|
||||
.minicard-cover(style="background-image: url('{{cover.url}}');")
|
||||
if labels
|
||||
|
@ -15,7 +15,7 @@ template(name="minicard")
|
|||
if $eq 'prefix-with-parent' currentBoard.presentParentTask
|
||||
.parent-prefix
|
||||
| {{ parentCardName }}
|
||||
if imported
|
||||
if isImported
|
||||
span.imported-icon.fa.fa-share-alt
|
||||
+viewer
|
||||
| {{ title }}
|
||||
|
@ -67,8 +67,8 @@ template(name="minicard")
|
|||
.badge(title="{{_ 'card-comments-title' comments.count }}")
|
||||
span.badge-icon.fa.fa-comment-o.badge-comment
|
||||
span.badge-text= comments.count
|
||||
if description
|
||||
.badge.badge-state-image-only(title=description)
|
||||
if getDescription
|
||||
.badge.badge-state-image-only(title=getDescription)
|
||||
span.badge-icon.fa.fa-align-left
|
||||
if attachments.count
|
||||
.badge
|
||||
|
|
|
@ -6,13 +6,4 @@ BlazeComponent.extendComponent({
|
|||
template() {
|
||||
return 'minicard';
|
||||
},
|
||||
importedCard() {
|
||||
return this.currentData().type === 'cardType-importedCard';
|
||||
},
|
||||
importedBoard() {
|
||||
return this.currentData().type === 'cardType-importedBoard';
|
||||
},
|
||||
imported() {
|
||||
return this.importedCard() || this.importedBoard();
|
||||
},
|
||||
}).register('minicard');
|
||||
|
|
|
@ -281,6 +281,8 @@ BlazeComponent.extendComponent({
|
|||
archived: false,
|
||||
'members.userId': Meteor.userId(),
|
||||
_id: {$ne: Session.get('currentBoard')},
|
||||
}, {
|
||||
sort: ['title'],
|
||||
})._id;
|
||||
// Subscribe to this board
|
||||
subManager.subscribe('board', boardId);
|
||||
|
@ -370,6 +372,7 @@ BlazeComponent.extendComponent({
|
|||
//IMPORT BOARD
|
||||
evt.stopPropagation();
|
||||
evt.preventDefault();
|
||||
const impBoardId = $('.js-select-boards option:selected').val();
|
||||
const _id = Cards.insert({
|
||||
title: $('.js-select-boards option:selected').text(), //dummy
|
||||
listId: this.listId,
|
||||
|
@ -377,7 +380,8 @@ BlazeComponent.extendComponent({
|
|||
boardId: this.boardId,
|
||||
sort: Lists.findOne(this.listId).cards().count(),
|
||||
type: 'cardType-importedBoard',
|
||||
importedId: $('.js-select-boards option:selected').val(),
|
||||
importedId: impBoardId,
|
||||
description: Boards.findOne({_id: impBoardId}).description,
|
||||
});
|
||||
Filter.addException(_id);
|
||||
Popup.close();
|
||||
|
|
|
@ -393,6 +393,39 @@ Cards.helpers({
|
|||
isTopLevel() {
|
||||
return this.parentId === '';
|
||||
},
|
||||
|
||||
isImportedCard() {
|
||||
return this.type === 'cardType-importedCard';
|
||||
},
|
||||
|
||||
isImportedBoard() {
|
||||
return this.type === 'cardType-importedBoard';
|
||||
},
|
||||
|
||||
isImported() {
|
||||
return this.isImportedCard() || this.isImportedBoard();
|
||||
},
|
||||
|
||||
getDescription() {
|
||||
if (this.isImportedCard()) {
|
||||
const card = Cards.findOne({_id: this.importedId});
|
||||
if (card && card.description)
|
||||
return card.description;
|
||||
else
|
||||
return null;
|
||||
} else if (this.isImportedBoard()) {
|
||||
const board = Boards.findOne({_id: this.importedId});
|
||||
if (board && board.description)
|
||||
return board.description;
|
||||
else
|
||||
return null;
|
||||
} else {
|
||||
if (this.description)
|
||||
return this.description;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
Cards.mutations({
|
||||
|
|
|
@ -98,7 +98,9 @@ Meteor.publishRelations('board', function(boardId) {
|
|||
//
|
||||
// And in the meantime our code below works pretty well -- it's not even a
|
||||
// hack!
|
||||
this.cursor(Cards.find({ boardId }), function(cardId) {
|
||||
this.cursor(Cards.find({ boardId }), function(cardId, card) {
|
||||
this.cursor(Cards.find({_id: card.importedId}));
|
||||
this.cursor(Boards.find({_id: card.importedId}));
|
||||
this.cursor(CardComments.find({ cardId }));
|
||||
this.cursor(Attachments.find({ cardId }));
|
||||
this.cursor(Checklists.find({ cardId }));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue