cmor_contact 0.0.40.pre → 0.0.41.pre

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 (221) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/cmor/contact/application/whatsapp_widget.js.coffee +30 -0
  3. data/app/assets/javascripts/cmor_contact.js +1 -0
  4. data/app/assets/stylesheets/cmor/contact/application/whatsapp_widget.css +32 -0
  5. data/app/assets/stylesheets/cmor_contact.css +3 -0
  6. data/app/controllers/cmor/contact/whatsapp_requests_controller.rb +60 -0
  7. data/app/models/cmor/contact/whatsapp_request.rb +17 -0
  8. data/app/view_helpers/cmor/contact/application_view_helper.rb +22 -0
  9. data/app/views/cmor/contact/application_view_helper/_render_whatsapp_widget.html.haml +4 -0
  10. data/app/views/cmor/contact/whatsapp_requests/_form.html.haml +1 -0
  11. data/app/views/cmor/contact/whatsapp_requests/_form_errors.haml +6 -0
  12. data/app/views/cmor/contact/whatsapp_requests/_form_xhr.html.haml +1 -0
  13. data/app/views/cmor/contact/whatsapp_requests/new.html.haml +6 -0
  14. data/app/views/cmor/contact/whatsapp_requests/new_xhr.html.haml +3 -0
  15. data/config/initializers/assets.rb +1 -0
  16. data/config/locales/de.yml +17 -1
  17. data/config/locales/en.yml +17 -1
  18. data/config/routes.rb +1 -0
  19. data/lib/cmor/contact/configuration.rb +3 -0
  20. data/lib/cmor_contact.rb +4 -0
  21. data/lib/generators/cmor/contact/install/templates/initializer.rb +8 -0
  22. data/spec/dummy/config/application.rb +1 -0
  23. data/spec/dummy/config/initializers/cmor_contact.rb +19 -0
  24. data/spec/dummy/config/initializers/route_translator.rb +3 -0
  25. data/spec/dummy/db/development.sqlite3 +0 -0
  26. data/spec/dummy/db/migrate/{20190715162723_create_active_storage_tables.active_storage.rb → 20200119053533_create_active_storage_tables.active_storage.rb} +0 -0
  27. data/spec/dummy/db/migrate/{20190715162742_create_cmor_contact_contact_requests.cmor_contact.rb → 20200119053558_create_cmor_contact_contact_requests.cmor_contact.rb} +0 -0
  28. data/spec/dummy/db/schema.rb +1 -1
  29. data/spec/dummy/db/test.sqlite3 +0 -0
  30. data/spec/dummy/log/development.log +49 -49
  31. data/spec/dummy/log/test.log +377 -219
  32. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/--/--uVoRnVC9PFGLoYVIXCrZiiLFnb4IVyoHsm1bbBwNk.cache +1 -0
  33. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-W/-WFODxq3Dt0hS9AAgxfrFGfqd3Rxqw_NTk69O6pMFK0.cache +1 -0
  34. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-c/-cuKPPwHZkwFd6IgxQE8O3NIcz1BxcEtj8_Li4tO65A.cache +0 -0
  35. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/-g/-gm8z3bXpUv_LBvCN1fXtzdV2cu8WAWn0CErI26IO0Q.cache +1 -0
  36. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/09/09SIGL6FEukh98CAUiwTeV37kC1-xGzVrteLrVJ9dTE.cache +3 -0
  37. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/0V/0VFVJ-JhrAzykBRXIU470to_I4dPSdwlkqqk0Wdu9aw.cache +1 -0
  38. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2P/2PHPPPMFi42XmUrvNieCmjNcgWroCXeTanmnQ-vT62g.cache +1 -0
  39. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/2y/2yhdy6CWUdl_CPixYtFbVgDmxEc_22qLA1hj3hZdmBk.cache +1 -0
  40. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3E/3Ehe8GmBgFLMvQFXoupsbBAX6-g8dIyQeJO3Cz4TVK8.cache +2 -0
  41. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/3k/3kPoz-P31pV1iErqsbOEr9Fz1HkEzk7dTh_tNdIp2u4.cache +0 -0
  42. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5K/5Kh5RevuIQpUVSDW-EilhDsPlutdytHspzHRGTC9IDU.cache +2 -0
  43. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/5Y/5YKSVySTBqHI-Yvfr7qNbH8l-B8vdnxixKnec28E864.cache +1 -0
  44. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6K/6Kfk5m9bAGq0gRDTJ0Kclh-5DdQ_NcYEps0wD6tSChw.cache +1 -0
  45. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6g/6g6ojv_uQnOA-4q8WWr_-zHJ2b1sN77Hy2BZ0g_Gapc.cache +1 -0
  46. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/6z/6zXJBhWFTBZTw2ojyb2M4_4H8k3rcVz6Y0RkXU6ZTQE.cache +0 -0
  47. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7L/7LHBZU7cg13v3vtEQ-a-CM9VC4CfKgO_MQhcS-LLzAU.cache +1 -0
  48. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/7n/7neD8yjPtb8jSZkg_GONqf1tf_lwAZsBPz4-FQv1pf4.cache +0 -0
  49. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/82/82q_YlNCq3i7XGhlHZtHR4qCRUbe3aXv-PUoEpU7qvk.cache +2 -0
  50. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/88/883eN4SmZ9kXYVNsQJPm_Hg0k4nu7pTz6AdhkpgOyNw.cache +1 -0
  51. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8T/8TKD6f8Mz6KMBvP6vN2eVBI8vtY_GzJDR7PjLbviugg.cache +0 -0
  52. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/8x/8xhzs_si4de5dYTOVQwEbF-KDXqSudW7rE51l0OEdrI.cache +0 -0
  53. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9E/9E3bUOAGaTW7NAuSEH7JEKE8P0C42MrUKe45-Oi2Upk.cache +0 -0
  54. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/9S/9S33HYb1CcbZkHpsW987i9FWqW9Fce7Q6RbER5SlUrk.cache +1 -0
  55. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/A5/A5jcf9vDFCt1ti-AFxlRPG4HdKb0J_AP2Ne9yNK258Q.cache +2 -0
  56. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/AM/AMmCzd0FPCP7ucqJXDVzTxISKuicH3nbG9zmnk0B8XI.cache +2 -0
  57. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/AR/AR5HjgPjmHjtApKYFnYqzP4gNCJ99UXyEUJYQ5ItdpU.cache +1 -0
  58. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ax/AxF3q3BNDOVsC5_nZXZI0c7XMyBYt3Tch1jjd_ip2kw.cache +0 -0
  59. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ax/AxP5nvn4nM3_bBtoaeHKZtVZQSs1lo0lXmwVzDAyR44.cache +2 -0
  60. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ay/AynAR4nn1Xtl8cp_h9iZpTGKBUxB3qWFz6gfgv-Wy0Q.cache +1 -0
  61. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bi/BiN2Ha5hUOMTb50aSS144igMPB701e-AeXzEiuq4ibY.cache +3 -0
  62. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Bm/BmmBkcCC1qQxVWDcZgrkuhFXZQUTTjglsBdztYI64WM.cache +2 -0
  63. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/CG/CGeyk563RkMWOB9ieZBTRUffxXdXexuGXFqPVnulvKs.cache +1 -0
  64. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ea/Ea_s-_DIqe4ftGhcWp1hai45qUnhsl67fVBNl8e8ddo.cache +1 -0
  65. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Er/ErnEEHubWTt304b_UtyLr9kIF3kmXE4Jx_l703VT8h0.cache +32 -0
  66. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FN/FNadC17Fjn31cNub608HO79L8TxoeE9gk1o_nTEZ4Oc.cache +1 -0
  67. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/FN/FNyjcBZA6hdlZbpnzV0BR2OOFc65g4_q2mRH2BeXnbI.cache +1 -0
  68. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gd/GdD88MBCiQ4YuRlz2E4P0YohDnaGwNkcslSU60oNlyE.cache +2 -0
  69. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gm/GmkGW_aKzTsiHd7JndhKDLVrMtXFUkgKEnbfE_VWRq4.cache +1 -0
  70. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Gy/Gyz635Hw3BnIvd6_GDhPUqZXE0PKdc9sxpa0jwom8EQ.cache +1 -0
  71. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/H6/H6XZxyZ5u5USfUZ2yEy8E-enaVw0iFq63Z5XVLQogTY.cache +1 -0
  72. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HC/HCDOUd7-S45aJ_PjVAC_Vmjyud3i1aQv4cE3t9_Z3Dw.cache +2 -0
  73. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/HQ/HQf2LYaABrxlqVRcdpCiOG-gPeTigMEeRXM22eXGO3w.cache +1 -0
  74. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/I2/I2ptopNvzZHA4c7ho9e9kcmHJjsuoXW8inVcjE5zryw.cache +1 -0
  75. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/If/IfjuVHwDs3o1_4wuUYL8Q6C4G57uRvoah_vChE0pUco.cache +1 -0
  76. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ii/Iiv8TMilHFsgX6mmcbV54_zBJcCKK4z8ILLHbZS4ExU.cache +0 -0
  77. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Iz/IzpCEXoxa9sKQNgQVuR0Hjoon8C6y8Gxo9S5H9FWP5M.cache +0 -0
  78. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/J8/J8DA-jG092fy5gFpwgNvkFgZX4f0-V7KjHeOP6gWVOg.cache +1 -0
  79. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/J9/J90rXakSmo9PYUOh_UM1VWrULnQ2ZLmgDCIcUyizWIo.cache +1 -0
  80. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/JR/JRLJwu5F-aux0D48W21AAkB9T95UUri7Q_fmem0aBAw.cache +1 -0
  81. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jp/Jp-P-w8fzJr9V6xkY_0t0WAWU4hdZD1bQG-T43in35I.cache +1 -0
  82. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Jt/Jt0O9Gt5u370Hb1oUrXBDMDqECnh867hwCIhdzaK0QI.cache +1 -0
  83. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/K3/K35I74n47p-zoG8j2L_NgEDXzSk8Ec7z64AA_W5VkN8.cache +3 -0
  84. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/KU/KUzWwLFQ2yX-3EOddrAI1essdUyadjjxK29eM1eT9DY.cache +1 -0
  85. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Kn/KnPEEHK1kwGbXaVP5FU19C09a45CP-jkSvqDFQRBPOg.cache +0 -0
  86. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Lh/LhVXsSQDva1-4mRl_9kDIhSC0yXph2uqSXqs7Xi8k3s.cache +2 -0
  87. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/NR/NRcyVN4r-e9NhpoB18n1Ci_MN_efTZCuKVOUxzNg2EY.cache +1 -0
  88. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ng/NgR9ik6wxTBCsz7gAibxGCY_bApnwj_NZHCKqAEZQ1k.cache +0 -0
  89. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Nm/NmUCrpe_dAxwiicWINQMbaAhMZ3Nlgf-5qBPfoCD9B0.cache +0 -0
  90. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/P4/P4D53BiQKAcnAbYFtwTBmgZbnO29UjbqRsfSYk7Okak.cache +2 -0
  91. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PP/PPURdQ1tkJbYxBJcBdXeQsyy4rGA14yn8dXlcdYpS_Y.cache +0 -0
  92. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PU/PU-bW8TNmjeHLoPuEnSWfCCqVMeLa6i3-hr4odEY9ZE.cache +1 -0
  93. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/PY/PY8MlEPGHFn5VBci09tK7yPjxtUiLLZe7_MMXff2oW8.cache +1 -0
  94. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Pg/Pg41v8c4sWuBb_W8ZMSCZ2zX23kDejycBOi8YVKkNqQ.cache +1 -0
  95. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Q3/Q3TxuimbxsnBfAe0acZOCxKn6OeBB9d4PoBLW1SZcJU.cache +1 -0
  96. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/QL/QLf9qJLa2dMNI996t4LfppZF45m5tUs2AYz-BT31yA8.cache +0 -0
  97. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Qe/Qe9dIPyBf-TLGpyNZ41UbzGFhNkLEBMNw5imoL8nxEU.cache +2 -0
  98. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RK/RKIIoAsO5ihXeqgTFXIU0pbiwDyyEoLPT0OJSEk0FeA.cache +1 -0
  99. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/RY/RYs8tjEinElltP-kqfTar7cJPVXdHI51hCZP5nzxl8M.cache +0 -0
  100. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Ra/RaNEvqB7dA6k2T2W9xQxPUnN__OjWm9yWxmKuixotQM.cache +1 -0
  101. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Rc/RcuMeBIWl-vYMj0HJjgrxk4zrCSfOBvTUlndewuFMfc.cache +1 -0
  102. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S6/S68aVGMiAgB8IhZUhas9MXYzV9u0LFcnex-8fhxxWQo.cache +1 -0
  103. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S7/S7OW0dPUlfzoxTEAo1LLk3ccGn6OONvJ-KiyUfCnPO8.cache +0 -0
  104. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/S8/S86QJzxPNaB2CQXQ1SKDbWfZdTQPRFBCrhsVcRRuvdM.cache +0 -0
  105. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Sl/SlTxCkHUNAUEhd2NqEJ-mE1U3ssU30uRF251P-E6PH8.cache +1 -0
  106. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Td/Tdt1zY2kRAFN4fK4r-nzxcpdCcFSBOjUUr3QFhm1Ipw.cache +0 -0
  107. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Tr/Tr0ZgBAO791VgGmPVAXA8Fvtz-_zqfLFv1X_rfUPH3Q.cache +1 -0
  108. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/V0/V0oynPF8iyKAZX6CsVhLNy0cEn6kMz20zvgCwmhwUAo.cache +1 -0
  109. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/V9/V99EfSaCz3piQ9qb9vICLZ-gmlxEeqXIkLqm-bFZxcM.cache +1 -0
  110. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/W6/W6SY2DWCK5ODMLmxXeWRQ5sitMu-be3z-8rtaZS5AAI.cache +1 -0
  111. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/W9/W97_LwpYet6wurp7-r5keOQeC6daqrhSf9jJW0IiX38.cache +1 -0
  112. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wu/WuX1taiDT8vjVRLsLw5ocIO96TPF4D9xRrbKnhGGJLc.cache +1 -0
  113. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Wy/WyC1a013QnCOHVWvOE__FMUNl8Xaq7b0D842uw5Dd6E.cache +1 -0
  114. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/XT/XTz9VVJzoiCm8mePNq7z2HDLmk-4RFTHqplJak8jNnI.cache +0 -0
  115. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/X_/X_DqQA08T0jcOK8kvKnbuJ60g3wr_MG0JQOwQUYQ1M4.cache +1 -0
  116. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Xk/Xk88pyUkf20D7CqjKcmeUKb50zyuywSuvc38_HvLXqs.cache +0 -0
  117. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Xq/XqkLuENMTUW2nzcPyJZyEuy_5F8K-ICotABR7RArwvA.cache +0 -0
  118. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/YM/YMSkijO4OqF-va090LsCh_f3AaiBWZcHyXM4hqlhuhU.cache +1 -0
  119. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yg/YgVkiPnfqJilOEw63PgVgC-iEn4iAnKAQU6h84gneRE.cache +2 -0
  120. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yh/Yh3PlJjadcoGcCCbCTqgJU_dVe4Doy90AafGyMhu3EQ.cache +0 -0
  121. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yl/YlukUsyujAODdc0yapT61cXvvVIQ_M9YWUgpTpQTa_Y.cache +1 -0
  122. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yn/YnDhC5Hn3XGTCyvL1qKLMdenlf0kSq_sO49MBJFBkqc.cache +2 -0
  123. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Yy/Yyz39RjCPMt7Xfe2PpecPYMRbT6wP7Dvu2SmL51FycE.cache +1 -0
  124. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/Zm/ZmQObfpXFL0sGTbFRdwtB9ZijGV_xnf0-Z4-0ZbtdBI.cache +1 -0
  125. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/_R/_RCIa0Mn-0A6XVkUnYEtAI3yX80EDC6IVRjbZ6DJlg8.cache +1 -0
  126. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a6/a6c2fElJyz52FG1bzR1lcV7uaAsWFsR7vgCx-9C3Auk.cache +0 -0
  127. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/a9/a9AbcO7bHCvM_zzrZ7GY22eAdaWYE3P7D7NHlc_bqdQ.cache +1 -0
  128. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/aW/aW1eUX8Bdt6woKSobNpaGTb83qrg88NOoUXLJBS8f2M.cache +1 -0
  129. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/az/azPz0MjaMrptwfd2WrANe0mC8dv4x54NUTZ_RHwB2Fs.cache +3 -0
  130. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/b9/b938fG3-fVDu3IGFIQ5lV5QGfA6UIXSje9AeC1RS5BA.cache +1 -0
  131. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/bq/bqX4j_zZbeV8LgllrusWMRjlCAKnQopwGmBpRlR0RVo.cache +1 -0
  132. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ci/ciKCYgJ8xqkVKW7svWS-EBI8RGb17E3tr9vTADbOmIc.cache +2 -0
  133. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dC/dCASZpttrXE5-LfRPiHHj6H-V_HGzUvuumoOO-BZtBM.cache +0 -0
  134. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/dp/dpYfWRNwhMBvM4r0LC7pRLwCmYyDyXmo-W16YLyUkEY.cache +1 -0
  135. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/e4/e4KhaMiKnHNn7WbKYvSl4qLfn5XOzf7tghXekwAtk_M.cache +3 -0
  136. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eR/eR-8QRvb0sTzJvQ2cCQIK51TPovuLdHn-RY0uIyTaNc.cache +0 -0
  137. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/eX/eXrODHOUM-OXkFK5Q1CvWeg-ktPYWwG9U2Unzw62WZo.cache +2 -0
  138. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/f2/f25XXrnER1SO3RQZx9TwzvHDYO9ubMJzYw2G0vZYooQ.cache +0 -0
  139. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fH/fHcE4Kuql8zBhtB1xYJArJKc4RVJcHRkWe17NdQVfX8.cache +1 -0
  140. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/fh/fhxP1IPKmUpqSTU3iPliPz87Emd8Jy0T6pUapEY6MS8.cache +2 -0
  141. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/g3/g3meu_FE0d8HVLqnQdR6wmPl9L1IEjF6lLMbWshsISQ.cache +2 -0
  142. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/g8/g8ZIQz8KHkeKEH1tPrQyf57b_a6fkl6hhODGWcpLDYQ.cache +2 -0
  143. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/gs/gs8O-hnSVTNtAMoD9-yrTB7WC2L1NXNBheKKW_4t_xw.cache +2 -0
  144. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/h8/h8GfGN76bmpf4DLx0HLB2fDddrH97LpxgVi5S5lXEAg.cache +0 -0
  145. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hE/hE7i1PrvOReI7GbgJuGdlOZcF2exffn_eu3HcETjUtw.cache +0 -0
  146. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hE/hEfqVpUEZekaAwq2WfcTahAURqOqs8qMJRVAMBLJBbk.cache +0 -0
  147. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hh/hhBL0QAskLI4K7s0076rBPZPKRoTCQv730SRl0UkzPc.cache +1 -0
  148. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/hr/hrdt0lveCzXrHPwshGxI7NeLRCOXjcNfrOx2EajTj6k.cache +1 -0
  149. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iA/iAm5sdGtDc01QGmA7B200Gg0FWYFDncWeQhRExUjdno.cache +1 -0
  150. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iK/iKD_EVENnAK9F4ZbyFFVRdJs479d65nJ_KqAzUR5Jv4.cache +0 -0
  151. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iY/iYhimmRrdDOmXCdoOoOMlvf5hLfXlGLdIiEAuxsah00.cache +2 -0
  152. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ik/ikqi0IrytERlPVbeJrNZnd1jaKMHIIc5Blerf_4lbh4.cache +2 -0
  153. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/iy/iyXcqKtN3SUu5x5TqP48h89gLagEIEKZ3oNV7vpRvTE.cache +0 -0
  154. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jQ/jQwRPkEpFXP9FUM0TXwMKxld_lOpGGWAyiEXD6ejBws.cache +1 -0
  155. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jk/jk-Q6T8oRztqqYmSOxc_AuGgQ8U2ZCP0lxFvmRgxrc0.cache +2 -0
  156. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/jl/jl8RmdNOOcNe4aRwgcDPS7XXVowU1fD2AccWQfaAhqs.cache +1 -0
  157. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/k-/k-bsTA315sR8iUULydbJ9swQ_sbliU0Z3nmwvFduMoQ.cache +3 -0
  158. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/l1/l1lmj4PCoaRrPDXkf-ikrO7kRyONy8ClBgVCs5VsXDk.cache +3 -0
  159. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lS/lStvx9Beg2l4s8L-QdTSKuc5_qQPQAZPnIcRI7JkpPE.cache +0 -0
  160. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/lu/luWp4WzF2hyzqRLszkLOcO2OsS4BNJrwN5qkemrz5d8.cache +1 -0
  161. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mg/mgKQfCNtf8r-ZBapE8bOEFMzHCe5vL3gXf2pwytxr24.cache +0 -0
  162. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mi/mizDw234RdIIGD3Q0Cu0hurJ_NopWlAOQU101HhTnAM.cache +1 -0
  163. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/mt/mti_Jdr3zlygSo4F5-1sh1eE_lSBfg23UMyg7ntjZhs.cache +1 -0
  164. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nO/nOk1StRCpfpfcUL3LxqZXbZiPO5KoAQsu4DCr1DpHtE.cache +2 -0
  165. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +2 -0
  166. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nb/nbE9F1Lff6172JJlnsbphWWnUqAETTU97Z_0hbcISTk.cache +1 -0
  167. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +2 -0
  168. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nz/nzP2QqJ701fN4VE7Zum68yIjn8-JyOjInxMYtD4GOgQ.cache +0 -0
  169. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/nz/nzTG5PNC0h84EYWsIez6-b_sImMyN7gGVJoFetHa96A.cache +0 -0
  170. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/o8/o8FeUwaKA0MGoRb3xNsqeEpj-i4h89Sf8hAe3KclRjQ.cache +1 -0
  171. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/oa/oanPJi8vkcusQmiGR7lV83k4mqPHwrn-h5jEkFWYGXk.cache +0 -0
  172. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/om/om3gxZD0pydiYXgg-qfWU-gAruk0mzO_L4wUSX8hmwQ.cache +1 -0
  173. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/pH/pHxVy7FZk5bSzayvqSReVCBDl8tyZsinqbM-1J4LzI4.cache +0 -0
  174. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qE/qEqhM9a-t_QD3BWLpYePOl_GhIrp4pMGwjc86Zh9X0Y.cache +0 -0
  175. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qL/qLI6YmHgTOWSvK-axTrytNHMjxfvLqkfsG0feo-16uA.cache +0 -0
  176. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/q_/q_79RCHcEa48J2wTjEtUIL1PsdQJITwgO4Mbq9vqI_M.cache +0 -0
  177. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/qp/qpnn4gewy2_0O7aLG1YcbCjdvoFzZxERgl-uAb2NBiU.cache +3 -0
  178. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rM/rMH5SI34eYLP3UKN6nbXlA1g6OoeVxnGtNgR_RoMrvo.cache +1 -0
  179. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rR/rRG2fiwM_TtG63S7RueONIoSya5pJ3cxk4fJiiVCEGE.cache +1 -0
  180. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rb/rbDCS-io3L3p4WS4ZiqeLynhhonweTQEq3i9R4eLs3s.cache +1 -0
  181. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rk/rkTsARiOkJ36OhhBFKW_pFrumwIPjzwIks84HS7yIa8.cache +1 -0
  182. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/ro/roRo4i80-eCp5OBfQixarj57g1MAEFAnJXfB8yIecBU.cache +1 -0
  183. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/rv/rvPXCY9kJZYjGQOyZ6zPTQuqWqqQRgIDvwlmVSfV18Q.cache +2 -0
  184. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sD/sDrOEK64tHodTAx_0bfU-f2QfMdrSAPx3E8fz4NSXtQ.cache +0 -0
  185. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sF/sFaDgnrVymV-i1pq8oFTO7AMiXfGh8odbuZc77R1ZIo.cache +0 -0
  186. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sb/sbf6Cd6UTax4Q6dO_IJVvNIpAb-axyk2b0q8yVpnKDg.cache +0 -0
  187. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sn/sn54OOWYdB1enCZ479lEXl2UQEtuiBIXcd17agCLuG8.cache +1 -0
  188. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/sp/spHzQy8hpyOazaWV8ps2e8eEN_1JQvuZlOKKAXvP3Pg.cache +1 -0
  189. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tF/tFBBIqJk8kEXHwZodwwsDG1ZnLtHUgQExLBppHiMr70.cache +3 -0
  190. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/tJ/tJIViDUQEref41nyBH-5nKSSFyojNH6Vjzx8E_ZVosk.cache +1 -0
  191. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/th/thIhgiuMHO_3A_ryXNheW2_Y0Mw8st3BI6lUVFakJz0.cache +1 -0
  192. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/to/to3OZW5pymhvRwZejeUnb8VX7KzKj6XPWNSKAw_BD8A.cache +0 -0
  193. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/u3/u3aI9g21xngyxdELa4k2UaFOOwEezXm-FXKhlmWevFs.cache +0 -0
  194. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/u8/u8eyB2x_fVKUn-D8y1bx18f_2dk0bWeImNjqPZc6HqU.cache +1 -0
  195. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uP/uPISKnrReBm7Dy5lJ1AiQhMW0o7_2Op5cL2ZGWJh30E.cache +1 -0
  196. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uT/uT_SiFfmeEBzbzkn0IYiJAqgUxwBLiDv7sH0yujLhx0.cache +1 -0
  197. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uZ/uZShm4oTj3aMhVv0aQ-bHZO2ILpbR_YEin0O8xu69Us.cache +1 -0
  198. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/uo/uojpnZNmCSLgYSpDHacT7CXvfBiKCjsizN9Mrd7bgiA.cache +0 -0
  199. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/vH/vHIeDgPhDOSthVvhWKosHY0EA_KfxcwR62T531rRvi4.cache +1 -0
  200. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wR/wR0e_7hNLcnbWXSyeV5IwVkhy1TMqX_4t1pXsEweTDA.cache +1 -0
  201. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wY/wYscM1kVYoR9SjNgvA8tz8Yw6dGjEFb8NegK1QfM-rc.cache +1 -0
  202. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wb/wbb8AxEBVW39Lc-ueINb9976BZEGN7O3mihYMP0xc_0.cache +2 -0
  203. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wi/win_v0ZNu-l7AoRx8w3ls1xcy0mUExLBVMCSr5oaJFc.cache +0 -0
  204. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wm/wmM3XYZ7jgPQhwclqYwEvWDLmz85O03chKhUsA7oJsA.cache +2 -0
  205. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/wv/wvNggJg6YJi4vWK3DdUuyr87nWowIClLyrYPMUhlIos.cache +0 -0
  206. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xC/xCobBePQjr16SbYrc5w5Tfe9I4FoONzo9b8VWWX1zQc.cache +3 -0
  207. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xd/xd3JtG-D44e-jZ7D-VwzpgcjsRPbvL4M5iZds6iinac.cache +1 -0
  208. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/xu/xuqTCdNMrB8B8JVihwlZduwqVaT5dhHz4L4Mw-tsyL8.cache +1 -0
  209. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yE/yEhUtQr5RJwWx8_AMli6SaJhinPjfStt2_U1hlE_wQM.cache +1 -0
  210. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yF/yFwH5xg233J3ZOBZVI5OQEIGt6poH4d50zY1BaEASCs.cache +1 -0
  211. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yW/yWFZzGL5OfncjMgS6E7KYJTkzSqwjYQR9H9DJO2G3nQ.cache +1 -0
  212. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yb/ybb4Qfh3jh0WHAq6izBW-whsw6H4gGj7GYNgL3TdrBk.cache +1 -0
  213. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/yy/yyPSvwTSsaCOl4J-CXh0eadLP63wfnOJxFXz-hgCldg.cache +1 -0
  214. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/z1/z1meknNd9i0t5EYolx6FTrLlt8iRGzZatDvDjtrD3m0.cache +1 -0
  215. data/spec/dummy/tmp/cache/assets/sprockets/v3.0/zb/zbnLOSWWPYE5ydWMPKTuprAHgnao8N5vrc83ZOIe9bk.cache +1 -0
  216. data/spec/dummy/tmp/development_secret.txt +1 -1
  217. data/spec/features/de/kontakt/anfrage_spec.rb +35 -0
  218. data/spec/features/de/kontakt/whatsapp_spec.rb +41 -0
  219. metadata +280 -11
  220. data/app/assets/javascripts/cmor/contact/application/keep.js +0 -0
  221. data/app/assets/stylesheets/cmor/contact/application/keep.css +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb1d2c0142b73cb13944de57f31ea14fa60101038832653aced86e1752e32f60
