Commit Graph

153 Commits

Author SHA1 Message Date
Paul Clarke
c3f4d0cf0b Add inline forms styles to insert-link modal 2016-09-02 16:37:59 +12:00
Ingo Schommer
ecaed8c08d Fixed icon regression in <Breadcrumb> 2016-09-01 14:07:02 +12:00
Ingo Schommer
56b249eb23 Field values in FormBuilder action handling
Allows actions to make decisions based on the form payload.
For example, a "delete" button can pass the currently edited record ID to its API endpoint.
2016-09-01 07:55:56 +12:00
Ingo Schommer
fa5e6bbd69 Fixed breadcrumb icon spacing
Regression from https://github.com/silverstripe/silverstripe-framework/issues/5917
2016-08-31 22:31:39 +12:00
Christopher Joe
c1c20aaafc Breadcrumbs with new icons generated 2016-08-30 14:46:59 +12:00
Christopher Joe
b509f9199d Fix Modal response positioning 2016-08-29 10:50:17 +12:00
Ingo Schommer
564ddfa602 Apply .field class to <FieldHolder> react component
It keeps styling consistent between Entwine sections (generated by FieldHolder.ss)
and React sections (generated by <FieldHolder> component).
2016-08-28 13:31:17 +12:00
Ingo Schommer
a0d4e363c2 Moved <select> styles to generic _forms.scss
Form element styles should be consistent throughout the CMS.
While we still have the ability to create dropdowns (<select>) which aren't based on
Entwine/HTML rather than new components like <SingleSelectField>,
we need to ensure those are rendered the same.

By default, the Entwine-based CMS sections will transform <select>
into a ChosenJS control, but you can still apply .no-chosen.
Hence there's a need for correct height both in React and Entwine sections,
not just in a React component.
2016-08-28 13:30:18 +12:00
Christopher Joe
b77d21c25a Fix pages add to campaign, improved FormActions error handling, Popover focus highlight and refactored AddToCampaignModal to FormBuilderModal
tweaked tests to suit new generic FormBuilderModal, changed FormAction handler to throw a promise instead
2016-08-28 13:07:32 +12:00
Paul Clarke
a49456df20 Fix for batch actions not postponed under toolbar on open/close 2016-08-28 13:07:32 +12:00
Paul Clarke
b01de98b04 Remove padding override but adjust contents to suit container padding
Remove spacing to the right of icon as there is no btn label
2016-08-28 13:07:31 +12:00
Ingo Schommer
5c2e8d1299 Fix form attr merging order 2016-08-28 13:07:31 +12:00
Ingo Schommer
84cdb15a5f Simplify "add to campaign" dialog
Talked to @clarkepaul and simplified to avoid title duplication
2016-08-28 13:07:31 +12:00
Christopher Joe
a9bdf33ca8 Fix SingleSelect styling, added add to campaign documentation 2016-08-28 13:07:31 +12:00
Christopher Joe
b9624994ac AddToCampaign save message, Submitting indicator on FormAction button 2016-08-28 13:07:31 +12:00
Christopher Joe
d7663e850e Remove duplicate props for PopoverField, added FormBuilder->handleAction and flattened state data 2016-08-28 13:07:30 +12:00
Christopher Joe
6a4b29d703 Add to campaign modal 2016-08-28 13:07:30 +12:00
Christopher Joe
8a5f8fbc2d Created FieldHolder HOC for TextField and HtmlReadonlyField 2016-08-16 16:53:17 +12:00
Christopher Joe
0363351ee5 Add React HtmlReadonlyField and fixed TextField id 2016-08-16 11:10:44 +12:00
Christopher Joe
a68ba38478 Improve FormBuilder API and added HeaderField and LiteralField 2016-08-16 11:09:19 +12:00
Paul Clarke
b9445511b7 Bootstrap GridField 2016-08-03 18:35:18 +12:00
Damian Mooyman
6e74b57c36 BUG Fix issue with gulpfile.js not compiling client/src/legacy dir
BUG Make SelectionGroup.ss and SelectionGroup.js work together
BUG Fix for IE visual indentation of composite field
2016-07-28 16:32:40 +12:00
Oly Su
2805baecd3 Added missing bootstrap form messages
Align top of selection-group and label
Fix styles for overly nested composite fields
Step label added and new templates for forms
2016-07-28 16:32:40 +12:00
Damian Mooyman
a809e80d01 API Convert CMS forms to bootstrap
NEW Add cms-forms microtheme to cater to bootstrap's needs.

