@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.
Files changed (33) hide show
  1. package/components/CapTagList/index.js +2 -2
  2. package/components/CapTagList/messages.js +4 -0
  3. package/components/CardGrid/index.js +2 -2
  4. package/components/Ckeditor/index.js +3 -1
  5. package/components/Edmeditor/index.js +1 -1
  6. package/components/FormBuilder/index.js +143 -38
  7. package/containers/Ebill/index.js +1 -1
  8. package/containers/Ebill/reducer.js +5 -2
  9. package/containers/Ebill/sagas.js +6 -2
  10. package/containers/Email/_email.scss +9 -0
  11. package/containers/Email/index.js +643 -602
  12. package/containers/Email/reducer.js +5 -2
  13. package/containers/Email/sagas.js +6 -2
  14. package/containers/MobilePush/Create/index.js +23 -1
  15. package/containers/MobilePush/Create/messages.js +1 -1
  16. package/containers/MobilePush/Create/reducer.js +6 -3
  17. package/containers/MobilePush/Create/sagas.js +6 -3
  18. package/containers/MobilePush/Edit/index.js +22 -1
  19. package/containers/MobilePush/Edit/messages.js +1 -1
  20. package/containers/MobilePush/Edit/reducer.js +6 -3
  21. package/containers/MobilePush/Edit/sagas.js +6 -3
  22. package/containers/Sms/Create/index.js +18 -11
  23. package/containers/Sms/Create/messages.js +4 -0
  24. package/containers/Sms/Create/reducer.js +6 -3
  25. package/containers/Sms/Create/sagas.js +7 -2
  26. package/containers/Sms/Edit/index.js +18 -11
  27. package/containers/Sms/Edit/messages.js +4 -0
  28. package/containers/Sms/Edit/reducer.js +6 -3
  29. package/containers/Sms/Edit/sagas.js +7 -2
  30. package/containers/Templates/index.js +85 -19
  31. package/containers/Templates/messages.js +28 -0
  32. package/containers/Templates/reducer.js +3 -2
  33. 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
- yield put({ type: types.CREATE_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '' });
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["Something Went Wrong!!"]), true);
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
- "Something Went Wrong!!": {
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
- // const sidebar = result.response.sidebar;
14
- yield put({ type: types.CREATE_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '' });
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['Something Went Wrong!!']), true);
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
- "Something Went Wrong!!": {
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
- // const sidebar = result.response.sidebar;
14
- yield put({ type: types.EDIT_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '' });
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', 'Something Went Wrong!!', true);
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
- const query = {
145
- layout: 'SMS',
146
- type: 'TAG',
147
- context: this.props.location.query.type === 'embedded' ? this.props.location.query.module : 'default',
148
- embedded: this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full',
149
- };
150
- this.props.globalActions.fetchSchemaForEntity(query);
151
- if (this.props.location.query.type === 'embedded') {
152
- this.showNext();
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={this.props.metaEntities && this.props.metaEntities.tags ? this.props.metaEntities.tags.standard : []}
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
- yield put({ type: types.CREATE_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '' });
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
- const query = {
121
- layout: 'SMS',
122
- type: 'TAG',
123
- context: this.props.location.query.type === 'embedded' ? this.props.location.query.module : 'default',
124
- embedded: this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full',
125
- };
126
- this.props.globalActions.fetchSchemaForEntity(query);
127
- if (this.props.location.query.type === 'embedded') {
128
- this.showNext();
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', 'Something Went Wrong!!', true);
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={this.props.metaEntities && this.props.metaEntities.tags ? this.props.metaEntities.tags.standard : []}
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
- yield put({ type: types.EDIT_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '' });
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