| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 | 
							- 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'(event) {
 
-     const card = Cards.findOne(Session.get('currentCard'));
 
-     const customFieldId = this._id;
 
-     card.toggleCustomField(customFieldId);
 
-     event.preventDefault();
 
-   },
 
-   'click .js-settings'(event) {
 
-     EscapeActions.executeUpTo('detailsPane');
 
-     Sidebar.setView('customFields');
 
-     event.preventDefault();
 
-   },
 
- });
 
- // cardCustomField
 
- const CardCustomField = BlazeComponent.extendComponent({
 
-   getTemplate() {
 
-     return `cardCustomField-${this.data().definition.type}`;
 
-   },
 
-   onCreated() {
 
-     const self = this;
 
-     self.card = Cards.findOne(Session.get('currentCard'));
 
-     self.customFieldId = this.data()._id;
 
-   },
 
-   canModifyCard() {
 
-     return (
 
-       Meteor.user() &&
 
-       Meteor.user().isBoardMember() &&
 
-       !Meteor.user().isCommentOnly()
 
-     );
 
-   },
 
- });
 
- CardCustomField.register('cardCustomField');
 
- // cardCustomField-text
 
- (class extends CardCustomField {
 
-   onCreated() {
 
-     super.onCreated();
 
-   }
 
-   events() {
 
-     return [
 
-       {
 
-         'submit .js-card-customfield-text'(event) {
 
-           event.preventDefault();
 
-           const value = this.currentComponent().getValue();
 
-           this.card.setCustomField(this.customFieldId, value);
 
-         },
 
-       },
 
-     ];
 
-   }
 
- }.register('cardCustomField-text'));
 
- // cardCustomField-number
 
- (class extends CardCustomField {
 
-   onCreated() {
 
-     super.onCreated();
 
-   }
 
-   events() {
 
-     return [
 
-       {
 
-         'submit .js-card-customfield-number'(event) {
 
-           event.preventDefault();
 
-           const value = parseInt(this.find('input').value, 10);
 
-           this.card.setCustomField(this.customFieldId, value);
 
-         },
 
-       },
 
-     ];
 
-   }
 
- }.register('cardCustomField-number'));
 
- // cardCustomField-checkbox
 
- (class extends CardCustomField {
 
-   onCreated() {
 
-     super.onCreated();
 
-   }
 
-   toggleItem() {
 
-     this.card.setCustomField(this.customFieldId, !this.data().value);
 
-   }
 
-   events() {
 
-     return [
 
-       {
 
-         'click .js-checklist-item .check-box-container': this.toggleItem,
 
-       },
 
-     ];
 
-   }
 
- }.register('cardCustomField-checkbox'));
 
- // cardCustomField-currency
 
- (class extends CardCustomField {
 
-   onCreated() {
 
-     super.onCreated();
 
-     this.currencyCode = this.data().definition.settings.currencyCode;
 
-   }
 
-   formattedValue() {
 
-     const locale = TAPi18n.getLanguage();
 
-     return new Intl.NumberFormat(locale, {
 
-       style: 'currency',
 
-       currency: this.currencyCode,
 
-     }).format(this.data().value);
 
-   }
 
-   events() {
 
-     return [
 
-       {
 
-         'submit .js-card-customfield-currency'(event) {
 
-           event.preventDefault();
 
-           // To allow input separated by comma, the comma is replaced by a period.
 
-           const value = Number(this.find('input').value.replace(/,/i, '.'), 10);
 
-           this.card.setCustomField(this.customFieldId, value);
 
-         },
 
-       },
 
-     ];
 
-   }
 
- }.register('cardCustomField-currency'));
 
- // cardCustomField-date
 
- (class extends CardCustomField {
 
-   onCreated() {
 
-     super.onCreated();
 
-     const self = this;
 
-     self.date = ReactiveVar();
 
-     self.now = ReactiveVar(moment());
 
-     window.setInterval(() => {
 
-       self.now.set(moment());
 
-     }, 60000);
 
-     self.autorun(() => {
 
-       self.date.set(moment(self.data().value));
 
-     });
 
-   }
 
-   showDate() {
 
-     // this will start working once mquandalle:moment
 
-     // is updated to at least moment.js 2.10.5
 
-     // until then, the date is displayed in the "L" format
 
-     return this.date.get().calendar(null, {
 
-       sameElse: 'llll',
 
-     });
 
-   }
 
-   showISODate() {
 
-     return this.date.get().toISOString();
 
-   }
 
-   classes() {
 
-     if (
 
-       this.date.get().isBefore(this.now.get(), 'minute') &&
 
-       this.now.get().isBefore(this.data().value)
 
-     ) {
 
-       return 'current';
 
-     }
 
-     return '';
 
-   }
 
-   showTitle() {
 
-     return `${TAPi18n.__('card-start-on')} ${this.date.get().format('LLLL')}`;
 
-   }
 
-   events() {
 
-     return [
 
-       {
 
-         'click .js-edit-date': Popup.open('cardCustomField-date'),
 
-       },
 
-     ];
 
-   }
 
- }.register('cardCustomField-date'));
 
- // cardCustomField-datePopup
 
- (class extends DatePicker {
 
-   onCreated() {
 
-     super.onCreated();
 
-     const self = this;
 
-     self.card = Cards.findOne(Session.get('currentCard'));
 
-     self.customFieldId = this.data()._id;
 
-     this.data().value && this.date.set(moment(this.data().value));
 
-   }
 
-   _storeDate(date) {
 
-     this.card.setCustomField(this.customFieldId, date);
 
-   }
 
-   _deleteDate() {
 
-     this.card.setCustomField(this.customFieldId, '');
 
-   }
 
- }.register('cardCustomField-datePopup'));
 
- // cardCustomField-dropdown
 
- (class extends CardCustomField {
 
-   onCreated() {
 
-     super.onCreated();
 
-     this._items = this.data().definition.settings.dropdownItems;
 
-     this.items = this._items.slice(0);
 
-     this.items.unshift({
 
-       _id: '',
 
-       name: TAPi18n.__('custom-field-dropdown-none'),
 
-     });
 
-   }
 
-   selectedItem() {
 
-     const selected = this._items.find(item => {
 
-       return item._id === this.data().value;
 
-     });
 
-     return selected
 
-       ? selected.name
 
-       : TAPi18n.__('custom-field-dropdown-unknown');
 
-   }
 
-   events() {
 
-     return [
 
-       {
 
-         'submit .js-card-customfield-dropdown'(event) {
 
-           event.preventDefault();
 
-           const value = this.find('select').value;
 
-           this.card.setCustomField(this.customFieldId, value);
 
-         },
 
-       },
 
-     ];
 
-   }
 
- }.register('cardCustomField-dropdown'));
 
 
  |