52 Zeilen
1,3 KiB
JavaScript
52 Zeilen
1,3 KiB
JavaScript
import { default as computed, on, observes } from 'ember-addons/ember-computed-decorators';
|
|
|
|
export default Ember.Component.extend({
|
|
classNames: 'wizard-custom-field',
|
|
isDropdown: Ember.computed.equal('field.type', 'dropdown'),
|
|
|
|
@on('init')
|
|
@observes('field')
|
|
setup() {
|
|
if (!this.get('isNew')) this.set('existingId', this.get('field.id'));
|
|
},
|
|
|
|
@computed('field.type')
|
|
isInput: (type) => type === 'text' || type === 'textarea',
|
|
|
|
@computed('field.choices.[]')
|
|
dropdownChoices: choices => choices,
|
|
|
|
@computed('field.choices_filters.[]')
|
|
presetFilters: filters => filters,
|
|
|
|
@computed()
|
|
presetChoices() {
|
|
return [
|
|
{ id: 'categories', name: I18n.t('admin.wizard.field.choices_preset.categories') }
|
|
];
|
|
},
|
|
|
|
actions: {
|
|
addFilter() {
|
|
if (!this.get('field.choices_filters')) {
|
|
this.set('field.choices_filters', Ember.A());
|
|
}
|
|
this.get('field.choices_filters').pushObject(Ember.Object.create());
|
|
},
|
|
|
|
removeFilter(f) {
|
|
this.get('field.choices_filters').removeObject(f);
|
|
},
|
|
|
|
addChoice() {
|
|
if (!this.get('field.choices')) {
|
|
this.set('field.choices', Ember.A());
|
|
}
|
|
this.get('field.choices').pushObject(Ember.Object.create());
|
|
},
|
|
|
|
removeChoice(c) {
|
|
this.get('field.choices').removeObject(c);
|
|
}
|
|
}
|
|
});
|