summaryrefslogtreecommitdiffstats
path: root/client/components/sidebar/sidebarCustomFields.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/components/sidebar/sidebarCustomFields.js')
-rw-r--r--client/components/sidebar/sidebarCustomFields.js215
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) {