From adac6b9bc2569c483fa2d889d0ad076d47eed9f3 Mon Sep 17 00:00:00 2001 From: yoution Date: Wed, 8 Jan 2020 01:39:42 +0800 Subject: [PATCH] New Fields for Project Templates --- src/routes/metadata/components/MetaDataPanel.jsx | 4 ++++ src/routes/metadata/components/TemplateForm.jsx | 13 +++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/routes/metadata/components/MetaDataPanel.jsx b/src/routes/metadata/components/MetaDataPanel.jsx index 75d46544b..a27760215 100644 --- a/src/routes/metadata/components/MetaDataPanel.jsx +++ b/src/routes/metadata/components/MetaDataPanel.jsx @@ -369,16 +369,20 @@ class MetaDataPanel extends React.Component { } else if (metadataType === 'projectTemplate') { const projectTypeOptions = this.getProductCategoryOptions(templates.projectTypes) const value = metadata && metadata.category ? metadata.category : projectTypeOptions[0].value + const subCategoryVal = metadata && metadata.subCategory ? metadata.subCategory : '' + const metadataVal = metadata && metadata.metadataVal ? metadata.metadataVal : {} fields = fields.concat([ { key: 'id', type: 'number' }, { key: 'name', type: 'text' }, { key: 'key', type: 'text' }, { key: 'category', type: 'dropdown', options: projectTypeOptions, value }, + { key: 'subCategory', type: 'dropdown', options: projectTypeOptions.concat({title: '--', value: ''}), value: subCategoryVal }, { key: 'icon', type: 'text' }, { key: 'question', type: 'text' }, { key: 'info', type: 'text' }, { key: 'aliases', type: 'array' }, { key: 'phases', type: 'json', value: phasesDefaultValue }, + { key: 'metadata', type: 'json', value: metadataVal }, { key: 'disabled', type: 'checkbox' }, { key: 'hidden', type: 'checkbox' }, ]) diff --git a/src/routes/metadata/components/TemplateForm.jsx b/src/routes/metadata/components/TemplateForm.jsx index acfd340ca..bef21a8c7 100644 --- a/src/routes/metadata/components/TemplateForm.jsx +++ b/src/routes/metadata/components/TemplateForm.jsx @@ -165,10 +165,10 @@ class TemplateForm extends Component { theme="default max-height" onSelect={(option) => { this.props.dropdownChange(label, option) - this.onChangeDropdown(option) + this.onChangeDropdown(label, option) }} value={value} - required + required={label!=='subCategory'} /> ) @@ -284,6 +284,9 @@ class TemplateForm extends Component { const aliases = _.split(values.aliases, ',') payload = _.assign({}, payload, { aliases }) } + if(!payload.subCategory) { + payload.subCategory = null + } saveTemplate(primaryKeyValue, payload) } @@ -312,10 +315,12 @@ class TemplateForm extends Component { } } - onChangeDropdown(option) { + onChangeDropdown(label, option) { const { values } = this.state + const updatedValue = {} + updatedValue[`${label}`] = option.value this.setState({ - values: _.assign({}, values, {category: option.value}) + values: _.assign({}, values, updatedValue) }) }