diff options
Diffstat (limited to 'client/components/sidebar/sidebarCustomFields.js')
-rw-r--r-- | client/components/sidebar/sidebarCustomFields.js | 215 |
1 files changed, 115 insertions, 100 deletions
diff --git a/client/components/sidebar/sidebarCustomFields.js b/client/components/sidebar/sidebarCustomFields.js index 28af973b..92e93641 100644 --- a/client/components/sidebar/sidebarCustomFields.js +++ b/client/components/sidebar/sidebarCustomFields.js @@ -1,37 +1,43 @@ BlazeComponent.extendComponent({ - customFields() { return CustomFields.find({ - boardIds: {$in: [Session.get('currentBoard')]}, + boardIds: { $in: [Session.get('currentBoard')] }, }); }, events() { - return [{ - 'click .js-open-create-custom-field': Popup.open('createCustomField'), - 'click .js-edit-custom-field': Popup.open('editCustomField'), - }]; + return [ + { + 'click .js-open-create-custom-field': Popup.open('createCustomField'), + 'click .js-edit-custom-field': Popup.open('editCustomField'), + }, + ]; }, - }).register('customFieldsSidebar'); const CreateCustomFieldPopup = BlazeComponent.extendComponent({ - _types: ['text', 'number', 'date', 'dropdown'], onCreated() { - this.type = new ReactiveVar((this.data().type) ? this.data().type : this._types[0]); - this.dropdownItems = new ReactiveVar((this.data().settings && this.data().settings.dropdownItems) ? this.data().settings.dropdownItems : []); + this.type = new ReactiveVar( + this.data().type ? this.data().type : this._types[0], + ); + this.dropdownItems = new ReactiveVar( + this.data().settings && this.data().settings.dropdownItems + ? this.data().settings.dropdownItems + : [], + ); }, types() { const currentType = this.data().type; - return this._types. - map((type) => {return { + return this._types.map(type => { + return { value: type, name: TAPi18n.__(`custom-field-${type}`), selected: type === currentType, - };}); + }; + }); }, isTypeNotSelected(type) { @@ -40,113 +46,122 @@ const CreateCustomFieldPopup = BlazeComponent.extendComponent({ getDropdownItems() { const items = this.dropdownItems.get(); - Array.from(this.findAll('.js-field-settings-dropdown input')).forEach((el, index) => { - //console.log('each item!', index, el.value); - if (!items[index]) items[index] = { - _id: Random.id(6), - }; - items[index].name = el.value.trim(); - }); + Array.from(this.findAll('.js-field-settings-dropdown input')).forEach( + (el, index) => { + //console.log('each item!', index, el.value); + if (!items[index]) + items[index] = { + _id: Random.id(6), + }; + items[index].name = el.value.trim(); + }, + ); return items; }, getSettings() { const settings = {}; switch (this.type.get()) { - case 'dropdown': { - const dropdownItems = this.getDropdownItems().filter((item) => !!item.name.trim()); - settings.dropdownItems = dropdownItems; - break; - } + case 'dropdown': { + const dropdownItems = this.getDropdownItems().filter( + item => !!item.name.trim(), + ); + settings.dropdownItems = dropdownItems; + break; + } } return settings; }, events() { - return [{ - 'change .js-field-type'(evt) { - const value = evt.target.value; - this.type.set(value); - }, - 'keydown .js-dropdown-item.last'(evt) { - if (evt.target.value.trim() && evt.keyCode === 13) { - const items = this.getDropdownItems(); - this.dropdownItems.set(items); - evt.target.value = ''; - } + return [ + { + 'change .js-field-type'(evt) { + const value = evt.target.value; + this.type.set(value); + }, + 'keydown .js-dropdown-item.last'(evt) { + if (evt.target.value.trim() && evt.keyCode === 13) { + const items = this.getDropdownItems(); + this.dropdownItems.set(items); + evt.target.value = ''; + } + }, + 'click .js-field-show-on-card'(evt) { + let $target = $(evt.target); + if (!$target.hasClass('js-field-show-on-card')) { + $target = $target.parent(); + } + $target.find('.materialCheckBox').toggleClass('is-checked'); + $target.toggleClass('is-checked'); + }, + 'click .js-field-automatically-on-card'(evt) { + let $target = $(evt.target); + if (!$target.hasClass('js-field-automatically-on-card')) { + $target = $target.parent(); + } + $target.find('.materialCheckBox').toggleClass('is-checked'); + $target.toggleClass('is-checked'); + }, + 'click .js-field-showLabel-on-card'(evt) { + let $target = $(evt.target); + if (!$target.hasClass('js-field-showLabel-on-card')) { + $target = $target.parent(); + } + $target.find('.materialCheckBox').toggleClass('is-checked'); + $target.toggleClass('is-checked'); + }, + 'click .primary'(evt) { + evt.preventDefault(); + + const data = { + name: this.find('.js-field-name').value.trim(), + type: this.type.get(), + settings: this.getSettings(), + showOnCard: this.find('.js-field-show-on-card.is-checked') !== null, + showLabelOnMiniCard: + this.find('.js-field-showLabel-on-card.is-checked') !== null, + automaticallyOnCard: + this.find('.js-field-automatically-on-card.is-checked') !== null, + }; + + // insert or update + if (!this.data()._id) { + data.boardIds = [Session.get('currentBoard')]; + CustomFields.insert(data); + } else { + CustomFields.update(this.data()._id, { $set: data }); + } + + Popup.back(); + }, + 'click .js-delete-custom-field': Popup.afterConfirm( + 'deleteCustomField', + function() { + const customField = CustomFields.findOne(this._id); + if (customField.boardIds.length > 1) { + CustomFields.update(customField._id, { + $pull: { + boardIds: Session.get('currentBoard'), + }, + }); + } else { + CustomFields.remove(customField._id); + } + Popup.close(); + }, + ), }, - 'click .js-field-show-on-card'(evt) { - let $target = $(evt.target); - if(!$target.hasClass('js-field-show-on-card')){ - $target = $target.parent(); - } - $target.find('.materialCheckBox').toggleClass('is-checked'); - $target.toggleClass('is-checked'); - }, - 'click .js-field-automatically-on-card'(evt) { - let $target = $(evt.target); - if(!$target.hasClass('js-field-automatically-on-card')){ - $target = $target.parent(); - } - $target.find('.materialCheckBox').toggleClass('is-checked'); - $target.toggleClass('is-checked'); - }, - 'click .js-field-showLabel-on-card'(evt) { - let $target = $(evt.target); - if(!$target.hasClass('js-field-showLabel-on-card')){ - $target = $target.parent(); - } - $target.find('.materialCheckBox').toggleClass('is-checked'); - $target.toggleClass('is-checked'); - }, - 'click .primary'(evt) { - evt.preventDefault(); - - const data = { - name: this.find('.js-field-name').value.trim(), - type: this.type.get(), - settings: this.getSettings(), - showOnCard: this.find('.js-field-show-on-card.is-checked') !== null, - showLabelOnMiniCard: this.find('.js-field-showLabel-on-card.is-checked') !== null, - automaticallyOnCard: this.find('.js-field-automatically-on-card.is-checked') !== null, - }; - - // insert or update - if (!this.data()._id) { - data.boardIds = [Session.get('currentBoard')]; - CustomFields.insert(data); - } else { - CustomFields.update(this.data()._id, {$set: data}); - } - - Popup.back(); - }, - 'click .js-delete-custom-field': Popup.afterConfirm('deleteCustomField', function() { - const customField = CustomFields.findOne(this._id); - if (customField.boardIds.length > 1) { - CustomFields.update(customField._id, { - $pull: { - boardIds: Session.get('currentBoard'), - }, - }); - } else { - CustomFields.remove(customField._id); - } - Popup.close(); - }), - }]; + ]; }, - }); CreateCustomFieldPopup.register('createCustomFieldPopup'); (class extends CreateCustomFieldPopup { - template() { return 'createCustomFieldPopup'; } - -}).register('editCustomFieldPopup'); +}.register('editCustomFieldPopup')); /*Template.deleteCustomFieldPopup.events({ 'submit'(evt) { |