12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import { default as computed, observes } from 'ember-addons/ember-computed-decorators';
- const ACTION_TYPES = [
- { id: 'create_topic', name: 'Create Topic' },
- { id: 'update_profile', name: 'Update Profile' },
- { id: 'send_message', name: 'Send Message' }
- ];
- const PROFILE_FIELDS = [
- 'name',
- 'date_of_birth',
- 'title',
- 'locale',
- 'location',
- 'website',
- 'bio_raw',
- 'profile_background',
- 'card_background',
- 'theme_id'
- ];
- export default Ember.Component.extend({
- classNames: 'wizard-custom-action',
- types: ACTION_TYPES,
- profileFields: PROFILE_FIELDS,
- createTopic: Ember.computed.equal('action.type', 'create_topic'),
- updateProfile: Ember.computed.equal('action.type', 'update_profile'),
- sendMessage: Ember.computed.equal('action.type', 'send_message'),
- disableId: Ember.computed.not('action.isNew'),
- @computed('currentStepId', 'wizard.save_submissions')
- availableFields(currentStepId, saveSubmissions) {
- const allSteps = this.get('wizard.steps');
- let steps = allSteps;
- let fields = [];
- if (!saveSubmissions) {
- steps = [allSteps.findBy('id', currentStepId)];
- }
- steps.forEach((s) => {
- if (s.fields && s.fields.length > 0) {
- let stepFields = s.fields.map((f) => {
- return Ember.Object.create({
- id: f.id,
- label: `${f.id} (${s.id})`
- });
- });
- fields.push(...stepFields);
- }
- });
- return fields;
- },
- @computed('availableFields')
- builderWizardFields(fields) {
- return fields.map((f) => ` w{${f.id}}`);
- },
- @computed()
- builderUserFields() {
- const noTheme = PROFILE_FIELDS.filter((f) => f !== 'theme_id');
- const fields = noTheme.concat(['email', 'username']);
- return fields.map((f) => ` u{${f}}`);
- },
- @observes('action.custom_category_wizard_field')
- toggleCustomCategoryUserField() {
- const wizard = this.get('action.custom_category_wizard_field');
- if (wizard) this.set('action.custom_category_user_field', false);
- },
- @observes('action.custom_category_user_field')
- toggleCustomCategoryWizardField() {
- const user = this.get('action.custom_category_user_field');
- if (user) this.set('action.custom_category_wizard_field', false);
- }
- });
|