4
- data.tar.gz: 6350a59021190a093328a6cb570c88e1f607ef4f935f13f9f338b7fbe2b60a4f
3
+ metadata.gz: deb3da4aa33cd2fa772b7059989850226e0cdfca2cddd9b0ccdf0814e754edcf
4
+ data.tar.gz: 93b59767b93081fffdcec34dbbaef3f24dd8a0b088adfdd1675c757a6110933b
5
5
  SHA512:
6
- metadata.gz: 5818c439c21e7ac80a65e7be505edc859e5e405cb9e3eec000c4634ca6fcd601606e4f83463404d50a1c6de3b8c265a63b247382ffed9e8e64eb61f1b837d774
7
- data.tar.gz: 6f7049631360389d6fab64792f73082681200834f2301839f11919e0b7861d7ed43a5a15f83f2bf75de9ad8c33b932e73e400d28e12df74d3b00d8191d9ba4b4
6
+ metadata.gz: 8357525514e7816387b7f92c6a1b8705ac74fdaac8b9acb97baaa9f33123418d4fcb8796bacdab21fd215f01c9252a23e9fc1d5cc893135e0944a0918cce88c9
7
+ data.tar.gz: 3b35020f4c75648fcfa7c98f527748e05d0ef2d8f1cbb36af84b5e0fd8267a749ac10945e39646fde8bac95aa3a3bbe4ca132c717f8f225d32dc69d9fdbd7e41
@@ -0,0 +1,30 @@
1
+ $ ->
2
+ initializePopover = (element) ->
3
+ url = $(element).data('url')
4
+
5
+ jqxhr = $.get(url, (data) =>
6
+ createPopover(element, data)
7
+ return
8
+ ).done(->
9
+ return
10
+ ).fail(->
11
+ return
12
+ ).always(->
13
+ return
14
+ )
15
+
16
+ createPopover = (element, data) ->
17
+ popover = $(element).popover
18
+ sanitize: false
19
+ content: data
20
+ html: true
21
+ trigger: 'click'
22
+ return
23
+
24
+ initializePopover('#cmor-contact-whatsapp-popover-button')
25
+
26
+ $(document).on 'keypress', 'textarea', (e) ->
27
+ if e.which == 13 and !e.shiftKey
28
+ $(this).closest('form').submit()
29
+ e.preventDefault()
30
+ return
@@ -0,0 +1 @@
1
+ //= require cmor/contact/application
@@ -0,0 +1,32 @@
1
+ .page-action {
2
+ position: fixed;
3
+ bottom: 1rem;
4
+ right: 1rem;
5
+ }
6
+
7
+ .btn-circle {
8
+ width: 30px;
9
+ height: 30px;
10
+ padding: 6px 0px !important;
11
+ border-radius: 15px;
12
+ text-align: center;
13
+ font-size: 12px;
14
+ line-height: 1.42857;
15
+ }
16
+
17
+ .btn-circle.btn-lg {
18
+ width: 50px;
19
+ height: 50px;
20
+ border-radius: 25px;
21
+ font-size: 28px;
22
+ }
23
+
24
+ .btn-whatsapp {
25
+ background-color: #00E676 !important;
26
+ border-color: #00E676 !important;
27
+ color: white !important;
28
+ }
29
+
30
+ .popover #new_whatsapp_request textarea {
31
+ font-size: 80%;
32
+ }
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require cmor/contact/application
3
+ */
@@ -0,0 +1,60 @@
1
+ module Cmor
2
+ module Contact
3
+ class WhatsappRequestsController < Cmor::Contact::Configuration.base_controller.constantize
4
+ before_action :initialize_resource, only: [:index, :new]
5
+ before_action :initialize_resource_for_create, only: [:create]
6
+
7
+ respond_to :html
8
+ responders :flash
9
+
10
+ def self.resource_class
11
+ Cmor::Contact::WhatsappRequest
12
+ end
13
+
14
+ def index
15
+ new
16
+ if request.xhr?
17
+ render :new_xhr, layout: false
18
+ else
19
+ render :new
20
+ end
21
+ end
22
+
23
+ def new; end
24
+
25
+ def create
26
+ if @resource.valid?
27
+ respond_with @resource, location: after_create_url
28
+ else
29
+ respond_with @resource
30
+ end
31
+ end
32
+
33
+ private
34
+
35
+ def initialize_resource_for_create
36
+ @resource = initialize_scope.new(permitted_params)
37
+ end
38
+
39
+ def initialize_resource
40
+ @resource = initialize_scope.new
41
+ end
42
+
43
+ def initialize_scope
44
+ resource_class
45
+ end
46
+
47
+ def resource_class
48
+ self.class.resource_class
49
+ end
50
+
51
+ def permitted_params
52
+ params.require(:whatsapp_request).permit(:message)
53
+ end
54
+
55
+ def after_create_url
56
+ @resource.whatsapp_link
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,17 @@
1
+ module Cmor::Contact
2
+ class WhatsappRequest
3
+ include ActiveModel::Model
4
+
5
+ attr_accessor :message
6
+
7
+ validates :message, presence: true
8
+
9
+ def whatsapp_link
10
+ "https://wa.me/#{number_for_url}?text=#{URI.encode(message)}"
11
+ end
12
+
13
+ def number_for_url
14
+ Cmor::Contact::Configuration.whatsapp_number&.gsub("+", "")&.gsub(" ", "")
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ module Cmor
2
+ module Contact
3
+ # Example:
4
+ #
5
+ # # app/controllers/application_controller.rb
6
+ # class ApplicationController < ActionController::Base
7
+ # view_helper Cmor::Contact::ApplicationViewHelper, as: :contact_helper
8
+ # end
9
+ #
10
+ class ApplicationViewHelper < Rao::ViewHelper::Base
11
+ # Example:
12
+ #
13
+ # # app/views/layouts/application.html.haml
14
+ # = contact_helper(self).render_whatsapp_widget
15
+ #
16
+ def render_whatsapp_widget(options = {})
17
+ resource = Cmor::Contact::WhatsappRequest.new
18
+ render resource: resource
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,4 @@
1
+ .page-action
2
+ #page-action-whatsapp
3
+ %button.btn.btn-lg.btn-primary.btn-circle.btn-whatsapp{ id: "cmor-contact-whatsapp-popover-button", data: { container: "body", toggle: "cmor-contact-whatsapp-popover", boundary: 'viewport', url: cmor_contact.whatsapp_requests_path } }
4
+ %i.fab.fa-whatsapp
@@ -0,0 +1 @@
1
+ = form.input :message, as: :text
@@ -0,0 +1,6 @@
1
+ - if resource.errors.any?
2
+ .error-explanation.alert.alert-danger
3
+ .error-heading= t('errors.template.header', count: resource.errors.count, model: resource.model_name.human)
4
+ %ul
5
+ - resource.errors.full_messages.each do |msg|
6
+ %li= msg
@@ -0,0 +1 @@
1
+ = form.input :message, as: :text, label: false, input_html: { cols: 20, rows: 10 }
@@ -0,0 +1,6 @@
1
+ %h1= t('.title')
2
+
3
+ = simple_form_for(@resource) do |f|
4
+ = render 'form_errors', resource: f.object
5
+ = render 'form', form: f
6
+ = f.submit class: 'btn btn-primary'
@@ -0,0 +1,3 @@
1
+ = simple_form_for(@resource, html: { target: '_blank' }) do |f|
2
+ = render 'form_errors', resource: f.object
3
+ = render 'form_xhr', form: f
@@ -0,0 +1 @@
1
+ Rails.application.config.assets.precompile += %w( cmor_contact.css cmor_contact.js )
@@ -1,6 +1,14 @@
1
1
  de:
