Show parent in card (no links, yet)

This commit is contained in:
Nicu Tofan 2018-06-26 02:13:31 +03:00
parent 94a52080cf
commit c0ffd6c20f
No known key found for this signature in database
GPG key ID: 7EE66E95E64FD0B7
10 changed files with 193 additions and 8 deletions

View file

@ -165,6 +165,18 @@ Boards.attachSchema(new SimpleSchema({
type: Boolean,
defaultValue: true,
},
presentParentTask: {
type: String,
allowedValues: [
'prefix-with-full-path',
'prefix-with-parent',
'subtext-with-full-path',
'subtext-with-parent',
'no-parent',
],
optional: true,
defaultValue: 'no-parent',
},
}));
@ -489,6 +501,10 @@ Boards.mutations({
setSubtasksDefaultListId(subtasksDefaultListId) {
return { $set: { subtasksDefaultListId } };
},
setPresentParentTask(presentParentTask) {
return { $set: { presentParentTask } };
},
});
if (Meteor.isServer) {

View file

@ -326,6 +326,59 @@ Cards.helpers({
return Cards.findOne(this.parentId);
},
parentCardName() {
if (this.parentId === '') {
return '';
}
return Cards.findOne(this.parentId).title;
},
parentListId() {
const result = [];
let crtParentId = this.parentId;
while (crtParentId !== '') {
const crt = Cards.findOne(crtParentId);
if ((crt === null) || (crt === undefined)) {
// maybe it has been deleted
break;
}
if (crtParentId in result) {
// circular reference
break;
}
result.unshift(crtParentId);
crtParentId = crt.parentId;
}
return result;
},
parentList() {
const resultId = [];
const result = [];
let crtParentId = this.parentId;
while (crtParentId !== '') {
const crt = Cards.findOne(crtParentId);
if ((crt === null) || (crt === undefined)) {
// maybe it has been deleted
break;
}
if (crtParentId in resultId) {
// circular reference
break;
}
resultId.unshift(crtParentId);
result.unshift(crt);
crtParentId = crt.parentId;
}
return result;
},
parentString(sep) {
return this.parentList().map(function(elem){
return elem.title;
}).join(sep);
},
isTopLevel() {
return this.parentId === '';
},