diff --git a/admin/client/src/containers/CampaignAdmin/CampaignAdmin.js b/admin/client/src/containers/CampaignAdmin/CampaignAdmin.js
index 27b7a5c7d..123aeb323 100644
--- a/admin/client/src/containers/CampaignAdmin/CampaignAdmin.js
+++ b/admin/client/src/containers/CampaignAdmin/CampaignAdmin.js
@@ -25,7 +25,8 @@ class CampaignAdmin extends SilverStripeComponent {
},
});
this.campaignListCreateFn = this.campaignListCreateFn.bind(this);
- this.campaignCreationView = this.campaignCreationView.bind(this);
+ this.campaignAddCreateFn = this.campaignAddCreateFn.bind(this);
+ this.campaignEditCreateFn = this.campaignEditCreateFn.bind(this);
}
componentDidMount() {
@@ -139,7 +140,10 @@ class CampaignAdmin extends SilverStripeComponent {
*/
renderDetailEditView() {
const baseSchemaUrl = this.props.sectionConfig.form.DetailEditForm.schemaUrl;
- const schemaUrl = `${baseSchemaUrl}/ChangeSet/${this.props.campaignId}`;
+ const formBuilderProps = {
+ createFn: this.campaignEditCreateFn,
+ schemaUrl: `${baseSchemaUrl}/ChangeSet/${this.props.campaignId}`,
+ };
return (
@@ -149,7 +153,7 @@ class CampaignAdmin extends SilverStripeComponent {
Campaigns
-
+
);
@@ -161,7 +165,7 @@ class CampaignAdmin extends SilverStripeComponent {
renderCreateView() {
const baseSchemaUrl = this.props.sectionConfig.form.DetailEditForm.schemaUrl;
const formBuilderProps = {
- createFn: this.campaignCreationView,
+ createFn: this.campaignAddCreateFn,
schemaUrl: `${baseSchemaUrl}/ChangeSet`,
};
@@ -181,6 +185,33 @@ class CampaignAdmin extends SilverStripeComponent {
);
}
+ /**
+ * Hook to allow customisation of components being constructed
+ * by the Campaign DetailEdit FormBuilder.
+ *
+ * @param {Object} Component - Component constructor.
+ * @param {Object} props - Props passed from FormBuilder.
+ *
+ * @return {Object} - Instanciated React component
+ */
+ campaignEditCreateFn(Component, props) {
+ const indexRoute = this.props.sectionConfig.route;
+
+ // Route to the Campaigns index view when 'Cancel' is clicked.
+ if (props.name === 'action_cancel') {
+ const extendedProps = Object.assign({}, props, {
+ handleClick: (event) => {
+ event.preventDefault();
+ window.ss.router.show(indexRoute);
+ },
+ });
+
+ return ;
+ }
+
+ return ;
+ }
+
/**
* Hook to allow customisation of components being constructed
* by the Campaign creation FormBuilder.
@@ -190,13 +221,14 @@ class CampaignAdmin extends SilverStripeComponent {
*
* @return {Object} - Instanciated React component
*/
- campaignCreationView(Component, props) {
+ campaignAddCreateFn(Component, props) {
const indexRoute = this.props.sectionConfig.route;
// Route to the Campaigns index view when 'Cancel' is clicked.
if (props.name === 'action_cancel') {
const extendedProps = Object.assign({}, props, {
- handleClick: () => {
+ handleClick: (event) => {
+ event.preventDefault();
window.ss.router.show(indexRoute);
},
});