From 6cc34136f523c02c16b3f7aa0761f5f894c1d1e4 Mon Sep 17 00:00:00 2001 From: Tomas Bures Date: Fri, 18 Aug 2017 21:04:31 +0200 Subject: [PATCH] WiP on segments. --- client/src/lib/form.js | 14 +- client/src/lists/fields/CUD.js | 6 +- client/src/lists/root.js | 2 +- client/src/lists/segments/CUD.js | 635 +++++------------- client/src/lists/segments/RuleSettingsPane.js | 204 ++++++ client/src/lists/segments/rule-helpers.js | 369 ++++++++++ client/src/reports/templates/CUD.js | 5 + models/segments.js | 10 +- routes/rest/segments.js | 10 +- 9 files changed, 766 insertions(+), 489 deletions(-) create mode 100644 client/src/lists/segments/RuleSettingsPane.js create mode 100644 client/src/lists/segments/rule-helpers.js diff --git a/client/src/lib/form.js b/client/src/lib/form.js index 674949ac..b1fd8547 100644 --- a/client/src/lib/form.js +++ b/client/src/lib/form.js @@ -238,7 +238,7 @@ class InputField extends Component { } return wrapInput(id, htmlId, owner, props.format, '', props.label, props.help, - owner.updateFormValue(id, evt.target.value)}/> + owner.updateFormValue(id, evt.target.value)}/> ); } } @@ -290,7 +290,7 @@ class TextArea extends Component { const htmlId = 'form_' + id; return wrapInput(id, htmlId, owner, props.format, '', props.label, props.help, - + ); } } @@ -841,10 +841,14 @@ function withForm(target) { }) }; - const onChangeCallbacks = this.state.formSettings.onChange || {}; + const onChangeCallback = this.state.formSettings.onChange || {}; - if (onChangeCallbacks[key]) { - onChangeCallbacks[key](newState, key, oldValue, value); + if (typeof onChangeCallback === 'object') { + if (onChangeCallback[key]) { + onChangeCallback[key](newState, key, oldValue, value); + } + } else { + onChangeCallback(newState, key, oldValue, value); } return newState; diff --git a/client/src/lists/fields/CUD.js b/client/src/lists/fields/CUD.js index c2f15208..433697ed 100644 --- a/client/src/lists/fields/CUD.js +++ b/client/src/lists/fields/CUD.js @@ -433,8 +433,8 @@ export default class CUD extends Component { stateOwner={this} visible={this.props.action === 'delete'} deleteUrl={`/rest/fields/${this.props.list.id}/${this.props.entity.id}`} - cudUrl={`/lists/fields/${this.props.list.id}/${this.props.entity.id}/edit`} - listUrl={`/lists/fields/${this.props.list.id}`} + cudUrl={`/lists/${this.props.list.id}/fields/${this.props.entity.id}/edit`} + listUrl={`/lists/${this.props.list.id}/fields`} deletingMsg={t('Deleting field ...')} deletedMsg={t('Field deleted')}/> } @@ -464,7 +464,7 @@ export default class CUD extends Component {