Commit Graph

15940 Commits

Author SHA1 Message Date
Damian Mooyman
68ffa40c69 Use configured SecurityToken 2016-04-18 14:03:53 +12:00
Ingo Schommer
c967e62e97 Updated build artifacts 2016-04-18 14:03:53 +12:00
Ingo Schommer
90e352ca7d Fix "urlencoded" HTTP header notation
Misspelling caused data to be sent as binary (browser default?)
rather than urlencoded, meaning it doesn't show up in $_POST.
2016-04-18 13:59:18 +12:00
Ingo Schommer
28e81db545 Require silverstripe-backend to avoid double include 2016-04-18 13:59:18 +12:00
Ingo Schommer
e840ba805e Use SecurityID in destructive campaign actions
Using POST rather than PUT because SecurityToken->checkRequest()
doesn't accept PUT data (it's only in the request body, not
in $_POST and HTTPRequest->requestVars()).
2016-04-18 13:59:18 +12:00
Ingo Schommer
572d8427e0 Implement defaultData on silverstripe-backend 2016-04-18 13:59:18 +12:00
David Craig
ef6a1f33ee Minor updates and fixes for campaign admin front-end
- Updated FormActionComponent prop from 'style' to 'bootstrapButtonStyle because 'style' is a built in React prop.

- Linted and added missing propTypes to campaign admin List component.

- Added missing initial state key to campaign reducer.

- Forced REST verb to lowercase in silverstripe-backend to make comparisions more robust.
2016-04-18 13:59:18 +12:00
Paul Clarke
d51e94c035 Added icons to publish and revert buttons 2016-04-18 13:59:18 +12:00
Ingo Schommer
8554b43ccc Correct campaign badges, "revert" placeholder button 2016-04-18 13:59:18 +12:00
Ingo Schommer
37d3d22fbd Publish loading indicator 2016-04-18 13:59:18 +12:00
Ingo Schommer
aefc1a5c01 Use keyed redux record store
It's the recommended approach in Redux docs, and more performant (key-based).
It'll also simplify a move to Immutable.js later on.

The PHP APIs still return unkeyed data, which is standard REST API behaviour,
but for Redux state we transform it to be keyed.
2016-04-18 13:59:18 +12:00
Ingo Schommer
f7237a9936 Fix <FormAction> external and prop definition
click handler shouldn't be required
2016-04-18 13:59:18 +12:00
Ingo Schommer
107e38b7a7 Campaign publish feature 2016-04-18 13:59:18 +12:00
Hamish Friedlander
3820314a11 Merge pull request #5330 from open-sausages/pulls/4.0/add-babel-polyfill
Add babel-polyfill for better ES6 support
2016-04-18 13:57:04 +12:00
Ingo Schommer
067c64e07c Add babel-polyfill for better ES6 support
See http://babeljs.io/docs/usage/polyfill/
2016-04-18 12:08:35 +12:00
Sam Minnée
e266037720 Merge pull request #5327 from tdf/pull_lang_korean
no one writes as "한국어(韓國語)"  when referring to korean language
2016-04-18 11:37:29 +12:00
Christian Lohmaier
1370c0788b no one writes as "한국어(韓國語)" when referring to korean language
so remove the chinese characters – "한국어(韓國語)" looks like
"English(anglicus)". Korean youth probably don't even know the meaning
of the chinese.
2016-04-17 14:42:27 +02:00
Damian Mooyman
2e259d127f Merge pull request #5302 from open-sausages/pulls/4.0/changesets-improve-api
Improve changset api & resiliency
2016-04-15 16:02:58 +12:00
Hamish Friedlander
9a5db5f760 Fix ChangeSet test mixing Object ID and ChangeSetItem ID up 2016-04-15 14:42:32 +12:00
Hamish Friedlander
35e642d0bf Add two new accessors to ChangeSetItem
You shouldn't have to worry about exactly formatting the reference to
get a ChangeSetItem related to a DataObject, and doing it that way makes
you vulnerable to breakages like introduced in previous API change
2016-04-15 14:42:24 +12:00
Hamish Friedlander
2d16d69ddb API Use base data class for ChangeSetItem#ObjectClass, not just ClassName
This is a data structure change, but makes ChangeSetItems less likely to break
on /dev/build where a ClassName changes
2016-04-15 14:41:26 +12:00
Hamish Friedlander
38025f5e47 Merge pull request #5304 from open-sausages/pulls/4.0/campaign-admin-preview
API Implement campaign list view
2016-04-14 14:01:56 +12:00
Damian Mooyman
f70cb08229 Improve i18n on campaigns section 2016-04-14 12:23:21 +12:00
Ingo Schommer
5d29d30118 Fixed silverstripe-backend GET use regression
fetch() doesn't allow a HTTP body for GET, which is fair enough.
This means we need to dynamically combine arguments based on HTTP verb.
2016-04-14 12:05:40 +12:00
Damian Mooyman
484680a2d5 Update artifacts 2016-04-14 12:04:50 +12:00
Damian Mooyman
ae99a273ed Update thirdparty 2016-04-14 12:02:59 +12:00
Damian Mooyman
5900893753 API Implement campaign list view 2016-04-14 12:02:59 +12:00
Damian Mooyman
05973cee55 API Add i18n pluralisation 2016-04-14 12:01:42 +12:00
Damian Mooyman
954f364264 Merge pull request #5309 from open-sausages/pulls/4.0/upgrade_chosen
Upgrade chosen from 0.9.8 to 1.5.1
2016-04-14 11:43:18 +12:00
Damian Mooyman
5f2edb4e91 Fix ESLint issues, shrinkwrap, and missing image 2016-04-14 11:20:22 +12:00
Hamish Friedlander
2983dd58ff Fix admin area after upgrade to Chosen 1.5 2016-04-14 10:47:15 +12:00
Hamish Friedlander
31247a67bd API Replace baked-in and modified Chosen 0.9.8 with npm'ed in Chosen 1.5.1 2016-04-14 10:45:39 +12:00
Sam Minnée
d5efeadc07 Merge pull request #5307 from open-sausages/pulls/4.0/ss-backend-url-template-params
urlTemplateParams support in createEndpointFetcher()
2016-04-13 14:13:25 +12:00
Sam Minnée
551bd5a429 Merge pull request #5297 from open-sausages/pulls/4.0/fix-gulpfile-eslint
Gulpfile eslint
2016-04-13 08:21:25 +12:00
Ingo Schommer
3aff630798 Further .eslintignore rules
It's easier to blacklist than to whitelist (so slightly different from "npm run lint")
See http://eslint.org/docs/user-guide/configuring
2016-04-12 22:05:31 +12:00
Ingo Schommer
d7eed8fe8d Fix gulpfile.js ESLint syntax 2016-04-12 22:04:37 +12:00
Ingo Schommer
6e0ef669be payloadSchema support in createEndpointFetcher()
Required for REST URLs which require data to be populated on call.
For example, PUT admin/campaigns/set/:id/publish to publish a campaign.
At the time when createEndpointFetcher() is called, the ":id" parameter can not be resolved,
since the "data" argument is passed in once the returned function is evaluated (since the component using it).
Since the whole idea of createEndpointFetcher() is that components shouldn't know about the backend internals,
its not the right place to interpolate urls.

