Link description

This commit is contained in:
Andrés Manelli 2018-04-16 16:38:20 -03:00
parent 5644ef66af
commit 64367a01dd
7 changed files with 50 additions and 19 deletions

View file

@ -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

View file

@ -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() {

View file

@ -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

View file

@ -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');

View file

@ -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();

View file

@ -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({

View file

@ -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 }));