From 9e1b5cd76e0bcaab24c80b56ffab75a9a9e35f70 Mon Sep 17 00:00:00 2001 From: SachaG <358832+SachaG@users.noreply.github.com> Date: Sat, 2 Mar 2019 18:31:22 +0900 Subject: [PATCH] Do not discard data for hidden/removed fields --- .vulcan/update_package.js | 16 ++++++++++++++++ package.json | 2 +- packages/vulcan-forms/lib/components/Form.jsx | 14 ++++++++++---- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/.vulcan/update_package.js b/.vulcan/update_package.js index 8038b636e..de783c83e 100644 --- a/.vulcan/update_package.js +++ b/.vulcan/update_package.js @@ -1,5 +1,21 @@ #!/usr/bin/env node +/* + +### Usage + +Place Vulcan's package.json in .vulcan/package.json and run meteor npm run update-package-json form your project's folder. + +You'll have to manually manage breaking updates (example, from ^2.0.1 to ^3.0.2). + +### Features + +- makes a backup of the project's package.json +- only merges dependencies, devDependencies and peerDependencies +- if full merge is successful, shows a list of updated versions +- will store vulcanVersion in package.json for future updates + +*/ var fs = require('fs'); var mergePackages = require('@userfrosting/merge-package-dependencies'); diff --git a/package.json b/package.json index 8e5dd2922..5b38fbf38 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "apollo-cache-inmemory": "^1.4.2", "apollo-client": "2.4.12", "apollo-engine": "1.1.2", - "apollo-errors": "^1.4.0", + "apollo-errors": "^1.9.0", "apollo-link-error": "^1.1.5", "apollo-link-schema": "^1.1.1", "apollo-link-state": "^0.4.2", diff --git a/packages/vulcan-forms/lib/components/Form.jsx b/packages/vulcan-forms/lib/components/Form.jsx index 411888e4b..511342d4f 100644 --- a/packages/vulcan-forms/lib/components/Form.jsx +++ b/packages/vulcan-forms/lib/components/Form.jsx @@ -221,7 +221,9 @@ class SmartForm extends Component { */ getData = customArgs => { + // we want to keep prefilled data even for hidden/removed fields const args = { + excludeRemovedFields: false, excludeHiddenFields: false, replaceIntlFields: true, addExtraFields: false, @@ -324,6 +326,7 @@ class SmartForm extends Component { const { schema = this.state.schema, excludeHiddenFields = true, + excludeRemovedFields = true, replaceIntlFields = false, addExtraFields = true } = args0; @@ -339,9 +342,12 @@ class SmartForm extends Component { } // if "hideFields" prop is specified, remove its fields - const removeFields = this.props.hideFields || this.props.removeFields; - if (typeof removeFields !== 'undefined' && removeFields.length > 0) { - relevantFields = _.difference(relevantFields, removeFields); + if (excludeRemovedFields) { + // OpenCRUD backwards compatibility + const removeFields = this.props.removeFields || this.props.hideFields; + if (typeof removeFields !== 'undefined' && removeFields.length > 0) { + relevantFields = _.difference(relevantFields, removeFields); + } } // if "addFields" prop is specified, add its fields @@ -1048,7 +1054,7 @@ class SmartForm extends Component { ))} - {this.props.repeatErrors && this.renderErrors()} + {this.props.repeatErrors && }