Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-26 02:50:28 +01:00
Style and deprecation updates
Dieser Commit ist enthalten in:
Ursprung
f7c1185644
Commit
71054b80f3
20 geänderte Dateien mit 583 neuen und 308 gelöschten Zeilen
|
@ -5,7 +5,8 @@ import {
|
||||||
import {
|
import {
|
||||||
actionTypes,
|
actionTypes,
|
||||||
generateName,
|
generateName,
|
||||||
generateSelectKitContent
|
generateSelectKitContent,
|
||||||
|
profileFields
|
||||||
} from '../lib/custom-wizard';
|
} from '../lib/custom-wizard';
|
||||||
|
|
||||||
export default Ember.Component.extend({
|
export default Ember.Component.extend({
|
||||||
|
@ -36,11 +37,6 @@ export default Ember.Component.extend({
|
||||||
return ['create_topic', 'send_message'].indexOf(actionType) > -1;
|
return ['create_topic', 'send_message'].indexOf(actionType) > -1;
|
||||||
},
|
},
|
||||||
|
|
||||||
@computed('wizardFields')
|
|
||||||
builderWizardFields(fields) {
|
|
||||||
return fields.map((f) => ` w{${f.id}}`);
|
|
||||||
},
|
|
||||||
|
|
||||||
@computed('wizardFields')
|
@computed('wizardFields')
|
||||||
categoryFields(fields) {
|
categoryFields(fields) {
|
||||||
return fields.filter(f => f.type == 'category');
|
return fields.filter(f => f.type == 'category');
|
||||||
|
@ -51,13 +47,6 @@ export default Ember.Component.extend({
|
||||||
return fields.filter(f => f.type == 'tag');
|
return fields.filter(f => f.type == 'tag');
|
||||||
},
|
},
|
||||||
|
|
||||||
@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')
|
@observes('action.custom_category_wizard_field')
|
||||||
toggleCustomCategoryUserField() {
|
toggleCustomCategoryUserField() {
|
||||||
const wizard = this.get('action.custom_category_wizard_field');
|
const wizard = this.get('action.custom_category_wizard_field');
|
||||||
|
|
|
@ -2,9 +2,11 @@ import { alias, equal } from "@ember/object/computed";
|
||||||
import { computed } from "@ember/object";
|
import { computed } from "@ember/object";
|
||||||
import {
|
import {
|
||||||
default as discourseComputed,
|
default as discourseComputed,
|
||||||
observes
|
observes,
|
||||||
|
on
|
||||||
} from "discourse-common/utils/decorators";
|
} from "discourse-common/utils/decorators";
|
||||||
import { defaultSelectionType } from '../lib/custom-wizard';
|
import { defaultSelectionType } from '../lib/custom-wizard';
|
||||||
|
import { getOwner } from 'discourse-common/lib/get-owner';
|
||||||
|
|
||||||
export default Ember.Component.extend({
|
export default Ember.Component.extend({
|
||||||
classNames: 'input-selector',
|
classNames: 'input-selector',
|
||||||
|
@ -13,6 +15,12 @@ export default Ember.Component.extend({
|
||||||
return this.site.categories.map(c => ({ id: c.id, name: c.name }));
|
return this.site.categories.map(c => ({ id: c.id, name: c.name }));
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
@discourseComputed
|
||||||
|
userFields() {
|
||||||
|
const controller = getOwner(this).lookup('controller:admin-wizard');
|
||||||
|
return controller.get('model.userFields');
|
||||||
|
},
|
||||||
|
|
||||||
@observes('options.@each')
|
@observes('options.@each')
|
||||||
resetActiveType() {
|
resetActiveType() {
|
||||||
this.set('activeType', defaultSelectionType(this.selectorType, this.options));
|
this.set('activeType', defaultSelectionType(this.selectorType, this.options));
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
import { default as computed, on, observes } from 'discourse-common/utils/decorators';
|
import { default as computed, on, observes } from 'discourse-common/utils/decorators';
|
||||||
|
import { notEmpty } from "@ember/object/computed";
|
||||||
|
|
||||||
export default Ember.Component.extend({
|
export default Ember.Component.extend({
|
||||||
classNames: 'wizard-links',
|
classNames: 'wizard-links',
|
||||||
items: Ember.A(),
|
items: Ember.A(),
|
||||||
|
anyLinks: notEmpty('links'),
|
||||||
|
|
||||||
@on('didInsertElement')
|
@on('didInsertElement')
|
||||||
@observes('links.@each')
|
@observes('links.@each')
|
||||||
didInsertElement() {
|
didInsertElement() {
|
||||||
Ember.run.scheduleOnce('afterRender', () => {
|
Ember.run.scheduleOnce('afterRender', () => (this.applySortable()));
|
||||||
this.applySortable();
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
applySortable() {
|
applySortable() {
|
||||||
this.$("ul").sortable({tolerance: 'pointer'}).on('sortupdate', (e, ui) => {
|
$(this.element).find("ul").sortable({tolerance: 'pointer'}).on('sortupdate', (e, ui) => {
|
||||||
const itemId = ui.item.data('id');
|
const itemId = ui.item.data('id');
|
||||||
const index = ui.item.index();
|
const index = ui.item.index();
|
||||||
Ember.run.bind(this, this.updateItemOrder(itemId, index));
|
Ember.run.bind(this, this.updateItemOrder(itemId, index));
|
||||||
|
@ -69,7 +69,6 @@ export default Ember.Component.extend({
|
||||||
const newItem = Ember.Object.create(params);
|
const newItem = Ember.Object.create(params);
|
||||||
items.pushObject(newItem);
|
items.pushObject(newItem);
|
||||||
this.set('current', newItem);
|
this.set('current', newItem);
|
||||||
this.sendAction('isNew');
|
|
||||||
},
|
},
|
||||||
|
|
||||||
change(itemId) {
|
change(itemId) {
|
||||||
|
|
40
assets/javascripts/discourse/components/wizard-text-editor.js.es6
Normale Datei
40
assets/javascripts/discourse/components/wizard-text-editor.js.es6
Normale Datei
|
@ -0,0 +1,40 @@
|
||||||
|
import { default as discourseComputed } from 'discourse-common/utils/decorators';
|
||||||
|
import { profileFields } from '../lib/custom-wizard';
|
||||||
|
|
||||||
|
export default Ember.Component.extend({
|
||||||
|
classNames: 'wizard-text-editor',
|
||||||
|
|
||||||
|
@discourseComputed('forcePreview')
|
||||||
|
previewLabel(forcePreview) {
|
||||||
|
return I18n.t("admin.wizard.editor.preview", {
|
||||||
|
action: I18n.t(`admin.wizard.editor.${forcePreview ? 'hide' : 'show'}`)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
@discourseComputed('showPopover')
|
||||||
|
popoverLabel(showPopover) {
|
||||||
|
return I18n.t("admin.wizard.editor.popover", {
|
||||||
|
action: I18n.t(`admin.wizard.editor.${showPopover ? 'hide' : 'show'}`)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
@discourseComputed()
|
||||||
|
userFieldList() {
|
||||||
|
return profileFields.map((f) => ` u{${f}}`);
|
||||||
|
},
|
||||||
|
|
||||||
|
@discourseComputed('wizardFields')
|
||||||
|
wizardFieldList(wizardFields) {
|
||||||
|
return wizardFields.map((f) => ` w{${f.id}}`);
|
||||||
|
},
|
||||||
|
|
||||||
|
actions: {
|
||||||
|
togglePreview() {
|
||||||
|
this.toggleProperty('forcePreview');
|
||||||
|
},
|
||||||
|
|
||||||
|
togglePopover() {
|
||||||
|
this.toggleProperty('showPopover');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
|
@ -9,8 +9,9 @@ export default Ember.Controller.extend({
|
||||||
|
|
||||||
@computed('model.after_time_scheduled')
|
@computed('model.after_time_scheduled')
|
||||||
nextSessionScheduledLabel(scheduled) {
|
nextSessionScheduledLabel(scheduled) {
|
||||||
return scheduled ? moment(scheduled).format('MMMM Do, HH:mm') :
|
return scheduled ?
|
||||||
I18n.t('admin.wizard.after_time_time_label');
|
moment(scheduled).format('MMMM Do, HH:mm') :
|
||||||
|
I18n.t('admin.wizard.after_time_time_label');
|
||||||
},
|
},
|
||||||
|
|
||||||
actions: {
|
actions: {
|
||||||
|
@ -19,7 +20,9 @@ export default Ember.Controller.extend({
|
||||||
saving: true,
|
saving: true,
|
||||||
error: null
|
error: null
|
||||||
});
|
});
|
||||||
|
|
||||||
const wizard = this.get('model');
|
const wizard = this.get('model');
|
||||||
|
|
||||||
wizard.save().then(() => {
|
wizard.save().then(() => {
|
||||||
this.set('saving', false);
|
this.set('saving', false);
|
||||||
if (this.get('newWizard')) {
|
if (this.get('newWizard')) {
|
||||||
|
|
|
@ -22,18 +22,20 @@ export default DiscourseRoute.extend({
|
||||||
|
|
||||||
model(params) {
|
model(params) {
|
||||||
const wizardId = params.wizard_id;
|
const wizardId = params.wizard_id;
|
||||||
|
this.set('newWizard', wizardId === 'new');
|
||||||
|
|
||||||
if (wizardId === 'new') {
|
if (this.newWizard) {
|
||||||
this.set('newWizard', true);
|
|
||||||
return CustomWizard.create();
|
return CustomWizard.create();
|
||||||
};
|
} else {
|
||||||
this.set('newWizard', false);
|
const wizard = this.modelFor('admin-wizards-custom')
|
||||||
|
.findBy('id', wizardId.underscore());
|
||||||
|
|
||||||
const wizard = this.modelFor('admin-wizards-custom').findBy('id', wizardId.underscore());
|
if (!wizard) {
|
||||||
|
return this.transitionTo('adminWizard', 'new');
|
||||||
if (!wizard) return this.transitionTo('adminWizard', 'new');
|
} else {
|
||||||
|
return wizard;
|
||||||
return wizard;
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
afterModel(model) {
|
afterModel(model) {
|
||||||
|
@ -56,9 +58,15 @@ export default DiscourseRoute.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
_getThemes(model) {
|
_getThemes(model) {
|
||||||
return this.store.findAll('theme').then((result) => {
|
return ajax('/admin/themes')
|
||||||
model.set('themes', result.content);
|
.then((result) => {
|
||||||
});
|
model.set('themes', result.themes.map(t => {
|
||||||
|
return {
|
||||||
|
id: t.id,
|
||||||
|
name: t.name
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
_getApis(model) {
|
_getApis(model) {
|
||||||
|
@ -69,13 +77,17 @@ export default DiscourseRoute.extend({
|
||||||
_getUserFields(model) {
|
_getUserFields(model) {
|
||||||
return this.store.findAll('user-field').then((result) => {
|
return this.store.findAll('user-field').then((result) => {
|
||||||
if (result && result.content) {
|
if (result && result.content) {
|
||||||
let userContent = result.content.map((f) => {
|
model.set('userFields',
|
||||||
return { id: `user_field_${f.id}`, name: f.name};
|
result.content.map((f) => ({
|
||||||
});
|
id: `user_field_${f.id}`,
|
||||||
let profileContent = profileFields.map((f) => {
|
name: f.name
|
||||||
return { id: f, name: generateName(f) };
|
})).concat(
|
||||||
});
|
profileFields.map((f) => ({
|
||||||
model.set('userFields', userContent.concat(profileContent));
|
id: f,
|
||||||
|
name: generateName(f)
|
||||||
|
}))
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,150 +1,195 @@
|
||||||
<div class="admin-wizard settings">
|
<div class="admin-wizard settings">
|
||||||
|
|
||||||
<div class="wizard-header">
|
<div class="wizard-header">
|
||||||
{{i18n 'admin.wizard.header'}}
|
<span>{{model.name}}</span>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting">
|
<div class="wizard-url">
|
||||||
<div class="setting-label">
|
<a href="{{wizardUrl}}" target="_blank">{{wizardUrl}}</a>
|
||||||
<h3>{{i18n 'admin.wizard.id'}}</h3>
|
|
||||||
</div>
|
|
||||||
<div class="setting-value">
|
|
||||||
{{input name="name" value=model.id placeholderKey="admin.wizard.id_placeholder" disabled=model.existingId}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting">
|
<div class="wizard-basic-details">
|
||||||
<div class="setting-label">
|
<div class="setting">
|
||||||
<h3>{{i18n 'admin.wizard.name'}}</h3>
|
<div class="setting-label">
|
||||||
|
<h3>{{i18n 'admin.wizard.id'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input
|
||||||
|
name="name"
|
||||||
|
value=model.id
|
||||||
|
placeholderKey="admin.wizard.id_placeholder"
|
||||||
|
disabled=model.existingId}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
|
||||||
{{input name="name" value=model.name placeholderKey="admin.wizard.name_placeholder"}}
|
<div class="setting">
|
||||||
|
<div class="setting-label">
|
||||||
|
<h3>{{i18n 'admin.wizard.name'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input
|
||||||
|
name="name"
|
||||||
|
value=model.name
|
||||||
|
placeholderKey="admin.wizard.name_placeholder"}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting">
|
<div class="wizard-header medium">
|
||||||
<div class="setting-label">
|
{{i18n 'admin.wizard.label'}}
|
||||||
<h3>{{i18n 'admin.wizard.background'}}</h3>
|
|
||||||
</div>
|
|
||||||
<div class="setting-value">
|
|
||||||
{{input name="background" value=model.background placeholderKey="admin.wizard.background_placeholder"}}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting">
|
<div class="wizard-settings">
|
||||||
<div class="setting-label">
|
<div class="setting">
|
||||||
<h3>{{i18n 'admin.wizard.save_submissions'}}</h3>
|
<div class="setting-label">
|
||||||
|
<h3>{{i18n 'admin.wizard.background'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input
|
||||||
|
name="background"
|
||||||
|
value=model.background
|
||||||
|
placeholderKey="admin.wizard.background_placeholder"}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
|
||||||
{{input type='checkbox' checked=model.save_submissions}}
|
|
||||||
<span>{{i18n 'admin.wizard.save_submissions_label'}}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting">
|
<div class="setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.multiple_submissions'}}</h3>
|
<h3>{{i18n 'admin.wizard.save_submissions'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input type='checkbox' checked=model.save_submissions}}
|
||||||
|
<span>{{i18n 'admin.wizard.save_submissions_label'}}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
|
||||||
{{input type='checkbox' checked=model.multiple_submissions}}
|
|
||||||
<span>{{i18n 'admin.wizard.multiple_submissions_label'}}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting">
|
<div class="setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.required'}}</h3>
|
<h3>{{i18n 'admin.wizard.multiple_submissions'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input type='checkbox' checked=model.multiple_submissions}}
|
||||||
|
<span>{{i18n 'admin.wizard.multiple_submissions_label'}}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
|
||||||
{{input type='checkbox' checked=model.required}}
|
|
||||||
<span>{{i18n 'admin.wizard.required_label'}}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting">
|
<div class="setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.after_signup'}}</h3>
|
<h3>{{i18n 'admin.wizard.required'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input type='checkbox' checked=model.required}}
|
||||||
|
<span>{{i18n 'admin.wizard.required_label'}}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
|
||||||
{{input type='checkbox' checked=model.after_signup}}
|
|
||||||
<span>{{i18n 'admin.wizard.after_signup_label'}}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting">
|
<div class="setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.after_time'}}</h3>
|
<h3>{{i18n 'admin.wizard.after_signup'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input type='checkbox' checked=model.after_signup}}
|
||||||
|
<span>{{i18n 'admin.wizard.after_signup_label'}}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
|
||||||
{{input type='checkbox' checked=model.after_time}}
|
|
||||||
<span>{{i18n 'admin.wizard.after_time_label'}}</span>
|
|
||||||
{{d-button action='setNextSessionScheduled' translatedLabel=nextSessionScheduledLabel icon='far-calendar'}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting">
|
<div class="setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.prompt_completion'}}</h3>
|
<h3>{{i18n 'admin.wizard.after_time'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input type='checkbox' checked=model.after_time}}
|
||||||
|
<span>{{i18n 'admin.wizard.after_time_label'}}</span>
|
||||||
|
{{d-button
|
||||||
|
action='setNextSessionScheduled'
|
||||||
|
translatedLabel=nextSessionScheduledLabel
|
||||||
|
class="btn-after-time"
|
||||||
|
icon='far-calendar'}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
|
||||||
{{input type='checkbox' checked=model.prompt_completion}}
|
|
||||||
<span>{{i18n 'admin.wizard.prompt_completion_label'}}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting">
|
<div class="setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.min_trust'}}</h3>
|
<h3>{{i18n 'admin.wizard.prompt_completion'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input type='checkbox' checked=model.prompt_completion}}
|
||||||
|
<span>{{i18n 'admin.wizard.prompt_completion_label'}}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
|
||||||
<span>{{i18n 'admin.wizard.min_trust_label'}}</span>
|
|
||||||
{{input type='number' value=model.min_trust class='input-small'}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting">
|
<div class="setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.theme_id'}}</h3>
|
<h3>{{i18n 'admin.wizard.min_trust'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
<span>{{i18n 'admin.wizard.min_trust_label'}}</span>
|
||||||
|
{{input type='number' value=model.min_trust class='input-small'}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
|
||||||
{{combo-box
|
|
||||||
content=model.themes
|
|
||||||
valueProperty='id'
|
|
||||||
value=model.theme_id
|
|
||||||
options=(hash
|
|
||||||
none='admin.wizard.no_theme'
|
|
||||||
)}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting">
|
<div class="setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.restart_on_revisit'}}</h3>
|
<h3>{{i18n 'admin.wizard.theme_id'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{combo-box
|
||||||
|
content=model.themes
|
||||||
|
valueProperty='id'
|
||||||
|
value=model.theme_id
|
||||||
|
onChange=(action (mut model.theme_id))
|
||||||
|
options=(hash
|
||||||
|
none='admin.wizard.no_theme'
|
||||||
|
)}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
|
||||||
{{input type='checkbox' checked=model.restart_on_revisit}}
|
|
||||||
<span>{{i18n 'admin.wizard.restart_on_revisit_label'}}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting full">
|
<div class="setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.url'}}</h3>
|
<h3>{{i18n 'admin.wizard.restart_on_revisit'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{input type='checkbox' checked=model.restart_on_revisit}}
|
||||||
|
<span>{{i18n 'admin.wizard.restart_on_revisit_label'}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="setting full field-mapper-setting">
|
||||||
|
<div class="setting-label">
|
||||||
|
<h3>{{i18n 'admin.wizard.group'}}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="setting-value">
|
||||||
|
{{wizard-field-mapper
|
||||||
|
inputs=model.group
|
||||||
|
options=(hash
|
||||||
|
hasOutput=true
|
||||||
|
enableConnectors=true
|
||||||
|
userFieldSelection='key,value'
|
||||||
|
groupSelection=true
|
||||||
|
textDisabled='output'
|
||||||
|
)}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a href="{{wizardUrl}}" target="_blank">{{wizardUrl}}</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{wizard-links type="step" current=currentStep items=model.steps}}
|
{{wizard-links type="step" current=currentStep items=model.steps}}
|
||||||
|
|
||||||
{{#if currentStep}}
|
{{#if currentStep}}
|
||||||
{{wizard-custom-step step=currentStep wizard=model}}
|
{{wizard-custom-step step=currentStep wizard=model}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class='buttons'>
|
<div class='buttons'>
|
||||||
<button {{action "save"}} disabled={{disableSave}} class='btn btn-primary'>{{i18n 'admin.wizard.save'}}</button>
|
<button {{action "save"}} disabled={{disableSave}} class='btn btn-primary'>
|
||||||
|
{{i18n 'admin.wizard.save'}}
|
||||||
|
</button>
|
||||||
|
|
||||||
{{#unless newWizard}}
|
{{#unless newWizard}}
|
||||||
<button {{action "remove"}} class='btn btn-danger remove'>{{d-icon "trash-o"}}{{i18n 'admin.wizard.remove'}}</button>
|
<button {{action "remove"}} class='btn btn-danger remove'>
|
||||||
|
{{d-icon "far-trash-alt"}}{{i18n 'admin.wizard.remove'}}
|
||||||
|
</button>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
|
|
||||||
{{conditional-loading-spinner condition=saving size='small'}}
|
{{conditional-loading-spinner condition=saving size='small'}}
|
||||||
|
|
||||||
{{#if error}}
|
{{#if error}}
|
||||||
<span class="error">{{d-icon "times"}}{{error}}</span>
|
<span class="error">{{d-icon "times"}}{{error}}</span>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -92,6 +92,7 @@
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=api.authType
|
value=api.authType
|
||||||
content=authorizationTypes
|
content=authorizationTypes
|
||||||
|
onChange=(action (mut authorizationTypes))
|
||||||
options=(hash
|
options=(hash
|
||||||
none='admin.wizard.api.auth.type_none'
|
none='admin.wizard.api.auth.type_none'
|
||||||
)}}
|
)}}
|
||||||
|
@ -248,18 +249,21 @@
|
||||||
{{combo-box
|
{{combo-box
|
||||||
content=endpointMethods
|
content=endpointMethods
|
||||||
value=endpoint.method
|
value=endpoint.method
|
||||||
|
onChange=(action (mut endpoint.method))
|
||||||
options=(hash
|
options=(hash
|
||||||
none="admin.wizard.api.endpoint.method"
|
none="admin.wizard.api.endpoint.method"
|
||||||
)}}
|
)}}
|
||||||
{{combo-box
|
{{combo-box
|
||||||
content=contentTypes
|
content=contentTypes
|
||||||
value=endpoint.content_type
|
value=endpoint.content_type
|
||||||
|
onChange=(action (mut endpoint.content_type))
|
||||||
options=(hash
|
options=(hash
|
||||||
none="admin.wizard.api.endpoint.content_type"
|
none="admin.wizard.api.endpoint.content_type"
|
||||||
)}}
|
)}}
|
||||||
{{multi-select
|
{{multi-select
|
||||||
content=successCodes
|
content=successCodes
|
||||||
values=endpoint.success_codes
|
values=endpoint.success_codes
|
||||||
|
onChange=(action (mut endpoint.success_codes))
|
||||||
options=(hash
|
options=(hash
|
||||||
none="admin.wizard.api.endpoint.success_codes"
|
none="admin.wizard.api.endpoint.success_codes"
|
||||||
)}}
|
)}}
|
||||||
|
|
|
@ -2,8 +2,12 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.id"}}</h3>
|
<h3>{{i18n "admin.wizard.id"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{input value=action.id placeholderKey='admin.wizard.id_placeholder' disabled=disableId}}
|
{{input
|
||||||
|
value=action.id
|
||||||
|
placeholderKey='admin.wizard.id_placeholder'
|
||||||
|
disabled=disableId}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -11,10 +15,12 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.type"}}</h3>
|
<h3>{{i18n "admin.wizard.type"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=action.type
|
value=action.type
|
||||||
content=types
|
content=types
|
||||||
|
onChange=(action (mut action.type))
|
||||||
options=(hash
|
options=(hash
|
||||||
none="admin.wizard.field.type"
|
none="admin.wizard.field.type"
|
||||||
)}}
|
)}}
|
||||||
|
@ -26,15 +32,18 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.title"}}</h3>
|
<h3>{{i18n "admin.wizard.action.title"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=action.title
|
value=action.title
|
||||||
content=wizardFields
|
content=wizardFields
|
||||||
nameProperty="label"
|
nameProperty="label"
|
||||||
isDisabled=action.custom_title_enabled
|
onChange=(action (mut action.title))
|
||||||
options=(hash
|
options=(hash
|
||||||
none='admin.wizard.select_field'
|
none='admin.wizard.select_field'
|
||||||
|
isDisabled=action.custom_title_enabled
|
||||||
)}}
|
)}}
|
||||||
|
|
||||||
<div class="setting-gutter">
|
<div class="setting-gutter">
|
||||||
{{input type='checkbox' checked=action.custom_title_enabled}}
|
{{input type='checkbox' checked=action.custom_title_enabled}}
|
||||||
<span>{{i18n 'admin.wizard.action.custom_title'}}</span>
|
<span>{{i18n 'admin.wizard.action.custom_title'}}</span>
|
||||||
|
@ -49,15 +58,18 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.post"}}</h3>
|
<h3>{{i18n "admin.wizard.action.post"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=action.post
|
value=action.post
|
||||||
content=wizardFields
|
content=wizardFields
|
||||||
nameProperty='label'
|
nameProperty='label'
|
||||||
isDisabled=action.post_builder
|
onChange=(action (mut action.post))
|
||||||
options=(hash
|
options=(hash
|
||||||
none='admin.wizard.select_field'
|
none='admin.wizard.select_field'
|
||||||
|
isDisabled=action.post_builder
|
||||||
)}}
|
)}}
|
||||||
|
|
||||||
<div class="setting-gutter">
|
<div class="setting-gutter">
|
||||||
{{input type='checkbox' checked=action.post_builder}}
|
{{input type='checkbox' checked=action.post_builder}}
|
||||||
<span>{{i18n 'admin.wizard.action.post_builder.checkbox'}}</span>
|
<span>{{i18n 'admin.wizard.action.post_builder.checkbox'}}</span>
|
||||||
|
@ -70,15 +82,12 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.action.post_builder.label'}}</h3>
|
<h3>{{i18n 'admin.wizard.action.post_builder.label'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value editor">
|
<div class="setting-value editor">
|
||||||
{{d-editor
|
{{wizard-text-editor
|
||||||
value=action.post_template
|
value=action.post_template
|
||||||
placeholder='admin.wizard.action.interpolate_fields'
|
fieldsEnabled=true
|
||||||
classNames='post-builder-editor'}}
|
wizardFields=wizardFields}}
|
||||||
<div>
|
|
||||||
<label>{{i18n 'admin.wizard.action.post_builder.user_fields'}}{{builderUserFields}}</label>
|
|
||||||
<label>{{i18n 'admin.wizard.action.post_builder.wizard_fields'}}{{builderWizardFields}}</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
@ -89,13 +98,16 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.create_topic.category"}}</h3>
|
<h3>{{i18n "admin.wizard.action.create_topic.category"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{category-chooser
|
{{category-chooser
|
||||||
value=action.category_id
|
value=action.category_id
|
||||||
isDisabled=action.custom_category_enabled}}
|
isDisabled=action.custom_category_enabled}}
|
||||||
|
|
||||||
<div class="setting-gutter">
|
<div class="setting-gutter">
|
||||||
{{input type='checkbox' checked=action.custom_category_enabled}}
|
{{input type='checkbox' checked=action.custom_category_enabled}}
|
||||||
<span>{{i18n 'admin.wizard.action.custom_category.label'}}</span>
|
<span>{{i18n 'admin.wizard.action.custom_category.label'}}</span>
|
||||||
|
|
||||||
{{#if action.custom_category_enabled}}
|
{{#if action.custom_category_enabled}}
|
||||||
<div class="custom-category">
|
<div class="custom-category">
|
||||||
<div>
|
<div>
|
||||||
|
@ -106,11 +118,13 @@
|
||||||
value=action.category_id
|
value=action.category_id
|
||||||
content=categoryFields
|
content=categoryFields
|
||||||
nameProperty="label"
|
nameProperty="label"
|
||||||
|
onChange=(action (mut action.category_id))
|
||||||
options=(hash
|
options=(hash
|
||||||
none='admin.wizard.select_field'
|
none='admin.wizard.select_field'
|
||||||
)}}
|
)}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
{{input type='checkbox' checked=action.custom_category_user_field}}
|
{{input type='checkbox' checked=action.custom_category_user_field}}
|
||||||
<span>{{i18n 'admin.wizard.action.custom_category.user_field'}}</span>
|
<span>{{i18n 'admin.wizard.action.custom_category.user_field'}}</span>
|
||||||
|
@ -139,12 +153,14 @@
|
||||||
<div class="setting-gutter">
|
<div class="setting-gutter">
|
||||||
{{input type='checkbox' checked=action.custom_tag_enabled}}
|
{{input type='checkbox' checked=action.custom_tag_enabled}}
|
||||||
<span>{{i18n 'admin.wizard.action.custom_tag.label'}}</span>
|
<span>{{i18n 'admin.wizard.action.custom_tag.label'}}</span>
|
||||||
|
|
||||||
{{#if action.custom_tag_enabled}}
|
{{#if action.custom_tag_enabled}}
|
||||||
<div class="custom-tag">
|
<div class="custom-tag">
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=action.custom_tag_field
|
value=action.custom_tag_field
|
||||||
content=tagFields
|
content=tagFields
|
||||||
nameProperty="label"
|
nameProperty="label"
|
||||||
|
onChange=(action (mut action.custom_tag_field))
|
||||||
options=(hash
|
options=(hash
|
||||||
none='admin.wizard.select_field'
|
none='admin.wizard.select_field'
|
||||||
)}}
|
)}}
|
||||||
|
@ -160,23 +176,31 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.skip_redirect.label"}}</h3>
|
<h3>{{i18n "admin.wizard.action.skip_redirect.label"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{input type='checkbox' checked=action.skip_redirect}}
|
{{input type='checkbox' checked=action.skip_redirect}}
|
||||||
<span>{{i18n 'admin.wizard.action.skip_redirect.description' type='topic'}}</span>
|
|
||||||
|
<span>
|
||||||
|
{{i18n 'admin.wizard.action.skip_redirect.description' type='topic'}}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if createTopic}}
|
{{#if createTopic}}
|
||||||
<div class="setting full">
|
<div class="setting full field-mapper-setting">
|
||||||
<label>{{i18n 'admin.wizard.action.add_fields' type='Topic'}}</label>
|
<div class="setting-label">
|
||||||
{{wizard-field-mapper
|
<h3>{{i18n 'admin.wizard.action.add_fields'}}</h3>
|
||||||
inputs=action.add_fields
|
</div>
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
<div class="setting-value">
|
||||||
options=(hash
|
{{wizard-field-mapper
|
||||||
wizardFieldSelection=true
|
inputs=action.add_fields
|
||||||
)}}
|
wizardFields=wizardFields
|
||||||
|
options=(hash
|
||||||
|
wizardFieldSelection=true
|
||||||
|
)}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
@ -191,6 +215,7 @@
|
||||||
value=action.required
|
value=action.required
|
||||||
content=wizardFields
|
content=wizardFields
|
||||||
nameProperty='label'
|
nameProperty='label'
|
||||||
|
onChange=(action (mut action.required))
|
||||||
options=(hash
|
options=(hash
|
||||||
none='admin.wizard.select_field'
|
none='admin.wizard.select_field'
|
||||||
)}}
|
)}}
|
||||||
|
@ -201,6 +226,7 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.send_message.recipient"}}</h3>
|
<h3>{{i18n "admin.wizard.action.send_message.recipient"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{user-selector
|
{{user-selector
|
||||||
single="true"
|
single="true"
|
||||||
|
@ -210,21 +236,25 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting full">
|
<div class="setting full field-mapper-setting">
|
||||||
<label>{{i18n "admin.wizard.action.add_fields" type='Message'}}</label>
|
<div class="setting-label">
|
||||||
|
<h3>{{i18n 'admin.wizard.action.add_fields'}}</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
{{wizard-field-mapper
|
{{wizard-field-mapper
|
||||||
inputs=action.add_fields
|
inputs=action.add_fields
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields}}
|
wizardFields=wizardFields}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if updateProfile}}
|
{{#if updateProfile}}
|
||||||
<div class="setting full">
|
<div class="setting full field-mapper-setting">
|
||||||
<label>{{i18n "admin.wizard.action.add_fields" type='Profile'}}</label>
|
<div class="setting-label">
|
||||||
|
<h3>{{i18n 'admin.wizard.action.add_fields'}}</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
{{wizard-field-mapper
|
{{wizard-field-mapper
|
||||||
inputs=action.profile_updates
|
inputs=action.profile_updates
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
options=(hash
|
options=(hash
|
||||||
wizardFieldSelection=true
|
wizardFieldSelection=true
|
||||||
|
@ -238,12 +268,14 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.send_to_api.api"}}</h3>
|
<h3>{{i18n "admin.wizard.action.send_to_api.api"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=action.api
|
value=action.api
|
||||||
content=availableApis
|
content=availableApis
|
||||||
isDisabled=action.custom_title_enabled
|
onChange=(action (mut action.api))
|
||||||
options=(hash
|
options=(hash
|
||||||
|
isDisabled=action.custom_title_enabled
|
||||||
none='admin.wizard.action.send_to_api.select_an_api'
|
none='admin.wizard.action.send_to_api.select_an_api'
|
||||||
)}}
|
)}}
|
||||||
</div>
|
</div>
|
||||||
|
@ -253,12 +285,14 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.send_to_api.endpoint"}}</h3>
|
<h3>{{i18n "admin.wizard.action.send_to_api.endpoint"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=action.api_endpoint
|
value=action.api_endpoint
|
||||||
content=availableEndpoints
|
content=availableEndpoints
|
||||||
isDisabled=apiEmpty
|
onChange=(action (mut action.api_endpoint))
|
||||||
options=(hash
|
options=(hash
|
||||||
|
isDisabled=apiEmpty
|
||||||
none='admin.wizard.action.send_to_api.select_an_endpoint'
|
none='admin.wizard.action.send_to_api.select_an_endpoint'
|
||||||
)}}
|
)}}
|
||||||
</div>
|
</div>
|
||||||
|
@ -268,25 +302,25 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.send_to_api.body"}}</h3>
|
<h3>{{i18n "admin.wizard.action.send_to_api.body"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
<label>{{i18n 'admin.wizard.action.post_builder.user_fields'}}{{builderUserFields}}</label>
|
{{wizard-text-editor
|
||||||
<label>{{i18n 'admin.wizard.action.post_builder.wizard_fields'}}{{builderWizardFields}}</label>
|
|
||||||
{{textarea
|
|
||||||
value=action.api_body
|
value=action.api_body
|
||||||
placeholder=(i18n 'admin.wizard.action.interpolate_fields')}}
|
fieldsEnabled=true
|
||||||
|
wizardFields=wizardFields}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if addToGroup}}
|
{{#if addToGroup}}
|
||||||
<div class="setting full">
|
<div class="setting full field-mapper-setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.add_to_group.group"}}</h3>
|
<h3>{{i18n "admin.wizard.group"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{wizard-field-mapper
|
{{wizard-field-mapper
|
||||||
inputs=action.inputs
|
inputs=action.inputs
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
outputConnectorKey='admin.wizard.action.add_to_group.output_connector'
|
outputConnectorKey='admin.wizard.action.add_to_group.output_connector'
|
||||||
options=(hash
|
options=(hash
|
||||||
|
@ -305,14 +339,17 @@
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.route_to.url"}}</h3>
|
<h3>{{i18n "admin.wizard.action.route_to.url"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{input value=action.url}}
|
{{input value=action.url}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting">
|
<div class="setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n "admin.wizard.action.route_to.code"}}</h3>
|
<h3>{{i18n "admin.wizard.action.route_to.code"}}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{input value=action.code}}
|
{{input value=action.code}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<h3>{{i18n 'admin.wizard.field.label'}}</h3>
|
<h3>{{i18n 'admin.wizard.field.label'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{input name="label" value=field.label placeholder=(i18n "admin.wizard.custom_text_placeholder")}}
|
{{input name="label" value=field.label}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
<h3>{{i18n 'admin.wizard.field.description'}}</h3>
|
<h3>{{i18n 'admin.wizard.field.description'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{textarea name="description" value=field.description placeholder=(i18n "admin.wizard.custom_text_placeholder")}}
|
{{textarea name="description" value=field.description}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=field.type
|
value=field.type
|
||||||
content=types
|
content=types
|
||||||
|
onChange=(action (mut field.type))
|
||||||
options=(hash
|
options=(hash
|
||||||
none="admin.wizard.field.type"
|
none="admin.wizard.field.type"
|
||||||
)}}
|
)}}
|
||||||
|
@ -87,6 +88,7 @@
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=field.choices_type
|
value=field.choices_type
|
||||||
content=choicesTypes
|
content=choicesTypes
|
||||||
|
onChange=(action (mut field.choices_type))
|
||||||
options=(hash
|
options=(hash
|
||||||
none="admin.wizard.field.choices_type"
|
none="admin.wizard.field.choices_type"
|
||||||
)}}
|
)}}
|
||||||
|
@ -104,7 +106,6 @@
|
||||||
</div>
|
</div>
|
||||||
{{wizard-field-mapper
|
{{wizard-field-mapper
|
||||||
inputs=field.choices
|
inputs=field.choices
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields}}
|
wizardFields=wizardFields}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
@ -144,8 +145,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{combo-box
|
{{combo-box
|
||||||
content=categoryPropertyTypes
|
|
||||||
value=field.property
|
value=field.property
|
||||||
|
content=categoryPropertyTypes
|
||||||
|
onChange=(action (mut field.property))
|
||||||
options=(hash
|
options=(hash
|
||||||
none='admin.wizard.select_property'
|
none='admin.wizard.select_property'
|
||||||
)}}
|
)}}
|
||||||
|
@ -153,28 +155,26 @@
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="setting full custom-inputs">
|
<div class="setting full field-mapper-setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.field.prefill'}}</h3>
|
<h3>{{i18n 'admin.wizard.field.prefill'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{wizard-field-mapper
|
{{wizard-field-mapper
|
||||||
inputs=field.prefill
|
inputs=field.prefill
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
options=prefillOptions}}
|
options=prefillOptions}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if canFilter}}
|
{{#if canFilter}}
|
||||||
<div class="setting full custom-inputs">
|
<div class="setting full field-mapper-setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.field.filter'}}</h3>
|
<h3>{{i18n 'admin.wizard.field.filter'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{wizard-field-mapper
|
{{wizard-field-mapper
|
||||||
inputs=field.filters
|
inputs=field.filters
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
options=filterOptions}}
|
options=filterOptions}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
{{wizard-custom-input-selector
|
{{wizard-custom-input-selector
|
||||||
selectorType='key'
|
selectorType='key'
|
||||||
inputType=inputType
|
inputType=inputType
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
value=pair.key
|
value=pair.key
|
||||||
activeType=pair.key_type
|
activeType=pair.key_type
|
||||||
|
@ -15,7 +14,8 @@
|
||||||
{{#if options.enableConnectors}}
|
{{#if options.enableConnectors}}
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=pair.connector
|
value=pair.connector
|
||||||
content=connectors}}
|
content=connectors
|
||||||
|
onChange=(action (mut pair.connector))}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if connectorKey}}
|
{{#if connectorKey}}
|
||||||
|
@ -30,7 +30,6 @@
|
||||||
{{wizard-custom-input-selector
|
{{wizard-custom-input-selector
|
||||||
selectorType='value'
|
selectorType='value'
|
||||||
inputType=inputType
|
inputType=inputType
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
value=pair.value
|
value=pair.value
|
||||||
activeType=pair.value_type
|
activeType=pair.value_type
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
<div class="connector prefix">
|
<div class="connector prefix">
|
||||||
{{combo-box
|
{{combo-box
|
||||||
value=input.type
|
value=input.type
|
||||||
content=inputTypes}}
|
content=inputTypes
|
||||||
|
onChange=(action (mut input.type))}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
@ -15,7 +16,6 @@
|
||||||
inputType=inputType
|
inputType=inputType
|
||||||
keyPlaceholder=keyPlaceholder
|
keyPlaceholder=keyPlaceholder
|
||||||
valuePlaceholder=valuePlaceholder
|
valuePlaceholder=valuePlaceholder
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
options=options
|
options=options
|
||||||
removePair=(action 'removePair')}}
|
removePair=(action 'removePair')}}
|
||||||
|
@ -41,7 +41,6 @@
|
||||||
{{wizard-custom-input-selector
|
{{wizard-custom-input-selector
|
||||||
selectorType='output'
|
selectorType='output'
|
||||||
inputType=inputType
|
inputType=inputType
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
value=input.output
|
value=input.output
|
||||||
activeType=input.output_type
|
activeType=input.output_type
|
||||||
|
|
|
@ -3,7 +3,11 @@
|
||||||
<h3>{{i18n 'admin.wizard.id'}}</h3>
|
<h3>{{i18n 'admin.wizard.id'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{input name="id" value=step.id placeholderKey="admin.wizard.id_placeholder" disabled=disableId}}
|
{{input
|
||||||
|
name="id"
|
||||||
|
value=step.id
|
||||||
|
placeholderKey="admin.wizard.id_placeholder"
|
||||||
|
disabled=disableId}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -12,7 +16,10 @@
|
||||||
<h3>{{i18n 'admin.wizard.key'}}</h3>
|
<h3>{{i18n 'admin.wizard.key'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{input name="key" value=step.key placeholderKey="admin.wizard.key_placeholder"}}
|
{{input
|
||||||
|
name="key"
|
||||||
|
value=step.key
|
||||||
|
placeholderKey="admin.wizard.key_placeholder"}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -21,7 +28,9 @@
|
||||||
<h3>{{i18n 'admin.wizard.step.title'}}</h3>
|
<h3>{{i18n 'admin.wizard.step.title'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{input name="title" value=step.title placeholderKey="admin.wizard.custom_text_placeholder"}}
|
{{input
|
||||||
|
name="title"
|
||||||
|
value=step.title}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -30,7 +39,10 @@
|
||||||
<h3>{{i18n 'admin.wizard.step.banner'}}</h3>
|
<h3>{{i18n 'admin.wizard.step.banner'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{input name="banner" value=step.banner placeholderKey="admin.wizard.step.banner_placeholder"}}
|
{{input
|
||||||
|
name="banner"
|
||||||
|
value=step.banner
|
||||||
|
placeholderKey="admin.wizard.step.banner_placeholder"}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -39,20 +51,17 @@
|
||||||
<h3>{{i18n 'admin.wizard.step.description'}}</h3>
|
<h3>{{i18n 'admin.wizard.step.description'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{d-editor
|
{{wizard-text-editor value=step.raw_description}}
|
||||||
value=step.raw_description
|
|
||||||
placeholder="admin.wizard.custom_text_placeholder"}}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting required-data full">
|
<div class="setting full field-mapper-setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.step.required_data.label'}}</h3>
|
<h3>{{i18n 'admin.wizard.step.required_data.label'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{wizard-field-mapper
|
{{wizard-field-mapper
|
||||||
inputs=step.required_data
|
inputs=step.required_data
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
keyPlaceholder="admin.wizard.submission_key"
|
keyPlaceholder="admin.wizard.submission_key"
|
||||||
options=(hash
|
options=(hash
|
||||||
|
@ -71,14 +80,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting full">
|
<div class="setting full field-mapper-setting">
|
||||||
<div class="setting-label">
|
<div class="setting-label">
|
||||||
<h3>{{i18n 'admin.wizard.step.permitted_params.label'}}</h3>
|
<h3>{{i18n 'admin.wizard.step.permitted_params.label'}}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-value">
|
<div class="setting-value">
|
||||||
{{wizard-field-mapper
|
{{wizard-field-mapper
|
||||||
inputs=step.permitted_params
|
inputs=step.permitted_params
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
keyPlaceholder='admin.wizard.param_key'
|
keyPlaceholder='admin.wizard.param_key'
|
||||||
valuePlaceholder='admin.wizard.submission_key'
|
valuePlaceholder='admin.wizard.submission_key'
|
||||||
|
@ -93,7 +101,6 @@
|
||||||
field=currentField
|
field=currentField
|
||||||
types=wizard.fieldTypes
|
types=wizard.fieldTypes
|
||||||
removeField="removeField"
|
removeField="removeField"
|
||||||
userFields=wizard.userFields
|
|
||||||
wizardFields=wizardFields}}
|
wizardFields=wizardFields}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
@ -104,8 +111,5 @@
|
||||||
action=currentAction
|
action=currentAction
|
||||||
wizard=wizard
|
wizard=wizard
|
||||||
removeAction="removeAction"
|
removeAction="removeAction"
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields}}
|
||||||
userFields=wizard.userFields}}
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<label>{{i18n 'admin.wizard.action.available_fields'}}</label>
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{{#each inputs as |input|}}
|
{{#each inputs as |input|}}
|
||||||
{{wizard-custom-input
|
{{wizard-custom-input
|
||||||
input=input
|
input=input
|
||||||
userFields=userFields
|
|
||||||
wizardFields=wizardFields
|
wizardFields=wizardFields
|
||||||
keyPlaceholder=keyPlaceholder
|
keyPlaceholder=keyPlaceholder
|
||||||
valuePlaceholder=valuePlaceholder
|
valuePlaceholder=valuePlaceholder
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
<div class="wizard-links {{type}}">
|
<div class="wizard-links {{type}}">
|
||||||
<div class="wizard-header medium">{{{i18n header}}}</div>
|
<div class="wizard-header medium">{{{i18n header}}}</div>
|
||||||
<ul>
|
{{#if anyLinks}}
|
||||||
{{#each links as |l|}}
|
<ul>
|
||||||
<li data-id='{{l.id}}'>
|
{{#each links as |l|}}
|
||||||
{{d-button action="change" actionParam=l.id translatedLabel=l.label class=l.classes}}
|
<li data-id='{{l.id}}'>
|
||||||
{{d-button action='remove' actionParam=l.id icon='times' class='remove'}}
|
{{d-button action="change" actionParam=l.id translatedLabel=l.label class=l.classes}}
|
||||||
</li>
|
{{d-button action='remove' actionParam=l.id icon='times' class='remove'}}
|
||||||
{{/each}}
|
</li>
|
||||||
</ul>
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
{{/if}}
|
||||||
{{d-button action='add' label='admin.wizard.add' icon='plus'}}
|
{{d-button action='add' label='admin.wizard.add' icon='plus'}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
{{d-editor
|
||||||
|
value=value
|
||||||
|
forcePreview=forcePreview}}
|
||||||
|
|
||||||
|
<div class="wizard-editor-gutter">
|
||||||
|
{{d-button
|
||||||
|
action="togglePreview"
|
||||||
|
translatedLabel=previewLabel}}
|
||||||
|
|
||||||
|
{{#if fieldsEnabled}}
|
||||||
|
{{d-button
|
||||||
|
action="togglePopover"
|
||||||
|
translatedLabel=popoverLabel}}
|
||||||
|
|
||||||
|
{{#if showPopover}}
|
||||||
|
<div class="wizard-editor-gutter-popover">
|
||||||
|
<label>
|
||||||
|
{{i18n 'admin.wizard.action.post_builder.user_fields'}}
|
||||||
|
{{userFieldList}}
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
{{i18n 'admin.wizard.action.post_builder.wizard_fields'}}
|
||||||
|
{{wizardFieldList}}
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
|
@ -64,7 +64,7 @@ export default Ember.TextField.extend({
|
||||||
return usernames;
|
return usernames;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$().val(this.get('usernames')).autocomplete({
|
$(this.element).val(this.get('usernames')).autocomplete({
|
||||||
template,
|
template,
|
||||||
disabled: this.get('disabled'),
|
disabled: this.get('disabled'),
|
||||||
single: this.get('single'),
|
single: this.get('single'),
|
||||||
|
@ -121,7 +121,7 @@ export default Ember.TextField.extend({
|
||||||
|
|
||||||
willDestroyElement() {
|
willDestroyElement() {
|
||||||
this._super();
|
this._super();
|
||||||
this.$().autocomplete('destroy');
|
$(this.element).autocomplete('destroy');
|
||||||
},
|
},
|
||||||
|
|
||||||
// THIS IS A HUGE HACK TO SUPPORT CLEARING THE INPUT
|
// THIS IS A HUGE HACK TO SUPPORT CLEARING THE INPUT
|
||||||
|
@ -129,7 +129,7 @@ export default Ember.TextField.extend({
|
||||||
_clearInput: function() {
|
_clearInput: function() {
|
||||||
if (arguments.length > 1) {
|
if (arguments.length > 1) {
|
||||||
if (Em.isEmpty(this.get("usernames"))) {
|
if (Em.isEmpty(this.get("usernames"))) {
|
||||||
this.$().parent().find("a").click();
|
$(this.element).parent().find("a").click();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ export default Ember.Component.extend({
|
||||||
didInsertElement() {
|
didInsertElement() {
|
||||||
this._super();
|
this._super();
|
||||||
|
|
||||||
const $upload = this.$();
|
const $upload = $(this.element);
|
||||||
|
|
||||||
const id = this.get("field.id");
|
const id = this.get("field.id");
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,35 @@
|
||||||
|
$setting-background: dark-light-diff($primary, $secondary, 96%, -65%);
|
||||||
|
|
||||||
.wizard-list {
|
.wizard-list {
|
||||||
float: left;
|
float: left;
|
||||||
width: 250px;
|
width: 250px;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wizard-settings-parent {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: $setting-background;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wizard-settings-group {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
flex-flow: wrap;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wizard-settings,
|
||||||
|
.wizard-custom-step {
|
||||||
|
@extend .wizard-settings-parent;
|
||||||
|
@extend .wizard-settings-group;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wizard-basic-details,
|
||||||
|
.wizard-custom-field,
|
||||||
|
.wizard-custom-action {
|
||||||
|
@extend .wizard-settings-group;
|
||||||
}
|
}
|
||||||
|
|
||||||
.new-wizard {
|
.new-wizard {
|
||||||
|
@ -8,11 +37,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.wizard-header {
|
.wizard-header {
|
||||||
font-size: 1.4em;
|
font-size: 1.5em;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 20px;
|
||||||
|
|
||||||
&.medium {
|
&.medium {
|
||||||
font-size: 1.2em;
|
font-size: 1.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.small {
|
&.small {
|
||||||
|
@ -23,6 +52,13 @@
|
||||||
&.underline {
|
&.underline {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.wizard-url {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 1rem;
|
||||||
|
margin-left: 20px;
|
||||||
|
background-color: $setting-background;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-list + .content {
|
.content-list + .content {
|
||||||
|
@ -30,18 +66,25 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.admin-wizard.settings {
|
.admin-wizard.settings {
|
||||||
|
margin-top: 10px;
|
||||||
margin-left: 30px;
|
margin-left: 30px;
|
||||||
|
|
||||||
.setting {
|
.setting {
|
||||||
display: inline-block;
|
display: inline-flex;
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
width: 49%;
|
width: 48%;
|
||||||
|
|
||||||
.setting-label {
|
.setting-label {
|
||||||
width: 20%;
|
width: 80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.setting-value {
|
.setting-value {
|
||||||
|
flex: 1;
|
||||||
|
overflow: initial;
|
||||||
|
float: initial;
|
||||||
|
width: initial;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
label {
|
label {
|
||||||
font-size: 0.85em;
|
font-size: 0.85em;
|
||||||
}
|
}
|
||||||
|
@ -54,55 +97,25 @@
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.d-editor {
|
input[type="text"], textarea {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
.d-editor-input {
|
input[disabled] {
|
||||||
height: 100px;
|
background-color: $primary-low;
|
||||||
}
|
cursor: not-allowed;
|
||||||
|
|
||||||
button {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.full {
|
&.full {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
&.custom-inputs {
|
|
||||||
padding-bottom: 30px;
|
|
||||||
|
|
||||||
.setting-label {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.add-custom-input:first-child {
|
|
||||||
margin-top: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.multi-select {
|
|
||||||
.multi-select-header, input {
|
|
||||||
min-height: 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.choices .choice {
|
|
||||||
height: 24px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.setting-label {
|
|
||||||
width: 10%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.setting-value {
|
.setting-value {
|
||||||
width: initial;
|
width: initial;
|
||||||
float: none;
|
float: none;
|
||||||
display: flex;
|
|
||||||
|
|
||||||
&.editor {
|
&.editor {
|
||||||
flex-flow: wrap;
|
|
||||||
|
|
||||||
.d-editor {
|
.d-editor {
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
|
@ -111,6 +124,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.field-mapper-setting {
|
||||||
|
padding-bottom: 20px;
|
||||||
|
|
||||||
|
.setting-label {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
label {
|
label {
|
||||||
margin: 5px 0;
|
margin: 5px 0;
|
||||||
}
|
}
|
||||||
|
@ -159,8 +180,95 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.field-mapper {
|
||||||
|
width: 100%;
|
||||||
|
display: inline-block;
|
||||||
|
|
||||||
|
> .custom-input, > .add-custom-input {
|
||||||
|
float: left;
|
||||||
|
clear: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.add-custom-input:first-child {
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.multi-select {
|
||||||
|
.multi-select-header, input {
|
||||||
|
min-height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.choices .choice {
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-after-time {
|
||||||
|
margin-top: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wizard-text-editor {
|
||||||
|
.d-editor {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.d-editor-input {
|
||||||
|
min-height: 120px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.d-editor-container {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.d-editor-textarea-wrapper {
|
||||||
|
display: grid;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: vertical;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.d-editor-preview-wrapper {
|
||||||
|
display: none;
|
||||||
|
margin: 0 0 10px 0;
|
||||||
|
padding: 10px;
|
||||||
|
background-color: $secondary;
|
||||||
|
border: 1px solid $primary-medium;
|
||||||
|
max-width: 100%;
|
||||||
|
|
||||||
|
&.force-preview {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.wizard-editor-gutter {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wizard-editor-gutter-popover {
|
||||||
|
position: absolute;
|
||||||
|
padding: 10px;
|
||||||
|
background-color: $secondary;
|
||||||
|
box-shadow: shadow('card');
|
||||||
|
z-index: 200;
|
||||||
|
top: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.wizard-links {
|
.wizard-links {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
@ -190,17 +298,11 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wizard-custom-step {
|
|
||||||
display: inline-block;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
padding: 15px;
|
|
||||||
background-color: dark-light-diff($primary, $secondary, 96%, -65%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.wizard-dropdown-choices {
|
.wizard-dropdown-choices {
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
background-color: $secondary;
|
background-color: $secondary;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
.wizard-header:not(.underline) {
|
.wizard-header:not(.underline) {
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
|
@ -208,7 +310,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.custom-input {
|
.custom-input {
|
||||||
display: flex;
|
display: inline-flex;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -234,7 +336,7 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.add-pair {
|
.add-pair {
|
||||||
margin-top: 4px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.remove-pair {
|
.remove-pair {
|
||||||
|
@ -255,7 +357,10 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-bottom: 10px;
|
|
||||||
|
&:not(:first-of-type) {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
&.no-connector div.input-block:not(:last-of-type) {
|
&.no-connector div.input-block:not(:last-of-type) {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
|
@ -281,7 +386,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
a.remove-input {
|
a.remove-input {
|
||||||
margin: 25px 0 0 10px;
|
position: absolute;
|
||||||
|
right: -25px;
|
||||||
|
top: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.connector {
|
.connector {
|
||||||
|
@ -307,14 +414,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.required-data .setting-value {
|
.required-data-message {
|
||||||
flex-flow: wrap;
|
display: inline-block;
|
||||||
|
margin-top: 20px;
|
||||||
|
|
||||||
.custom-inputs {
|
.label {
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.required-data-message .label {
|
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,10 +19,10 @@ en:
|
||||||
save_submissions_label: "Save wizard submissions."
|
save_submissions_label: "Save wizard submissions."
|
||||||
multiple_submissions: "Multiple"
|
multiple_submissions: "Multiple"
|
||||||
multiple_submissions_label: "Allow multiple submissions by the same user."
|
multiple_submissions_label: "Allow multiple submissions by the same user."
|
||||||
after_signup: "After Signup"
|
after_signup: "Signup"
|
||||||
after_signup_label: "Users are directed to wizard after signup."
|
after_signup_label: "Users are directed to wizard after creating an account."
|
||||||
after_time: "After Time"
|
after_time: "Time"
|
||||||
after_time_label: "Users are directed to wizard after the start time until wizard is completed or skipped."
|
after_time_label: "Users are directed to wizard after the start time."
|
||||||
after_time_time_label: "Start Time"
|
after_time_time_label: "Start Time"
|
||||||
after_time_modal:
|
after_time_modal:
|
||||||
title: "Wizard Start Time"
|
title: "Wizard Start Time"
|
||||||
|
@ -42,7 +42,6 @@ en:
|
||||||
no_theme: "Select a Theme (optional)"
|
no_theme: "Select a Theme (optional)"
|
||||||
save: "Save Changes"
|
save: "Save Changes"
|
||||||
remove: "Delete Wizard"
|
remove: "Delete Wizard"
|
||||||
header: "Wizard"
|
|
||||||
add: "Add"
|
add: "Add"
|
||||||
url: "Url"
|
url: "Url"
|
||||||
key: "Key"
|
key: "Key"
|
||||||
|
@ -53,7 +52,6 @@ en:
|
||||||
id: "Id"
|
id: "Id"
|
||||||
id_placeholder: "Underscored. Cannot be changed."
|
id_placeholder: "Underscored. Cannot be changed."
|
||||||
key_placeholder: "Translation key"
|
key_placeholder: "Translation key"
|
||||||
custom_text_placeholder: "Overrides translation"
|
|
||||||
type: "Type"
|
type: "Type"
|
||||||
none: "Make a selection"
|
none: "Make a selection"
|
||||||
user_field: "User Field"
|
user_field: "User Field"
|
||||||
|
@ -64,6 +62,13 @@ en:
|
||||||
profile_field: "Profile Field"
|
profile_field: "Profile Field"
|
||||||
submission_key: 'submission key'
|
submission_key: 'submission key'
|
||||||
param_key: 'param'
|
param_key: 'param'
|
||||||
|
group: "Group"
|
||||||
|
|
||||||
|
editor:
|
||||||
|
show: "Show"
|
||||||
|
hide: "Hide"
|
||||||
|
preview: "{{action}} Preview"
|
||||||
|
popover: "{{action}} Fields"
|
||||||
|
|
||||||
input:
|
input:
|
||||||
conditional:
|
conditional:
|
||||||
|
@ -91,10 +96,10 @@ en:
|
||||||
banner_placeholder: "Image url"
|
banner_placeholder: "Image url"
|
||||||
description: "Description"
|
description: "Description"
|
||||||
required_data:
|
required_data:
|
||||||
label: "Required Data"
|
label: "Required"
|
||||||
not_permitted_message: "Message shown when required data not present"
|
not_permitted_message: "Message shown when required data not present"
|
||||||
permitted_params:
|
permitted_params:
|
||||||
label: "Permitted Params"
|
label: "Params"
|
||||||
connector: "save as"
|
connector: "save as"
|
||||||
|
|
||||||
field:
|
field:
|
||||||
|
@ -126,17 +131,16 @@ en:
|
||||||
filter: "Content"
|
filter: "Content"
|
||||||
|
|
||||||
action:
|
action:
|
||||||
header: "Actions<sup>*</sup>"
|
header: "Actions"
|
||||||
include: "Include Fields"
|
include: "Include Fields"
|
||||||
title: "Title"
|
title: "Title"
|
||||||
post: "Post"
|
post: "Post"
|
||||||
add_fields: "{{type}} Fields"
|
add_fields: "Fields"
|
||||||
available_fields: "* If 'Save wizard submissions' is disabled, only the fields of the current step are available to the current step's actions."
|
|
||||||
topic_attr: "Topic Attribute"
|
topic_attr: "Topic Attribute"
|
||||||
interpolate_fields: "Insert wizard fields using the field_id in w{}. Insert user fields using field key in u{}."
|
interpolate_fields: "Insert wizard fields using the field_id in w{}. Insert user fields using field key in u{}."
|
||||||
|
|
||||||
skip_redirect:
|
skip_redirect:
|
||||||
label: "Skip Redirect"
|
label: "No Redirect"
|
||||||
description: "Don't redirect the user to this {{type}} after the wizard completes"
|
description: "Don't redirect the user to this {{type}} after the wizard completes"
|
||||||
send_message:
|
send_message:
|
||||||
label: "Send Message"
|
label: "Send Message"
|
||||||
|
@ -155,7 +159,6 @@ en:
|
||||||
placeholder: "Insert wizard fields using the field_id in w{}. Insert user fields using field key in u{}."
|
placeholder: "Insert wizard fields using the field_id in w{}. Insert user fields using field key in u{}."
|
||||||
add_to_group:
|
add_to_group:
|
||||||
label: "Add to Group"
|
label: "Add to Group"
|
||||||
group: "Group"
|
|
||||||
output_connector: "add to"
|
output_connector: "add to"
|
||||||
route_to:
|
route_to:
|
||||||
label: "Route To"
|
label: "Route To"
|
||||||
|
@ -173,7 +176,7 @@ en:
|
||||||
endpoint: "Endpoint"
|
endpoint: "Endpoint"
|
||||||
select_an_api: "Select an API"
|
select_an_api: "Select an API"
|
||||||
select_an_endpoint: "Select an endpoint"
|
select_an_endpoint: "Select an endpoint"
|
||||||
body: "Request body JSON"
|
body: "Body"
|
||||||
|
|
||||||
api:
|
api:
|
||||||
label: "API"
|
label: "API"
|
||||||
|
|
Laden …
In neuem Issue referenzieren