Commit Graph

358 Commits

Author SHA1 Message Date
Paul Clarke
d761075fd3 Move mock back button 2016-10-28 16:44:54 +13:00
Paul Clarke
0885a3178e Adjust button padding so they all have the same height 2016-10-28 16:44:54 +13:00
Paul Clarke
25783db020 toolbar-north to be 100%, removed from toolbar-content 2016-10-28 16:44:54 +13:00
Paul Clarke
50af94099e Remove some legacy layout styles 2016-10-28 16:39:59 +13:00
Paul Clarke
a95781e66e Search and batch actions to have same selected state 2016-10-28 16:39:59 +13:00
Paul Clarke
96964be39d Sitetree scroll moved so whole area scrolls excluding actions 2016-10-28 16:39:59 +13:00
Paul Clarke
364ab957e6 improve spacing of sitetree for smaller screens 2016-10-28 16:39:59 +13:00
Paul Clarke
6254f186b1 Remove border on left of preview mode 2016-10-28 16:39:59 +13:00
Paul Clarke
27724c0829 Remove set width of toolbar-content as it extends further than 100% 2016-10-28 16:39:59 +13:00
Chris Joe
82119888c1 Validation on server side for React forms (fixes #6205) 2016-10-28 16:13:29 +13:00
Damian Mooyman
adfd0456de Merge pull request #6241 from open-sausages/pulls/4.0/fix-pagination-wrapping
BUG Prevent pagination wrapping
2016-10-28 13:44:28 +13:00
Damian Mooyman
02bac8c4bc
BUG Fix missing loading overlay
Fixes #6163
2016-10-27 12:09:17 +13:00
Damian Mooyman
42096bb41b
BUG Prevent pagination wrapping
Fixes https://github.com/silverstripe/silverstripe-asset-admin/issues/269
2016-10-27 11:58:19 +13:00
Damian Mooyman
f7fd4ffae1
BUG Fix incorrect change detection on checkbox fields
Fixes #6121
2016-10-27 11:15:37 +13:00
Damian Mooyman
5551040839 API Update listview / treeview to use pjax instead of deferred loading 2016-10-26 14:29:10 +13:00
Damian Mooyman
44b65429f1 Merge pull request #6212 from open-sausages/pulls/4.0/search-bg
Adjustments for filter panel positioning
2016-10-26 14:27:24 +13:00
Christopher Joe
8de2f9dbb4 switched from calc to negative margin 2016-10-26 10:43:51 +13:00
Paul Clarke
4b413d395e Adjustments for filter panel positioning 2016-10-21 14:09:39 +13:00
Damian Mooyman
316ac86036
API Writes to versioned dataobjects always writes to stage even when written on live
API Remove "Archive" actions
API "Delete" actions for pages now archives records
BUG Fix batch actions failing on certain controllers
Fixes #6059
2016-10-21 13:16:32 +13:00
Ingo Schommer
9ca359e5de Merge pull request #6208 from open-sausages/pulls/4.0/tab-spacing
Add spacing to nested tabs
2016-10-21 12:53:35 +13:00
Ingo Schommer
bf02abe688 Merge pull request #6209 from open-sausages/pulls/4.0/button-internal-padding
Remove additional spacing from buttons with no icon
2016-10-21 12:53:19 +13:00
Paul Clarke
833dbbcafe remove additional spacing from buttons with no icon 2016-10-21 11:40:31 +13:00
Paul Clarke
19c1ed9443 add spacing to nested tabs 2016-10-21 11:28:29 +13:00
Ingo Schommer
aa47845a6c Updated dist files 2016-10-20 22:03:42 +13:00
Ingo Schommer
3a690d8084 Moved promise polyfill into boot logic
It's not specific to one single component
2016-10-20 22:03:42 +13:00
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
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
Ingo Schommer
5415afe8bf Fixed react-bootstrap tabs warnings
We can't use our own "id" values here, since react-bootstrap requires internal consistency
between tab containers and tab panes through its own auto-generated identifiers
2016-09-22 14:46:46 +12:00
Sam Minnee
c24201b5f3 FIX: Break dist javascript and onto newlines.
This doesn’t have much impact on resulting JS size, but it will
hopefully make merge conflicts much less frequent.

The CSS growth is a little higher (6.5% increase in size) but is not
material.

If this materially reduces the number of merge conflicts we have, by
letting the git merge tools resolve some dist file mergers, I think it
would be worth it.

Some example changes in file size:

bundle.js 290K -> 301K
vendor.js 1,325K -> 1,321K
bundle.css 628K -> 669K
2016-09-22 14:38:17 +12:00
Paul Clarke
62dcb0d0c4 close panel icon moved up to align with title 2016-09-22 11:21:54 +12:00
Paul Clarke
3d774a02cb Chosen no longer nested within .field 2016-09-22 11:20:29 +12:00
Ingo Schommer
ca620c1c14 Merge pull request #6036 from open-sausages/pulls/4.0/fix-cms-buttons
BUG fix issue with popup menu appearing on the left
2016-09-22 09:17:20 +12:00
Damian Mooyman
ef88619d2f BUG Fix error in campaign area
Fix alignment of add campaign fields
2016-09-21 17:36:51 +12:00
Ingo Schommer
e1b827f7c8 Optimise webpack build time (#6049)
* Rename bundles (prep for webpack optimisation)

This might or might not reduce the overall repo size,
because git can combine similar chunks in the newly generated files

* Optimise webpack build time

Consolidates bundles, since a separation of bundle-framework.js vs. bundle-legacy.js
vs. bundle-lib.js no longer makes sense - they're all loaded upfront anyway,
since we'll be introducing more react-powered logic alongside the "legacy" JavaScript.

By consolidating into fewer bundles, we give the optimisation scripts (UglifyJS)
more options to reduce the overall file size.

The main motivation for a vendor.js is to shorten rebuild times:
Most active development is happening in files required through bundle.js.
This commit drastically reduces the rebuild time for those changes (15s to 4s).
2016-09-21 17:14:43 +12:00
Damian Mooyman
5a59c4f4b4 API Add bootstrap button row template
API Add bootstrap button template
BUG fix draft / published preview selector
2016-09-21 15:59:12 +12:00
Chris Joe
a85ba1222b Add helper-circle and block icons (#6035) 2016-09-21 15:15:59 +12:00
Chris Joe
51ef369630 FIX stringify api call body to work for IE10 (#6032)
* FIX stringify api call body to work for IE10

* Pull out functions defined in createEndpointFetcher
2016-09-21 14:45:30 +12:00
Paul
4d52d655fd Fix for spacing of sitetree panel, reportAdmin, and toggle on Member details page (#5955)
* Panel/tab-panel and alerts spacing, button padding consistency and alignment

* Reports panel spacing adjustments

* ReportAdmin panel and toolbar spacing

* Comment change

* Fix formatting help toggle link

* Use standard line-heights and padding for buttons

* Add base panel styles

* Update to .panel styles and .toolbar spacing

* Remove legacy styles, linting fixes

* Toolbar--content to have consistent styles throughout

* Add panel and toolbar styles to areas missing them

* Replace values with variables

* Layout overrides for tabs and panels with padding

* Adjust JQueryUI button spacing to match other UI buttons

* Remove custom ReportAdmin styles

Update values to variables and modify panel and tab-panel spacing

* Remove text color override

* Remove double (.m-t-1) spacing from campaign panel

* Profile page remove legacy JLayout

* Remove legacy spacing

* Removed Layout from page so !important not needed

* Improve use of variables

* Add missing closing bracket, minor linting fixes

* Linting fixes

* Remove css importants

* Add temp fix for file upload within gridfield

Tidy structure of css

* css build

* Spacing bug fixed for campaign list alert
2016-09-21 10:12:58 +12:00
Chris Joe
08a39f5f93 Update file edit form (#6024)
* Added Created field to File/Image editor

* switch default input value to null

Fix react errors and added a field description

* API Use new DBField::getSchemaValue()
2016-09-20 12:56:45 +12:00
Sam Minnee
b61c5a56de FIX: sass-lint styleguide fixes 2016-09-18 14:50:27 +12:00
Sam Minnee
f700d86557 NEW: Run JS/CSS linting in Travis.
The ‘npm run lint’ command will be used to run listing on Travis, which
can also be used on local dev environments. These can also be used with
editor plugins to highlight errors immediately.

The intention is that this can be used in place of codeclimate. The
benefits are that we use a single toolchain in both CI and local dev,
which is not entirely the case at the moment.

Note the sass-lint is provided by “sudo gem install scss_lint”. It’s
possible that we can move to a node-based sass-lint; I can’t recall
what the motivation for using the scss_lint gem was - I think it was
mainly that we had the AirBNB styleguide already implemented as a linter
config.
2016-09-18 14:49:08 +12:00
Daniel Hensby
f65168ef8d
Merge branch '3' 2016-09-16 13:43:23 +01:00
Ingo Schommer
3d7c60f8cb Updated dist files 2016-09-16 13:46:11 +12:00
Ingo Schommer
30174db459 FIx i18n JS regression about locale selection
When rewriting the i18n.js file from ES5 to ES6, the detectLocale()
call in the constructor was missed - meaning the lang files were loaded by the browser,
but never actually used.
2016-09-16 13:46:11 +12:00
Ingo Schommer
8f23fa99a5 API Moved CMS-specific JavaScript to admin/thirdparty
The 'admin' module will be split off from 'framework',
where 'framework' only provides (mostly) frontend-agnostic PHP classes.
For example, HTMLEditorField.php has a TinyMCEConfig.php driver,
but doesn't come with its own JS includes.
2016-09-16 13:46:10 +12:00
Ingo Schommer
8eac22c628 Separate CSS bundling in Webpack
Multiple entry points can't result in a single bundle.css with a fixed filename, see
https://github.com/webpack/extract-text-webpack-plugin/issues/179

Until that's resolved, it's easier to keep the 'css' task separate in Webpack,
and have a single entry point for all CSS (bundle.scss).

Also partially reverting "Moved frontend assets into admin/ "module"",
which moved too many files: debug.css and install.css need to remain
as framework (not admin) deps. Split out into a separate `framework-css` Webpack
task in preparation for splitting off the module.
2016-09-16 13:46:09 +12:00
Ingo Schommer
8e5dd58c43 Removed unused dist files
Storing in fonts/, not font/fonts
2016-09-16 13:46:09 +12:00
Ingo Schommer
2316b0da9f API Remove i18n::js_i18n option
The JavaScript i18n functionality in SilverStripe is used in the CMS as well as form field implementations.
Form fields used to include their own JavaScript for usage outside of CMS. This now requires custom build tooling in a project.
Hence there's no need for an i18n shim (i18nx.js), since the CMS always uses i18n support.
2016-09-16 13:46:09 +12:00
Ingo Schommer
ee10dbb680 API Moved frontend assets into admin/ "module"
We've removed the ability to directly reference JS and CSS files
for form fields and other SilverStripe features in favour of a common bundle built by Webpack.

The logical next step is to make the framework module free of frontend dependencies,
which should simplify its operation, and avoid another time intensive "npm install" on a module.
2016-09-16 13:46:06 +12:00
Damian Mooyman
e5df794a04 Move incorrect lang file location 2016-09-16 13:44:15 +12:00
Ingo Schommer
6be25f3b52 Entry point for UploadField_select.js
Used in iframe, so can't be rolled into other code.
Moved in admin/ since that's easier for now with Webpack entry points,
and we'll move all JS/CSS into admin/ anyway soon.
2016-09-16 13:44:14 +12:00