Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-22 09:20: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);
|
||||
},
|
||||
|
||||
@observes('isCategory')
|
||||
setupCategoryType() {
|
||||
if (this.isCategory && !this.field.property) {
|
||||
this.set('field.property', 'id');
|
||||
}
|
||||
},
|
||||
|
||||
actions: {
|
||||
imageUploadDone(upload) {
|
||||
this.set("field.image", upload.url);
|
||||
|
|
|
@ -53,7 +53,12 @@ export default Component.extend({
|
|||
},
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
function hasAdvanced(params, type) {
|
||||
function objectHasAdvanced(params, type) {
|
||||
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) => {
|
||||
stepParams[p] = buildProperty(stepJson, p, 'wizard');;
|
||||
stepParams[p] = buildProperty(stepJson, p, 'wizard');
|
||||
|
||||
if (stepHasAdvanced(p, stepJson[p])) {
|
||||
stepParams.showAdvanced = true;
|
||||
|
@ -257,8 +259,8 @@ function buildProperties(json) {
|
|||
if (present(stepJson.fields)) {
|
||||
stepJson.fields.forEach((f) => {
|
||||
let params = buildObject(f, 'field');
|
||||
|
||||
if (hasAdvanced(params, 'field')) {
|
||||
|
||||
if (objectHasAdvanced(params, 'field')) {
|
||||
params.showAdvanced = true;
|
||||
}
|
||||
|
||||
|
@ -272,7 +274,7 @@ function buildProperties(json) {
|
|||
stepJson.actions.forEach((a) => {
|
||||
let params = buildObject(a, 'action');
|
||||
|
||||
if (hasAdvanced(params, 'action')) {
|
||||
if (objectHasAdvanced(params, 'action')) {
|
||||
params.showAdvanced = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ const fieldProperties = [
|
|||
'property',
|
||||
'limit',
|
||||
'prefill',
|
||||
'content',
|
||||
'content'
|
||||
]
|
||||
|
||||
const actionProperties = [
|
||||
|
@ -139,27 +139,12 @@ const mappedProperties = {
|
|||
]
|
||||
}
|
||||
|
||||
const advancedProperties = {
|
||||
step: [
|
||||
'required_data',
|
||||
'permitted_params'
|
||||
],
|
||||
field: [
|
||||
'property',
|
||||
'prefill',
|
||||
'content'
|
||||
],
|
||||
action: [
|
||||
'code',
|
||||
'custom_fields',
|
||||
'skip_redirect',
|
||||
'required'
|
||||
]
|
||||
}
|
||||
const advancedFieldProperties = [
|
||||
'prefill',
|
||||
'content'
|
||||
]
|
||||
|
||||
const actionTypes = [
|
||||
'create_topic',
|
||||
'update_profile',
|
||||
'create_topic',
|
||||
'update_profile',
|
||||
'send_message',
|
||||
|
@ -171,6 +156,37 @@ const actionTypes = [
|
|||
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 {
|
||||
selectKitContent,
|
||||
generateName,
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
content=categoryPropertyTypes
|
||||
onChange=(action (mut field.property))
|
||||
options=(hash
|
||||
none='admin.wizard.select_property'
|
||||
none='admin.wizard.selector.placeholder.property'
|
||||
)}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -54,9 +54,14 @@
|
|||
|
||||
a.remove-input {
|
||||
position: absolute;
|
||||
right: -25px;
|
||||
top: 50%;
|
||||
right: -14px;
|
||||
top: 0px;
|
||||
padding: 2px 5px;
|
||||
transform: translateY(-50%);
|
||||
background: $secondary;
|
||||
border-radius: 50%;
|
||||
font-size: 0.8em;
|
||||
border: 2px solid $primary-low;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Laden …
In neuem Issue referenzieren