2
2
  classes:
3
3
  cmor/contact/engine: Kontakt
4
+ activemodel:
5
+ models:
6
+ cmor/contact/whatsapp_request:
7
+ one: WhatsApp Anfrage
8
+ other: WhatsApp Anfragen
9
+ attributes:
10
+ cmor/contact/whatsapp_request:
11
+ message: Nachricht
4
12
  activerecord:
5
13
  models:
6
14
  cmor/contact/contact_request:
@@ -28,6 +36,9 @@ de:
28
36
  notify:
29
37
  subject: "[%{application_name}] Neue Kontaktanfrage"
30
38
  title: "Neue Kontaktanfrage"
39
+ whatsapp_requests:
40
+ new:
41
+ title: Anfrage über WhatsApp
31
42
  flash:
32
43
  cmor:
33
44
  contact:
@@ -38,9 +49,12 @@ de:
38
49
  submit:
39
50
  contact_request:
40
51
  create: Absenden
52
+ whatsapp_request:
53
+ create: Absenden
41
54
  routes:
42
55
  cmor_contact_engine: kontakt
43
56
  contact_requests: anfrage
57
+ whatsapp_requests: whatsapp
44
58
  simple_form:
45
59
  labels:
46
60
  contact_request:
@@ -51,4 +65,6 @@ de:
51
65
  email: "max.mustermann@example.com"
