@capillarytech/creatives-library 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/CapTagList/index.js +2 -2
- package/components/CapTagList/messages.js +4 -0
- package/components/CardGrid/index.js +2 -2
- package/components/Ckeditor/index.js +3 -1
- package/components/Edmeditor/index.js +1 -1
- package/components/FormBuilder/index.js +143 -38
- package/containers/Ebill/index.js +1 -1
- package/containers/Ebill/reducer.js +5 -2
- package/containers/Ebill/sagas.js +6 -2
- package/containers/Email/_email.scss +9 -0
- package/containers/Email/index.js +643 -602
- package/containers/Email/reducer.js +5 -2
- package/containers/Email/sagas.js +6 -2
- package/containers/MobilePush/Create/index.js +23 -1
- package/containers/MobilePush/Create/messages.js +1 -1
- package/containers/MobilePush/Create/reducer.js +6 -3
- package/containers/MobilePush/Create/sagas.js +6 -3
- package/containers/MobilePush/Edit/index.js +22 -1
- package/containers/MobilePush/Edit/messages.js +1 -1
- package/containers/MobilePush/Edit/reducer.js +6 -3
- package/containers/MobilePush/Edit/sagas.js +6 -3
- package/containers/Sms/Create/index.js +18 -11
- package/containers/Sms/Create/messages.js +4 -0
- package/containers/Sms/Create/reducer.js +6 -3
- package/containers/Sms/Create/sagas.js +7 -2
- package/containers/Sms/Edit/index.js +18 -11
- package/containers/Sms/Edit/messages.js +4 -0
- package/containers/Sms/Edit/reducer.js +6 -3
- package/containers/Sms/Edit/sagas.js +7 -2
- package/containers/Templates/index.js +85 -19
- package/containers/Templates/messages.js +28 -0
- package/containers/Templates/reducer.js +3 -2
- package/package.json +1 -1
|
@@ -15,16 +15,19 @@ function emailReducer(state = initialState, action) {
|
|
|
15
15
|
case types.CREATE_TEMPLATE_REQUEST:
|
|
16
16
|
return state
|
|
17
17
|
.set('createTemplateInProgress', true)
|
|
18
|
-
.set('createTemplateError', false)
|
|
18
|
+
.set('createTemplateError', false)
|
|
19
|
+
.set('createTemplateErrorMessage', fromJS(""));
|
|
19
20
|
case types.CREATE_TEMPLATE_SUCCESS:
|
|
20
21
|
return state
|
|
21
22
|
.set('createTemplateInProgress', false)
|
|
22
23
|
.set('createResponse', action.data)
|
|
24
|
+
.set('createTemplateErrorMessage', fromJS(action.errorMsg))
|
|
23
25
|
.set('createTemplateError', (action.statusCode !== undefined && action.statusCode > 300));
|
|
24
26
|
case types.CREATE_TEMPLATE_FAILURE:
|
|
25
27
|
return state
|
|
26
28
|
.set('createTemplateInProgress', false)
|
|
27
|
-
.set('createTemplateError', true)
|
|
29
|
+
.set('createTemplateError', true)
|
|
30
|
+
.set('createTemplateErrorMessage', fromJS(action.errorMsg));
|
|
28
31
|
case types.GET_TEMPLATE_DETAILS_REQUEST:
|
|
29
32
|
return state
|
|
30
33
|
.set('getTemplateDetailsInProgress', true);
|
|
@@ -5,12 +5,16 @@ import * as types from './constants';
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
export function* createTemplate(template) {
|
|
8
|
+
let errorMsg;
|
|
8
9
|
try {
|
|
9
10
|
console.log('Template data ', template);
|
|
10
11
|
const result = yield call(Api.createEmailTemplate, template);
|
|
11
|
-
|
|
12
|
+
if (result.message || result.status.code === 500) {
|
|
13
|
+
errorMsg = result.message;
|
|
14
|
+
}
|
|
15
|
+
yield put({ type: types.CREATE_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
|
|
12
16
|
} catch (error) {
|
|
13
|
-
yield put({ type: types.CREATE_TEMPLATE_FAILURE, error });
|
|
17
|
+
yield put({ type: types.CREATE_TEMPLATE_FAILURE, error, errorMsg });
|
|
14
18
|
}
|
|
15
19
|
}
|
|
16
20
|
|
|
@@ -214,7 +214,7 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
214
214
|
this.setState({mode: nextProps.params.mode});
|
|
215
215
|
}
|
|
216
216
|
if (nextProps.Create.createTemplateError && !_.isEqual(nextProps.Create.createTemplateError, this.props.Create.createTemplateError)) {
|
|
217
|
-
const message = getMessageObject('error', this.props.intl.formatMessage(messages
|
|
217
|
+
const message = getMessageObject('error', (nextProps.Create.createTemplateErrorMessage && nextProps.Create.createTemplateErrorMessage !== '') ? nextProps.Create.createTemplateErrorMessage : this.props.intl.formatMessage(messages.somethingWentWrong), true);
|
|
218
218
|
this.props.globalActions.addMessageToQueue(message);
|
|
219
219
|
}
|
|
220
220
|
if (nextProps.Create.iosCtasData) {
|
|
@@ -720,6 +720,26 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
720
720
|
return obj;
|
|
721
721
|
};
|
|
722
722
|
|
|
723
|
+
setModalContent = (type) => {
|
|
724
|
+
if (type === 'ios') {
|
|
725
|
+
const modalContent = {
|
|
726
|
+
title: "Alert",
|
|
727
|
+
body: "Android template is not configured. Save without Android template",
|
|
728
|
+
type: 'confirm',
|
|
729
|
+
id: 'ios',
|
|
730
|
+
};
|
|
731
|
+
this.setState({modalContent, showModal: true});
|
|
732
|
+
} else if (type === 'android') {
|
|
733
|
+
const modalContent = {
|
|
734
|
+
title: "Alert",
|
|
735
|
+
body: "IOS template is not configured, Save without IOS template",
|
|
736
|
+
type: 'confirm',
|
|
737
|
+
id: 'android',
|
|
738
|
+
};
|
|
739
|
+
this.setState({modalContent, showModal: true});
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
|
|
723
743
|
handleCancelModal = () => {
|
|
724
744
|
this.setState({showModal: false});
|
|
725
745
|
};
|
|
@@ -2154,9 +2174,11 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
2154
2174
|
showModal={this.state.showModal}
|
|
2155
2175
|
isSchemaChanged={this.state.isSchemaChanged}
|
|
2156
2176
|
modal={this.state.modalContent}
|
|
2177
|
+
handleCancelModal={this.handleCancelModal}
|
|
2157
2178
|
iframeParent={parent}
|
|
2158
2179
|
router={this.props.router}
|
|
2159
2180
|
onContextChange={this.handleOnTagsContextChange}
|
|
2181
|
+
setModalContent={this.setModalContent}
|
|
2160
2182
|
/>
|
|
2161
2183
|
</Col>
|
|
2162
2184
|
</Row>
|
|
@@ -138,7 +138,7 @@ export default defineMessages({
|
|
|
138
138
|
id: 'app.containers.MobilePush.Create.templateCreatedSuccessfully',
|
|
139
139
|
defaultMessage: 'Mobile Push Template Created Successfully',
|
|
140
140
|
},
|
|
141
|
-
"
|
|
141
|
+
"somethingWentWrong": {
|
|
142
142
|
id: 'app.containers.MobilePush.Create.somethingWentWrong',
|
|
143
143
|
defaultMessage: 'Something Went Wrong!!',
|
|
144
144
|
},
|
|
@@ -19,15 +19,18 @@ function createReducer(state = initialState, action) {
|
|
|
19
19
|
case types.CREATE_TEMPLATE_REQUEST:
|
|
20
20
|
return state
|
|
21
21
|
.set('createTemplateInProgress', true)
|
|
22
|
-
.set('createTemplateError', false)
|
|
22
|
+
.set('createTemplateError', false)
|
|
23
|
+
.set('createTemplateErrorMessage', fromJS(""));
|
|
23
24
|
case types.CREATE_TEMPLATE_SUCCESS:
|
|
24
25
|
return state.set('createTemplateInProgress', false)
|
|
25
26
|
.set('response', action.data)
|
|
26
|
-
.set('createTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
|
|
27
|
+
.set('createTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
|
|
28
|
+
.set('createTemplateErrorMessage', fromJS(action.errorMsg));
|
|
27
29
|
case types.CREATE_TEMPLATE_FAILURE:
|
|
28
30
|
return state
|
|
29
31
|
.set('createTemplateInProgress', false)
|
|
30
|
-
.set('createTemplateError', true)
|
|
32
|
+
.set('createTemplateError', true)
|
|
33
|
+
.set('createTemplateErrorMessage', fromJS(action.errorMsg));
|
|
31
34
|
case types.CLEAR_CREATE_RESPONSE_REQUEST:
|
|
32
35
|
return state.set('response', {});
|
|
33
36
|
case types.UPLOAD_ASSET_REQUEST:
|
|
@@ -7,13 +7,16 @@ import * as types from './constants';
|
|
|
7
7
|
|
|
8
8
|
// Individual exports for testing
|
|
9
9
|
export function* createTemplate(template) {
|
|
10
|
+
let errorMsg;
|
|
10
11
|
try {
|
|
11
12
|
console.log('saga createTemplate mobilepush', template);
|
|
12
13
|
const result = yield call(Api.createMobilePushTemplate, template);
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
if (result.message || result.status.code === 500) {
|
|
15
|
+
errorMsg = result.message;
|
|
16
|
+
}
|
|
17
|
+
yield put({ type: types.CREATE_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
|
|
15
18
|
} catch (error) {
|
|
16
|
-
yield put({ type: types.CREATE_TEMPLATE_FAILURE, error });
|
|
19
|
+
yield put({ type: types.CREATE_TEMPLATE_FAILURE, error, errorMsg });
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
export function* uploadAsset(file, assetType, fileParams) {
|
|
@@ -262,7 +262,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
if (nextProps.Edit.editTemplateError && !_.isEqual(nextProps.Edit.editTemplateError, this.props.Edit.editTemplateError)) {
|
|
265
|
-
const message = getMessageObject('error', this.props.intl.formatMessage(messages
|
|
265
|
+
const message = getMessageObject('error', (nextProps.Edit.editTemplateErrorMessage && nextProps.Edit.editTemplateErrorMessage !== '') ? nextProps.Edit.editTemplateErrorMessage : this.props.intl.formatMessage(messages.somethingWentWrong), true);
|
|
266
266
|
this.props.globalActions.addMessageToQueue(message);
|
|
267
267
|
}
|
|
268
268
|
// if (nextProps.metaEntities && nextProps.metaEntities.tags && nextProps.metaEntities.tags.custom && this.props.metaEntities.tags !== nextProps.metaEntities.tags) {
|
|
@@ -989,6 +989,26 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
989
989
|
this.injectEvents(schema);
|
|
990
990
|
};
|
|
991
991
|
|
|
992
|
+
setModalContent = (type) => {
|
|
993
|
+
if (type === 'ios') {
|
|
994
|
+
const modalContent = {
|
|
995
|
+
title: "Alert",
|
|
996
|
+
body: "Android template is not configured. Save without Android template",
|
|
997
|
+
type: 'confirm',
|
|
998
|
+
id: 'ios',
|
|
999
|
+
};
|
|
1000
|
+
this.setState({modalContent, showModal: true});
|
|
1001
|
+
} else if (type === 'android') {
|
|
1002
|
+
const modalContent = {
|
|
1003
|
+
title: "Alert",
|
|
1004
|
+
body: "IOS template is not configured, Save without IOS template",
|
|
1005
|
+
type: 'confirm',
|
|
1006
|
+
id: 'android',
|
|
1007
|
+
};
|
|
1008
|
+
this.setState({modalContent, showModal: true});
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
1011
|
+
|
|
992
1012
|
handleCancelModal = () => {
|
|
993
1013
|
this.setState({showModal: false});
|
|
994
1014
|
};
|
|
@@ -2439,6 +2459,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
2439
2459
|
isSchemaChanged={this.state.isSchemaChanged}
|
|
2440
2460
|
handleCancelModal={this.handleCancelModal}
|
|
2441
2461
|
modal={this.state.modalContent}
|
|
2462
|
+
setModalContent={this.setModalContent}
|
|
2442
2463
|
/>
|
|
2443
2464
|
</Col>
|
|
2444
2465
|
</Row>
|
|
@@ -138,7 +138,7 @@ export default defineMessages({
|
|
|
138
138
|
id: 'app.containers.MobilePush.Edit.templateEditedSuccessfully',
|
|
139
139
|
defaultMessage: 'MOBILEPUSH Template Edited Successfully',
|
|
140
140
|
},
|
|
141
|
-
"
|
|
141
|
+
"somethingWentWrong": {
|
|
142
142
|
id: 'app.containers.MobilePush.Edit.somethingWentWrong',
|
|
143
143
|
defaultMessage: 'Something Went Wrong!!',
|
|
144
144
|
},
|
|
@@ -21,15 +21,18 @@ function editReducer(state = initialState, action) {
|
|
|
21
21
|
case types.EDIT_TEMPLATE_REQUEST:
|
|
22
22
|
return state
|
|
23
23
|
.set('editTemplateInProgress', true)
|
|
24
|
-
.set('editTemplateError', false)
|
|
24
|
+
.set('editTemplateError', false)
|
|
25
|
+
.set('editTemplateErrorMessage', fromJS(""));
|
|
25
26
|
case types.EDIT_TEMPLATE_SUCCESS:
|
|
26
27
|
return state.set('editTemplateInProgress', false)
|
|
27
28
|
.set('editResponse', action.data)
|
|
28
|
-
.set('editTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
|
|
29
|
+
.set('editTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
|
|
30
|
+
.set('editTemplateErrorMessage', fromJS(action.errorMsg));
|
|
29
31
|
case types.EDIT_TEMPLATE_FAILURE:
|
|
30
32
|
return state
|
|
31
33
|
.set('editTemplateInProgress', false)
|
|
32
|
-
.set('editTemplateError', true)
|
|
34
|
+
.set('editTemplateError', true)
|
|
35
|
+
.set('editTemplateErrorMessage', fromJS(action.errorMsg));
|
|
33
36
|
case types.GET_TEMPLATE_DETAILS_REQUEST:
|
|
34
37
|
return state.set('getTemplateDetailsInProgress', true);
|
|
35
38
|
case types.GET_TEMPLATE_DETAILS_SUCCESS:
|
|
@@ -6,14 +6,17 @@ import * as types from './constants';
|
|
|
6
6
|
|
|
7
7
|
// Individual exports for testing
|
|
8
8
|
export function* editTemplate(template) {
|
|
9
|
+
let errorMsg;
|
|
9
10
|
try {
|
|
10
11
|
console.log('saga editTemplate', template);
|
|
11
12
|
const result = yield call(Api.createMobilePushTemplate, template);
|
|
12
13
|
console.log('saga editTemplate success', result);
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
if (result.message || result.status.code === 500) {
|
|
15
|
+
errorMsg = result.message;
|
|
16
|
+
}
|
|
17
|
+
yield put({ type: types.EDIT_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
|
|
15
18
|
} catch (error) {
|
|
16
|
-
yield put({ type: types.EDIT_TEMPLATE_FAILURE, error });
|
|
19
|
+
yield put({ type: types.EDIT_TEMPLATE_FAILURE, error, errorMsg });
|
|
17
20
|
}
|
|
18
21
|
}
|
|
19
22
|
|
|
@@ -135,21 +135,23 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
if (nextProps.Create.createTemplateError && !_.isEqual(nextProps.Create.createTemplateError, this.props.Create.createTemplateError)) {
|
|
138
|
-
const message = getMessageObject('error', '
|
|
138
|
+
const message = getMessageObject('error', (nextProps.Create.createTemplateErrorMessage && nextProps.Create.createTemplateErrorMessage !== '') ? nextProps.Create.createTemplateErrorMessage : this.props.intl.formatMessage(messages.somethingWentWrong), true);
|
|
139
139
|
this.props.globalActions.addMessageToQueue(message);
|
|
140
140
|
}
|
|
141
141
|
if (nextProps.metaEntities && nextProps.metaEntities.layouts && nextProps.metaEntities.layouts.length > 0 && _.isEmpty(this.state.schema)) {
|
|
142
142
|
console.log('final schema is**', nextProps.metaEntities.layouts[0].definition);
|
|
143
143
|
this.injectEvents(nextProps.metaEntities.layouts[0].definition);
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
this.
|
|
144
|
+
if (this.props.location.query.module !== 'subscription') {
|
|
145
|
+
const query = {
|
|
146
|
+
layout: 'SMS',
|
|
147
|
+
type: 'TAG',
|
|
148
|
+
context: this.props.location.query.type === 'embedded' ? this.props.location.query.module : 'default',
|
|
149
|
+
embedded: this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full',
|
|
150
|
+
};
|
|
151
|
+
this.props.globalActions.fetchSchemaForEntity(query);
|
|
152
|
+
if (this.props.location.query.type === 'embedded') {
|
|
153
|
+
this.showNext();
|
|
154
|
+
}
|
|
153
155
|
}
|
|
154
156
|
}
|
|
155
157
|
if (nextProps.metaEntities && nextProps.metaEntities.tags && nextProps.metaEntities.tags.custom && this.props.metaEntities.tags !== nextProps.metaEntities.tags) {
|
|
@@ -1394,6 +1396,10 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
1394
1396
|
render() {
|
|
1395
1397
|
const schema = this.state.schema;
|
|
1396
1398
|
const spinning = this.state.loading || (this.props.Create && "createTemplateInProgress" in this.props.Create && this.props.Create.createTemplateInProgress);
|
|
1399
|
+
let tags = this.props.metaEntities && this.props.metaEntities.tags ? this.props.metaEntities.tags.standard : [];
|
|
1400
|
+
if (this.props.location.query.type === 'embedded' && this.props.location.query.module === 'subscription') {
|
|
1401
|
+
tags = this.props.supportedTags;
|
|
1402
|
+
}
|
|
1397
1403
|
return (
|
|
1398
1404
|
<div>
|
|
1399
1405
|
<Spin tip={this.props.intl.formatMessage(messages.saveTemplateLoader)} spinning={spinning}>
|
|
@@ -1420,7 +1426,7 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
1420
1426
|
formData={_.cloneDeep(this.state.formData)}
|
|
1421
1427
|
location={this.props.location}
|
|
1422
1428
|
tabKey={this.state.tabKey}
|
|
1423
|
-
tags={
|
|
1429
|
+
tags={tags}
|
|
1424
1430
|
injectedTags={this.state.injectedTags ? this.state.injectedTags : {}}
|
|
1425
1431
|
onFormValidityChange={this.setFormValidity}
|
|
1426
1432
|
usingTabContainer
|
|
@@ -1446,6 +1452,7 @@ Create.propTypes = {
|
|
|
1446
1452
|
globalActions: PropTypes.object,
|
|
1447
1453
|
metaEntities: PropTypes.object,
|
|
1448
1454
|
intl: intlShape.isRequired,
|
|
1455
|
+
supportedTags: PropTypes.array,
|
|
1449
1456
|
};
|
|
1450
1457
|
|
|
1451
1458
|
const mapStateToProps = createStructuredSelector({
|
|
@@ -78,4 +78,8 @@ export default defineMessages({
|
|
|
78
78
|
id: 'app.containers.Create.smsEditorPlaceholder',
|
|
79
79
|
defaultMessage: "Please enter the message content",
|
|
80
80
|
},
|
|
81
|
+
somethingWentWrong: {
|
|
82
|
+
id: 'app.containers.Create.somethingWentWrong',
|
|
83
|
+
defaultMessage: "Something Went Wrong!!",
|
|
84
|
+
},
|
|
81
85
|
});
|
|
@@ -19,15 +19,18 @@ function createReducer(state = initialState, action) {
|
|
|
19
19
|
case types.CREATE_TEMPLATE_REQUEST:
|
|
20
20
|
return state
|
|
21
21
|
.set('createTemplateInProgress', true)
|
|
22
|
-
.set('createTemplateError', false)
|
|
22
|
+
.set('createTemplateError', false)
|
|
23
|
+
.set('createTemplateErrorMessage', fromJS(""));
|
|
23
24
|
case types.CREATE_TEMPLATE_SUCCESS:
|
|
24
25
|
return state.set('createTemplateInProgress', false)
|
|
25
26
|
.set('response', action.data)
|
|
26
|
-
.set('createTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
|
|
27
|
+
.set('createTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
|
|
28
|
+
.set('createTemplateErrorMessage', fromJS(action.errorMsg));
|
|
27
29
|
case types.CREATE_TEMPLATE_FAILURE:
|
|
28
30
|
return state
|
|
29
31
|
.set('createTemplateInProgress', false)
|
|
30
|
-
.set('createTemplateError', true)
|
|
32
|
+
.set('createTemplateError', true)
|
|
33
|
+
.set('createTemplateErrorMessage', fromJS(action.errorMsg));
|
|
31
34
|
case types.CLEAR_CREATE_RESPONSE_REQUEST:
|
|
32
35
|
return state.set('response', {});
|
|
33
36
|
default:
|
|
@@ -7,13 +7,18 @@ import * as types from './constants';
|
|
|
7
7
|
|
|
8
8
|
// Individual exports for testing
|
|
9
9
|
export function* createTemplate(template) {
|
|
10
|
+
let errorMsg;
|
|
10
11
|
try {
|
|
11
12
|
console.log('saga createTemplate sms', template);
|
|
12
13
|
const result = yield call(Api.createTemplate, template);
|
|
13
14
|
// const sidebar = result.response.sidebar;
|
|
14
|
-
|
|
15
|
+
if (result.message || result.status.code === 500) {
|
|
16
|
+
errorMsg = result.message;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
yield put({ type: types.CREATE_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
|
|
15
20
|
} catch (error) {
|
|
16
|
-
yield put({ type: types.CREATE_TEMPLATE_FAILURE, error });
|
|
21
|
+
yield put({ type: types.CREATE_TEMPLATE_FAILURE, error, errorMsg });
|
|
17
22
|
}
|
|
18
23
|
}
|
|
19
24
|
|
|
@@ -117,15 +117,17 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
117
117
|
this.setState({schema: nextProps.metaEntities.layouts[0].definition}, () => {
|
|
118
118
|
this.injectEvents(nextProps.metaEntities.layouts[0].definition);
|
|
119
119
|
});
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
this.
|
|
120
|
+
if (this.props.location.query.module !== 'subscription') {
|
|
121
|
+
const query = {
|
|
122
|
+
layout: 'SMS',
|
|
123
|
+
type: 'TAG',
|
|
124
|
+
context: this.props.location.query.type === 'embedded' ? this.props.location.query.module : 'default',
|
|
125
|
+
embedded: this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full',
|
|
126
|
+
};
|
|
127
|
+
this.props.globalActions.fetchSchemaForEntity(query);
|
|
128
|
+
if (this.props.location.query.type === 'embedded') {
|
|
129
|
+
this.showNext();
|
|
130
|
+
}
|
|
129
131
|
}
|
|
130
132
|
}
|
|
131
133
|
if (nextProps.Edit.editResponse && nextProps.Edit.editResponse.templateId) {
|
|
@@ -149,7 +151,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
149
151
|
}
|
|
150
152
|
|
|
151
153
|
if (nextProps.Edit.editTemplateError && !_.isEqual(nextProps.Edit.editTemplateError, this.props.Edit.editTemplateError)) {
|
|
152
|
-
const message = getMessageObject('error', '
|
|
154
|
+
const message = getMessageObject('error', (nextProps.Edit.editTemplateErrorMessage && nextProps.Edit.editTemplateErrorMessage !== '') ? nextProps.Edit.editTemplateErrorMessage : this.props.intl.formatMessage(messages.somethingWentWrong), true);
|
|
153
155
|
this.props.globalActions.addMessageToQueue(message);
|
|
154
156
|
}
|
|
155
157
|
if (nextProps.metaEntities && nextProps.metaEntities.tags && nextProps.metaEntities.tags.custom && this.props.metaEntities.tags !== nextProps.metaEntities.tags) {
|
|
@@ -1369,6 +1371,10 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1369
1371
|
let tipText = this.props.Edit && ("getTemplateDetailsInProgress" in this.props.Edit && this.props.Edit.getTemplateDetailsInProgress) ? this.props.intl.formatMessage(messages.getTemplateDetailsLoader) : '';
|
|
1370
1372
|
tipText = this.props.Edit && ("editTemplateInProgress" in this.props.Edit && this.props.Edit.editTemplateInProgress) ? this.props.intl.formatMessage(messages.saveTemplateLoader) : '';
|
|
1371
1373
|
const spinning = this.state.loading || (this.props.Edit && (("getTemplateDetailsInProgress" in this.props.Edit && this.props.Edit.getTemplateDetailsInProgress) || ("editTemplateInProgress" in this.props.Edit && this.props.Edit.editTemplateInProgress)));
|
|
1374
|
+
let tags = this.props.metaEntities && this.props.metaEntities.tags ? this.props.metaEntities.tags.standard : [];
|
|
1375
|
+
if (this.props.location.query.type === 'embedded' && this.props.location.query.module === 'subscription') {
|
|
1376
|
+
tags = this.props.supportedTags;
|
|
1377
|
+
}
|
|
1372
1378
|
return (
|
|
1373
1379
|
<div>
|
|
1374
1380
|
<Spin tip={tipText} spinning={spinning}>
|
|
@@ -1396,7 +1402,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
|
|
|
1396
1402
|
isEdit
|
|
1397
1403
|
showModal={this.state.showModal}
|
|
1398
1404
|
modal={this.state.modalContent}
|
|
1399
|
-
tags={
|
|
1405
|
+
tags={tags}
|
|
1400
1406
|
injectedTags={this.state.injectedTags ? this.state.injectedTags : {}}
|
|
1401
1407
|
onFormValidityChange={this.setFormValidity}
|
|
1402
1408
|
usingTabContainer
|
|
@@ -1423,6 +1429,7 @@ Edit.propTypes = {
|
|
|
1423
1429
|
metaEntities: PropTypes.object,
|
|
1424
1430
|
intl: intlShape.isRequired,
|
|
1425
1431
|
templateData: PropTypes.object,
|
|
1432
|
+
supportedTags: PropTypes.array,
|
|
1426
1433
|
};
|
|
1427
1434
|
|
|
1428
1435
|
const mapStateToProps = createStructuredSelector({
|
|
@@ -82,4 +82,8 @@ export default defineMessages({
|
|
|
82
82
|
id: 'app.containers.Edit.smsEditorPlaceholder',
|
|
83
83
|
defaultMessage: "Please enter the message content",
|
|
84
84
|
},
|
|
85
|
+
somethingWentWrong: {
|
|
86
|
+
id: 'app.containers.Edit.somethingWentWrong',
|
|
87
|
+
defaultMessage: "Something Went Wrong!!",
|
|
88
|
+
},
|
|
85
89
|
});
|
|
@@ -21,15 +21,18 @@ function editReducer(state = initialState, action) {
|
|
|
21
21
|
case types.EDIT_TEMPLATE_REQUEST:
|
|
22
22
|
return state
|
|
23
23
|
.set('editTemplateInProgress', true)
|
|
24
|
-
.set('editTemplateError', false)
|
|
24
|
+
.set('editTemplateError', false)
|
|
25
|
+
.set('editTemplateErrorMessage', fromJS(""));
|
|
25
26
|
case types.EDIT_TEMPLATE_SUCCESS:
|
|
26
27
|
return state.set('editTemplateInProgress', false)
|
|
27
28
|
.set('editResponse', action.data)
|
|
28
|
-
.set('editTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
|
|
29
|
+
.set('editTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
|
|
30
|
+
.set('editTemplateErrorMessage', fromJS(action.errorMsg));
|
|
29
31
|
case types.EDIT_TEMPLATE_FAILURE:
|
|
30
32
|
return state
|
|
31
33
|
.set('editTemplateInProgress', false)
|
|
32
|
-
.set('editTemplateError', true)
|
|
34
|
+
.set('editTemplateError', true)
|
|
35
|
+
.set('editTemplateErrorMessage', fromJS(action.errorMsg));
|
|
33
36
|
case types.GET_TEMPLATE_DETAILS_REQUEST:
|
|
34
37
|
return state.set('getTemplateDetailsInProgress', true);
|
|
35
38
|
case types.GET_TEMPLATE_DETAILS_SUCCESS:
|
|
@@ -6,14 +6,19 @@ import * as types from './constants';
|
|
|
6
6
|
|
|
7
7
|
// Individual exports for testing
|
|
8
8
|
export function* editTemplate(template) {
|
|
9
|
+
let errorMsg;
|
|
9
10
|
try {
|
|
10
11
|
console.log('saga editTemplate', template);
|
|
11
12
|
const result = yield call(Api.editTemplate, template);
|
|
12
13
|
console.log('saga editTemplate success', result);
|
|
13
14
|
// const sidebar = result.response.sidebar;
|
|
14
|
-
|
|
15
|
+
if (result.message || result.status.code === 500) {
|
|
16
|
+
errorMsg = result.message;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
yield put({ type: types.EDIT_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
|
|
15
20
|
} catch (error) {
|
|
16
|
-
yield put({ type: types.EDIT_TEMPLATE_FAILURE, error });
|
|
21
|
+
yield put({ type: types.EDIT_TEMPLATE_FAILURE, error, errorMsg });
|
|
17
22
|
}
|
|
18
23
|
}
|
|
19
24
|
|