Commit Graph

282 Commits

Author SHA1 Message Date
Christopher Joe
84c0df3db0 Fix double forward slash link in campaign admin 2016-10-20 21:49:10 +13:00
Ingo Schommer
5b31a40593 Use redux-form instead of custom actions/reducers (fixes #5524)
- Removed custom form reducers in favour of redux-form (updateField(), addForm(), etc)
- Storing 'state' in schema reducer to avoid a separate forms reducer tree (no longer needed for other use cases). This means 'state' is only the "initial state", any form edits will be handled by redux-form internally in the 'reduxForm' reducer namespace
- Removed componentWillUnmount() from <Form> since there's no more reducer state to clean up (removed formReducer.js), and redux-form handles that internally
- Removed isFetching state from <FormBuilder> since there's now a props.submitting coming from redux-form
- Improved passing of "clicked button" (submittingAction), using component state rather than reducer and passing it into action handlers (no need for components to inspect it any other way)
- Hacky duplication of this.submittingAction and this.state.submittingAction to avoid re-render of <FormBuilder> *during* a submission (see https://github.com/erikras/redux-form/issues/1944)
- Inlined handleSubmit() XHR (rather than using a redux action). There's other ways for form consumers to listen to form evens (e.g. onSubmitSuccess passed through <FormBuilder> into reduxForm()).
- Adapting checkbox/radio fields to redux-forms
  Need to send onChange event with values rather than the original event,
  see http://redux-form.com/6.1.1/docs/api/Field.md/#-input-onchange-eventorvalue-function-
- Using reduxForm() within render() causes DOM to get thrown away,
  and has weird side effects like https://github.com/erikras/redux-form/issues/1944.
  See https://github.com/erikras/redux-form/issues/603#issuecomment-176397728
- Refactored <FormBuilderLoader> as a separate container component which connects to redux and redux-form. This keeps the <FormBuilder> component dependency free and easy to test. It'll also be an advantage if we switch to a GraphQL backed component, in which case the async loading routines will look very different from the current <FormBuilderLoader> implementation
- Refactoring out the redux-form dependency from FormBuilder to make it more testable (through baseFormComponent and baseFieldComponent)
- Passing through 'form' to allow custom identifiers (which is important because currently the schema "id" contains the record identifier, making the form identifier non-deterministic - which means you can't use it with the redux-form selector API)
2016-10-20 21:49:06 +13:00
Ingo Schommer
5f81122ad3 Removed misdocumented 'data' prop 2016-10-20 15:33:50 +13:00
Ingo Schommer
1e478a5378 Consistently set 'id' in FormSchema
The URL to request the schema representation is the unique identifier.
We can't default to $request->getURL() since that's different for form submissions.

The schema.schema_url key is redundant, since the identifier is already contained on the top level 'id' key.
Keeping schema_url in a schema itself makes it less portable, particularly once we transition into
generic schemas which are not reliant on a particular record context (that's only contained in the schema_url)

This also fixes the issue of form schemas not refreshing after submit,
e.g. when form fields are added or removed.
2016-10-20 15:33:50 +13:00
Damian Mooyman
3f773c826a Merge pull request #6189 from open-sausages/pulls/4.0/split-pages-toolbar
Split top toolbar for Pages section
2016-10-18 18:44:06 +13:00
Christopher Joe
08b1171ae7 Adjust CSS for top toolbar split for Pages section 2016-10-18 14:22:03 +13:00
Christopher Joe
820407887e Adjusted button submit action to respect _super() 2016-10-18 09:27:58 +13:00
Christopher Joe
25ca87b650 Clean up build files to be more consistent 2016-10-14 15:33:07 +13:00
Loz Calver
0ebde90dd0 Fix flexbox 'fill-height' overflowing container 2016-10-13 09:42:12 +01:00
Damian Mooyman
72fd3b949e Fix linting issues 2016-10-11 16:49:24 +13:00
Damian Mooyman
20cee73583
Fix pages background 2016-10-11 15:27:32 +13:00
Christopher Joe
7b36df286e Fix split mode disappearing as an option 2016-10-11 14:41:08 +13:00
Christopher Joe
a03abe1356 Set select box width 100% to override chosen's default hardcoding width 2016-10-11 13:50:30 +13:00
Christopher Joe
bb2f487644 Scrolling fixes for Model Admin 2016-10-11 13:47:44 +13:00
Christopher Joe
eee9ffaaa2 disable select option for split when it is graphically disabled in chosen... 2016-10-11 13:47:32 +13:00
Christopher Joe
ba44382cb9 tweak for ie10 styling issues 2016-10-11 13:47:21 +13:00
Christopher Joe
7acb3b5fc2 Fix selected view mode not reflected on button
Fix other ModelAdmin layout (test)
Fix fieldholder placement
2016-10-11 13:47:09 +13:00
Christopher Joe
89150c48e7 Fix preview in pages section 2016-10-11 13:47:00 +13:00
Paul Clarke
8b02d9d68a Remove legacy classes for flexbox classes 2016-10-11 13:46:49 +13:00
Christopher Joe
0a0a990c54 Remove add wrapper element
Added 100% height to fill-width to fix some layout issues
2016-10-11 13:46:38 +13:00
Paul Clarke
eb7a8be3f8 Temp work in progress- to clean up 2016-10-11 13:46:38 +13:00
Paul Clarke
a37bf87857 Replace Layout with flexbox CSS classes 2016-10-11 13:46:24 +13:00
Paul Clarke
e71f39d171 Remove table bg 2016-10-11 13:46:24 +13:00
Paul Clarke
472e135602 Add Layout js back in as it contains preview JS 2016-10-11 13:46:24 +13:00
Paul Clarke
4a45793af9 Hide preview in other areas of the cms outside of pages 2016-10-11 13:46:24 +13:00
Paul Clarke
e7829eb974 Replace jLayout classes with flexbox CSS classes 2016-10-11 13:46:24 +13:00
Paul Clarke
1fd46ed36d Pages area: remove layout classes, replace with flexbox CSS classes 2016-10-11 13:46:24 +13:00
Paul Clarke
ed4270155b Remove layout.js 2016-10-11 13:45:17 +13:00
Paul Clarke
8dd56efe2e Add flex classes, remove layout classes 2016-10-11 13:45:08 +13:00
Paul Clarke
1b0839a8e8 Remove Layout 2016-10-11 13:45:08 +13:00
Damian Mooyman
27d35403e8 API Force formschema to be reloaded on form submission
BUG Fix missing action state
2016-10-07 13:26:57 +13:00
Christopher Joe
21dc238685 Fixed classes that weren't matching icon 2016-10-06 20:46:30 +13:00
Christopher Joe
e5b86457b4 Added react LookupField component
API MultiSelectField readonly transformation casts to LookupField instead of ReadonlyField
FIX removed jQuery dependency from i18n
2016-10-05 15:32:05 +13:00
Christopher Joe
30d161625f Fix unmock qs module, Backend-test refactored to not time out on error 2016-10-05 10:25:22 +13:00
Christopher Joe
287809ec3b Refactored react FormFields to use react-bootstrap FormControl components
Addded Checkbox, CheckboxSet and Optionset (radio) fields
Refactored documentation
2016-10-05 10:25:21 +13:00
Damian Mooyman
ebbb0258dd Fix linting issue 2016-10-03 10:58:58 +13:00
Paul Clarke
3ac0eaaf62 Remove legacy styles 2016-09-30 15:45:12 +13:00
Paul Clarke
b794a40864 Group button icon styles 2016-09-30 15:44:17 +13:00
Paul Clarke
374ef6e0c3 Modal styles 2016-09-30 15:44:17 +13:00
Paul Clarke
5f92e12911 If description field is empty hide it as it has margin 2016-09-30 15:44:17 +13:00
Paul Clarke
d6a24f4133 Use bootstrap modal variables 2016-09-30 15:44:17 +13:00
Paul Clarke
3f5d241be4 Add modal specific stylesheet 2016-09-30 15:44:17 +13:00
Paul Clarke
3fdeaea162 Increase the size of select dropdown so they match the size of other fields 2016-09-30 15:44:17 +13:00
Paul Clarke
32383114ce Remove custom add to campaign styles and make them more reusable 2016-09-30 15:44:17 +13:00
Christopher Joe
963445e743 FIX tab link on top panel changes even when "cancel to browse" was selected 2016-09-30 14:57:15 +13:00
Daniel Hensby
74ecaded08
Merge branch '3' 2016-09-26 14:00:58 +01:00
Daniel Hensby
99f98e51d0
Merge branch '3' 2016-09-23 17:15:59 +01:00
Damian Mooyman
acc230fc99 Update translations 2016-09-23 16:14:42 +12:00
Ingo Schommer
34dcda15ef Rebuild dist files 2016-09-22 14:48:00 +12:00
Ingo Schommer
5d9c8a8b95 Better <CompositeField> prop defaults
The props.tag default was set directly on props,
but the component used it from props.data.tag,
hence the default was ineffective.

Since empty arrays for props.data override nested React defaults,
there's no built-in way to enforce this default.

Hardcoding a default felt viable here, since the component allows overrides via props.
2016-09-22 14:46:46 +12:00