summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/components/cards/cardCustomFields.jade20
-rw-r--r--client/components/cards/cardCustomFields.js21
-rw-r--r--models/cards.js12
3 files changed, 43 insertions, 10 deletions
diff --git a/client/components/cards/cardCustomFields.jade b/client/components/cards/cardCustomFields.jade
index 3c885b93..6515aa79 100644
--- a/client/components/cards/cardCustomFields.jade
+++ b/client/components/cards/cardCustomFields.jade
@@ -5,7 +5,7 @@ template(name="cardCustomFieldsPopup")
a.name.js-select-field(href="#")
span.full-name
= name
- if isCardMember
+ if hasCustomField
i.fa.fa-check
hr
a.quiet-button.full.js-configure-custom-fields
@@ -14,10 +14,16 @@ template(name="cardCustomFieldsPopup")
template(name="cardCustomFieldText")
if canModifyCard
- .item-title.js-open-inlined-form.is-editable
- if value
+ +inlinedForm(classNames="js-card-customfield-text")
+ +editor(autofocus=true)
= value
- else
- | {{_ 'edit'}}
- else
- .item-title {{value}} \ No newline at end of file
+ .edit-controls.clearfix
+ button.primary(type="submit") {{_ 'save'}}
+ a.fa.fa-times-thin.js-close-inlined-form
+ else
+ a.js-open-inlined-form
+ if value
+ +viewer
+ = value
+ else
+ | {{_ 'edit'}} \ No newline at end of file
diff --git a/client/components/cards/cardCustomFields.js b/client/components/cards/cardCustomFields.js
index 73dda02e..7009dede 100644
--- a/client/components/cards/cardCustomFields.js
+++ b/client/components/cards/cardCustomFields.js
@@ -1,3 +1,11 @@
+Template.cardCustomFieldsPopup.helpers({
+ hasCustomField() {
+ const card = Cards.findOne(Session.get('currentCard'));
+ const customFieldId = this._id;
+ return card.customFieldIndex(customFieldId) > -1;
+ },
+});
+
Template.cardCustomFieldsPopup.events({
'click .js-select-field'(evt) {
const card = Cards.findOne(Session.get('currentCard'));
@@ -24,7 +32,7 @@ const CardCustomField = BlazeComponent.extendComponent({
},
value() {
- return "this is the value";
+ return this.data().value;
},
showISODate() {
@@ -33,9 +41,20 @@ const CardCustomField = BlazeComponent.extendComponent({
events() {
return [{
+ 'submit .js-card-customfield-text'(evt) {
+ evt.preventDefault();
+ const card = Cards.findOne(Session.get('currentCard'));
+ const customFieldId = this.data()._id;
+ const value = this.currentComponent().getValue();
+ card.setCustomField(customFieldId,value);
+ },
'click .js-edit-date': Popup.open('editCardStartDate'),
}];
},
+
+ canModifyCard() {
+ return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
+ },
});
CardCustomField.register('cardCustomField'); \ No newline at end of file
diff --git a/models/cards.js b/models/cards.js
index fe86e642..17abf430 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -279,12 +279,10 @@ Cards.mutations({
},
assignCustomField(customFieldId) {
- console.log("assignCustomField", customFieldId);
return {$addToSet: {customFields: {_id: customFieldId, value: null}}};
},
unassignCustomField(customFieldId) {
- console.log("unassignCustomField", customFieldId);
return {$pull: {customFields: {_id: customFieldId}}};
},
@@ -296,6 +294,16 @@ Cards.mutations({
}
},
+ setCustomField(customFieldId, value) {
+ // todo
+ const index = this.customFieldIndex(customFieldId);
+ if (index > -1) {
+ var update = {$set: {}};
+ update.$set["customFields." + index + ".value"] = value;
+ return update;
+ }
+ },
+
setCover(coverId) {
return {$set: {coverId}};
},