@capillarytech/creatives-library 2.0.70 → 2.0.71

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 (391) hide show
  1. package/app.js +1 -1
  2. package/components/Ckeditor/index.js +2 -1
  3. package/components/FormBuilder/index.js +25 -10
  4. package/components/Header/index.js +3 -1
  5. package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +38 -3
  6. package/components/TemplatePreview/index.js +45 -51
  7. package/components/TemplatePreview/messages.js +1 -1
  8. package/containers/Cap/actions.js +0 -5
  9. package/containers/Cap/reducer.js +1 -1
  10. package/containers/Cap/selectors.js +0 -13
  11. package/containers/Ebill/index.js +1 -2
  12. package/containers/Email/_email.scss +1 -0
  13. package/containers/Email/actions.js +3 -8
  14. package/containers/Email/constants.js +0 -1
  15. package/containers/Email/index.js +947 -322
  16. package/containers/Email/reducer.js +0 -3
  17. package/containers/Email/sagas.js +6 -3
  18. package/containers/Email/selectors.js +1 -4
  19. package/containers/Line/Create/index.js +1 -2
  20. package/containers/Line/Edit/_lineEdit.scss +4 -0
  21. package/containers/Line/Edit/index.js +1 -3
  22. package/containers/MobilePush/Create/_mobilePushCreate.scss +3 -12
  23. package/containers/MobilePush/Create/actions.js +0 -6
  24. package/containers/MobilePush/Create/constants.js +0 -1
  25. package/containers/MobilePush/Create/index.js +1133 -628
  26. package/containers/MobilePush/Create/messages.js +1 -5
  27. package/containers/MobilePush/Create/reducer.js +0 -2
  28. package/containers/MobilePush/Create/selectors.js +3 -3
  29. package/containers/MobilePush/Edit/_mobilePushCreate.scss +3 -9
  30. package/containers/MobilePush/Edit/index.js +1127 -393
  31. package/containers/MobilePush/Edit/messages.js +0 -4
  32. package/containers/MobilePush/Edit/reducer.js +1 -2
  33. package/containers/MobilePush/Edit/selectors.js +3 -6
  34. package/containers/Sms/Create/_smsCreate.scss +2 -1
  35. package/containers/Sms/Create/actions.js +4 -4
  36. package/containers/Sms/Create/index.js +570 -102
  37. package/containers/Sms/Create/sagas.js +2 -1
  38. package/containers/Sms/Edit/actions.js +5 -10
  39. package/containers/Sms/Edit/constants.js +0 -1
  40. package/containers/Sms/Edit/index.js +548 -103
  41. package/containers/Sms/Edit/reducer.js +0 -2
  42. package/containers/Sms/Edit/sagas.js +3 -1
  43. package/containers/TagList/index.js +3 -3
  44. package/containers/Templates/actions.js +1 -3
  45. package/containers/Templates/index.js +299 -268
  46. package/containers/Templates/messages.js +90 -122
  47. package/containers/Templates/reducer.js +3 -3
  48. package/containers/Templates/sagas.js +1 -5
  49. package/containers/Templates/selectors.js +1 -41
  50. package/containers/WeChat/MapTemplates/index.js +3 -4
  51. package/containers/WeChat/RichmediaTemplates/Create/index.js +18 -4
  52. package/containers/WeChat/RichmediaTemplates/Create/messages.js +4 -0
  53. package/containers/WeChat/RichmediaTemplates/Edit/index.js +3 -1
  54. package/containers/WeChat/RichmediaTemplates/View/index.js +3 -1
  55. package/index.js +31 -31
  56. package/initialState.js +6 -0
  57. package/package.json +3 -3
  58. package/routes.js +24 -19
  59. package/services/api.js +6 -2
  60. package/services/getSchema.js +18 -0
  61. package/v2Containers/App/actions.js +7 -0
  62. package/v2Containers/App/constants.js +3 -0
  63. package/v2Containers/App/reducer.js +19 -0
  64. package/v2Containers/App/sagas.js +26 -0
  65. package/v2Containers/App/selectors.js +25 -0
  66. package/v2Containers/App/tests/actions.test.js +18 -0
  67. package/v2Containers/App/tests/reducer.test.js +9 -0
  68. package/v2Containers/App/tests/sagas.test.js +15 -0
  69. package/v2Containers/App/tests/selectors.test.js +10 -0
  70. package/v2Containers/Assets/Gallery/_gallery.scss +0 -0
  71. package/v2Containers/Assets/Gallery/actions.js +37 -0
  72. package/v2Containers/Assets/Gallery/constants.js +23 -0
  73. package/v2Containers/Assets/Gallery/index.js +479 -0
  74. package/v2Containers/Assets/Gallery/messages.js +97 -0
  75. package/v2Containers/Assets/Gallery/reducer.js +81 -0
  76. package/v2Containers/Assets/Gallery/sagas.js +84 -0
  77. package/v2Containers/Assets/Gallery/selectors.js +25 -0
  78. package/v2Containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +7 -0
  79. package/v2Containers/Assets/Gallery/tests/actions.test.js +26 -0
  80. package/v2Containers/Assets/Gallery/tests/index.test.js +10 -0
  81. package/v2Containers/Assets/Gallery/tests/reducer.test.js +95 -0
  82. package/v2Containers/Assets/Gallery/tests/sagas.test.js +15 -0
  83. package/v2Containers/Assets/Gallery/tests/selectors.test.js +10 -0
  84. package/v2Containers/CallTask/_callTask.scss +5 -0
  85. package/v2Containers/CallTask/actions.js +15 -0
  86. package/v2Containers/CallTask/constants.js +7 -0
  87. package/v2Containers/CallTask/index.js +141 -0
  88. package/v2Containers/CallTask/messages.js +21 -0
  89. package/v2Containers/CallTask/reducer.js +23 -0
  90. package/v2Containers/CallTask/sagas.js +11 -0
  91. package/v2Containers/CallTask/selectors.js +25 -0
  92. package/v2Containers/CallTask/tests/actions.test.js +18 -0
  93. package/v2Containers/CallTask/tests/index.test.js +10 -0
  94. package/v2Containers/CallTask/tests/reducer.test.js +9 -0
  95. package/v2Containers/CallTask/tests/sagas.test.js +15 -0
  96. package/v2Containers/CallTask/tests/selectors.test.js +10 -0
  97. package/v2Containers/Cap/actions.js +64 -0
  98. package/v2Containers/Cap/constants.js +24 -0
  99. package/v2Containers/Cap/index.js +349 -0
  100. package/v2Containers/Cap/messsages.js +63 -0
  101. package/v2Containers/Cap/reducer.js +111 -0
  102. package/v2Containers/Cap/sagas.js +143 -0
  103. package/v2Containers/Cap/selectors.js +85 -0
  104. package/v2Containers/Cap/tests/index.test.js +16 -0
  105. package/v2Containers/Cap/tests/selectors.test.js +28 -0
  106. package/v2Containers/ChannelTemplates/actions.js +20 -0
  107. package/v2Containers/ChannelTemplates/constants.js +8 -0
  108. package/v2Containers/ChannelTemplates/index.js +48 -0
  109. package/v2Containers/ChannelTemplates/messages.js +13 -0
  110. package/v2Containers/ChannelTemplates/reducer.js +34 -0
  111. package/v2Containers/ChannelTemplates/sagas.js +32 -0
  112. package/v2Containers/ChannelTemplates/selectors.js +25 -0
  113. package/v2Containers/ChannelTemplates/tests/actions.test.js +18 -0
  114. package/v2Containers/ChannelTemplates/tests/index.test.js +10 -0
  115. package/v2Containers/ChannelTemplates/tests/reducer.test.js +9 -0
  116. package/v2Containers/ChannelTemplates/tests/sagas.test.js +15 -0
  117. package/v2Containers/ChannelTemplates/tests/selectors.test.js +10 -0
  118. package/v2Containers/CreativesContainer/SlideBoxContent.js +257 -0
  119. package/v2Containers/CreativesContainer/SlideBoxFooter.js +45 -0
  120. package/v2Containers/CreativesContainer/SlideBoxHeader.js +70 -0
  121. package/v2Containers/CreativesContainer/actions.js +27 -0
  122. package/v2Containers/CreativesContainer/constants.js +16 -0
  123. package/v2Containers/CreativesContainer/index.js +483 -0
  124. package/v2Containers/CreativesContainer/index.scss +27 -0
  125. package/v2Containers/CreativesContainer/messages.js +293 -0
  126. package/v2Containers/CreativesContainer/reducer.js +29 -0
  127. package/v2Containers/CreativesContainer/sagas.js +11 -0
  128. package/v2Containers/CreativesContainer/selectors.js +30 -0
  129. package/v2Containers/CreativesContainer/tests/actions.test.js +18 -0
  130. package/v2Containers/CreativesContainer/tests/index.test.js +10 -0
  131. package/v2Containers/CreativesContainer/tests/reducer.test.js +9 -0
  132. package/v2Containers/CreativesContainer/tests/sagas.test.js +15 -0
  133. package/v2Containers/CreativesContainer/tests/selectors.test.js +10 -0
  134. package/v2Containers/Dashboard/actions.js +15 -0
  135. package/v2Containers/Dashboard/constants.js +7 -0
  136. package/v2Containers/Dashboard/index.js +54 -0
  137. package/v2Containers/Dashboard/messages.js +13 -0
  138. package/v2Containers/Dashboard/reducer.js +21 -0
  139. package/v2Containers/Dashboard/sagas.js +11 -0
  140. package/v2Containers/Dashboard/selectors.js +25 -0
  141. package/v2Containers/Dashboard/tests/actions.test.js +18 -0
  142. package/v2Containers/Dashboard/tests/index.test.js +10 -0
  143. package/v2Containers/Dashboard/tests/reducer.test.js +9 -0
  144. package/v2Containers/Dashboard/tests/sagas.test.js +15 -0
  145. package/v2Containers/Dashboard/tests/selectors.test.js +10 -0
  146. package/v2Containers/Ebill/_ebill.scss +5 -0
  147. package/v2Containers/Ebill/actions.js +43 -0
  148. package/v2Containers/Ebill/constants.js +20 -0
  149. package/v2Containers/Ebill/index.js +1261 -0
  150. package/v2Containers/Ebill/messages.js +73 -0
  151. package/v2Containers/Ebill/reducer.js +72 -0
  152. package/v2Containers/Ebill/sagas.js +65 -0
  153. package/v2Containers/Ebill/selectors.js +25 -0
  154. package/v2Containers/Ebill/tests/actions.test.js +18 -0
  155. package/v2Containers/Ebill/tests/index.test.js +10 -0
  156. package/v2Containers/Ebill/tests/reducer.test.js +9 -0
  157. package/v2Containers/Ebill/tests/sagas.test.js +15 -0
  158. package/v2Containers/Ebill/tests/selectors.test.js +10 -0
  159. package/v2Containers/Email/_email.scss +140 -0
  160. package/v2Containers/Email/actions.js +86 -0
  161. package/v2Containers/Email/constants.js +37 -0
  162. package/v2Containers/Email/index.js +2703 -0
  163. package/v2Containers/Email/initialSchema.js +540 -0
  164. package/v2Containers/Email/messages.js +237 -0
  165. package/v2Containers/Email/reducer.js +147 -0
  166. package/v2Containers/Email/sagas.js +133 -0
  167. package/v2Containers/Email/selectors.js +34 -0
  168. package/v2Containers/Email/tests/actions.test.js +18 -0
  169. package/v2Containers/Email/tests/index.test.js +10 -0
  170. package/v2Containers/Email/tests/reducer.test.js +9 -0
  171. package/v2Containers/Email/tests/sagas.test.js +15 -0
  172. package/v2Containers/Email/tests/selectors.test.js +10 -0
  173. package/v2Containers/EmailWrapper/actions.js +15 -0
  174. package/v2Containers/EmailWrapper/constants.js +7 -0
  175. package/v2Containers/EmailWrapper/index.js +258 -0
  176. package/v2Containers/EmailWrapper/messages.js +57 -0
  177. package/v2Containers/EmailWrapper/reducer.js +23 -0
  178. package/v2Containers/EmailWrapper/sagas.js +11 -0
  179. package/v2Containers/EmailWrapper/selectors.js +25 -0
  180. package/v2Containers/EmailWrapper/tests/actions.test.js +18 -0
  181. package/v2Containers/EmailWrapper/tests/index.test.js +10 -0
  182. package/v2Containers/EmailWrapper/tests/reducer.test.js +9 -0
  183. package/v2Containers/EmailWrapper/tests/sagas.test.js +15 -0
  184. package/v2Containers/EmailWrapper/tests/selectors.test.js +10 -0
  185. package/v2Containers/LanguageProvider/actions.js +17 -0
  186. package/v2Containers/LanguageProvider/constants.js +8 -0
  187. package/v2Containers/LanguageProvider/index.js +46 -0
  188. package/v2Containers/LanguageProvider/reducer.js +30 -0
  189. package/v2Containers/LanguageProvider/selectors.js +20 -0
  190. package/v2Containers/LanguageProvider/tests/actions.test.js +19 -0
  191. package/v2Containers/LanguageProvider/tests/index.test.js +49 -0
  192. package/v2Containers/LanguageProvider/tests/reducer.test.js +20 -0
  193. package/v2Containers/LanguageProvider/tests/selectors.test.js +15 -0
  194. package/v2Containers/Line/Create/_lineCreate.scss +43 -0
  195. package/v2Containers/Line/Create/actions.js +90 -0
  196. package/v2Containers/Line/Create/constants.js +39 -0
  197. package/v2Containers/Line/Create/index.js +822 -0
  198. package/v2Containers/Line/Create/messages.js +173 -0
  199. package/v2Containers/Line/Create/reducer.js +99 -0
  200. package/v2Containers/Line/Create/sagas.js +107 -0
  201. package/v2Containers/Line/Create/selectors.js +36 -0
  202. package/v2Containers/Line/Edit/_lineEdit.scss +21 -0
  203. package/v2Containers/Line/Edit/actions.js +79 -0
  204. package/v2Containers/Line/Edit/constants.js +27 -0
  205. package/v2Containers/Line/Edit/index.js +1050 -0
  206. package/v2Containers/Line/Edit/messages.js +157 -0
  207. package/v2Containers/Line/Edit/reducer.js +83 -0
  208. package/v2Containers/Line/Edit/sagas.js +81 -0
  209. package/v2Containers/Line/Edit/selectors.js +29 -0
  210. package/v2Containers/Line/Edit/tests/actions.test.js +18 -0
  211. package/v2Containers/Line/Edit/tests/index.test.js +10 -0
  212. package/v2Containers/Line/Edit/tests/reducer.test.js +9 -0
  213. package/v2Containers/Line/Edit/tests/sagas.test.js +15 -0
  214. package/v2Containers/Line/Edit/tests/selectors.test.js +10 -0
  215. package/v2Containers/Login/assets/images/capillary_logo.png +0 -0
  216. package/v2Containers/Login/components/LoginForm/index.js +59 -0
  217. package/v2Containers/Login/components/LoginForm/messages.js +21 -0
  218. package/v2Containers/Login/components/LoginForm/tests/index.test.js +10 -0
  219. package/v2Containers/Login/index.js +106 -0
  220. package/v2Containers/Login/messages.js +21 -0
  221. package/v2Containers/Login/selectors.js +25 -0
  222. package/v2Containers/Login/tests/index.test.js +10 -0
  223. package/v2Containers/Login/tests/sagas.test.js +15 -0
  224. package/v2Containers/Login/tests/selectors.test.js +10 -0
  225. package/v2Containers/MobilePush/Create/_mobilePushCreate.scss +41 -0
  226. package/v2Containers/MobilePush/Create/actions.js +52 -0
  227. package/v2Containers/MobilePush/Create/constants.js +24 -0
  228. package/v2Containers/MobilePush/Create/index.js +1759 -0
  229. package/v2Containers/MobilePush/Create/messages.js +237 -0
  230. package/v2Containers/MobilePush/Create/reducer.js +72 -0
  231. package/v2Containers/MobilePush/Create/sagas.js +60 -0
  232. package/v2Containers/MobilePush/Create/selectors.js +28 -0
  233. package/v2Containers/MobilePush/Create/tests/actions.test.js +18 -0
  234. package/v2Containers/MobilePush/Create/tests/index.test.js +10 -0
  235. package/v2Containers/MobilePush/Create/tests/reducer.test.js +9 -0
  236. package/v2Containers/MobilePush/Create/tests/sagas.test.js +15 -0
  237. package/v2Containers/MobilePush/Create/tests/selectors.test.js +10 -0
  238. package/v2Containers/MobilePush/Edit/_mobilePushCreate.scss +38 -0
  239. package/v2Containers/MobilePush/Edit/actions.js +91 -0
  240. package/v2Containers/MobilePush/Edit/constants.js +35 -0
  241. package/v2Containers/MobilePush/Edit/index.js +1846 -0
  242. package/v2Containers/MobilePush/Edit/messages.js +253 -0
  243. package/v2Containers/MobilePush/Edit/reducer.js +113 -0
  244. package/v2Containers/MobilePush/Edit/sagas.js +119 -0
  245. package/v2Containers/MobilePush/Edit/selectors.js +32 -0
  246. package/v2Containers/MobilePush/Edit/tests/actions.test.js +18 -0
  247. package/v2Containers/MobilePush/Edit/tests/index.test.js +10 -0
  248. package/v2Containers/MobilePush/Edit/tests/reducer.test.js +9 -0
  249. package/v2Containers/MobilePush/Edit/tests/sagas.test.js +15 -0
  250. package/v2Containers/MobilePush/Edit/tests/selectors.test.js +10 -0
  251. package/v2Containers/MobilePush/commonMethods.js +249 -0
  252. package/v2Containers/MobilePush/eventsMap.js +127 -0
  253. package/v2Containers/MobilePush/initialSchema.js +1739 -0
  254. package/v2Containers/MobilepushWrapper/_mobilepushWrapper.scss +18 -0
  255. package/v2Containers/MobilepushWrapper/index.js +136 -0
  256. package/v2Containers/MobilepushWrapper/messages.js +29 -0
  257. package/v2Containers/MobilepushWrapper/tests/index.test.js +10 -0
  258. package/v2Containers/NotFoundPage/index.js +25 -0
  259. package/v2Containers/NotFoundPage/messages.js +13 -0
  260. package/v2Containers/NotFoundPage/tests/index.test.js +17 -0
  261. package/v2Containers/Sms/Create/_smsCreate.scss +58 -0
  262. package/v2Containers/Sms/Create/actions.js +27 -0
  263. package/v2Containers/Sms/Create/constants.js +16 -0
  264. package/v2Containers/Sms/Create/index.js +1017 -0
  265. package/v2Containers/Sms/Create/messages.js +85 -0
  266. package/v2Containers/Sms/Create/reducer.js +41 -0
  267. package/v2Containers/Sms/Create/sagas.js +35 -0
  268. package/v2Containers/Sms/Create/selectors.js +28 -0
  269. package/v2Containers/Sms/Create/tests/actions.test.js +18 -0
  270. package/v2Containers/Sms/Create/tests/index.test.js +10 -0
  271. package/v2Containers/Sms/Create/tests/reducer.test.js +9 -0
  272. package/v2Containers/Sms/Create/tests/sagas.test.js +15 -0
  273. package/v2Containers/Sms/Create/tests/selectors.test.js +10 -0
  274. package/v2Containers/Sms/Edit/actions.js +45 -0
  275. package/v2Containers/Sms/Edit/constants.js +18 -0
  276. package/v2Containers/Sms/Edit/index.js +1018 -0
  277. package/v2Containers/Sms/Edit/messages.js +89 -0
  278. package/v2Containers/Sms/Edit/reducer.js +52 -0
  279. package/v2Containers/Sms/Edit/sagas.js +50 -0
  280. package/v2Containers/Sms/Edit/selectors.js +32 -0
  281. package/v2Containers/Sms/Edit/tests/actions.test.js +18 -0
  282. package/v2Containers/Sms/Edit/tests/index.test.js +10 -0
  283. package/v2Containers/Sms/Edit/tests/reducer.test.js +9 -0
  284. package/v2Containers/Sms/Edit/tests/sagas.test.js +15 -0
  285. package/v2Containers/Sms/Edit/tests/selectors.test.js +10 -0
  286. package/v2Containers/Sms/initialSchema.js +281 -0
  287. package/v2Containers/TagList/_tagList.scss +8 -0
  288. package/v2Containers/TagList/actions.js +15 -0
  289. package/v2Containers/TagList/constants.js +7 -0
  290. package/v2Containers/TagList/index.js +236 -0
  291. package/v2Containers/TagList/messages.js +13 -0
  292. package/v2Containers/TagList/reducer.js +23 -0
  293. package/v2Containers/TagList/sagas.js +11 -0
  294. package/v2Containers/TagList/selectors.js +25 -0
  295. package/v2Containers/TagList/tests/actions.test.js +18 -0
  296. package/v2Containers/TagList/tests/index.test.js +10 -0
  297. package/v2Containers/TagList/tests/reducer.test.js +9 -0
  298. package/v2Containers/TagList/tests/sagas.test.js +15 -0
  299. package/v2Containers/TagList/tests/selectors.test.js +10 -0
  300. package/v2Containers/Templates/_templates.scss +349 -0
  301. package/v2Containers/Templates/actions.js +110 -0
  302. package/v2Containers/Templates/constants.js +45 -0
  303. package/v2Containers/Templates/index.js +1682 -0
  304. package/v2Containers/Templates/messages.js +273 -0
  305. package/v2Containers/Templates/reducer.js +142 -0
  306. package/v2Containers/Templates/sagas.js +180 -0
  307. package/v2Containers/Templates/selectors.js +68 -0
  308. package/v2Containers/Templates/tests/actions.test.js +18 -0
  309. package/v2Containers/Templates/tests/index.test.js +10 -0
  310. package/v2Containers/Templates/tests/reducer.test.js +9 -0
  311. package/v2Containers/Templates/tests/sagas.test.js +15 -0
  312. package/v2Containers/Templates/tests/selectors.test.js +10 -0
  313. package/v2Containers/TemplatesV2/_templatesV2.scss +5 -0
  314. package/v2Containers/TemplatesV2/actions.js +16 -0
  315. package/v2Containers/TemplatesV2/constants.js +10 -0
  316. package/v2Containers/TemplatesV2/index.js +217 -0
  317. package/v2Containers/TemplatesV2/messages.js +29 -0
  318. package/v2Containers/TemplatesV2/selectors.js +25 -0
  319. package/v2Containers/TemplatesV2/tests/actions.test.js +18 -0
  320. package/v2Containers/TemplatesV2/tests/index.test.js +10 -0
  321. package/v2Containers/TemplatesV2/tests/reducer.test.js +9 -0
  322. package/v2Containers/TemplatesV2/tests/sagas.test.js +15 -0
  323. package/v2Containers/TemplatesV2/tests/selectors.test.js +10 -0
  324. package/v2Containers/TestPage/constants.js +7 -0
  325. package/v2Containers/TestPage/index.js +31 -0
  326. package/v2Containers/TestPage/messages.js +13 -0
  327. package/v2Containers/TestPage/reducer.js +21 -0
  328. package/v2Containers/TestPage/sagas.js +11 -0
  329. package/v2Containers/Testv2/actions.js +15 -0
  330. package/v2Containers/Testv2/constants.js +7 -0
  331. package/v2Containers/Testv2/index.js +47 -0
  332. package/v2Containers/Testv2/messages.js +13 -0
  333. package/v2Containers/Testv2/reducer.js +23 -0
  334. package/v2Containers/Testv2/sagas.js +11 -0
  335. package/v2Containers/Testv2/selectors.js +25 -0
  336. package/v2Containers/Testv2/tests/actions.test.js +18 -0
  337. package/v2Containers/Testv2/tests/index.test.js +10 -0
  338. package/v2Containers/Testv2/tests/reducer.test.js +9 -0
  339. package/v2Containers/Testv2/tests/sagas.test.js +15 -0
  340. package/v2Containers/Testv2/tests/selectors.test.js +10 -0
  341. package/v2Containers/WeChat/MapTemplates/_mapTemplates.scss +8 -0
  342. package/v2Containers/WeChat/MapTemplates/actions.js +52 -0
  343. package/v2Containers/WeChat/MapTemplates/constants.js +28 -0
  344. package/v2Containers/WeChat/MapTemplates/index.js +1385 -0
  345. package/v2Containers/WeChat/MapTemplates/messages.js +73 -0
  346. package/v2Containers/WeChat/MapTemplates/reducer.js +74 -0
  347. package/v2Containers/WeChat/MapTemplates/sagas.js +86 -0
  348. package/v2Containers/WeChat/MapTemplates/selectors.js +25 -0
  349. package/v2Containers/WeChat/MapTemplates/tests/actions.test.js +18 -0
  350. package/v2Containers/WeChat/MapTemplates/tests/index.test.js +10 -0
  351. package/v2Containers/WeChat/MapTemplates/tests/reducer.test.js +9 -0
  352. package/v2Containers/WeChat/MapTemplates/tests/sagas.test.js +15 -0
  353. package/v2Containers/WeChat/MapTemplates/tests/selectors.test.js +10 -0
  354. package/v2Containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +57 -0
  355. package/v2Containers/WeChat/RichmediaTemplates/Create/actions.js +36 -0
  356. package/v2Containers/WeChat/RichmediaTemplates/Create/constants.js +15 -0
  357. package/v2Containers/WeChat/RichmediaTemplates/Create/index.js +1053 -0
  358. package/v2Containers/WeChat/RichmediaTemplates/Create/messages.js +141 -0
  359. package/v2Containers/WeChat/RichmediaTemplates/Create/reducer.js +60 -0
  360. package/v2Containers/WeChat/RichmediaTemplates/Create/richmediaschema.js +497 -0
  361. package/v2Containers/WeChat/RichmediaTemplates/Create/sagas.js +48 -0
  362. package/v2Containers/WeChat/RichmediaTemplates/Create/selectors.js +37 -0
  363. package/v2Containers/WeChat/RichmediaTemplates/Create/tests/actions.test.js +18 -0
  364. package/v2Containers/WeChat/RichmediaTemplates/Create/tests/index.test.js +10 -0
  365. package/v2Containers/WeChat/RichmediaTemplates/Create/tests/reducer.test.js +9 -0
  366. package/v2Containers/WeChat/RichmediaTemplates/Create/tests/sagas.test.js +15 -0
  367. package/v2Containers/WeChat/RichmediaTemplates/Create/tests/selectors.test.js +10 -0
  368. package/v2Containers/WeChat/RichmediaTemplates/Edit/actions.js +20 -0
  369. package/v2Containers/WeChat/RichmediaTemplates/Edit/constants.js +10 -0
  370. package/v2Containers/WeChat/RichmediaTemplates/Edit/index.js +116 -0
  371. package/v2Containers/WeChat/RichmediaTemplates/Edit/messages.js +13 -0
  372. package/v2Containers/WeChat/RichmediaTemplates/Edit/reducer.js +28 -0
  373. package/v2Containers/WeChat/RichmediaTemplates/Edit/sagas.js +32 -0
  374. package/v2Containers/WeChat/RichmediaTemplates/Edit/selectors.js +30 -0
  375. package/v2Containers/WeChat/RichmediaTemplates/Edit/tests/actions.test.js +18 -0
  376. package/v2Containers/WeChat/RichmediaTemplates/Edit/tests/index.test.js +10 -0
  377. package/v2Containers/WeChat/RichmediaTemplates/Edit/tests/reducer.test.js +9 -0
  378. package/v2Containers/WeChat/RichmediaTemplates/Edit/tests/sagas.test.js +15 -0
  379. package/v2Containers/WeChat/RichmediaTemplates/Edit/tests/selectors.test.js +10 -0
  380. package/v2Containers/WeChat/RichmediaTemplates/View/actions.js +15 -0
  381. package/v2Containers/WeChat/RichmediaTemplates/View/constants.js +7 -0
  382. package/v2Containers/WeChat/RichmediaTemplates/View/index.js +47 -0
  383. package/v2Containers/WeChat/RichmediaTemplates/View/messages.js +13 -0
  384. package/v2Containers/WeChat/RichmediaTemplates/View/reducer.js +23 -0
  385. package/v2Containers/WeChat/RichmediaTemplates/View/sagas.js +11 -0
  386. package/v2Containers/WeChat/RichmediaTemplates/View/selectors.js +25 -0
  387. package/v2Containers/WeChat/RichmediaTemplates/View/tests/actions.test.js +18 -0
  388. package/v2Containers/WeChat/RichmediaTemplates/View/tests/index.test.js +10 -0
  389. package/v2Containers/WeChat/RichmediaTemplates/View/tests/reducer.test.js +9 -0
  390. package/v2Containers/WeChat/RichmediaTemplates/View/tests/sagas.test.js +15 -0
  391. package/v2Containers/WeChat/RichmediaTemplates/View/tests/selectors.test.js +10 -0
