mirror of
https://github.com/wekan/wekan.git
synced 2025-12-18 00:10:13 +01:00
card model and card ui preparation for custom fields
This commit is contained in:
parent
afd87e3caa
commit
d87191f17e
5 changed files with 47 additions and 3 deletions
|
|
@ -45,6 +45,9 @@ template(name="cardDetails")
|
||||||
h3.card-details-item-title {{_ 'card-due'}}
|
h3.card-details-item-title {{_ 'card-due'}}
|
||||||
+cardDueDate
|
+cardDueDate
|
||||||
|
|
||||||
|
each customFields
|
||||||
|
.card-details-item.card-details-item-customfield
|
||||||
|
h3.card-details-item-title {{_ 'some-title' }}
|
||||||
|
|
||||||
//- XXX We should use "editable" to avoid repetiting ourselves
|
//- XXX We should use "editable" to avoid repetiting ourselves
|
||||||
if canModifyCard
|
if canModifyCard
|
||||||
|
|
|
||||||
|
|
@ -200,7 +200,7 @@ Template.editCardTitleForm.events({
|
||||||
Template.cardCustomFieldsPopup.events({
|
Template.cardCustomFieldsPopup.events({
|
||||||
'click .js-select-field'(evt) {
|
'click .js-select-field'(evt) {
|
||||||
const card = Cards.findOne(Session.get('currentCard'));
|
const card = Cards.findOne(Session.get('currentCard'));
|
||||||
const customFieldId = this.customFieldId;
|
const customFieldId = this._id;
|
||||||
card.toggleCustomField(customFieldId);
|
card.toggleCustomField(customFieldId);
|
||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,7 @@
|
||||||
|
|
||||||
.card-details-items
|
.card-details-items
|
||||||
display: flex
|
display: flex
|
||||||
|
flex-wrap: wrap
|
||||||
margin: 15px 0
|
margin: 15px 0
|
||||||
|
|
||||||
.card-details-item
|
.card-details-item
|
||||||
|
|
@ -80,8 +81,8 @@
|
||||||
&.card-details-item-members,
|
&.card-details-item-members,
|
||||||
&.card-details-item-start,
|
&.card-details-item-start,
|
||||||
&.card-details-item-due
|
&.card-details-item-due
|
||||||
width: 50%
|
max-width: 50%
|
||||||
flex-shrink: 1
|
flex-grow: 1
|
||||||
|
|
||||||
.card-details-item-title
|
.card-details-item-title
|
||||||
font-size: 14px
|
font-size: 14px
|
||||||
|
|
|
||||||
|
|
@ -35,12 +35,17 @@ BlazeComponent.extendComponent({
|
||||||
|
|
||||||
const members = formComponent.members.get();
|
const members = formComponent.members.get();
|
||||||
const labelIds = formComponent.labels.get();
|
const labelIds = formComponent.labels.get();
|
||||||
|
const customFields = formComponent.customFields.get();
|
||||||
|
console.log("members", members);
|
||||||
|
console.log("labelIds", labelIds);
|
||||||
|
console.log("customFields", customFields);
|
||||||
|
|
||||||
if (title) {
|
if (title) {
|
||||||
const _id = Cards.insert({
|
const _id = Cards.insert({
|
||||||
title,
|
title,
|
||||||
members,
|
members,
|
||||||
labelIds,
|
labelIds,
|
||||||
|
customFields,
|
||||||
listId: this.data()._id,
|
listId: this.data()._id,
|
||||||
boardId: this.data().board()._id,
|
boardId: this.data().board()._id,
|
||||||
sort: sortIndex,
|
sort: sortIndex,
|
||||||
|
|
@ -121,11 +126,13 @@ BlazeComponent.extendComponent({
|
||||||
onCreated() {
|
onCreated() {
|
||||||
this.labels = new ReactiveVar([]);
|
this.labels = new ReactiveVar([]);
|
||||||
this.members = new ReactiveVar([]);
|
this.members = new ReactiveVar([]);
|
||||||
|
this.customFields = new ReactiveVar([]);
|
||||||
},
|
},
|
||||||
|
|
||||||
reset() {
|
reset() {
|
||||||
this.labels.set([]);
|
this.labels.set([]);
|
||||||
this.members.set([]);
|
this.members.set([]);
|
||||||
|
this.customFields.set([]);
|
||||||
},
|
},
|
||||||
|
|
||||||
getLabels() {
|
getLabels() {
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,21 @@ Cards.attachSchema(new SimpleSchema({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
customFields: {
|
||||||
|
type: [Object],
|
||||||
|
optional: true,
|
||||||
|
},
|
||||||
|
'customFields.$': {
|
||||||
|
type: new SimpleSchema({
|
||||||
|
_id: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
type: Match.OneOf(String,Number,Boolean,Date),
|
||||||
|
optional: true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
},
|
||||||
dateLastActivity: {
|
dateLastActivity: {
|
||||||
type: Date,
|
type: Date,
|
||||||
autoValue() {
|
autoValue() {
|
||||||
|
|
@ -238,6 +253,24 @@ Cards.mutations({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
assignCustomField(customFieldId) {
|
||||||
|
console.log("assignCustomField", customFieldId);
|
||||||
|
return {$push: {customFields: {_id: customFieldId, value: null}}};
|
||||||
|
},
|
||||||
|
|
||||||
|
unassignCustomField(customFieldId) {
|
||||||
|
console.log("unassignCustomField", customFieldId);
|
||||||
|
return {$pull: {customFields: {_id: customFieldId}}};
|
||||||
|
},
|
||||||
|
|
||||||
|
toggleCustomField(customFieldId) {
|
||||||
|
if (this.customFields && this.customFields[customFieldId]) {
|
||||||
|
return this.unassignCustomField(customFieldId);
|
||||||
|
} else {
|
||||||
|
return this.assignCustomField(customFieldId);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
setCover(coverId) {
|
setCover(coverId) {
|
||||||
return {$set: {coverId}};
|
return {$set: {coverId}};
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue