summaryrefslogtreecommitdiffstats
path: root/client/components/cards/cardCustomFields.js
blob: 7009dede105ca03e89251f39322df77c8c599b37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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'));
        const customFieldId = this._id;
        card.toggleCustomField(customFieldId);
        evt.preventDefault();
    },
    'click .js-configure-custom-fields'(evt) {
        EscapeActions.executeUpTo('detailsPane');
        Sidebar.setView('customFields');
        evt.preventDefault();
    }
});

const CardCustomField = BlazeComponent.extendComponent({
    template() {
        return 'cardCustomFieldText';
    },

    onCreated() {
        const self = this;
        self.date = ReactiveVar();
        self.now = ReactiveVar(moment());
    },

    value() {
        return this.data().value;
    },

    showISODate() {
        return this.date.get().toISOString();
    },

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