Note that the old SS3 assets section is buggy as a result of this change.
2016-07-25 17:24:26 +12:00
Damian Mooyman
5cb4ab4a82 API Add PopoverField for extra-actions popup in react 2016-07-15 15:46:11 +12:00
Damian Mooyman
6e68f38efb API Update react sections to use react-router instead of page.js (#5796)
Fixes #5711
2016-07-14 17:51:01 +12:00
Damian Mooyman
80e5b9149e
API Move dependency on model class from form schema API
API Refactor hard-coded dataobject class references from CampaignAdmin
Fixes #5730
2016-06-23 11:04:42 +12:00
David Craig
83308689d5 API Initialise React controllers via routes (#5436) 2016-06-16 15:04:14 +12:00
Paul Clarke
b3a96e7e3d minor linting fix 2016-06-07 12:45:38 +12:00
Paul Clarke
5e634c2a16 Update Form component to just Form
Convert form and Textfield  styles to use Bootstrap
Split out btn styles a bit more clearly defined (BEM)
Toolbar modifier to improve spacing for smaller screens
Use bootstrap spacer styles .m-t-1 (margin-top-1 x spacer) instead of custom spacer
Added a few typography helpers
Tab styles continued although they are hidden (used on AssetAdmin editor panel)
2016-06-03 15:52:31 +12:00
Ingo Schommer
7c62a6d58d Bootstrap classes for text field
Required to support new "compressed" form style in admin/assets
which puts form field labels on their own line (and requires the bootstrap layout styling for this)
2016-06-03 14:59:40 +12:00
Paul
f4037fe319 Swap out .Actions class for bootstrap .btn-toolbar (#5581)
* Swap out .Actions class for bootstrap .btn-toolbar

* Converted all south toolbars to use new toolbar component styles, content and preview styles for scrollbars adjusted where required
2016-05-27 13:39:10 +12:00
Christopher Joe
19a1ebe789 add namespace for appBoot, and fix syntax error in GridField 2016-05-25 12:11:46 +12:00
Scott Hutchinson
9ba362065e Fix loading icon bug on IE 2016-05-14 14:09:50 +12:00
Hamish Friedlander
a61d0a2f0b FIX Persistant Loading... indicator when no campaigns yet in admin 2016-05-12 13:32:38 +12:00
Ingo Schommer
0838770798 Consistent React event method naming
Use "on<event>" for props, same as React's own event naming: https://facebook.github.io/react/docs/forms.html#interactive-props
Use "handle<event>" to delineate internal handlers
2016-05-11 18:08:23 +12:00
Paul Clarke
746c4f7548 Vertically centre title only in breadcrumb
Fixes #5508
2016-05-11 16:32:49 +12:00
Paul Clarke
7093224db3 Markup and styles for back button outside of new toolbar
Adjust height of north bar to match rest of CMS plus minor positioning
fixes.
2016-05-11 14:39:47 +12:00
Paul Clarke
79d1a0542d Spacing above forms and of labels and middle column within forms 2016-05-10 22:20:00 +12:00
Paul Clarke
f64de9b667 Move accordion item up slightly 2016-05-10 22:20:00 +12:00
Paul Clarke
25f118657e Slight adjustment to make sure icons don't effect text 2016-05-10 22:20:00 +12:00
Paul Clarke
e0a7c4fb47 Move the back arrow back slightly for visual alignment 2016-05-10 22:19:31 +12:00
Damian Mooyman
7f03b88e5e API Add empty campaign layout 2016-05-10 17:34:32 +12:00
Paul Clarke
0321d0868e Added btn--icon-xl for use within assetAdmin 2016-05-10 16:34:13 +12:00
Paul Clarke
100deada75 Updated markup on Campaign edit and add screen to use newer patterns.
Moved role=group up a level as it broke layout.
2016-05-10 16:33:21 +12:00
Paul Clarke
75faa0de9f Reduce spacing between buttons, fix for large icons 2016-05-10 16:27:26 +12:00
Paul Clarke
26b84ab488 Update spacing to be consistent throughout
Uses bootstrap $gutters rather than $spacer even though they are based
of the same value.
Improves alignment of a few things but mostly unnoticeable.
2016-05-10 16:27:26 +12:00
Damian Mooyman
9588f0c999 Remove redux from breadcrumbs and fix breadcrumbs lazy loading 2016-05-10 15:34:54 +12:00
Ingo Schommer
c9e7d4fb81 Unnest breadcrumbs 2016-05-10 13:34:45 +12:00
Damian Mooyman
3edbfd944e API Implement breadcrumbs via controllable state 2016-05-10 13:34:34 +12:00
Ingo Schommer
d9f0914e4f Use props.extraClass on TextField holder
This should be separated out to a common FormField class,
but for now we're only using TextField. Can be solved
properly at the same time as switching form fields to
react-bootstrap.

Required for readonly field value alignment in the "campaigns" edit form.
2016-05-10 10:45:12 +12:00
Ingo Schommer
eab90bc82e Simple GridField ReactJS loading indication
Better than no feedback at all while campaigns are loading.
Not using spinner.gif because a loading animation is already presented when the section is loaded (via PJAX).
Not translating the "Loading..." text because its temporary.
2016-05-09 22:35:51 +12:00
Ingo Schommer
984d7c1cf6 Don't use Object.freeze on functions (fixes #5473)
We're not using it for any other props passed to ReactJS components,
so there's no reason to do it here. Props are immutable by convention.
While it would be nice to enforce this, its too common to pass through
function objects which aren't supported by IE's Object.freeze().

IE isn't following the spec on how to handle Object.freeze(function() {}).
See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze#Notes
> In ES6, a non-object argument will be treated as if it was a  frozen ordinary object, simply return it.

MS docs on https://msdn.microsoft.com/en-us/subscriptions/downloads/ff806186(v=vs.94).aspx
> If the object argument is not an object, a TypeError exception is thrown.
2016-05-09 21:19:43 +12:00
Damian Mooyman
8b94dd83df API Add CSRF to Campaign delete 2016-05-09 17:33:10 +12:00
Paul Clarke
261ca9378e Fixes campaign thumbnail left alignment issue 2016-05-09 12:51:35 +12:00
Paul Clarke
2681b81d29 Swapped a few btn classes for updated ones 2016-05-09 12:36:14 +12:00
Ingo Schommer
c251fab9af Fixed more SCSSLint errors, disabled some files
The mixins and compasscompat will probably be replaced in time,
and install.scss is quite low priority to fix (same treatment as legacy/* styles)
2016-05-06 08:02:38 +12:00
Paul Clarke
22f26d10a8 moved assetadmin variables into framework 2016-05-05 17:19:05 +12:00
Damian Mooyman
8b1146be9a API Implement campaign item edit button 2016-05-05 10:24:08 +12:00
Paul
e04fb5b986 Fixes missing actions on responsive gridfield, cleanup indentation (#5446) 2016-05-04 20:21:11 +12:00
Paul
4b8e98b351 fix for scss linting issues in new scss (#5448) 2016-05-04 20:14:56 +12:00
Paul Clarke
cd9a5dbbe9 created placeholder ListGroup.js, not currently used 2016-05-03 16:17:36 +12:00
Paul Clarke
7895e21d51 hide campaign links for alpha1 2016-05-03 16:17:36 +12:00
Paul Clarke
c7eca59a8a Refactored class names, split out campaign specific elements, hide campaign links 2016-05-03 16:17:28 +12:00
Paul Clarke
6d1a14de9c delete unused file, swap class for bootstrap list-group-item-heading class 2016-05-03 16:04:48 +12:00
Paul Clarke
bcbb0fcc5c rename class for better reusability and refactor 2016-05-03 16:04:47 +12:00
Paul Clarke
5b2d910aeb Form action styles update
Doesn’t conform to BEM.
Need to update places btn-success is being used and replace with
btn-primary, but the differences shouldn’t be too noticeable.
2016-05-03 16:04:47 +12:00
Paul Clarke
3be4e80711 Restructure accordion so list items are in their own component
Accordion styles to get more BEM
2016-05-03 16:04:42 +12:00
Paul
a7f5ef7b95 Removed More Options action and popover from template (#5435) 2016-05-03 15:30:41 +12:00
Damian Mooyman
72fcfbf4bc API Campaign preview for images 2016-05-02 15:27:12 +12:00
Damian Mooyman
4be5e7c961 API Implement basic preview behaviour 2016-05-02 15:27:12 +12:00
Paul
9238bc5778 Added class to actions cell to reduce space (#5404) 2016-05-02 08:53:53 +12:00
Paul Clarke
acb1b46a46 Add back button for smaller screens 2016-04-27 14:09:57 +12:00
Paul
fc8d94d789 Fix for toolbar-south width (#5391) 2016-04-26 17:41:07 +12:00
Paul Clarke
bbf74bdca9 Minor adjustments to align header, removed cancel icon and give space to main actions 2016-04-26 15:32:10 +12:00
David Craig
8af1ad09d0 Add loading indicator to save button on scaffolded forms 2016-04-26 15:32:10 +12:00
Ingo Schommer
576e916504 Don't group form buttons by default
Looks weird with a "save" and "cancel" button for example
2016-04-26 15:32:10 +12:00
Ingo Schommer
b0d4283c17 Allow form action props override in FormBuilder
Also added bootstrapButtonStyle defaults
2016-04-26 15:32:10 +12:00
Paul Clarke
78a385c16a Update no-text class to BEM 2016-04-26 15:32:10 +12:00
Paul Clarke
ec99452ce1 Toolbar renaming from north-header and move styles to component 2016-04-26 15:32:10 +12:00
David Craig
0b9a339b79 Make 'form' state key singular rather than plural 2016-04-26 15:32:10 +12:00
David Craig
25f1f992a9 Made FormBuilder.mergeFieldData do deep merge 2016-04-26 15:32:09 +12:00
David Craig
7e7946e50a Fixed case sensitive naming regressions 2016-04-26 15:32:09 +12:00
David Craig
35ad44b8c8 Refactor GridFieldComponent render method
- Splits render out into logical methods
- Fixes missing key props issue for table header palceholder
2016-04-26 15:32:09 +12:00
Damian Mooyman
b2e8fd96ec BUG Fix form schema to use correct ID values
API Implement creation of new changesets endpoint
2016-04-26 15:32:08 +12:00
David Craig
2b8ef99d5e Add 'Cancel' button to Campaign creation form 2016-04-26 15:32:08 +12:00
David Craig
5cc6171f77 Apply default action props in FormBuilder
Perviously consumers had to props to FormBuilder for styling common actions like 'save'. The props are now automatically passed to FormActions by the FormBuilder. Consumers can override these defaults via the 'createFn' prop.
2016-04-26 15:32:08 +12:00
Ingo Schommer
48d01343c3 Adapt to new naming convention 2016-04-26 15:32:08 +12:00
David Craig
a15a392bd3 Styling updates for the Campaign edit form 2016-04-26 15:32:08 +12:00
David Craig
1ad6730b9e Add form component styling 2016-04-26 15:32:08 +12:00
David Craig
58036cd156 Add back button to NorthHeader component 2016-04-26 15:32:08 +12:00
Damian Mooyman
e2afcd0acb API Implement back end for saving forms via react 2016-04-26 15:32:08 +12:00
David Craig
7fcdf35438 Add DetailEditForm to Campaign admin
- Add edit form to campaigns section
- Handle form submissions with FormBuilder
- Handle form state via Redux
- Garbage collect form state
- Removes $itemID as a required param for schema requests.
  Developers should be able to scaffold forms without populating
  values from an existing record. For example when building a form for creating new records.
2016-04-26 15:32:07 +12:00
Ingo Schommer
21db18e7ef Correct naming for JS and CSS files in client/
Removed some dist/js/*.js files since they're no longer built as individual files.
This was a side effect of them living in the toplevel folder of admin/client/src/,
which used to have all the legacy/*.js files in there (they do need to be built).

Following AirBnB convention: https://github.com/airbnb/javascript#naming--filename-matches-export
While it technically allows index.js files, we found them to be bad for dev and debugging in practice:
Depending on the used IDE, editor tabs all look the same. Other views like Chrome Dev Tools with
sourcemaps rely on path context, and are harder to auto-complete.

There's no direct rules for CSS files, but same principles apply here.

Also renamed the sections/ folder to containers/, which more clearly communicates
the distinction between components/ (shouldn't contain state-dependant, smart components).

Renamed state/ files to follow AirBnB naming conventions
https://github.com/airbnb/javascript#naming--filename-matches-export
https://github.com/airbnb/javascript#naming--camelCase-default-export
https://github.com/airbnb/javascript#naming--PascalCase-singleton
Leaving the folder name in state/<state-key> lowercase since
that's also the key to reducers in the actual state object.

References:
http://engineering.kapost.com/2016/01/organizing-large-react-applications/
https://github.com/erikras/react-redux-universal-hot-example/tree/master/src
https://github.com/RickWong/react-isomorphic-starterkit/tree/master/src
https://github.com/react-toolbox/react-toolbox/issues/98
https://github.com/react-bootstrap/react-bootstrap/tree/master/src
2016-04-25 15:43:19 +12:00
Ingo Schommer
c66a45c8b8 Fixed GridField JS test warnings 2016-04-25 14:58:26 +12:00
Paul Clarke
01145301fa Delete unwanted stylesheets and move remainder styles to better location 2016-04-21 15:39:58 +12:00
Paul Clarke
35a2e13085 Added modifier for img --fits-space, will need to use js to detect so styles can be adapted 2016-04-21 11:19:30 +12:00
Paul Clarke
9b5430a80c Use bootstrap mixing text-truncate instead of custom styles 2016-04-21 11:19:29 +12:00
Paul Clarke
02bb158a27 Removed old typography, minor updates and rebase regressions 2016-04-21 11:19:20 +12:00
Paul Clarke
a7e5da8228 Fix for height 2016-04-21 11:03:45 +12:00