I'm sending through any payload data in addition to replacing URLs, to keep the API simple for the component.
Again, it shouldn't worry about the presence URL interpolation. The trade off here is that data will be submitted
both in the payload (in case of a POST, PUT or DELETE request), as well as (optionally) in the URL.
2016-04-12 22:03:43 +12:00
Ingo Schommer
dde016154b Merge pull request #5308 from sminnee/fix-test-linting
MINOR: Fix linting errors in tests.
2016-04-12 21:59:58 +12:00
Sam Minnee
8c469899d0 MINOR: Fix linting errors in tests.
Tests were previously excluded from eslint calls. This leads to messier
code inside tests, and potentially errors.

Now they all meet the listing rules, and so we don’t need to ignore
tests in .eslintignore.
2016-04-12 16:50:06 +12:00
Ingo Schommer
611f15e417 Merge pull request #5306 from sminnee/createendpointfetcher-test
MINOR: Test for backend.createEndpointFetcher()
2016-04-12 14:02:04 +12:00
Sam Minnee
b088efc6f9 MINOR: Test for backend.createEndpointFetcher() 2016-04-12 12:15:37 +12:00
Sam Minnee
21a1065329 NEW: Add createEndpointFetcher to backend
SilverStripeBackend now has a createEndpointFetcher method, described
in its docblock in more detail.

It’s based the asset-admin code for apiCallerFromEndpoint(). It’s
refactored and generalised into framework in order to provide a
general-purpose API for tying Javascript components to backend APIs.

@todo: tests
2016-04-11 21:43:21 +12:00
Loz Calver
7ebc544334 Merge pull request #5293 from open-sausages/pulls/4.0/remove-ie8-styles
Remove <IE10 specific workarounds
2016-04-11 09:39:50 +01:00
Ingo Schommer
429682e626 Remove <IE10 specific workarounds
We no longer support IE browsers older than IE10
2016-04-11 14:50:00 +12:00
Damian Mooyman
5fe8288e18 Merge pull request #5287 from open-sausages/pulls/4.0/fix-react-form-attrs
Fix React DOM warnings about <form> attrs
2016-04-11 10:46:20 +12:00
Ingo Schommer
ce8ac58ddb Fix React DOM warnings about <form> attrs
"class" is a reserved word in JS, hence React uses "className".
"encType" has to be camel cased correctly, see https://facebook.github.io/react/docs/tags-and-attributes.html#html-attributes

Also marked less attrs on <form> as required
2016-04-11 09:16:32 +12:00
Damian Mooyman
fcaa579572 Merge pull request #5282 from patricknelson/issue-5279-director-code-quality-master
FIX for #5279 Addressing only a few PSR-2 items in one file, but primarily targeting Director::is_https() and invalid URL's.
2016-04-11 08:48:35 +12:00
Daniel Hensby
d7289a17fc Merge pull request #5271 from bummzack/5244-remove-email-subclasses
Fix 5244: Removed Email Subclasses
2016-04-08 17:09:44 +01:00
Ingo Schommer
1059a3f546 Merge pull request #5284 from sminnee/fix-for-add-folder
NEW: Expose silverstripe-backend for modules to access.
2016-04-08 13:23:45 +12:00
Sam Minnee
a17c5cb148 NEW: Expose silverstripe-backend for modules to access.
FIX: Ensure post has correct content-type header.

Exporting silverstripe-backend lets other modules (such as asset-admin)
use it.

In addition, the Content-type header of a post request of URL-encoded
data was being set to text/plain by default, which isn’t correct and
stopped PHP from interpreting it.
2016-04-08 10:14:24 +12:00