@capillarytech/creatives-library 8.0.136-alpha.4 → 8.0.136-beta.3
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/BreadCrumbs/index.js +65 -0
- package/components/BreadCrumbs/messages.js +13 -0
- package/components/CapTagList/index.js +235 -0
- package/components/CapTagList/messages.js +45 -0
- package/components/Card/_customCard.scss +40 -0
- package/components/Card/index.js +78 -0
- package/components/Card/tests/__snapshots__/index.test.js.snap +22 -0
- package/components/Card/tests/index.test.js +20 -0
- package/components/CardGrid/index.js +71 -0
- package/components/Ckeditor/index.js +238 -0
- package/components/Ckeditor/messages.js +13 -0
- package/components/Ckeditor/style.scss +3 -0
- package/components/Component/index.js +29 -0
- package/components/CustomPopOver/index.js +81 -0
- package/components/CustomPopOver/messages.js +17 -0
- package/components/DateFilter/index.js +349 -0
- package/components/DateFilter/messages.js +57 -0
- package/components/DateRange/index.js +114 -0
- package/components/DateRange/messages.js +25 -0
- package/components/Edmeditor/index.js +65 -0
- package/components/Edmeditor/messages.js +13 -0
- package/components/EmailPreview/_emailPreview.scss +119 -0
- package/components/EmailPreview/assets/images/iPad.svg +10 -0
- package/components/EmailPreview/assets/images/mobile.png +0 -0
- package/components/EmailPreview/index.js +107 -0
- package/components/EmailPreview/messages.js +33 -0
- package/components/Footer/index.js +27 -0
- package/components/Footer/messages.js +13 -0
- package/components/FormBuilder/_formBuilder.scss +83 -0
- package/components/FormBuilder/index.js +3279 -0
- package/components/FormBuilder/messages.js +61 -0
- package/components/Header/index.js +44 -0
- package/components/Header/messages.js +29 -0
- package/components/ImagePreview/_imagePreview.scss +63 -0
- package/components/ImagePreview/index.js +52 -0
- package/components/ImagePreview/messages.js +17 -0
- package/components/PageHeader/_pageHeader.scss +22 -0
- package/components/PageHeader/index.js +37 -0
- package/components/PageHeader/messages.js +13 -0
- package/components/Pagination/_pagination.scss +5 -0
- package/components/Pagination/index.js +49 -0
- package/components/PreviewSideBar/_previewsidebar.scss +28 -0
- package/components/PreviewSideBar/index.js +152 -0
- package/components/PreviewSideBar/messages.js +41 -0
- package/components/Sidebar/_sidebar.scss +115 -0
- package/components/Sidebar/index.js +214 -0
- package/components/Sidebar/messages.js +21 -0
- package/components/SlideBox/_slideBox.scss +63 -0
- package/components/SlideBox/index.js +47 -0
- package/components/SlideBox/tests/index.test.js +103 -0
- package/components/SmsEditor/index.js +55 -0
- package/components/SmsTest/index.js +117 -0
- package/components/SmsTest/messages.js +21 -0
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +42 -0
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +141 -0
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +21 -0
- package/components/TemplatePreview/_templatePreview.scss +642 -0
- package/components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
- package/components/TemplatePreview/assets/images/androidPushMessage.svg +45 -0
- package/components/TemplatePreview/assets/images/home-screen-android.svg +21 -0
- package/components/TemplatePreview/assets/images/home-screen-ios.svg +16 -0
- package/components/TemplatePreview/assets/images/iPhonePushMessage.svg +135 -0
- package/components/TemplatePreview/assets/images/mobile.svg +24 -0
- package/components/TemplatePreview/assets/images/sms-body.png +0 -0
- package/components/TemplatePreview/assets/images/sms-icon.png +0 -0
- package/components/TemplatePreview/assets/images/sms_mobile.png +0 -0
- package/components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -0
- package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +16 -0
- package/components/TemplatePreview/assets/images/user-icon.svg +19 -0
- package/components/TemplatePreview/assets/images/wechat-mobile.svg +78 -0
- package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -0
- package/components/TemplatePreview/index.js +617 -0
- package/components/TemplatePreview/messages.js +78 -0
- package/components/Toastr/index.js +60 -0
- package/components/Toastr/messages.js +13 -0
- package/components/ToastrMessage/index.js +113 -0
- package/components/ToastrMessage/messages.js +17 -0
- package/components/TopBar/_topbar.scss +46 -0
- package/components/TopBar/assets/images/capillary_logo.png +0 -0
- package/components/TopBar/assets/images/old_capillary_logo.png +0 -0
- package/components/TopBar/index.js +113 -0
- package/components/TopBar/messages.js +29 -0
- package/containers/App/actions.js +7 -0
- package/containers/App/constants.js +114 -0
- package/containers/App/index.js +52 -0
- package/containers/App/reducer.js +19 -0
- package/containers/App/sagas.js +31 -0
- package/containers/App/selectors.js +25 -0
- package/containers/App/test/saga.test.js +11 -0
- package/containers/Assets/Gallery/_gallery.scss +126 -0
- package/containers/Assets/Gallery/actions.js +37 -0
- package/containers/Assets/Gallery/constants.js +23 -0
- package/containers/Assets/Gallery/index.js +473 -0
- package/containers/Assets/Gallery/messages.js +93 -0
- package/containers/Assets/Gallery/reducer.js +81 -0
- package/containers/Assets/Gallery/sagas.js +80 -0
- package/containers/Assets/Gallery/selectors.js +25 -0
- package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +9 -0
- package/containers/Assets/Gallery/tests/actions.test.js +25 -0
- package/containers/Assets/Gallery/tests/reducer.test.js +96 -0
- package/containers/Assets/Gallery/tests/saga.test.js +157 -0
- package/containers/Cap/actions.js +66 -0
- package/containers/Cap/constants.js +25 -0
- package/containers/Cap/index.js +402 -0
- package/containers/Cap/messages.js +75 -0
- package/containers/Cap/reducer.js +113 -0
- package/containers/Cap/sagas.js +159 -0
- package/containers/Cap/selectors.js +75 -0
- package/containers/Cap/tests/__snapshots__/index.test.js.snap +2269 -0
- package/containers/Cap/tests/index.test.js +22 -0
- package/containers/Cap/tests/saga.test.js +284 -0
- package/containers/Dashboard/actions.js +15 -0
- package/containers/Dashboard/constants.js +7 -0
- package/containers/Dashboard/index.js +76 -0
- package/containers/Dashboard/messages.js +13 -0
- package/containers/Dashboard/reducer.js +21 -0
- package/containers/Dashboard/sagas.js +17 -0
- package/containers/Dashboard/selectors.js +25 -0
- package/containers/Dashboard/test/saga.test.js +9 -0
- package/containers/Ebill/_ebill.scss +5 -0
- package/containers/Ebill/actions.js +43 -0
- package/containers/Ebill/constants.js +20 -0
- package/containers/Ebill/index.js +1278 -0
- package/containers/Ebill/messages.js +77 -0
- package/containers/Ebill/reducer.js +72 -0
- package/containers/Ebill/sagas.js +74 -0
- package/containers/Ebill/selectors.js +25 -0
- package/containers/Ebill/test/saga.test.js +11 -0
- package/containers/Email/_email.scss +141 -0
- package/containers/Email/actions.js +81 -0
- package/containers/Email/constants.js +36 -0
- package/containers/Email/index.js +3325 -0
- package/containers/Email/messages.js +289 -0
- package/containers/Email/reducer.js +142 -0
- package/containers/Email/sagas.js +135 -0
- package/containers/Email/selectors.js +31 -0
- package/containers/Email/test/saga.test.js +671 -0
- package/containers/LanguageProvider/actions.js +17 -0
- package/containers/LanguageProvider/constants.js +8 -0
- package/containers/LanguageProvider/index.js +80 -0
- package/containers/LanguageProvider/reducer.js +30 -0
- package/containers/LanguageProvider/selectors.js +20 -0
- package/containers/LanguageProvider/tests/actions.test.js +19 -0
- package/containers/LanguageProvider/tests/index.test.js +78 -0
- package/containers/LanguageProvider/tests/reducer.test.js +20 -0
- package/containers/LanguageProvider/tests/selectors.test.js +15 -0
- package/containers/Line/Create/_lineCreate.scss +54 -0
- package/containers/Line/Create/actions.js +90 -0
- package/containers/Line/Create/constants.js +39 -0
- package/containers/Line/Create/index.js +836 -0
- package/containers/Line/Create/messages.js +189 -0
- package/containers/Line/Create/reducer.js +99 -0
- package/containers/Line/Create/sagas.js +121 -0
- package/containers/Line/Create/selectors.js +36 -0
- package/containers/Line/Create/tests/saga.test.js +202 -0
- package/containers/Line/Edit/_lineEdit.scss +35 -0
- package/containers/Line/Edit/actions.js +79 -0
- package/containers/Line/Edit/constants.js +27 -0
- package/containers/Line/Edit/index.js +1050 -0
- package/containers/Line/Edit/messages.js +177 -0
- package/containers/Line/Edit/reducer.js +83 -0
- package/containers/Line/Edit/sagas.js +80 -0
- package/containers/Line/Edit/selectors.js +29 -0
- package/containers/Line/Edit/test/saga.test.js +160 -0
- package/containers/Login/assets/images/capillary_logo.png +0 -0
- package/containers/Login/components/LoginForm/index.js +62 -0
- package/containers/Login/components/LoginForm/messages.js +33 -0
- package/containers/Login/index.js +130 -0
- package/containers/Login/messages.js +25 -0
- package/containers/Login/selectors.js +25 -0
- package/containers/MobilePush/Create/_mobilePushCreate.scss +39 -0
- package/containers/MobilePush/Create/actions.js +46 -0
- package/containers/MobilePush/Create/constants.js +23 -0
- package/containers/MobilePush/Create/index.js +2303 -0
- package/containers/MobilePush/Create/messages.js +269 -0
- package/containers/MobilePush/Create/reducer.js +70 -0
- package/containers/MobilePush/Create/sagas.js +74 -0
- package/containers/MobilePush/Create/selectors.js +28 -0
- package/containers/MobilePush/Create/test/saga.test.js +19 -0
- package/containers/MobilePush/Edit/_mobilePushCreate.scss +39 -0
- package/containers/MobilePush/Edit/actions.js +91 -0
- package/containers/MobilePush/Edit/constants.js +35 -0
- package/containers/MobilePush/Edit/index.js +2601 -0
- package/containers/MobilePush/Edit/messages.js +266 -0
- package/containers/MobilePush/Edit/reducer.js +112 -0
- package/containers/MobilePush/Edit/sagas.js +126 -0
- package/containers/MobilePush/Edit/selectors.js +29 -0
- package/containers/MobilePush/Edit/tests/saga.test.js +255 -0
- package/containers/NotFoundPage/index.js +25 -0
- package/containers/NotFoundPage/messages.js +13 -0
- package/containers/NotFoundPage/tests/index.test.js +17 -0
- package/containers/Sms/Create/_smsCreate.scss +42 -0
- package/containers/Sms/Create/actions.js +27 -0
- package/containers/Sms/Create/constants.js +16 -0
- package/containers/Sms/Create/index.js +1488 -0
- package/containers/Sms/Create/messages.js +109 -0
- package/containers/Sms/Create/reducer.js +41 -0
- package/containers/Sms/Create/sagas.js +40 -0
- package/containers/Sms/Create/selectors.js +28 -0
- package/containers/Sms/Create/test/saga.test.js +11 -0
- package/containers/Sms/Edit/actions.js +40 -0
- package/containers/Sms/Edit/constants.js +17 -0
- package/containers/Sms/Edit/index.js +1472 -0
- package/containers/Sms/Edit/messages.js +105 -0
- package/containers/Sms/Edit/reducer.js +50 -0
- package/containers/Sms/Edit/sagas.js +60 -0
- package/containers/Sms/Edit/selectors.js +32 -0
- package/containers/Sms/Edit/test/saga.test.js +13 -0
- package/containers/TagList/_tagList.scss +8 -0
- package/containers/TagList/actions.js +15 -0
- package/containers/TagList/constants.js +32 -0
- package/containers/TagList/index.js +236 -0
- package/containers/TagList/messages.js +13 -0
- package/containers/TagList/reducer.js +23 -0
- package/containers/TagList/sagas.js +11 -0
- package/containers/TagList/selectors.js +25 -0
- package/containers/Templates/_templates.scss +333 -0
- package/containers/Templates/actions.js +103 -0
- package/containers/Templates/constants.js +60 -0
- package/containers/Templates/index.js +1756 -0
- package/containers/Templates/messages.js +337 -0
- package/containers/Templates/reducer.js +142 -0
- package/containers/Templates/sagas.js +163 -0
- package/containers/Templates/selectors.js +28 -0
- package/containers/Templates/test/saga.test.js +241 -0
- package/containers/WeChat/MapTemplates/_mapTemplates.scss +8 -0
- package/containers/WeChat/MapTemplates/actions.js +52 -0
- package/containers/WeChat/MapTemplates/constants.js +28 -0
- package/containers/WeChat/MapTemplates/index.js +1610 -0
- package/containers/WeChat/MapTemplates/messages.js +157 -0
- package/containers/WeChat/MapTemplates/reducer.js +74 -0
- package/containers/WeChat/MapTemplates/sagas.js +84 -0
- package/containers/WeChat/MapTemplates/selectors.js +25 -0
- package/containers/WeChat/MapTemplates/test/saga.test.js +155 -0
- package/containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +57 -0
- package/containers/WeChat/RichmediaTemplates/Create/actions.js +36 -0
- package/containers/WeChat/RichmediaTemplates/Create/constants.js +15 -0
- package/containers/WeChat/RichmediaTemplates/Create/index.js +1071 -0
- package/containers/WeChat/RichmediaTemplates/Create/messages.js +165 -0
- package/containers/WeChat/RichmediaTemplates/Create/reducer.js +60 -0
- package/containers/WeChat/RichmediaTemplates/Create/richmediaschema.js +497 -0
- package/containers/WeChat/RichmediaTemplates/Create/sagas.js +51 -0
- package/containers/WeChat/RichmediaTemplates/Create/selectors.js +37 -0
- package/containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +13 -0
- package/containers/WeChat/RichmediaTemplates/Edit/actions.js +20 -0
- package/containers/WeChat/RichmediaTemplates/Edit/constants.js +10 -0
- package/containers/WeChat/RichmediaTemplates/Edit/index.js +136 -0
- package/containers/WeChat/RichmediaTemplates/Edit/messages.js +13 -0
- package/containers/WeChat/RichmediaTemplates/Edit/reducer.js +28 -0
- package/containers/WeChat/RichmediaTemplates/Edit/sagas.js +36 -0
- package/containers/WeChat/RichmediaTemplates/Edit/selectors.js +30 -0
- package/containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +12 -0
- package/containers/WeChat/RichmediaTemplates/View/actions.js +15 -0
- package/containers/WeChat/RichmediaTemplates/View/constants.js +7 -0
- package/containers/WeChat/RichmediaTemplates/View/index.js +47 -0
- package/containers/WeChat/RichmediaTemplates/View/messages.js +21 -0
- package/containers/WeChat/RichmediaTemplates/View/reducer.js +23 -0
- package/containers/WeChat/RichmediaTemplates/View/sagas.js +11 -0
- package/containers/WeChat/RichmediaTemplates/View/selectors.js +25 -0
- package/index.js +2 -4
- package/package.json +1 -1
- package/routes.js +202 -136
- package/services/getSchema.js +1 -1
- package/services/localStorageApi.js +0 -1
- package/tests/i18n.test.js +1 -1
- package/utils/asyncInjectors.js +78 -0
- package/utils/authWrapper.js +1 -1
- package/utils/callNativeEvent.js +16 -0
- package/utils/checkStore.js +21 -0
- package/utils/common.js +2 -2
- package/utils/customAuthWrapper.js +62 -0
- package/utils/customConnectedAuthWrapper.js +26 -0
- package/utils/tagValidations.js +1 -1
- package/utils/tests/checkStore.test.js +1 -1
- package/utils/tests/customAuth.test.js +1 -1
- package/utils/transformerUtils.js +195 -1
- package/v2Components/CapTagList/index.js +14 -9
- package/v2Components/Carousel/style.scss +1 -1
- package/v2Components/EmailMobilePreview/index.js +2 -2
- package/v2Components/FormBuilder/index.js +2 -2
- package/v2Components/TemplatePreview/index.js +1 -2
- package/v2Containers/Cap/tests/saga.test.js +1 -1
- package/v2Containers/Email/index.js +1 -1
- package/v2Containers/FTP/index.js +1 -1
- package/v2Containers/Line/Container/Text/index.js +6 -6
- package/v2Containers/Sms/Create/index.js +2 -2
- package/v2Containers/Sms/Edit/index.js +1 -1
- package/v2Containers/TagList/index.js +1 -1
- package/v2Containers/TagList/utils.js +1 -1
- package/v2Containers/Templates/index.js +1 -1
- package/v2Containers/Templates/sagas.js +1 -1
- package/constants/unified.js +0 -189
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Edit Messages
|
|
3
|
+
*
|
|
4
|
+
* This contains all the text for the Edit component.
|
|
5
|
+
*/
|
|
6
|
+
import { defineMessages } from 'react-intl';
|
|
7
|
+
|
|
8
|
+
export default defineMessages({
|
|
9
|
+
"imageUploadLabel": {
|
|
10
|
+
id: 'creatives.containers.Line.Edit.ImageUploadLabel',
|
|
11
|
+
defaultMessage: 'Upload image',
|
|
12
|
+
},
|
|
13
|
+
"Enter template name*": {
|
|
14
|
+
id: 'creatives.containers.Line.Edit.enterTemplateNameImportant',
|
|
15
|
+
defaultMessage: 'Enter template name*',
|
|
16
|
+
},
|
|
17
|
+
"Enter template name": {
|
|
18
|
+
id: 'creatives.containers.Line.Edit.enterTemplateName',
|
|
19
|
+
defaultMessage: 'Enter template name',
|
|
20
|
+
},
|
|
21
|
+
"Template name cannot be empty": {
|
|
22
|
+
id: 'creatives.containers.Line.Edit.templateCantEmpty',
|
|
23
|
+
defaultMessage: 'Template name cannot be empty',
|
|
24
|
+
},
|
|
25
|
+
"Discard Changes": {
|
|
26
|
+
id: 'creatives.containers.Line.Edit.discardChanges',
|
|
27
|
+
defaultMessage: 'Discard changes',
|
|
28
|
+
},
|
|
29
|
+
"Cancel": {
|
|
30
|
+
id: 'creatives.containers.Line.Edit.cancel',
|
|
31
|
+
defaultMessage: 'Cancel',
|
|
32
|
+
},
|
|
33
|
+
"Save": {
|
|
34
|
+
id: 'creatives.containers.Line.Edit.save',
|
|
35
|
+
defaultMessage: 'Save',
|
|
36
|
+
},
|
|
37
|
+
"Select Line Template": {
|
|
38
|
+
id: 'creatives.containers.Line.Edit.selectLineTemplate',
|
|
39
|
+
defaultMessage: 'Select line template',
|
|
40
|
+
},
|
|
41
|
+
"Template": {
|
|
42
|
+
id: 'creatives.containers.Line.Edit.template',
|
|
43
|
+
defaultMessage: 'Template',
|
|
44
|
+
},
|
|
45
|
+
"Title*": {
|
|
46
|
+
id: 'creatives.containers.Line.Edit.titleLabel',
|
|
47
|
+
defaultMessage: 'Title*',
|
|
48
|
+
},
|
|
49
|
+
"Title": {
|
|
50
|
+
id: 'creatives.containers.Line.Edit.title',
|
|
51
|
+
defaultMessage: 'Title',
|
|
52
|
+
},
|
|
53
|
+
"Please input message title name.": {
|
|
54
|
+
id: 'creatives.containers.Line.Edit.titleNameInvalid',
|
|
55
|
+
defaultMessage: 'Please enter the message title',
|
|
56
|
+
},
|
|
57
|
+
"Template message has unsupported/missing tags!": {
|
|
58
|
+
id: 'creatives.containers.Line.Edit.messageHasUnsupportedTag',
|
|
59
|
+
defaultMessage: 'Please check the message content for unsupported/missing tags',
|
|
60
|
+
},
|
|
61
|
+
"Tags": {
|
|
62
|
+
id: 'creatives.containers.Line.Edit.Tags',
|
|
63
|
+
defaultMessage: 'Tags',
|
|
64
|
+
},
|
|
65
|
+
"Message*": {
|
|
66
|
+
id: 'creatives.containers.Line.Edit.messageLabel',
|
|
67
|
+
defaultMessage: 'Message*',
|
|
68
|
+
},
|
|
69
|
+
"Message": {
|
|
70
|
+
id: 'creatives.containers.Line.Edit.message',
|
|
71
|
+
defaultMessage: 'Message',
|
|
72
|
+
},
|
|
73
|
+
"Please input mobile push template content.": {
|
|
74
|
+
id: 'creatives.containers.Line.Edit.inputLineTemplateContent',
|
|
75
|
+
defaultMessage: 'Please enter the message content',
|
|
76
|
+
},
|
|
77
|
+
"Template title has unsupported/missing tags.": {
|
|
78
|
+
id: 'creatives.containers.Line.Edit.titleHasUnsupportedTag',
|
|
79
|
+
defaultMessage: 'Please check the message content for unsupported/missing tags',
|
|
80
|
+
},
|
|
81
|
+
"Template name cannot be empty.": {
|
|
82
|
+
id: 'creatives.containers.Line.Edit.templateNameNotEmpty',
|
|
83
|
+
defaultMessage: 'Please provide a template name ',
|
|
84
|
+
},
|
|
85
|
+
"Message title has unsupported/missing tags!": {
|
|
86
|
+
id: 'creatives.containers.Line.Edit.messageTitleWithUnsupportedTag',
|
|
87
|
+
defaultMessage: 'Please check the message content for unsupported/missing tags',
|
|
88
|
+
},
|
|
89
|
+
"Image": {
|
|
90
|
+
id: 'creatives.containers.Line.Edit.Image',
|
|
91
|
+
defaultMessage: 'Image',
|
|
92
|
+
},
|
|
93
|
+
"Max file size acceptable is 5mb": {
|
|
94
|
+
id: 'creatives.containers.Line.Edit.maxUploadFileSize',
|
|
95
|
+
defaultMessage: 'Max file size acceptable is 5mb',
|
|
96
|
+
},
|
|
97
|
+
"Please upload Image": {
|
|
98
|
+
id: 'creatives.containers.Line.Edit.pleaseUploadImage',
|
|
99
|
+
defaultMessage: 'Please upload image',
|
|
100
|
+
},
|
|
101
|
+
"Upload Image": {
|
|
102
|
+
id: 'creatives.containers.Line.Edit.uploadImage',
|
|
103
|
+
defaultMessage: 'Upload image',
|
|
104
|
+
},
|
|
105
|
+
"Line Template Edited Successfully": {
|
|
106
|
+
id: 'creatives.containers.Line.Edit.templateEditedSuccessfully',
|
|
107
|
+
defaultMessage: 'Line template edited successfully',
|
|
108
|
+
},
|
|
109
|
+
"somethingWentWrong": {
|
|
110
|
+
id: 'creatives.containers.Line.Edit.somethingWentWrong',
|
|
111
|
+
defaultMessage: 'Something went wrong!!',
|
|
112
|
+
},
|
|
113
|
+
"goBackConfirmation": {
|
|
114
|
+
id: 'creatives.containers.Line.Edit.goBackConfirmation',
|
|
115
|
+
defaultMessage: "Going back will discard all the changes you've made. Continue?",
|
|
116
|
+
},
|
|
117
|
+
"alertMessage": {
|
|
118
|
+
id: 'creatives.containers.Line.Edit.alertMessage',
|
|
119
|
+
defaultMessage: "Alert",
|
|
120
|
+
},
|
|
121
|
+
"Name and Description": {
|
|
122
|
+
id: 'creatives.containers.Line.Edit.nameAndDescription',
|
|
123
|
+
defaultMessage: 'Name and description',
|
|
124
|
+
},
|
|
125
|
+
"Button 1": {
|
|
126
|
+
id: 'creatives.containers.Line.Edit.button1',
|
|
127
|
+
defaultMessage: 'Button 1',
|
|
128
|
+
},
|
|
129
|
+
"Button 2": {
|
|
130
|
+
id: 'creatives.containers.Line.Edit.button2',
|
|
131
|
+
defaultMessage: 'Button 2',
|
|
132
|
+
},
|
|
133
|
+
"File size cannot be more than 5mb": {
|
|
134
|
+
id: 'creatives.containers.Line.Edit.uploadFileSizeError',
|
|
135
|
+
defaultMessage: 'File size cannot be more than 5mb',
|
|
136
|
+
},
|
|
137
|
+
"value cannot be empty.": {
|
|
138
|
+
id: 'creatives.containers.Line.Edit.valueCantEmpty',
|
|
139
|
+
defaultMessage: 'value cannot be empty.',
|
|
140
|
+
},
|
|
141
|
+
"Uploading Image...": {
|
|
142
|
+
id: 'creatives.containers.Line.Edit.uploadingImage',
|
|
143
|
+
defaultMessage: 'Uploading image...',
|
|
144
|
+
},
|
|
145
|
+
"Campaigns": {
|
|
146
|
+
id: 'creatives.containers.Line.Edit.Campaigns',
|
|
147
|
+
defaultMessage: 'Campaigns',
|
|
148
|
+
},
|
|
149
|
+
"Creatives": {
|
|
150
|
+
id: 'creatives.containers.Line.Edit.Creatives',
|
|
151
|
+
defaultMessage: 'Creatives',
|
|
152
|
+
},
|
|
153
|
+
"Line": {
|
|
154
|
+
id: 'creatives.containers.Line.Edit.mobilePush',
|
|
155
|
+
defaultMessage: 'Mobile Push',
|
|
156
|
+
},
|
|
157
|
+
"template not configured,": {
|
|
158
|
+
id: 'creatives.containers.Line.Edit.templateNotConfigured',
|
|
159
|
+
defaultMessage: 'template not configured,',
|
|
160
|
+
},
|
|
161
|
+
"androidNotConfigured": {
|
|
162
|
+
id: 'creatives.containers.Line.Edit.androidNotConfigured',
|
|
163
|
+
defaultMessage: 'Android template is not configured. Save without Android template',
|
|
164
|
+
},
|
|
165
|
+
"iosNotConfigured": {
|
|
166
|
+
id: 'creatives.containers.Line.Edit.iosNotConfigured',
|
|
167
|
+
defaultMessage: 'IOS template is not configured, Save without IOS template',
|
|
168
|
+
},
|
|
169
|
+
"savingTemplate": {
|
|
170
|
+
id: 'creatives.containers.Line.Edit.savingTemplate',
|
|
171
|
+
defaultMessage: "Saving Template...",
|
|
172
|
+
},
|
|
173
|
+
"gettingTemplate": {
|
|
174
|
+
id: 'creatives.containers.Line.Create.gettingTemplate',
|
|
175
|
+
defaultMessage: "Getting template details...",
|
|
176
|
+
},
|
|
177
|
+
});
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*
|
|
2
|
+
*
|
|
3
|
+
* Create reducer
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { fromJS } from 'immutable';
|
|
8
|
+
import * as types from './constants';
|
|
9
|
+
|
|
10
|
+
const initialState = fromJS({
|
|
11
|
+
editTemplateInProgress: false,
|
|
12
|
+
editResponse: {},
|
|
13
|
+
getTemplateDetailsInProgress: false,
|
|
14
|
+
templateDetails: {},
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
function editReducer(state = initialState, action) {
|
|
18
|
+
switch (action.type) {
|
|
19
|
+
case types.DEFAULT_ACTION:
|
|
20
|
+
return state;
|
|
21
|
+
case types.EDIT_TEMPLATE_REQUEST:
|
|
22
|
+
return state
|
|
23
|
+
.set('editTemplateInProgress', true)
|
|
24
|
+
.set('editTemplateError', false)
|
|
25
|
+
.set('editTemplateErrorMessage', fromJS(""));
|
|
26
|
+
case types.EDIT_TEMPLATE_SUCCESS:
|
|
27
|
+
return state.set('editTemplateInProgress', false)
|
|
28
|
+
.set('editResponse', action.data)
|
|
29
|
+
.set('editTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
|
|
30
|
+
.set('editTemplateErrorMessage', fromJS(action.errorMsg));
|
|
31
|
+
case types.EDIT_TEMPLATE_FAILURE:
|
|
32
|
+
return state
|
|
33
|
+
.set('editTemplateInProgress', false)
|
|
34
|
+
.set('editTemplateError', true)
|
|
35
|
+
.set('editTemplateErrorMessage', fromJS(action.errorMsg));
|
|
36
|
+
case types.GET_TEMPLATE_DETAILS_REQUEST:
|
|
37
|
+
return state.set('getTemplateDetailsInProgress', true);
|
|
38
|
+
case types.GET_TEMPLATE_DETAILS_SUCCESS:
|
|
39
|
+
case types.SET_SELECTED_TEMPLATE:
|
|
40
|
+
return state.set('getTemplateDetailsInProgress', false)
|
|
41
|
+
.set('templateDetails', action.data);
|
|
42
|
+
case types.GET_TEMPLATE_DETAILS_FAILURE:
|
|
43
|
+
return state.set('getTemplateDetailsInProgress', false);
|
|
44
|
+
case types.CLEAR_EDIT_RESPONSE_REQUEST:
|
|
45
|
+
return state.set('editResponse', {});
|
|
46
|
+
case types.UPLOAD_ASSET_REQUEST:
|
|
47
|
+
return state
|
|
48
|
+
.set('uploadAssetSuccess', false)
|
|
49
|
+
.set('assetUploading', true);
|
|
50
|
+
case types.UPLOAD_ASSET_SUCCESS:
|
|
51
|
+
return state
|
|
52
|
+
.set('uploadAssetSuccess', (action.statusCode !== undefined && action.statusCode !== '' && action.statusCode < 300))
|
|
53
|
+
.set('assetUploading', false)
|
|
54
|
+
.set('uploadedAssetData', action.data);
|
|
55
|
+
case types.UPLOAD_ASSET_FAILURE:
|
|
56
|
+
return state
|
|
57
|
+
.set('uploadAssetSuccess', false)
|
|
58
|
+
.set('assetUploading', false);
|
|
59
|
+
case types.CLEAR_DATA:
|
|
60
|
+
return state
|
|
61
|
+
.delete('uploadedAssetData')
|
|
62
|
+
.delete('metaEntities')
|
|
63
|
+
.delete('templateDetails');
|
|
64
|
+
case types.CLEAR_ASSET:
|
|
65
|
+
return state
|
|
66
|
+
.delete('uploadedAssetData');
|
|
67
|
+
case types.GET_LINE_TEMPLATES_LIST_REQUEST:
|
|
68
|
+
return state
|
|
69
|
+
.set('fetchingDefaultTemplates', true);
|
|
70
|
+
case types.GET_LINE_TEMPLATES_LIST_SUCCESS:
|
|
71
|
+
return state
|
|
72
|
+
.set('fetchingDefaultTemplates', false)
|
|
73
|
+
.set('lineTemplates', fromJS(action.data));
|
|
74
|
+
case types.GET_LINE_TEMPLATES_LIST_FAILURE:
|
|
75
|
+
return state
|
|
76
|
+
.set('fetchingDefaultTemplates', false)
|
|
77
|
+
.set('errorFetchingDefaultTempalte', true);
|
|
78
|
+
default:
|
|
79
|
+
return state;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export default editReducer;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { call, put, takeLatest } from 'redux-saga/effects';
|
|
2
|
+
// import { schema, normalize } from 'normalizr';
|
|
3
|
+
import * as Api from '../../../services/api';
|
|
4
|
+
import * as types from './constants';
|
|
5
|
+
|
|
6
|
+
// Individual exports for testing
|
|
7
|
+
export function* editTemplate(template) {
|
|
8
|
+
let errorMsg;
|
|
9
|
+
try {
|
|
10
|
+
|
|
11
|
+
const result = yield call(Api.createLineTemplate, template);
|
|
12
|
+
|
|
13
|
+
if (result.message || result.status.code === 500) {
|
|
14
|
+
errorMsg = result.message;
|
|
15
|
+
}
|
|
16
|
+
yield put({ type: types.EDIT_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
|
|
17
|
+
} catch (error) {
|
|
18
|
+
yield put({ type: types.EDIT_TEMPLATE_FAILURE, error, errorMsg });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function* getTemplateDetails(id) {
|
|
23
|
+
try {
|
|
24
|
+
|
|
25
|
+
const result = yield call(Api.getTemplateDetails, id);
|
|
26
|
+
// const sidebar = result.response.sidebar;
|
|
27
|
+
yield put({ type: types.GET_TEMPLATE_DETAILS_SUCCESS, data: result.response });
|
|
28
|
+
} catch (error) {
|
|
29
|
+
yield put({ type: types.GET_TEMPLATE_DETAILS_FAILURE, error });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function* uploadAsset(file, assetType, fileParams, mode) {
|
|
34
|
+
try {
|
|
35
|
+
const result = yield call(Api.uploadFile, file, assetType, fileParams, mode);
|
|
36
|
+
yield put({ type: types.UPLOAD_ASSET_SUCCESS, data: result.response.asset, statusCode: result.status ? result.status.code : '' });
|
|
37
|
+
} catch (error) {
|
|
38
|
+
yield put({ type: types.UPLOAD_ASSET_FAILURE, error });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function* getLineTemplatesList(params) {
|
|
43
|
+
try {
|
|
44
|
+
|
|
45
|
+
const result = yield call(Api.getAllTemplates, {channel: params.channel, queryParams: params.queryParams});
|
|
46
|
+
yield put({ type: types.GET_LINE_TEMPLATES_LIST_SUCCESS, data: result.response.templates, templateData: result.response.mapped});
|
|
47
|
+
} catch (error) {
|
|
48
|
+
yield put({ type: types.GET_LINE_TEMPLATES_LIST_FAILURE, error });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function* watchEditTemplate() {
|
|
53
|
+
yield takeLatest(types.EDIT_TEMPLATE_REQUEST, editTemplate);
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function* watchGetTemplateDetails() {
|
|
59
|
+
yield takeLatest(types.GET_TEMPLATE_DETAILS_REQUEST, getTemplateDetails);
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function* watchUploadAsset() {
|
|
65
|
+
yield takeLatest(types.UPLOAD_ASSET_REQUEST, uploadAsset);
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export function* watchLineTemplatesList() {
|
|
71
|
+
yield takeLatest(types.GET_LINE_TEMPLATES_LIST_REQUEST, getLineTemplatesList);
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// All sagas to be loaded
|
|
77
|
+
export default [
|
|
78
|
+
watchEditTemplate, watchGetTemplateDetails, watchLineTemplatesList,
|
|
79
|
+
watchUploadAsset,
|
|
80
|
+
];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createSelector } from 'reselect';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Direct selector to the create state domain
|
|
5
|
+
*/
|
|
6
|
+
const selectLineEditDomain = () => (state) => state.get('edit');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Other specific selectors
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Default selector used by Create
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const makeSelectEdit = () => createSelector(
|
|
18
|
+
selectLineEditDomain(),
|
|
19
|
+
(substate) => substate.toJS()
|
|
20
|
+
);
|
|
21
|
+
const makeSelectEditResponse = () => createSelector(
|
|
22
|
+
selectLineEditDomain(), (dimensionState) => dimensionState.get('editResponse')
|
|
23
|
+
);
|
|
24
|
+
const makeSelectTemplateDetailsResponse = () => createSelector(
|
|
25
|
+
selectLineEditDomain(), (dimensionState) => dimensionState.get('templateDetails')
|
|
26
|
+
);
|
|
27
|
+
export {
|
|
28
|
+
makeSelectEdit, makeSelectEditResponse, makeSelectTemplateDetailsResponse,
|
|
29
|
+
};
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { expectSaga } from 'redux-saga-test-plan';
|
|
2
|
+
import { call, put } from 'redux-saga/effects';
|
|
3
|
+
import { throwError } from 'redux-saga-test-plan/providers';
|
|
4
|
+
import * as Api from '../../../../services/api';
|
|
5
|
+
import * as sagas from '../sagas';
|
|
6
|
+
import * as types from '../constants';
|
|
7
|
+
import { takeLatest } from 'redux-saga/effects';
|
|
8
|
+
import {
|
|
9
|
+
watchEditTemplate,
|
|
10
|
+
watchGetTemplateDetails,
|
|
11
|
+
watchUploadAsset,
|
|
12
|
+
watchLineTemplatesList
|
|
13
|
+
} from '../sagas';
|
|
14
|
+
|
|
15
|
+
describe('Template Sagas', () => {
|
|
16
|
+
|
|
17
|
+
describe('editTemplate Saga', () => {
|
|
18
|
+
const template = { id: 1, content: 'Updated Content' };
|
|
19
|
+
it.concurrent('handles editing template successfully', () => {
|
|
20
|
+
const fakeResponse = {
|
|
21
|
+
response: { updated: true },
|
|
22
|
+
status: { code: 200 }
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
return expectSaga(sagas.editTemplate, template)
|
|
26
|
+
.provide([
|
|
27
|
+
[call(Api.createLineTemplate, template), fakeResponse]
|
|
28
|
+
])
|
|
29
|
+
.put({
|
|
30
|
+
type: types.EDIT_TEMPLATE_SUCCESS,
|
|
31
|
+
data: fakeResponse.response,
|
|
32
|
+
statusCode: fakeResponse.status.code,
|
|
33
|
+
errorMsg: undefined
|
|
34
|
+
})
|
|
35
|
+
.run();
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it.concurrent('handles failure in editing template', () => {
|
|
39
|
+
const error = new Error('Update failed');
|
|
40
|
+
|
|
41
|
+
return expectSaga(sagas.editTemplate, template)
|
|
42
|
+
.provide([
|
|
43
|
+
[call(Api.createLineTemplate, template), throwError(error)]
|
|
44
|
+
])
|
|
45
|
+
.put({
|
|
46
|
+
type: types.EDIT_TEMPLATE_FAILURE,
|
|
47
|
+
error,
|
|
48
|
+
errorMsg: undefined
|
|
49
|
+
})
|
|
50
|
+
.run();
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
describe('getTemplateDetails Saga', () => {
|
|
55
|
+
const id = '123';
|
|
56
|
+
test.concurrent('handles fetching template details successfully', () => {
|
|
57
|
+
const fakeResponse = {
|
|
58
|
+
response: { id: 123, name: 'Detailed Template' }
|
|
59
|
+
};
|
|
60
|
+
return expectSaga(sagas.getTemplateDetails, id)
|
|
61
|
+
.provide([
|
|
62
|
+
[call(Api.getTemplateDetails, id), fakeResponse]
|
|
63
|
+
])
|
|
64
|
+
.put({
|
|
65
|
+
type: types.GET_TEMPLATE_DETAILS_SUCCESS,
|
|
66
|
+
data: fakeResponse.response
|
|
67
|
+
})
|
|
68
|
+
.run();
|
|
69
|
+
});
|
|
70
|
+
test.concurrent('handles failure in fetching template details', () => {
|
|
71
|
+
const error = new Error('Fetch failed');
|
|
72
|
+
return expectSaga(sagas.getTemplateDetails, id)
|
|
73
|
+
.provide([
|
|
74
|
+
[call(Api.getTemplateDetails, id), throwError(error)]
|
|
75
|
+
])
|
|
76
|
+
.put({
|
|
77
|
+
type: types.GET_TEMPLATE_DETAILS_FAILURE,
|
|
78
|
+
error
|
|
79
|
+
})
|
|
80
|
+
.run();
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
describe('uploadAsset Saga', () => {
|
|
85
|
+
const file = new Blob(['file contents'], { type: 'text/plain' });
|
|
86
|
+
const assetType = 'image';
|
|
87
|
+
const fileParams = { directory: 'profile' };
|
|
88
|
+
const mode = 'create';
|
|
89
|
+
|
|
90
|
+
it.concurrent('handles asset upload successfully', () => {
|
|
91
|
+
const fakeResponse = {
|
|
92
|
+
response: { asset: { id: 1, url: 'http://example.com/image.png' } },
|
|
93
|
+
status: { code: 200 }
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
return expectSaga(sagas.uploadAsset, file, assetType, fileParams, mode)
|
|
97
|
+
.provide([
|
|
98
|
+
[call(Api.uploadFile, file, assetType, fileParams, mode), fakeResponse]
|
|
99
|
+
])
|
|
100
|
+
.put({
|
|
101
|
+
type: types.UPLOAD_ASSET_SUCCESS,
|
|
102
|
+
data: fakeResponse.response.asset,
|
|
103
|
+
statusCode: fakeResponse.status.code
|
|
104
|
+
})
|
|
105
|
+
.run();
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
it.concurrent('handles failure in uploading asset', () => {
|
|
109
|
+
const error = new Error('Upload failed');
|
|
110
|
+
|
|
111
|
+
return expectSaga(sagas.uploadAsset, file, assetType, fileParams, mode)
|
|
112
|
+
.provide([
|
|
113
|
+
[call(Api.uploadFile, file, assetType, fileParams, mode), throwError(error)]
|
|
114
|
+
])
|
|
115
|
+
.put({
|
|
116
|
+
type: types.UPLOAD_ASSET_FAILURE,
|
|
117
|
+
error
|
|
118
|
+
})
|
|
119
|
+
.run();
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe('Saga watchers', () => {
|
|
124
|
+
describe('watchEditTemplate saga', () => {
|
|
125
|
+
const generator = watchEditTemplate();
|
|
126
|
+
it.concurrent('should take the latest EDIT_TEMPLATE_REQUEST actions and call editTemplate saga', () => {
|
|
127
|
+
expect(generator.next().value).toEqual(
|
|
128
|
+
takeLatest(types.EDIT_TEMPLATE_REQUEST, sagas.editTemplate),
|
|
129
|
+
);
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
describe('watchGetTemplateDetails saga', () => {
|
|
134
|
+
const generator = watchGetTemplateDetails();
|
|
135
|
+
it.concurrent('should take the latest GET_TEMPLATE_DETAILS_REQUEST actions and call getTemplateDetails saga', () => {
|
|
136
|
+
expect(generator.next().value).toEqual(
|
|
137
|
+
takeLatest(types.GET_TEMPLATE_DETAILS_REQUEST, sagas.getTemplateDetails),
|
|
138
|
+
);
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
describe('watchUploadAsset saga', () => {
|
|
143
|
+
const generator = watchUploadAsset();
|
|
144
|
+
it.concurrent('should take the latest UPLOAD_ASSET_REQUEST actions and call uploadAsset saga', () => {
|
|
145
|
+
expect(generator.next().value).toEqual(
|
|
146
|
+
takeLatest(types.UPLOAD_ASSET_REQUEST, sagas.uploadAsset),
|
|
147
|
+
);
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
describe('watchLineTemplatesList saga', () => {
|
|
152
|
+
const generator = watchLineTemplatesList();
|
|
153
|
+
it.concurrent('should take the latest GET_LINE_TEMPLATES_LIST_REQUEST actions and call getLineTemplatesList saga', () => {
|
|
154
|
+
expect(generator.next().value).toEqual(
|
|
155
|
+
takeLatest(types.GET_LINE_TEMPLATES_LIST_REQUEST, sagas.getLineTemplatesList),
|
|
156
|
+
);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
});
|
|
Binary file
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Form, Icon } from 'antd';
|
|
4
|
+
import { CapInput, CapButton } from '@capillarytech/cap-react-ui-library';
|
|
5
|
+
import { injectIntl, intlShape } from 'react-intl';
|
|
6
|
+
import messages from './messages';
|
|
7
|
+
const FormItem = Form.Item;
|
|
8
|
+
|
|
9
|
+
class NormalLoginForm extends React.Component {
|
|
10
|
+
handleSubmit = (e) => {
|
|
11
|
+
e.preventDefault();
|
|
12
|
+
this.props.form.validateFields((err, values) => {
|
|
13
|
+
if (!err) {
|
|
14
|
+
this.props.authenticate(values);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
render() {
|
|
20
|
+
const { getFieldDecorator } = this.props.form;
|
|
21
|
+
return (
|
|
22
|
+
<Form onSubmit={this.handleSubmit} className="login-form">
|
|
23
|
+
<FormItem className="login-form-item">
|
|
24
|
+
{getFieldDecorator('username', {
|
|
25
|
+
rules: [{ required: true, message: this.props.intl.formatMessage(messages.inputUsernameMandatory) }],
|
|
26
|
+
})(
|
|
27
|
+
<CapInput prefix={<Icon type="user" style={{ fontSize: 13 }} />} placeholder={this.props.intl.formatMessage(messages.username)} />
|
|
28
|
+
)}
|
|
29
|
+
</FormItem>
|
|
30
|
+
<FormItem className="login-form-item">
|
|
31
|
+
{getFieldDecorator('password', {
|
|
32
|
+
rules: [{ required: true, message: this.props.intl.formatMessage(messages.inputPasswordMandatory) }],
|
|
33
|
+
})(
|
|
34
|
+
<CapInput prefix={<Icon type="lock" style={{ fontSize: 13 }} />} type="password" placeholder={this.props.intl.formatMessage(messages.password)} />
|
|
35
|
+
)}
|
|
36
|
+
</FormItem>
|
|
37
|
+
{this.props.isError
|
|
38
|
+
? <FormItem>
|
|
39
|
+
<span style={{color: "red"}}>{this.props.intl.formatMessage(messages.invalidCredentials)}</span>
|
|
40
|
+
</FormItem>
|
|
41
|
+
: null
|
|
42
|
+
}
|
|
43
|
+
<FormItem>
|
|
44
|
+
<CapButton loading={this.props.loginInProgress} type="primary" htmlType="submit" className="login-form-button">
|
|
45
|
+
{this.props.intl.formatMessage(messages.loginButton)}
|
|
46
|
+
</CapButton>
|
|
47
|
+
</FormItem>
|
|
48
|
+
</Form>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
NormalLoginForm.propTypes = {
|
|
54
|
+
authenticate: PropTypes.func.isRequired,
|
|
55
|
+
loginInProgress: PropTypes.bool,
|
|
56
|
+
isError: PropTypes.bool,
|
|
57
|
+
form: PropTypes.object,
|
|
58
|
+
intl: intlShape.isRequired,
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const WrappedNormalLoginForm = Form.create()(NormalLoginForm);
|
|
62
|
+
export default injectIntl(WrappedNormalLoginForm);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* LoginForm Messages
|
|
3
|
+
*
|
|
4
|
+
* This contains all the text for the LoginForm component.
|
|
5
|
+
*/
|
|
6
|
+
import { defineMessages } from 'react-intl';
|
|
7
|
+
|
|
8
|
+
export default defineMessages({
|
|
9
|
+
username: {
|
|
10
|
+
id: 'creatives.containers.Login.components.LoginForm.input.username',
|
|
11
|
+
defaultMessage: 'Username or email',
|
|
12
|
+
},
|
|
13
|
+
password: {
|
|
14
|
+
id: 'creatives.containers.Login.components.LoginForm.input.password',
|
|
15
|
+
defaultMessage: 'Password',
|
|
16
|
+
},
|
|
17
|
+
loginButton: {
|
|
18
|
+
id: 'creatives.containers.Login.components.LoginForm.input.loginButton',
|
|
19
|
+
defaultMessage: 'Login',
|
|
20
|
+
},
|
|
21
|
+
invalidCredentials: {
|
|
22
|
+
id: 'creatives.containers.Login.components.LoginForm.input.invalidCredentials',
|
|
23
|
+
defaultMessage: 'Invalid or Incorrect credentials!',
|
|
24
|
+
},
|
|
25
|
+
inputPasswordMandatory: {
|
|
26
|
+
id: 'creatives.containers.Login.components.LoginForm.input.inputPasswordMandatory',
|
|
27
|
+
defaultMessage: 'Please input your Password!',
|
|
28
|
+
},
|
|
29
|
+
inputUsernameMandatory: {
|
|
30
|
+
id: 'creatives.containers.Login.components.LoginForm.input.inputUsernameMandatory',
|
|
31
|
+
defaultMessage: 'Please input your username!',
|
|
32
|
+
},
|
|
33
|
+
});
|