0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-22 09:20:29 +01:00
Dieser Commit ist enthalten in:
Angus McLeod 2020-04-07 14:56:16 +10:00
Ursprung 6570e4b74b
Commit e3fa75597b
6 geänderte Dateien mit 65 neuen und 30 gelöschten Zeilen

Datei anzeigen

@ -80,6 +80,13 @@ export default Component.extend({
this.set('field.prefill', null); this.set('field.prefill', null);
}, },
@observes('isCategory')
setupCategoryType() {
if (this.isCategory && !this.field.property) {
this.set('field.property', 'id');
}
},
actions: { actions: {
imageUploadDone(upload) { imageUploadDone(upload) {
this.set("field.image", upload.url); this.set("field.image", upload.url);

Datei anzeigen

@ -53,7 +53,12 @@ export default Component.extend({
}, },
remove(input) { remove(input) {
this.get('inputs').removeObject(input); const inputs = this.inputs;
inputs.removeObject(input);
if (inputs.length) {
inputs[0].set('connector', null);
}
} }
} }
}); });

Datei anzeigen

@ -214,9 +214,11 @@ function stepHasAdvanced(property, value) {
return advancedProperties.step[property] && present(value); return advancedProperties.step[property] && present(value);
} }
function hasAdvanced(params, type) { function objectHasAdvanced(params, type) {
return Object.keys(params).some(p => { return Object.keys(params).some(p => {
return advancedProperties[type].indexOf(p) > -1 && present(params[p]); let value = params[p];
let advanced = advancedProperties[type][params.type];
return advanced && advanced.indexOf(p) > -1 && present(value);
}); });
} }
@ -245,7 +247,7 @@ function buildProperties(json) {
}; };
properties.step.forEach((p) => { properties.step.forEach((p) => {
stepParams[p] = buildProperty(stepJson, p, 'wizard');; stepParams[p] = buildProperty(stepJson, p, 'wizard');
if (stepHasAdvanced(p, stepJson[p])) { if (stepHasAdvanced(p, stepJson[p])) {
stepParams.showAdvanced = true; stepParams.showAdvanced = true;
@ -257,8 +259,8 @@ function buildProperties(json) {
if (present(stepJson.fields)) { if (present(stepJson.fields)) {
stepJson.fields.forEach((f) => { stepJson.fields.forEach((f) => {
let params = buildObject(f, 'field'); let params = buildObject(f, 'field');
if (hasAdvanced(params, 'field')) { if (objectHasAdvanced(params, 'field')) {
params.showAdvanced = true; params.showAdvanced = true;
} }
@ -272,7 +274,7 @@ function buildProperties(json) {
stepJson.actions.forEach((a) => { stepJson.actions.forEach((a) => {
let params = buildObject(a, 'action'); let params = buildObject(a, 'action');
if (hasAdvanced(params, 'action')) { if (objectHasAdvanced(params, 'action')) {
params.showAdvanced = true; params.showAdvanced = true;
} }

Datei anzeigen

@ -83,7 +83,7 @@ const fieldProperties = [
'property', 'property',
'limit', 'limit',
'prefill', 'prefill',
'content', 'content'
] ]
const actionProperties = [ const actionProperties = [
@ -139,27 +139,12 @@ const mappedProperties = {
] ]
} }
const advancedProperties = { const advancedFieldProperties = [
step: [ 'prefill',
'required_data', 'content'
'permitted_params' ]
],
field: [
'property',
'prefill',
'content'
],
action: [
'code',
'custom_fields',
'skip_redirect',
'required'
]
}
const actionTypes = [ const actionTypes = [
'create_topic',
'update_profile',
'create_topic', 'create_topic',
'update_profile', 'update_profile',
'send_message', 'send_message',
@ -171,6 +156,37 @@ const actionTypes = [
return Discourse.SiteSettings.wizard_api_features || type !== 'send_to_api'; return Discourse.SiteSettings.wizard_api_features || type !== 'send_to_api';
}); });
const advancedProperties = {
step: [
'required_data',
'permitted_params'
],
field: advancedFieldProperties.reduce(
function(map, type) {
console.log(map, type);
map[type] = advancedFieldProperties;
if (type === 'category') {
map.push('property');
}
return map;
}, {}
),
action: actionTypes.reduce(
function(map, type) {
if (type === 'route_to') {
map[type] = ['code'];
} else if (['create_topic', 'send_message', 'open_composer'].indexOf(type) > -1) {
map[type] = ['custom_fields'];
} else if (['create_topic', 'send_message'].indexOf(type) > -1) {
map[type].push('skip_redirect');
} else if (type === 'send_message') {
map[type].push('required');
}
return map;
}, {}
)
}
export { export {
selectKitContent, selectKitContent,
generateName, generateName,

Datei anzeigen

@ -110,7 +110,7 @@
content=categoryPropertyTypes content=categoryPropertyTypes
onChange=(action (mut field.property)) onChange=(action (mut field.property))
options=(hash options=(hash
none='admin.wizard.select_property' none='admin.wizard.selector.placeholder.property'
)}} )}}
</div> </div>
</div> </div>

Datei anzeigen

@ -54,9 +54,14 @@
a.remove-input { a.remove-input {
position: absolute; position: absolute;
right: -25px; right: -14px;
top: 50%; top: 0px;
padding: 2px 5px;
transform: translateY(-50%); transform: translateY(-50%);
background: $secondary;
border-radius: 50%;
font-size: 0.8em;
border: 2px solid $primary-low;
} }
} }