52
66
  message: "Meine Nachricht"
53
67
  phone: "+49 69 12345678"
54
- subject: "Meine Anfrage"
68
+ subject: "Meine Anfrage"
69
+ whatsapp_request:
70
+ message: "Hallo, wie können wir Ihnen helfen? Senden Sie uns eine Nachricht über WhatsApp."
@@ -1,6 +1,14 @@
1
1
  en:
2
2
  classes:
3
3
  cmor/contact/engine: Contact
4
+ activemodel:
5
+ models:
6
+ cmor/contact/whatsapp_request:
7
+ one: WhatsApp Request
8
+ other: WhatsApp Requests
9
+ attributes:
10
+ cmor/contact/whatsapp_request:
11
+ message: Message
4
12
  activerecord:
5
13
  models:
6
14
  cmor/contact/contact_request:
@@ -28,6 +36,9 @@ en:
28
36
  notify:
29
37
  subject: "[%{application_name}] New contact request"
30
38
  title: "New contact request"
39
+ whatsapp_requests:
40
+ new:
41
+ title: Contact Request via WhatsApp
31
42
  flash:
32
43
  cmor:
33
44
  contact:
@@ -38,9 +49,12 @@ en:
38
49
  submit:
39
50
  contact_request:
40
51
  create: Submit