@@ -0,0 +1,273 @@
1
+ /*
2
+ * Templates Messages
3
+ *
4
+ * This contains all the text for the Templates component.
5
+ */
6
+ import { defineMessages } from 'react-intl';
7
+ const scope = `app.containers.Templates`;
8
+ export default defineMessages({
9
+ "header": {
10
+ id: `${scope}.header`,
11
+ defaultMessage: `This is Templates container !`,
12
+ },
13
+ "uploadedAt": {
14
+ id: `${scope}.uploadedAt`,
15
+ defaultMessage: `Modified`,
16
+ },
17
+ "uploadedBy": {
18
+ id: `${scope}.uploadedBy`,
19
+ defaultMessage: `Uploaded By`,
20
+ },
21
+ "mapTemplate": {
22
+ id: `${scope}.mapTemplate`,
23
+ defaultMessage: `Map Template`,
24
+ },
25
+ "weChatRichmediaTemplate": {
26
+ id: `${scope}.weChatRichmediaTemplate`,
27
+ defaultMessage: 'Richmedia Template',
28
+ },
29
+ "somethingWentWrong": {
30
+ id: `${scope}.somethingWentWrong`,
31
+ defaultMessage: `Something Went Wrong!!`,
32
+ },
33
+ "wechatHeader": {
34
+ id: `${scope}.wechatHeader`,
35
+ defaultMessage: `WECHAT`,
36
+ },
37
+ "smsHeader": {
38
+ id: `${scope}.smsHeader`,
39
+ defaultMessage: `SMS`,
40
+ },
41
+ "emailHeader": {
42
+ id: `${scope}.emailHeader`,
43
+ defaultMessage: `Email`,
44
+ },
45
+ "mobilepushHeader": {
46
+ id: `${scope}.mobilepushHeader`,
47
+ defaultMessage: `Mobile Push`,
48
+ },
49
+ "ebillHeader": {
50
+ id: `${scope}.ebillHeader`,
51
+ defaultMessage: `Ebill`,
52
+ },
53
+ "lineHeader": {
54
+ id: `${scope}.lineHeader`,
55
+ defaultMessage: `Line`,
56
+ },
57
+ "selectWechatHeader": {
58
+ id: `${scope}.selectWechatHeader`,
59
+ defaultMessage: `Select WECHAT Template`,
60
+ },
61
+ "selectSmsHeader": {
62
+ id: `${scope}.selectSmsHeader`,
63
+ defaultMessage: `Select SMS Template`,
64
+ },
65
+ "selectAccount": {
66
+ id: `${scope}.selectAccount`,
67
+ defaultMessage: "Select Account",
68
+ },
69
+ "gettingAllTemplates": {
70
+ id: `${scope}.gettingAllTemplates`,
71
+ defaultMessage: "Getting all templates...",
72
+ },
73
+ "smsChannelTemplatesHeader": {
74
+ id: `${scope}.smsChannelTemplatesHeader`,
75
+ defaultMessage: "SMS Templates",
76
+ },
77
+ "wechatChannelTemplatesHeader": {
78
+ id: `${scope}.wechatChannelTemplatesHeader`,
79
+ defaultMessage: "WECHAT Templates",
80
+ },
81
+ "blankTemplate": {
82
+ id: `${scope}.blankTemplate`,
83
+ defaultMessage: "Blank Template",
84
+ },
85
+ "selectButton": {
86
+ id: `${scope}.selectButton`,
87
+ defaultMessage: "Select",
88
+ },
89
+ "previewButton": {
90
+ id: `${scope}.previewButton`,
91
+ defaultMessage: "Preview",
92
+ },
93
+ "editButton": {
94
+ id: `${scope}.editButton`,
95
+ defaultMessage: "Edit",
96
+ },
97
+ "duplicateButton": {
98
+ id: `${scope}.duplicateButton`,
99
+ defaultMessage: "Duplicate",
100
+ },
101
+ "deleteButton": {
102
+ id: `${scope}.deleteButton`,
103
+ defaultMessage: "Delete",
104
+ },
105
+ "mostRecentOption": {
106
+ id: `${scope}.mostRecentOption`,
107
+ defaultMessage: "Most Recent",
108
+ },
109
+ "alphabeticallyOption": {
110
+ id: `${scope}.alphabeticallyOption`,
111
+ defaultMessage: "Alphabetically",
112
+ },
113
+ "searchText": {
114
+ id: `${scope}.searchText`,
115
+ defaultMessage: "Search",
116
+ },
117
+ "noAccountMessage": {
118
+ id: `${scope}.noAccountMessage`,
119
+ defaultMessage: "Please select an account to proceed",
120
+ },
121
+ "noTemplatesMessage": {
122
+ id: `${scope}.noTemplatesMessage`,
123
+ defaultMessage: "No Templates Available",
124
+ },
125
+ "createSmsActionButton": {
126
+ id: `${scope}.createSmsActionButton`,
127
+ defaultMessage: "Create SMS",
128
+ },
129
+ "createEmailActionButton": {
130
+ id: `${scope}.createEmailActionButton`,
131
+ defaultMessage: "Create Email",
132
+ },
133
+ "sortBy": {
134
+ id: `${scope}.sortBy`,
135
+ defaultMessage: "Sort by",
136
+ },
137
+ "unMapButton": {
138
+ id: `${scope}.unMapButton`,
139
+ defaultMessage: "Unmap",
140
+ },
141
+ "templateDuplicateSuccess": {
142
+ id: `${scope}.templateDuplicateSuccess`,
143
+ defaultMessage: "Template Duplicated Successfully",
144
+ },
145
+ "templateDeleteSuccess": {
146
+ id: `${scope}.templateDeleteSuccess`,
147
+ defaultMessage: "SMS Template Deleted Successfully",
148
+ },
149
+ "uploadFile": {
150
+ id: `${scope}.uploadFile`,
151
+ defaultMessage: "Upload File",
152
+ },
153
+ "useEditor": {
154
+ id: `${scope}.useEditor`,
155
+ defaultMessage: "Use Editor",
156
+ },
157
+ "newTemplate": {
158
+ id: `${scope}.newTemplate`,
159
+ defaultMessage: "New Template",
160
+ },
161
+ "uploadingFile": {
162
+ id: `${scope}.uploadingFile`,
163
+ defaultMessage: "Uploading File",
164
+ },
165
+ "zipUploadFailed": {
166
+ id: `${scope}.zipUploadFailed`,
167
+ defaultMessage: `Failed to Upload zip file`,
168
+ },
169
+ "campaigns": {
170
+ id: `${scope}.campaigns`,
171
+ defaultMessage: `Campaigns`,
172
+ },
173
+ "creatives": {
174
+ id: `${scope}.creatives`,
175
+ defaultMessage: `Creatives`,
176
+ },
177
+ "ebillPreview": {
178
+ id: `${scope}.ebillPreview`,
179
+ defaultMessage: `Ebill Preview`,
180
+ },
181
+ "emailPreview": {
182
+ id: `${scope}.emailPreview`,
183
+ defaultMessage: `Email Preview`,
184
+ },
185
+ "Template deleted successfully": {
186
+ id: `${scope}.deletedSuccssfully`,
187
+ defaultMessage: `Template deleted successfully`,
188
+ },
189
+ "Template deletion failed": {
190
+ id: `${scope}.deletionFailed`,
191
+ defaultMessage: `Template deletion failed`,
192
+ },
193
+ "preview": {
194
+ id: `${scope}.preview`,
195
+ defaultMessage: `Preview`,
196
+ },
197
+ "invalidUploadFileError": {
198
+ id: `${scope}.invalidUploadFileError`,
199
+ defaultMessage: `File cannot be uploaded. Please select another file with valid file format.`,
200
+ },
201
+ "templateDeleteConfirm": {
202
+ id: `${scope}.templateDeleteConfirm`,
203
+ defaultMessage: `Are you sure you want to delete this Template?`,
204
+ },
205
+ "cancelText": {
206
+ id: `${scope}.cancelText`,
207
+ defaultMessage: `Cancel`,
208
+ },
209
+ "yesText": {
210
+ id: `${scope}.yesText`,
211
+ defaultMessage: `Yes`,
212
+ },
213
+ "templateSelection": {
214
+ id: `${scope}.templateSelection`,
215
+ defaultMessage: `Template Selection`,
216
+ },
217
+ "layoutSelection": {
218
+ id: `${scope}.layoutSelection`,
219
+ defaultMessage: `Select Layout`,
220
+ },
221
+ "textTemplate": {
222
+ id: `${scope}.textTemplate`,
223
+ defaultMessage: `Text`,
224
+ },
225
+ "imageTemplate": {
226
+ id: `${scope}.imageTemplate`,
227
+ defaultMessage: `Image`,
228
+ },
229
+ "selectDefaultButton": {
230
+ id: `${scope}.selectDefaultButton`,
231
+ defaultMessage: `Select`,
232
+ },
233
+ "previewGenerateText": {
234
+ id: `${scope}.previewGenerateText`,
235
+ defaultMessage: `Preview is being generated...`,
236
+ },
237
+ "createNewActionButton": {
238
+ id: `${scope}.createNewActionButton`,
239
+ defaultMessage: `Create new`,
240
+ },
241
+ "creativeTemplates": {
242
+ id: `${scope}.creativeTemplates`,
243
+ defaultMessage: `Creative templates`,
244
+ },
245
+ "editMessageContent": {
246
+ id: `${scope}.editMessageContent`,
247
+ defaultMessage: `Edit message Content`,
248
+ },
249
+ "createMessageContent": {
250
+ id: `${scope}.editMessageContent`,
251
+ defaultMessage: `New message`,
252
+ },
253
+ "creativeTemplatesDesc": {
254
+ id: `${scope}.creativeTemplatesDesc`,
255
+ defaultMessage: `(Select only one creative)`,
256
+ },
257
+ "creativesTemplatesSave": {
258
+ id: `${scope}.creativesTemplatesSave`,
259
+ defaultMessage: `Done`,
260
+ },
261
+ "creativesTemplatesEdit": {
262
+ id: `${scope}.creativesTemplatesSave`,
263
+ defaultMessage: `Edit`,
264
+ },
265
+ "continue": {
266
+ id: `${scope}.continue`,
267
+ defaultMessage: `Continue`,
268
+ },
269
+ "wechatAccountNotConfigured": {
270
+ id: `${scope}.wechatAccountNotConfigured`,
271
+ defaultMessage: 'Selected wechat account is not configured to create wechat templates',
272
+ },
273
+ });
@@ -0,0 +1,142 @@
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
+ getAllTemplatesInProgress: false,
12
+ templates: [],
13
+ deleteResponse: {},
14
+ deleteTemplateInProgress: false,
15
+ });
16
+
17
+ function templatesReducer(state = initialState, action) {
18
+ switch (action.type) {
19
+ case types.DEFAULT_ACTION:
20
+ return state;
21
+ case types.GET_ALL_TEMPLATES_REQUEST:
22
+ return state.set('getAllTemplatesInProgress', true);
23
+ case types.GET_ALL_TEMPLATES_SUCCESS:
24
+ if (action.isReset) {
25
+ return state.set('getAllTemplatesInProgress', false)
26
+ .set('templates', action.data ? action.data.templates : [])
27
+ .set('isSearch', action.data ? action.data.search : false)
28
+ .set('weCRMtemplates', action.weCRMTemplate ? action.weCRMTemplate : []);
29
+ }
30
+ return state.set('getAllTemplatesInProgress', false)
31
+ .set('templates', action.data ? state.get('templates').concat(action.data.templates) : [])
32
+ .set('isSearch', action.data ? action.data.search : false)
33
+ .set('weCRMtemplates', action.weCRMTemplate ? state.get('weCRMtemplates').concat(action.weCRMTemplate) : []);
34
+ case types.GET_ALL_TEMPLATES_FAILURE:
35
+ return state.set('getAllTemplatesInProgress', false);
36
+ case types.DELETE_TEMPLATE_REQUEST:
37
+ return state.set('deleteTemplateInProgress', true);
38
+ case types.DELETE_TEMPLATE_SUCCESS:
39
+ return state.set('deleteTemplateInProgress', false)
40
+ .set('deleteResponse', action.data);
41
+ case types.DELETE_TEMPLATE_FAILURE:
42
+ return state.set('deleteTemplateInProgress', false);
43
+ case types.GET_USER_LIST_REQUEST:
44
+ return state
45
+ .set('fetchingUserList', true)
46
+ .set('userList', fromJS({}))
47
+ .set('userListFetchError', false);
48
+ case types.GET_USER_LIST_SUCCESS:
49
+ return state
50
+ .set('fetchingUserList', false)
51
+ .set('userList', fromJS(action.data))
52
+ .set('userListFetchError', false);
53
+ case types.GET_USER_LIST_FAILURE:
54
+ return state
55
+ .set('fetchingUserList', false)
56
+ .set('userList', fromJS({}))
57
+ .set('userListFetchError', true);
58
+ case types.GET_WECRM_ACCOUNTS_REQUEST:
59
+ return state
60
+ .set('fetchingWeCrmAccounts', true)
61
+ .set('weCrmAccountFetchingError', false);
62
+ case types.GET_WECRM_ACCOUNTS_SUCCESS:
63
+ return state
64
+ .set('fetchingWeCrmAccounts', false)
65
+ .set('weCrmAccounts', fromJS(action.data));
66
+ case types.GET_WECRM_ACCOUNTS_FAILURE:
67
+ return state
68
+ .set('fetchingWeCrmAccounts', false)
69
+ .set('weCrmAccountFetchingError', true);
70
+ case types.SET_WECHAT_ACCOUNT:
71
+ return state
72
+ .set('selectedWeChatAccount', fromJS(action.weChatAccount));
73
+ case types.RESET_ACCOUNT:
74
+ return state
75
+ .remove('selectedWeChatAccount')
76
+ .remove('weCrmAccounts');
77
+ case types.RESET_TEMPLATE:
78
+ return state
79
+ .set('weCRMtemplates', fromJS([]))
80
+ .set('weChatDefaultTemplate', fromJS([]))
81
+ .set('templates', []);
82
+ case types.SET_SELECTED_LAYOUT:
83
+ return state
84
+ .set('selectedEmailLayout', fromJS(action.selectedTemplate))
85
+ .set('edmTemplate', fromJS({}));
86
+ case types.RESET_UPLOAD_DATA:
87
+ return state
88
+ .set('selectedEmailLayout', "");
89
+ case types.SEND_ZIPPED_FILE_REQUEST:
90
+ return state
91
+ .set('sendingFile', true)
92
+ .set('errorSendingFile', false)
93
+ .set('selectedEmailLayout', "");
94
+ case types.SEND_ZIPPED_FILE_SUCCESS:
95
+ return state
96
+ .set('sendingFile', false)
97
+ .set('selectedEmailLayout', fromJS(action.selectedTemplate))
98
+ .set('edmTemplate', fromJS({}));
99
+ case types.SEND_ZIPPED_FILE_FAILURE:
100
+ return state
101
+ .set('sendingFile', false)
102
+ .set('errorSendingFile', true)
103
+ .set('errorMessage', action.data)
104
+ .set('selectedEmailLayout', "");
105
+ case types.GET_EDM_DEAFULT_TEMPLATES_REQUEST:
106
+ return state.set('getCmsTemplatesInProgress', true);
107
+ case types.GET_EDM_DEAFULT_TEMPLATES_SUCCESS:
108
+ return state.set('getCmsTemplatesInProgress', false)
109
+ .set('cmsTemplates', action.data ? fromJS(action.data.templates) : []);
110
+ case types.GET_EDM_DEAFULT_TEMPLATES_FAILURE:
111
+ return state.set('getCmsTemplatesInProgress', false);
112
+ case types.SET_EDM_TEMPLATE:
113
+ return state
114
+ .set('edmTemplate', fromJS(action.template))
115
+ .set('selectedEmailLayout', "");
116
+ case types.RESET_TEMPLATE_DATA:
117
+ return state
118
+ .set('edmTemplate', fromJS({}))
119
+ .set('selectedEmailLayout', "")
120
+ .set('templateDetails', fromJS({}));
121
+ case types.GET_TEMPLATE_DETAILS_REQUEST:
122
+ return state
123
+ .set('getTemplateDetailsInProgress', true)
124
+ .set('templateDetails', fromJS({}));
125
+ case types.GET_TEMPLATE_DETAILS_SUCCESS:
126
+ return state
127
+ .set('getTemplateDetailsInProgress', false)
128
+ .set('templateDetails', fromJS(action.data));
129
+ case types.GET_TEMPLATE_DETAILS_FAILURE:
130
+ return state
131
+ .set('getTemplateDetailsInProgress', false)
132
+ .set('templateDetails', fromJS({}));
133
+ case types.CLEAR_TEMPLATE_STORE_DATA:
134
+ return state
135
+ .set('templates', [])
136
+ .set('weCRMtemplates', fromJS({}));
137
+ default:
138
+ return state;
139
+ }
140
+ }
141
+
142
+ export default templatesReducer;
@@ -0,0 +1,180 @@
1
+ import { call, put, takeLatest, take, cancel } from 'redux-saga/effects';
2
+ import { LOCATION_CHANGE } from 'react-router-redux';
3
+ // import { schema, normalize } from 'normalizr';
4
+ import * as Api from '../../services/api';
5
+ import * as types from './constants';
6
+
7
+ // Individual exports for testing
8
+ export function* getAllTemplates(channel, queryParams) {
9
+ try {
10
+ const result = yield call(Api.getAllTemplates, channel, queryParams);
11
+ const channelTemplates = (channel.channel === 'wechat') ? {templates: [...result.response.mapped, ...result.response.richmedia]} : result.response;
12
+ // const sidebar = result.response.sidebar;
13
+ if (channel.channel === 'wechat' && channel.queryParams && channel.queryParams.sortBy && channel.queryParams.sortBy.toLocaleLowerCase() === ("Most Recent").toLocaleLowerCase()) {
14
+ channelTemplates.templates.sort((a, b) => {
15
+ const dateA = new Date(a.updatedAt);
16
+ const dateB = new Date(b.updatedAt);
17
+ return dateB - dateA;
18
+ });
19
+ } else if (channel.channel === 'wechat' && channel.queryParams && channel.queryParams.sortBy && channel.queryParams.sortBy.toLocaleLowerCase() === ("Alphabetically").toLocaleLowerCase()) {
20
+ channelTemplates.templates.sort((a, b) => b.name - a.name);
21
+ }
22
+ yield put({ type: types.GET_ALL_TEMPLATES_SUCCESS, data: channelTemplates, weCRMTemplate: result.response.unMapped, isReset: channel.queryParams.page === 1 });
23
+ } catch (error) {
24
+ yield put({ type: types.GET_ALL_TEMPLATES_FAILURE, error });
25
+ }
26
+ }
27
+
28
+ export function* deleteTemplate(channel, id) {
29
+ try {
30
+ console.log('saga deleteTemplates', channel, id);
31
+ const result = yield call(Api.deleteTemplate, channel, id);
32
+ // const sidebar = result.response.sidebar;
33
+ yield put({ type: types.DELETE_TEMPLATE_SUCCESS, data: result.response });
34
+ } catch (error) {
35
+ yield put({ type: types.DELETE_TEMPLATE_FAILURE, error });
36
+ }
37
+ }
38
+
39
+ export function* fetchUserList() {
40
+ try {
41
+ const result = yield call(Api.getUserList);
42
+ yield [
43
+ put({
44
+ type: types.GET_USER_LIST_SUCCESS,
45
+ data: result.data.result,
46
+ }),
47
+ ];
48
+ } catch (error) {
49
+ yield [
50
+ put({
51
+ type: types.GET_USER_LIST_FAILURE,
52
+ data: error,
53
+ }),
54
+ ];
55
+ }
56
+ }
57
+
58
+ export function* fetchWeCrmAccounts(action) {
59
+ try {
60
+ const result = yield call(Api.fetchWeCrmAccounts, action.source);
61
+ yield [
62
+ put({
63
+ type: types.GET_WECRM_ACCOUNTS_SUCCESS,
64
+ data: result.response,
65
+ }),
66
+ ];
67
+ } catch (error) {
68
+ yield [
69
+ put({
70
+ type: types.GET_WECRM_ACCOUNTS_FAILURE,
71
+ data: error,
72
+ }),
73
+ ];
74
+ }
75
+ }
76
+
77
+ export function* sendZippedFile({selectedFile, errorHandler, successHandler}) {
78
+ let errorMessage = "";
79
+ try {
80
+ const result = yield call(Api.sendZippedFile, selectedFile);
81
+ if (result.status.isError) {
82
+ errorMessage = result.message;
83
+ yield errorHandler(errorMessage);
84
+ }
85
+
86
+ console.log("Got Result ", result);
87
+ console.log("Got decoded result", decodeURIComponent(result.response.metaEntity.htmlContent));
88
+ yield [
89
+ put({
90
+ type: types.SEND_ZIPPED_FILE_SUCCESS,
91
+ selectedTemplate: decodeURIComponent(result.response.metaEntity.htmlContent),
92
+ }),
93
+ ];
94
+ yield successHandler();
95
+ } catch (error) {
96
+ yield errorHandler();
97
+ yield [
98
+ put({
99
+ type: types.SEND_ZIPPED_FILE_FAILURE,
100
+ data: errorMessage,
101
+ }),
102
+ ];
103
+ }
104
+ }
105
+
106
+ export function* getEdmTemplates() {
107
+ try {
108
+ console.log('saga getAllTemplates');
109
+ const result = yield call(Api.getEdmTemplates);
110
+ const edmTemplates = result.response;
111
+ yield put({ type: types.GET_EDM_DEAFULT_TEMPLATES_SUCCESS, data: edmTemplates });
112
+ } catch (error) {
113
+ yield put({ type: types.GET_EDM_DEAFULT_TEMPLATES_FAILURE, error });
114
+ }
115
+ }
116
+
117
+ export function* getTemplateDetails(id, channel) {
118
+ try {
119
+ console.log('saga get Template details', id);
120
+ const result = yield call(Api.getTemplateDetails, id, channel);
121
+ // const sidebar = result.response.sidebar;
122
+ yield put({ type: types.GET_TEMPLATE_DETAILS_SUCCESS, data: result.response });
123
+ } catch (error) {
124
+ yield put({ type: types.GET_TEMPLATE_DETAILS_FAILURE, error });
125
+ }
126
+ }
127
+
128
+ function* watchGetAllTemplates() {
129
+ const watcher = yield takeLatest(types.GET_ALL_TEMPLATES_REQUEST, getAllTemplates);
130
+ yield take(LOCATION_CHANGE);
131
+ yield cancel(watcher);
132
+ }
133
+
134
+ function* watchDeleteTemplate() {
135
+ const watcher = yield takeLatest(types.DELETE_TEMPLATE_REQUEST, deleteTemplate);
136
+ yield take(LOCATION_CHANGE);
137
+ yield cancel(watcher);
138
+ }
139
+
140
+ function* watchGetUserList() {
141
+ const watcher = yield takeLatest(types.GET_USER_LIST_REQUEST, fetchUserList);
142
+ yield take(LOCATION_CHANGE);
143
+ yield cancel(watcher);
144
+ }
145
+
146
+ function* watchFetchWeCrmAccounts() {
147
+ console.log('watching wecrm accounts');
148
+ const watcher = yield takeLatest(types.GET_WECRM_ACCOUNTS_REQUEST, fetchWeCrmAccounts);
149
+ yield take(LOCATION_CHANGE);
150
+ yield cancel(watcher);
151
+ }
152
+
153
+ function* watchSendingFile() {
154
+ const watcher = yield takeLatest(types.SEND_ZIPPED_FILE_REQUEST, sendZippedFile);
155
+ yield take(LOCATION_CHANGE);
156
+ yield cancel(watcher);
157
+ }
158
+
159
+ function* watchGetEdmDefaultTemplates() {
160
+ const watcher = yield takeLatest(types.GET_EDM_DEAFULT_TEMPLATES_REQUEST, getEdmTemplates);
161
+ yield take(LOCATION_CHANGE);
162
+ yield cancel(watcher);
163
+ }
164
+
165
+ function* watchGetTemplateDetails() {
166
+ const watcher = yield takeLatest(types.GET_TEMPLATE_DETAILS_REQUEST, getTemplateDetails);
167
+ yield take(LOCATION_CHANGE);
168
+ yield cancel(watcher);
169
+ }
170
+
171
+ // All sagas to be loaded
172
+ export default [
173
+ watchGetAllTemplates,
174
+ watchDeleteTemplate,
175
+ watchGetUserList,
176
+ watchFetchWeCrmAccounts,
177
+ watchSendingFile,
178
+ watchGetEdmDefaultTemplates,
179
+ watchGetTemplateDetails,
180
+ ];
@@ -0,0 +1,68 @@
1
+ import { createSelector } from 'reselect';
2
+ import isEmpty from 'lodash/isEmpty';
3
+
4
+ /**
5
+ * Direct selector to the templates state domain
6
+ */
7
+ const selectTemplatesDomain = () => (state) => state.get('templates');
8
+
9
+ /**
10
+ * Other specific selectors
11
+ */
12
+
13
+
14
+ /**
15
+ * Default selector used by Templates
16
+ */
17
+
18
+ const makeSelectTemplates = () => createSelector(
19
+ selectTemplatesDomain(),
20
+ (substate) => substate.toJS()
21
+ );
22
+
23
+ const templateUserList = () => createSelector(
24
+ makeSelectTemplates(),
25
+ (substate) => substate.userList || [],
26
+ );
27
+
28
+ const makeSelectTemplatesResponse = () => createSelector(
29
+ selectTemplatesDomain(), (templatesState) => templatesState.get('templates')
30
+ );
31
+ const selectTemplateContent = () => createSelector(
32
+ makeSelectTemplates(), (templates) => {
33
+ const {templateDetails} = templates;
34
+ if (!isEmpty(templateDetails)) {
35
+ const templateBase = templateDetails.versions.base;
36
+ const selectedLanguage = templateBase.selectedLanguages[0];
37
+ return templateBase[selectedLanguage]['template-content'];
38
+ }
39
+ return null;
40
+ }
41
+ );
42
+
43
+ const selectEmailLayout = () => createSelector(makeSelectTemplates(), (templates) => {
44
+ const {selectedEmailLayout, sendingFile} = templates;
45
+ if (!sendingFile) {
46
+ return selectedEmailLayout;
47
+ }
48
+ return null;
49
+ });
50
+ const uploadSelector = () => createSelector(makeSelectTemplates(), (templates) => templates.sendingFile ? templates.sendingFile : false );
51
+
52
+ const selectCmsTemplates = () => createSelector(makeSelectTemplates(), (templates) => {
53
+ const {getCmsTemplatesInProgress, cmsTemplates} = templates;
54
+ if (!getCmsTemplatesInProgress) {
55
+ return cmsTemplates;
56
+ }
57
+ return null;
58
+ });
59
+
60
+ const selectEdmEditor = () => createSelector(makeSelectTemplates(), (templates) => {
61
+ const {edmTemplate} = templates;
62
+ return edmTemplate || null;
63
+ });
64
+ export {
65
+ uploadSelector,
66
+ templateUserList,
67
+ makeSelectTemplates, makeSelectTemplatesResponse, selectTemplateContent, selectEmailLayout, selectCmsTemplates, selectEdmEditor,
68
+ };
@@ -0,0 +1,18 @@
1
+
2
+ import {
3
+ defaultAction,
4
+ } from '../actions';
5
+ import {
6
+ DEFAULT_ACTION,
7
+ } from '../constants';
8
+
9
+ describe('Templates actions', () => {
10
+ describe('Default Action', () => {
11
+ it('has a type of DEFAULT_ACTION', () => {
12
+ const expected = {
13
+ type: DEFAULT_ACTION,
14
+ };
15
+ expect(defaultAction()).toEqual(expected);
16
+ });
17
+ });
18
+ });
@@ -0,0 +1,10 @@
1
+ // import React from 'react';
2
+ // import { shallow } from 'enzyme';
3
+
4
+ // import { Templates } from '../index';
5
+
6
+ describe('<Templates />', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(false);
9
+ });
10
+ });
@@ -0,0 +1,9 @@
1
+
2
+ import { fromJS } from 'immutable';
3
+ import templatesReducer from '../reducer';
4
+
5
+ describe('templatesReducer', () => {
6
+ it('returns the initial state', () => {
7
+ expect(templatesReducer(undefined, {})).toEqual(fromJS({}));
8
+ });
9
+ });