Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-22 17:30:29 +01:00
various
Dieser Commit ist enthalten in:
Ursprung
6570e4b74b
Commit
e3fa75597b
6 geänderte Dateien mit 65 neuen und 30 gelöschten Zeilen
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -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;
|
||||||
|
@ -258,7 +260,7 @@ function buildProperties(json) {
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Laden …
In neuem Issue referenzieren