52
+ whatsapp_request:
53
+ create: Submit
41
54
  routes:
42
55
  cmor_contact_engine: contact
43
56
  contact_requests: request
57
+ whatsapp_requests: whatsapp
44
58
  simple_form:
45
59
  labels:
46
60
  contact_request:
@@ -50,4 +64,6 @@ en:
50
64
  name: "John Doe"
51
65
  email: "john.doe@example.com"
52
66
  message: "Hi Dave..."
53
- phone: "+1-541-754-3010"
67
+ phone: "+1-541-754-3010"
68
+ whatsapp_request:
69
+ message: "Hallo, how may we help you? Send us a message via WhatsApp."
data/config/routes.rb CHANGED
@@ -2,6 +2,7 @@ Cmor::Contact::Engine.routes.draw do
2
2
  localized do
3
3
  scope :cmor_contact_engine do
4
4
  resources :contact_requests, only: [:create, :index]
5
+ resources :whatsapp_requests, only: [:create, :index]
5
6
 
6
7
  root to: 'contact_requests#index'
7
8
  end
@@ -55,6 +55,9 @@ module Cmor
55
55
  mattr_accessor :contact_request_include_modules do
56
56
  ->() { [Cmor::Contact::ContactRequest::PhoneConcern] }
57
57
  end
