Commit Graph

17423 Commits

Author SHA1 Message Date
Ingo Schommer
54a4cef863 Consistently use 'value' for FormField schemas
LiteralField (data.content) was inconsistent with HTMLReadonlyField (value),
which made the frontend components harder to handle.

See https://github.com/silverstripe/silverstripe-framework/pull/6172#discussion_r83561757 for contex
2016-10-20 22:03:38 +13:00
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
840f275235 API Created a generic FormFactory interface (#6178)
Created a generic DataObject FormFactory interface that can be substituted in place of getCMSFields. Different FormFactories can depend on different kinds of context, such as
'Record' or 'Controller' - it's the responsibility of the code calling the factory to interpret and
supply this context.

The expected use-case is that rather than overriding getCMSFields(), developers can
change CMS UIs by manipulating the FormFactory associated with the given DataObject.

This is an experimental UI and may change before 4.0 stable is released.
2016-10-20 12:42:24 +13:00
Damian Mooyman
0f8f9f2732 Merge pull request #6199 from jonom/fix-ambiguous-field
FIX Ambiguous column SQL error
2016-10-19 17:57:32 +13:00
Jonathon Menz
b0445f72e4 FIX Ambiguous column SQL error
Specify the table for the field we’re fetching, in case a joined table has a field with the same name
2016-10-18 21:35:37 -07: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
Damian Mooyman
3b1b6e02b4 Merge pull request #6191 from open-sausages/pulls/4.0/fix-gridfield-actions
Adjusted button submit action to respect _super()
2016-10-18 12:18:14 +13:00
Christopher Joe
820407887e Adjusted button submit action to respect _super() 2016-10-18 09:27:58 +13:00
Daniel Hensby
9a6121c867
Merge branch '3.4' into 3 2016-10-16 22:56:37 +01:00
Daniel Hensby
8afff154b8 Merge pull request #6171 from open-sausages/pulls/4.0/use-changeset-for-publish
API Versioned::publishRecursive() now uses a ChangeSet
2016-10-16 14:45:23 +01:00
Daniel Hensby
66e6b016c0 Merge pull request #6181 from jonom/docs-additions
Docs additions
2016-10-16 14:17:04 +01:00
Ingo Schommer
a6ff96b9a6 Merge pull request #6182 from open-sausages/pulls/4.0/cleanup-build
Clean up build files to be more consistent
2016-10-14 16:31:18 +13:00
Christopher Joe
25ca87b650 Clean up build files to be more consistent 2016-10-14 15:33:07 +13:00
Jonathon Menz
d2c0b98bc5 DOCS Clarify nested cache block restrictions
Fixes #6078
2016-10-13 14:52:41 -07:00
Damian Mooyman
d954514336 Merge pull request #6180 from kinglozzer/6170-flex-heights
Fix flexbox 'fill-height' overflowing container
2016-10-14 09:28:30 +13:00
Jonathon Menz
646d34ec48 DOCS Non-extendable classes
Closes #6129
2016-10-13 09:39:46 -07:00
Jonathon Menz
bfdac2b7b6 DOCS Template debugging 2016-10-13 09:39:10 -07:00
Jonathon Menz
e9a75a54d9 DOCS Partial caching of relationships
Fixes #6177
2016-10-13 09:38:49 -07:00
Jonathon Menz
a893e2aa0f DOCS How to increase partial cache expiry
Closes #3649
2016-10-13 09:37:52 -07:00
Daniel Hensby
b923475dcb Merge pull request #6179 from open-sausages/pulls/4.0/relative-fixtures
API Support fixture paths relative to current directory
2016-10-13 11:49:32 +01:00
Loz Calver
0ebde90dd0 Fix flexbox 'fill-height' overflowing container 2016-10-13 09:42:12 +01:00
Damian Mooyman
4bbfb7e4f2 Merge pull request #6152 from open-sausages/pulls/4.0/webpack-dev-optimize
Added development watch command to package.json
2016-10-13 17:50:53 +13:00
Damian Mooyman
f60fe7d4a9
API Versioned::publishRecursive() now uses a ChangeSet
API Add IsInferred to inferred changesets
API Add SapphireTest::assertNotDOSContains
Fixes #5667
2016-10-13 17:38:08 +13:00
Damian Mooyman
26e0ff8066
BUG Fix installer for 4.0 2016-10-13 17:18:34 +13:00
Damian Mooyman
055795d4d1
API Support fixture paths relative to current directory 2016-10-13 16:53:30 +13:00
Ingo Schommer
84cc615e6c Merge pull request #6176 from dhensby/pulls/turnoffcodecovcommnts
Turn off codecov commenting on PRs
2016-10-13 08:45:00 +13:00
Daniel Hensby
93306e9a4d
Turn off codecov commenting on PRs 2016-10-12 16:31:22 +01:00
Damian Mooyman
7aa257594f Merge pull request #3935 from dhensby/pulls/bigint-support
Added MySQL support for Bigint.
2016-10-12 10:20:45 +13:00
Daniel Hensby
4c7ba731be
Merge branch 'open-sausages/pulls/3.4/fix-checkbox-datalist' into 3.4 2016-10-11 20:16:33 +01:00
Daniel Hensby
369fde2a5b Merge pull request #6150 from open-sausages/pulls/4.0/fix-form-validation-persistence
BUG prevent form data / validation persisting in state when using form schema
2016-10-11 15:43:59 +01:00
Damian Mooyman
a50b849288 Merge pull request #6155 from open-sausages/features/4.0/jlayout-to-flexbox
Part 1 of 5, remove JLayout and apply flexbox to pages section (excludes preview)
2016-10-11 17:35:38 +13:00
Damian Mooyman
72fd3b949e Fix linting issues 2016-10-11 16:49:24 +13:00
Christopher Joe
5a5d62fa27 Fix profile layout 2016-10-11 15:50:35 +13:00
Damian Mooyman
20cee73583
Fix pages background 2016-10-11 15:27:32 +13:00
Damian Mooyman
7368deca8f
BUG Fix issue with SS_List as datasource for dropdown field
BUG Fix validation issue with CheckboxSetField
Fixes #6166
2016-10-11 14:58:48 +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