58
+ mattr_accessor :whatsapp_number do
59
+ nil
60
+ end
58
61
  end
59
62
  end
60
63
  end
data/lib/cmor_contact.rb CHANGED
@@ -1,3 +1,7 @@
1
1
  require "cmor_core"
2
+ require "cmor_core_frontend"
3
+ require "haml-rails"
4
+ require "simple_form"
5
+ require "coffee-rails"
2
6
 
3
7
  require "cmor/contact"
@@ -95,4 +95,12 @@ Cmor::Contact.configure do |config|
95
95
  # Default: config.contact_request_include_modules = ->() { [Cmor::Contact::ContactRequest::PhoneConcern] }
96
96
  #
97
97
  config.contact_request_include_modules = ->() { [Cmor::Contact::ContactRequest::PhoneConcern] }
98
+
99
+ # Set the whatsapp number for the whatsapp contact widget.
100
+ #
101
+ # Example: config.default_whatsapp_number = "+49 123 4567890"
102
+ #
103
+ # Default: config.whatsapp_number = nil
104
+ #
105
+ config.whatsapp_number = nil
98
106
  end
@@ -14,6 +14,7 @@ require "sprockets/railtie"
14
14
  # require "rails/test_unit/railtie"
15
15
 
16
16
  Bundler.require(*Rails.groups)
17
+ require "responders"
17
18
  require "cmor_contact"
18
19
 
19
20
  module Dummy
@@ -84,4 +84,23 @@ Cmor::Contact.configure do |config|
84
84
  # default: config.sender = ->(mail_form) { %("#{mail_form.name}" <#{mail_form.email}>) }
85
85
  #
86
86
  config.sender = ->(mail_form) { %("#{mail_form.name}" <#{mail_form.email}>) }
87
+
88
+ # Modules listed here will be included in Cmor::Contact::ContactRequest.
89
+ #
90
+ # Available modules are:
91
+ #
92
+ # - Cmor::Contact::ContactRequest::PhoneConcern
93
+ # - Cmor::Contact::ContactRequest::SubjectConcern
94
+ #
95
+ # Default: config.contact_request_include_modules = ->() { [Cmor::Contact::ContactRequest::PhoneConcern] }
96
+ #
97
+ config.contact_request_include_modules = ->() { [Cmor::Contact::ContactRequest::PhoneConcern] }
98
+
99
+ # Set the whatsapp number for the whatsapp contact widget.
100
+ #
101
+ # Example: config.default_whatsapp_number = "+49 123 4567890"
102
+ #
103
+ # Default: config.whatsapp_number = nil
104
+ #
105
+ config.whatsapp_number = nil
87
106
  end
@@ -0,0 +1,3 @@
1
+ RouteTranslator.config do |config|
2
+ config.force_locale = true
3
+ end
Binary file
@@ -10,7 +10,7 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 2019_07_15_162742) do
13
+ ActiveRecord::Schema.define(version: 2020_01_19_053558) do
14
14
 
15
15
  create_table "active_storage_attachments", force: :cascade do |t|
16
16
  t.string "name", null: false
Binary file
@@ -1,49 +1,49 @@
1
-  (0.4ms) SELECT sqlite_version(*)
1
+  (0.1ms) SELECT sqlite_version(*)
2
2
  ↳ bin/rails:4
3
-  (6.7ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
3
+  (3.6ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
4
4
  ↳ bin/rails:4
5
-  (5.3ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
5
+  (4.0ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
6
6
  ↳ bin/rails:4
7
-  (0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
7
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
8
8
  ↳ bin/rails:4
9
- Migrating to CreateActiveStorageTables (20190715162723)
9
+ Migrating to CreateActiveStorageTables (20200119053533)
10
10
   (0.1ms) begin transaction
11
11
  ↳ bin/rails:4
12
-  (0.7ms) CREATE TABLE "active_storage_blobs" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "key" varchar NOT NULL, "filename" varchar NOT NULL, "content_type" varchar, "metadata" text, "byte_size" bigint NOT NULL, "checksum" varchar NOT NULL, "created_at" datetime NOT NULL)
13
- ↳ db/migrate/20190715162723_create_active_storage_tables.active_storage.rb:4
14
-  (0.3ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key")
15
- ↳ db/migrate/20190715162723_create_active_storage_tables.active_storage.rb:4
16
-  (0.5ms) CREATE TABLE "active_storage_attachments" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "record_type" varchar NOT NULL, "record_id" integer NOT NULL, "blob_id" integer NOT NULL, "created_at" datetime NOT NULL, CONSTRAINT "fk_rails_c3b3935057"
12
+  (0.4ms) CREATE TABLE "active_storage_blobs" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "key" varchar NOT NULL, "filename" varchar NOT NULL, "content_type" varchar, "metadata" text, "byte_size" bigint NOT NULL, "checksum" varchar NOT NULL, "created_at" datetime NOT NULL)
13
+ ↳ db/migrate/20200119053533_create_active_storage_tables.active_storage.rb:4
14
+  (0.2ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key")
15
+ ↳ db/migrate/20200119053533_create_active_storage_tables.active_storage.rb:4
16
+  (0.3ms) CREATE TABLE "active_storage_attachments" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "record_type" varchar NOT NULL, "record_id" integer NOT NULL, "blob_id" integer NOT NULL, "created_at" datetime NOT NULL, CONSTRAINT "fk_rails_c3b3935057"
17
17
  FOREIGN KEY ("blob_id")
18
18
  REFERENCES "active_storage_blobs" ("id")
19
19
  )
20
- ↳ db/migrate/20190715162723_create_active_storage_tables.active_storage.rb:16
20
+ ↳ db/migrate/20200119053533_create_active_storage_tables.active_storage.rb:16
21
21
   (0.2ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id")
22
- ↳ db/migrate/20190715162723_create_active_storage_tables.active_storage.rb:16
23
-  (0.3ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id")
24
- ↳ db/migrate/20190715162723_create_active_storage_tables.active_storage.rb:16
25
- ActiveRecord::SchemaMigration Create (0.6ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20190715162723"]]
22
+ ↳ db/migrate/20200119053533_create_active_storage_tables.active_storage.rb:16
23
+  (0.2ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id")
24
+ ↳ db/migrate/20200119053533_create_active_storage_tables.active_storage.rb:16
25
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20200119053533"]]
26
26
  ↳ bin/rails:4
27
-  (6.1ms) commit transaction
27
+  (3.2ms) commit transaction
28
28
  ↳ bin/rails:4
29
- Migrating to CreateCmorContactContactRequests (20190715162742)
30
-  (0.2ms) begin transaction
29
+ Migrating to CreateCmorContactContactRequests (20200119053558)
30
+  (0.1ms) begin transaction
31
31
  ↳ bin/rails:4
32
-  (1.0ms) CREATE TABLE "cmor_contact_contact_requests" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "email" varchar, "phone" varchar, "ip_address" varchar, "message" text, "accept_terms_of_service" boolean, "notified_at" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
33
- ↳ db/migrate/20190715162742_create_cmor_contact_contact_requests.cmor_contact.rb:4
34
- ActiveRecord::SchemaMigration Create (0.7ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20190715162742"]]
32
+  (0.4ms) CREATE TABLE "cmor_contact_contact_requests" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "email" varchar, "phone" varchar, "ip_address" varchar, "message" text, "accept_terms_of_service" boolean, "notified_at" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
33
+ ↳ db/migrate/20200119053558_create_cmor_contact_contact_requests.cmor_contact.rb:4
34
+ ActiveRecord::SchemaMigration Create (0.2ms) INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20200119053558"]]
35
35
  ↳ bin/rails:4
36
-  (5.4ms) commit transaction
36
+  (3.3ms) commit transaction
37
37
  ↳ bin/rails:4
38
- ActiveRecord::InternalMetadata Load (0.5ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
38
+ ActiveRecord::InternalMetadata Load (0.3ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
39
39
  ↳ bin/rails:4
40
40
   (0.1ms) begin transaction
41
41
  ↳ bin/rails:4
42
- ActiveRecord::InternalMetadata Create (0.9ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2019-07-15 16:27:42.203838"], ["updated_at", "2019-07-15 16:27:42.203838"]]
42
+ ActiveRecord::InternalMetadata Create (0.3ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2020-01-19 05:35:58.530428"], ["updated_at", "2020-01-19 05:35:58.530428"]]
43
43
  ↳ bin/rails:4
44
-  (5.4ms) commit transaction
44
+  (3.1ms) commit transaction
45
45
  ↳ bin/rails:4
46
-  (0.6ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
46
+  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
47
47
  ↳ bin/rails:4
48
48
   (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
49
49
  ↳ bin/rails:4
@@ -51,58 +51,58 @@ Migrating to CreateCmorContactContactRequests (20190715162742)
51
51
  ↳ bin/rails:4
52
52
   (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
53
53
  ↳ bin/rails:4
54
-  (0.2ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
54
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
55
55
  ↳ bin/rails:4
56
-  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
56
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
57
57
  ↳ bin/rails:4
58
-  (0.3ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
58
+  (0.1ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? [["key", "environment"]]
59
59
  ↳ bin/rails:4
60
60
   (0.1ms) DROP TABLE IF EXISTS "active_storage_attachments"
61
61
  ↳ db/schema.rb:15
62
62
   (0.2ms) SELECT sqlite_version(*)
63
63
  ↳ db/schema.rb:15
64
-  (7.3ms) CREATE TABLE "active_storage_attachments" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "record_type" varchar NOT NULL, "record_id" integer NOT NULL, "blob_id" integer NOT NULL, "created_at" datetime NOT NULL)
64
+  (4.4ms) CREATE TABLE "active_storage_attachments" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "record_type" varchar NOT NULL, "record_id" integer NOT NULL, "blob_id" integer NOT NULL, "created_at" datetime NOT NULL)
65
65
  ↳ db/schema.rb:15
66
-  (5.8ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id")
66
+  (3.4ms) CREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id")
67
67
  ↳ db/schema.rb:15
68
-  (4.0ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id")
68
+  (17.6ms) CREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id")
69
69
  ↳ db/schema.rb:15
70
-  (0.3ms) DROP TABLE IF EXISTS "active_storage_blobs"
70
+  (0.1ms) DROP TABLE IF EXISTS "active_storage_blobs"
71
71
  ↳ db/schema.rb:25
72
-  (3.9ms) CREATE TABLE "active_storage_blobs" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "key" varchar NOT NULL, "filename" varchar NOT NULL, "content_type" varchar, "metadata" text, "byte_size" bigint NOT NULL, "checksum" varchar NOT NULL, "created_at" datetime NOT NULL)
72
+  (9.4ms) CREATE TABLE "active_storage_blobs" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "key" varchar NOT NULL, "filename" varchar NOT NULL, "content_type" varchar, "metadata" text, "byte_size" bigint NOT NULL, "checksum" varchar NOT NULL, "created_at" datetime NOT NULL)
73
73
  ↳ db/schema.rb:25
74
-  (3.7ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key")
74
+  (17.5ms) CREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key")
75
75
  ↳ db/schema.rb:25
76
-  (0.2ms) DROP TABLE IF EXISTS "cmor_contact_contact_requests"
76
+  (0.1ms) DROP TABLE IF EXISTS "cmor_contact_contact_requests"
77
77
  ↳ db/schema.rb:36
78
-  (3.5ms) CREATE TABLE "cmor_contact_contact_requests" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "email" varchar, "phone" varchar, "ip_address" varchar, "message" text, "accept_terms_of_service" boolean, "notified_at" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
78
+  (19.5ms) CREATE TABLE "cmor_contact_contact_requests" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "email" varchar, "phone" varchar, "ip_address" varchar, "message" text, "accept_terms_of_service" boolean, "notified_at" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
79
79
  ↳ db/schema.rb:36
80
-  (4.3ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
80
+  (12.1ms) CREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)
81
81
  ↳ db/schema.rb:13
82
-  (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
82
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
83
83
  ↳ db/schema.rb:13
84
-  (3.5ms) INSERT INTO "schema_migrations" (version) VALUES (20190715162742)
84
+  (10.7ms) INSERT INTO "schema_migrations" (version) VALUES (20200119053558)
85
85
  ↳ db/schema.rb:13
86
-  (3.4ms) INSERT INTO "schema_migrations" (version) VALUES
87
- (20190715162723);
86
+  (13.1ms) INSERT INTO "schema_migrations" (version) VALUES
87
+ (20200119053533);
88
88
 
89
89
  
90
90
  ↳ db/schema.rb:13
91
-  (3.6ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
91
+  (3.9ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
92
92
  ↳ db/schema.rb:13
93
93
  ActiveRecord::InternalMetadata Load (0.2ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
94
94
  ↳ db/schema.rb:13
95
-  (0.1ms) begin transaction
95
+  (0.0ms) begin transaction
96
96
  ↳ db/schema.rb:13
97
- ActiveRecord::InternalMetadata Create (0.4ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2019-07-15 16:27:42.327279"], ["updated_at", "2019-07-15 16:27:42.327279"]]
97
+ ActiveRecord::InternalMetadata Create (0.3ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "development"], ["created_at", "2020-01-19 05:35:58.686513"], ["updated_at", "2020-01-19 05:35:58.686513"]]
98
98
  ↳ db/schema.rb:13
99
-  (3.5ms) commit transaction
99
+  (9.0ms) commit transaction
100
100
  ↳ db/schema.rb:13
101
- ActiveRecord::InternalMetadata Load (0.2ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
101
+ ActiveRecord::InternalMetadata Load (0.1ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
102
102
  ↳ bin/rails:4
103
103
   (0.1ms) begin transaction
104
104
  ↳ bin/rails:4
105
- ActiveRecord::InternalMetadata Update (0.4ms) UPDATE "ar_internal_metadata" SET "value" = ?, "updated_at" = ? WHERE "ar_internal_metadata"."key" = ? [["value", "test"], ["updated_at", "2019-07-15 16:27:42.337793"], ["key", "environment"]]
105
+ ActiveRecord::InternalMetadata Update (0.2ms) UPDATE "ar_internal_metadata" SET "value" = ?, "updated_at" = ? WHERE "ar_internal_metadata"."key" = ? [["value", "test"], ["updated_at", "2020-01-19 05:35:58.701308"], ["key", "environment"]]
106
106
  ↳ bin/rails:4
107
-  (3.4ms) commit transaction
107
+  (2.5ms) commit transaction
108
108
  ↳ bin/rails:4