wco_email 0.1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (183) hide show
  1. checksums.yaml +7 -0
  2. data/README.txt +129 -0
  3. data/Rakefile +5 -0
  4. data/app/assets/config/wco_email_manifest.js +7 -0
  5. data/app/assets/javascript/vendor-trash/jquery-ui.min.js +13 -0
  6. data/app/assets/javascript/vendor-trash/jquery.fileupload.js +1482 -0
  7. data/app/assets/javascript/vendor-trash/jquery.iframe-transport.js +224 -0
  8. data/app/assets/javascript/vendor-trash/jquery.ui.widget.js +572 -0
  9. data/app/assets/javascript/vendor-trash/summernote-bs4.min.js +3 -0
  10. data/app/assets/javascript/wco_email/application.js +11 -0
  11. data/app/assets/javascript/wco_email/contexts.js +19 -0
  12. data/app/assets/javascript/wco_email/conversations.js +177 -0
  13. data/app/assets/javascript/wco_email/file_upload.js-trash +32 -0
  14. data/app/assets/javascript/wco_email/shared.js +22 -0
  15. data/app/assets/stylesheets/wco_email/application.scss +29 -0
  16. data/app/assets/stylesheets/wco_email/contexts.scss +63 -0
  17. data/app/assets/stylesheets/wco_email/conversations.scss +16 -0
  18. data/app/assets/stylesheets/wco_email/tags.scss +6 -0
  19. data/app/controllers/wco_email/application_controller.rb +16 -0
  20. data/app/controllers/wco_email/contexts_controller.rb +156 -0
  21. data/app/controllers/wco_email/conversations_controller.rb +129 -0
  22. data/app/controllers/wco_email/email_action_templates_controller.rb +77 -0
  23. data/app/controllers/wco_email/email_actions_controller.rb +55 -0
  24. data/app/controllers/wco_email/email_campaigns_controller.rb +73 -0
  25. data/app/controllers/wco_email/email_filters_controller.rb +72 -0
  26. data/app/controllers/wco_email/email_layouts_controller.rb +13 -0
  27. data/app/controllers/wco_email/email_templates_controller.rb +124 -0
  28. data/app/controllers/wco_email/message_stubs_controller.rb +14 -0
  29. data/app/controllers/wco_email/messages_controller.rb +28 -0
  30. data/app/controllers/wco_email/obfuscated_redirects_controller.rb +20 -0
  31. data/app/controllers/wco_email/sessions_controller.rb +19 -0
  32. data/app/controllers/wco_email/unsubscribes_controller.rb +40 -0
  33. data/app/helpers/wco_email/application_helper.rb +20 -0
  34. data/app/jobs/wco_email/message_intake_job.rb +54 -0
  35. data/app/mailers/wco_email/application_mailer.rb +98 -0
  36. data/app/views/202212 Mailchimp Templates/202212 1col fixed-width.html +863 -0
  37. data/app/views/202212 Mailchimp Templates/202212 1col full-width.html +906 -0
  38. data/app/views/202212 Mailchimp Templates/202212 2col fixed-width 2.html +1003 -0
  39. data/app/views/202212 Mailchimp Templates/202212 2col fixed-width.html +1082 -0
  40. data/app/views/202212 Mailchimp Templates/202212 2col full-width 2.html +1053 -0
  41. data/app/views/202212 Mailchimp Templates/202212 2col full-width.html +1147 -0
  42. data/app/views/202212 Mailchimp Templates/202212 3col fixed-width.html +1087 -0
  43. data/app/views/202212 Mailchimp Templates/202212 3col full-width.html +1136 -0
  44. data/app/views/202212 Mailchimp Templates/202212 catalog various-colors-1.html +1223 -0
  45. data/app/views/202212 Mailchimp Templates/202212 educate.html +1080 -0
  46. data/app/views/202212 Mailchimp Templates/202212 follow up.html +1001 -0
  47. data/app/views/202212 Mailchimp Templates/202212 make an announcement.html +1048 -0
  48. data/app/views/202212 Mailchimp Templates/202212 sell-a-product.html +977 -0
  49. data/app/views/202212 Mailchimp Templates/202212 tell a story.html +1168 -0
  50. data/app/views/202212 Mailchimp Templates/202212 theme art-newsletter.html +1612 -0
  51. data/app/views/202212 Mailchimp Templates/202212 theme caribou-xmas.html +856 -0
  52. data/app/views/202212 Mailchimp Templates/202212 theme colorbox.html +1027 -0
  53. data/app/views/202212 Mailchimp Templates/202212 theme competition-invitation.html +918 -0
  54. data/app/views/202212 Mailchimp Templates/202212 theme event-veerle.html +1132 -0
  55. data/app/views/202212 Mailchimp Templates/202212 theme fall-colors.html +1407 -0
  56. data/app/views/202212 Mailchimp Templates/202212 theme gift-giving.html +787 -0
  57. data/app/views/202212 Mailchimp Templates/202212 theme giftgiving-snowmen.html +731 -0
  58. data/app/views/202212 Mailchimp Templates/202212 theme heart-of-flowers.html +795 -0
  59. data/app/views/202212 Mailchimp Templates/202212 theme hero-card.html +915 -0
  60. data/app/views/202212 Mailchimp Templates/202212 theme hero-image.html +1148 -0
  61. data/app/views/202212 Mailchimp Templates/202212 theme monthly-contest.html +967 -0
  62. data/app/views/202212 Mailchimp Templates/202212 theme multiple-event.html +1189 -0
  63. data/app/views/202212 Mailchimp Templates/202212 theme postcard.html +914 -0
  64. data/app/views/202212 Mailchimp Templates/202212 theme snowy-fields.html +733 -0
  65. data/app/views/202212 Mailchimp Templates/202212 theme soft.html +849 -0
  66. data/app/views/202212 Mailchimp Templates/202212 theme sophisticated.html +1079 -0
  67. data/app/views/202212 Mailchimp Templates/202212 theme subtle.html +1218 -0
  68. data/app/views/202212 Mailchimp Templates/202212 theme ticket.html +1015 -0
  69. data/app/views/202212 Mailchimp Templates/202212 theme whale.html +888 -0
  70. data/app/views/202310 Email Templates/_acknowledgement_of_document_receipt.html.erb +23 -0
  71. data/app/views/202310 Email Templates/_support_ticket_created.html.erb +26 -0
  72. data/app/views/layouts/wco_email/application.haml +64 -0
  73. data/app/views/layouts/wco_email/mailbox.haml-trash +62 -0
  74. data/app/views/wco_email/_analytics.erb +16 -0
  75. data/app/views/wco_email/_main_header.haml +31 -0
  76. data/app/views/wco_email/_sidebar.haml +10 -0
  77. data/app/views/wco_email/application_mailer/_footer_unsubscribe.html.erb +24 -0
  78. data/app/views/wco_email/application_mailer/_header_logo.html.erb +12 -0
  79. data/app/views/wco_email/application_mailer/forwarder_notify.html.erb +17 -0
  80. data/app/views/wco_email/contexts/_form.haml +59 -0
  81. data/app/views/wco_email/contexts/_form_reply.haml +27 -0
  82. data/app/views/wco_email/contexts/_header.haml +22 -0
  83. data/app/views/wco_email/contexts/_index.haml +8 -0
  84. data/app/views/wco_email/contexts/edit.haml +8 -0
  85. data/app/views/wco_email/contexts/iframe_src.haml +3 -0
  86. data/app/views/wco_email/contexts/index.haml +51 -0
  87. data/app/views/wco_email/contexts/new.haml +5 -0
  88. data/app/views/wco_email/contexts/show.haml +34 -0
  89. data/app/views/wco_email/contexts/summary.csv.erb +4 -0
  90. data/app/views/wco_email/contexts/summary.haml +16 -0
  91. data/app/views/wco_email/conversations/_actions.haml +21 -0
  92. data/app/views/wco_email/conversations/_search.haml +14 -0
  93. data/app/views/wco_email/conversations/index.haml +43 -0
  94. data/app/views/wco_email/conversations/show.haml +27 -0
  95. data/app/views/wco_email/email_action_templates/_form.haml +45 -0
  96. data/app/views/wco_email/email_action_templates/_header.haml +8 -0
  97. data/app/views/wco_email/email_action_templates/edit.haml +7 -0
  98. data/app/views/wco_email/email_action_templates/index.haml +36 -0
  99. data/app/views/wco_email/email_action_templates/new.haml +9 -0
  100. data/app/views/wco_email/email_action_templates/show.haml +11 -0
  101. data/app/views/wco_email/email_actions/_form.haml +24 -0
  102. data/app/views/wco_email/email_actions/_form_mini.haml-trash +28 -0
  103. data/app/views/wco_email/email_actions/_header.haml +8 -0
  104. data/app/views/wco_email/email_actions/edit.haml +4 -0
  105. data/app/views/wco_email/email_actions/index.haml +31 -0
  106. data/app/views/wco_email/email_actions/new.haml +4 -0
  107. data/app/views/wco_email/email_actions/show.haml +0 -0
  108. data/app/views/wco_email/email_campaigns/_form.haml +33 -0
  109. data/app/views/wco_email/email_campaigns/_header.haml +5 -0
  110. data/app/views/wco_email/email_campaigns/edit.haml +5 -0
  111. data/app/views/wco_email/email_campaigns/index.haml +14 -0
  112. data/app/views/wco_email/email_campaigns/new.haml +5 -0
  113. data/app/views/wco_email/email_campaigns/show.haml +17 -0
  114. data/app/views/wco_email/email_filters/_form.haml +40 -0
  115. data/app/views/wco_email/email_filters/_header.haml +5 -0
  116. data/app/views/wco_email/email_filters/edit.haml +5 -0
  117. data/app/views/wco_email/email_filters/index.haml +48 -0
  118. data/app/views/wco_email/email_filters/new.haml +5 -0
  119. data/app/views/wco_email/email_templates/_form.haml +48 -0
  120. data/app/views/wco_email/email_templates/_form_mini.haml +9 -0
  121. data/app/views/wco_email/email_templates/_form_reply_mini.haml +8 -0
  122. data/app/views/wco_email/email_templates/_form_schedule_mini.haml +11 -0
  123. data/app/views/wco_email/email_templates/_header.haml +6 -0
  124. data/app/views/wco_email/email_templates/_index.haml +26 -0
  125. data/app/views/wco_email/email_templates/_index_expanded.haml +13 -0
  126. data/app/views/wco_email/email_templates/_m20221201react.html.erb +1202 -0
  127. data/app/views/wco_email/email_templates/_m20221222merryxmas.html.erb +766 -0
  128. data/app/views/wco_email/email_templates/_m202309_feedback.html.erb +1161 -0
  129. data/app/views/wco_email/email_templates/_m202309_ror4.html.erb +1068 -0
  130. data/app/views/wco_email/email_templates/_marketing_node_1.html.erb +984 -0
  131. data/app/views/wco_email/email_templates/_marketing_react_1.html +0 -0
  132. data/app/views/wco_email/email_templates/_marketing_react_2.html.erb +749 -0
  133. data/app/views/wco_email/email_templates/_marketing_react_3.html.erb +628 -0
  134. data/app/views/wco_email/email_templates/_marketing_ror_1.html +751 -0
  135. data/app/views/wco_email/email_templates/_marketing_ror_2.html.erb +755 -0
  136. data/app/views/wco_email/email_templates/_marketing_ror_3.html.erb +25 -0
  137. data/app/views/wco_email/email_templates/_marketing_ror_4.html.erb +25 -0
  138. data/app/views/wco_email/email_templates/_marketing_ror_5.html.erb +17 -0
  139. data/app/views/wco_email/email_templates/_marketing_wordpress_1.html +0 -0
  140. data/app/views/wco_email/email_templates/_marketing_wordpress_2.html +0 -0
  141. data/app/views/wco_email/email_templates/_meta.haml +6 -0
  142. data/app/views/wco_email/email_templates/_piousbox_roundborders.html.erb +1007 -0
  143. data/app/views/wco_email/email_templates/_piousbox_social.html.erb +181 -0
  144. data/app/views/wco_email/email_templates/_plain.haml +15 -0
  145. data/app/views/wco_email/email_templates/_rec_resume_shared_with_you.html.erb +39 -0
  146. data/app/views/wco_email/email_templates/_slug-1.html.erb +0 -0
  147. data/app/views/wco_email/email_templates/_slug-2.html.erb +0 -0
  148. data/app/views/wco_email/email_templates/_slug-3.html.erb +0 -0
  149. data/app/views/wco_email/email_templates/_tracking_footer.html.erb +13 -0
  150. data/app/views/wco_email/email_templates/_wasyaco_roundborders.html.erb +686 -0
  151. data/app/views/wco_email/email_templates/_wasyaco_social.html.erb +181 -0
  152. data/app/views/wco_email/email_templates/edit.haml +6 -0
  153. data/app/views/wco_email/email_templates/new.haml +6 -0
  154. data/app/views/wco_email/email_templates/show.haml +11 -0
  155. data/app/views/wco_email/email_templates/show_iframe.haml +2 -0
  156. data/app/views/wco_email/lead_action_templates/_header.haml +7 -0
  157. data/app/views/wco_email/lead_actions/_header.haml +8 -0
  158. data/app/views/wco_email/message_stubs/_index.haml +10 -0
  159. data/app/views/wco_email/messages/_form_reply.haml-trash +17 -0
  160. data/app/views/wco_email/messages/_meta.haml +30 -0
  161. data/app/views/wco_email/messages/show.haml +13 -0
  162. data/app/views/wco_email/messages/show_iframe.haml +5 -0
  163. data/app/views/wco_email/sessions/new.html.erb +4 -0
  164. data/app/views/wco_email/unsubscribes/_header.haml +4 -0
  165. data/app/views/wco_email/unsubscribes/_table.haml +22 -0
  166. data/config/initializers/assets.rb +10 -0
  167. data/config/routes.rb +49 -0
  168. data/lib/tasks/bjjcollective/sitemap.rb +50 -0
  169. data/lib/tasks/db_tasks.rake +12 -0
  170. data/lib/tasks/direct_mail_tasks.rake +35 -0
  171. data/lib/tasks/infinite_shelter/sitemap.rb +25 -0
  172. data/lib/tasks/piousbox/sitemap.rb +80 -0
  173. data/lib/tasks/publish2_wordpress_tasks.rake +54 -0
  174. data/lib/tasks/scrape_reddit_tasks.rake-bk +23 -0
  175. data/lib/tasks/trash/email_tasks.rake-trash +126 -0
  176. data/lib/tasks/trash/sitemap_tasks.rake-trash +146 -0
  177. data/lib/tasks/wasya_co/sitemap.rb +281 -0
  178. data/lib/tasks/wco_email_tasks.rake +117 -0
  179. data/lib/wco_email/README_email_actions.rb +7 -0
  180. data/lib/wco_email/README_email_contexts.rb +7 -0
  181. data/lib/wco_email/engine.rb +8 -0
  182. data/lib/wco_email.rb +19 -0
  183. metadata +493 -0
@@ -0,0 +1,181 @@
1
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" class="mcnFollowBlock" style="min-width:100%;">
2
+ <tbody class="mcnFollowBlockOuter">
3
+ <tr>
4
+ <td align="center" valign="top" style="padding:9px" class="mcnFollowBlockInner">
5
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" class="mcnFollowContentContainer"
6
+ style="min-width:100%;">
7
+ <tbody>
8
+ <tr>
9
+ <td align="center" style="padding-left:9px;padding-right:9px;">
10
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="min-width:100%;"
11
+ class="mcnFollowContent">
12
+ <tbody>
13
+ <tr>
14
+ <td align="center" valign="top" style="padding-top:9px; padding-right:9px; padding-left:9px;">
15
+ <table align="center" border="0" cellpadding="0" cellspacing="0">
16
+ <tbody>
17
+ <tr>
18
+ <td align="center" valign="top">
19
+ <!--[if mso]>
20
+ <table align="center" border="0" cellspacing="0" cellpadding="0">
21
+ <tr>
22
+ <![endif]-->
23
+
24
+ <!--[if mso]>
25
+ <td align="center" valign="top">
26
+ <![endif]-->
27
+
28
+
29
+ <table align="left" border="0" cellpadding="0" cellspacing="0" style="display:inline;">
30
+ <tbody>
31
+ <tr>
32
+ <td valign="top" style="padding-right:10px; padding-bottom:9px;"
33
+ class="mcnFollowContentItemContainer">
34
+ <table border="0" cellpadding="0" cellspacing="0" width="100%"
35
+ class="mcnFollowContentItem">
36
+ <tbody>
37
+ <tr>
38
+ <td align="left" valign="middle"
39
+ style="padding-top:5px; padding-right:10px; padding-bottom:5px; padding-left:9px;">
40
+ <table align="left" border="0" cellpadding="0" cellspacing="0" width="">
41
+ <tbody>
42
+ <tr>
43
+
44
+ <td align="center" valign="middle" width="24"
45
+ class="mcnFollowIconContent">
46
+ <a href="mailto:victor@wasya.co" target="_blank"><img
47
+ src="https://cdn-images.mailchimp.com/icons/social-block-v2/color-forwardtofriend-48.png"
48
+ alt="Email" style="display:block;" height="24" width="24"
49
+ class=""></a>
50
+ </td>
51
+
52
+
53
+ </tr>
54
+ </tbody>
55
+ </table>
56
+ </td>
57
+ </tr>
58
+ </tbody>
59
+ </table>
60
+ </td>
61
+ </tr>
62
+ </tbody>
63
+ </table>
64
+
65
+ <!--[if mso]>
66
+ </td>
67
+ <![endif]-->
68
+
69
+ <!--[if mso]>
70
+ <td align="center" valign="top">
71
+ <![endif]-->
72
+
73
+
74
+ <table align="left" border="0" cellpadding="0" cellspacing="0" style="display:inline;">
75
+ <tbody>
76
+ <tr>
77
+ <td valign="top" style="padding-right:10px; padding-bottom:9px;"
78
+ class="mcnFollowContentItemContainer">
79
+ <table border="0" cellpadding="0" cellspacing="0" width="100%"
80
+ class="mcnFollowContentItem">
81
+ <tbody>
82
+ <tr>
83
+ <td align="left" valign="middle"
84
+ style="padding-top:5px; padding-right:10px; padding-bottom:5px; padding-left:9px;">
85
+ <table align="left" border="0" cellpadding="0" cellspacing="0" width="">
86
+ <tbody>
87
+ <tr>
88
+
89
+ <td align="center" valign="middle" width="24"
90
+ class="mcnFollowIconContent">
91
+ <a href="https://github.com/wasya-co" target="_blank"><img
92
+ src="https://cdn-images.mailchimp.com/icons/social-block-v2/color-github-48.png"
93
+ alt="Github" style="display:block;" height="24" width="24"
94
+ class=""></a>
95
+ </td>
96
+
97
+
98
+ </tr>
99
+ </tbody>
100
+ </table>
101
+ </td>
102
+ </tr>
103
+ </tbody>
104
+ </table>
105
+ </td>
106
+ </tr>
107
+ </tbody>
108
+ </table>
109
+
110
+ <!--[if mso]>
111
+ </td>
112
+ <![endif]-->
113
+
114
+ <!--[if mso]>
115
+ <td align="center" valign="top">
116
+ <![endif]-->
117
+
118
+
119
+ <table align="left" border="0" cellpadding="0" cellspacing="0" style="display:inline;">
120
+ <tbody>
121
+ <tr>
122
+ <td valign="top" style="padding-right:0; padding-bottom:9px;"
123
+ class="mcnFollowContentItemContainer">
124
+ <table border="0" cellpadding="0" cellspacing="0" width="100%"
125
+ class="mcnFollowContentItem">
126
+ <tbody>
127
+ <tr>
128
+ <td align="left" valign="middle"
129
+ style="padding-top:5px; padding-right:10px; padding-bottom:5px; padding-left:9px;">
130
+ <table align="left" border="0" cellpadding="0" cellspacing="0" width="">
131
+ <tbody>
132
+ <tr>
133
+
134
+ <td align="center" valign="middle" width="24"
135
+ class="mcnFollowIconContent">
136
+ <a href="https://www.instagram.com/wasya_co/"
137
+ target="_blank"><img
138
+ src="https://cdn-images.mailchimp.com/icons/social-block-v2/color-instagram-48.png"
139
+ alt="Instagram" style="display:block;" height="24"
140
+ width="24" class=""></a>
141
+ </td>
142
+
143
+
144
+ </tr>
145
+ </tbody>
146
+ </table>
147
+ </td>
148
+ </tr>
149
+ </tbody>
150
+ </table>
151
+ </td>
152
+ </tr>
153
+ </tbody>
154
+ </table>
155
+
156
+ <!--[if mso]>
157
+ </td>
158
+ <![endif]-->
159
+
160
+ <!--[if mso]>
161
+ </tr>
162
+ </table>
163
+ <![endif]-->
164
+
165
+ </td>
166
+ </tr>
167
+ </tbody>
168
+ </table>
169
+ </td>
170
+ </tr>
171
+ </tbody>
172
+ </table>
173
+ </td>
174
+ </tr>
175
+ </tbody>
176
+ </table>
177
+
178
+ </td>
179
+ </tr>
180
+ </tbody>
181
+ </table>
@@ -0,0 +1,6 @@
1
+
2
+ .email-templates-edit.maxwidth
3
+ %h5
4
+ Edit
5
+ = link_to @email_template.slug, email_template_path( @email_template )
6
+ = render 'form', email_template: @email_template
@@ -0,0 +1,6 @@
1
+
2
+ .email-templates-new.maxwidth
3
+ .header
4
+ %h2.title New Email Template
5
+
6
+ = render 'form', email_template: @new_email_template
@@ -0,0 +1,11 @@
1
+
2
+ .email-templates-show
3
+ .header
4
+ %h2.title
5
+ = @tmpl.slug
6
+ = link_to '[~]', edit_email_template_path( @tmpl )
7
+ = link_to 'src', email_template_iframe_path(@tmpl.slug), target: :_blank
8
+ -# = link_to '[preview ^]', '#'
9
+ -# = link_to '[use]', '#'
10
+
11
+ %iframe{ src: email_template_iframe_path(@tmpl.slug), width: '100%', height: '100%' }
@@ -0,0 +1,2 @@
1
+
2
+ = render "/wco_email/email_templates/#{@tmpl.layout}"
@@ -0,0 +1,7 @@
1
+
2
+ = link_to "Lead Action Tmpls (#{WcoEmail::LeadActionTemplate.all.length})", lead_action_templates_path
3
+ .inline-search
4
+ = form_tag lead_action_templates_path, method: :get do
5
+ = text_field_tag :q
6
+ = link_to '[+]', new_lead_action_template_path
7
+
@@ -0,0 +1,8 @@
1
+
2
+
3
+
4
+ = link_to "Lead Actions (#{WcoEmail::LeadAction.all.length})", lead_actions_path
5
+ .inline-search
6
+ = form_tag lead_actions_path, method: :get do
7
+ = text_field_tag :q
8
+ = link_to '[+]', new_lead_action_path
@@ -0,0 +1,10 @@
1
+
2
+ .message-stubs--index
3
+ %ul
4
+ - stubs.each do |stub|
5
+ %li
6
+ .a
7
+ = stub.status
8
+ .d-inline-block= button_to 'churn', wco_email.churn_message_stub_path(stub), data: { confirm: 'Are you sure?' }
9
+ .a= stub.object_key
10
+ .a= stub.tags.map &:slug
@@ -0,0 +1,17 @@
1
+
2
+ .email-contexts--form-reply.form-mini
3
+ = form_for WcoEmail::Context.new, url: email_contexts_path do |f|
4
+ = hidden_field_tag 'ish_email_context[lead_id]', lead.id
5
+ To: #{lead.email}
6
+ .field
7
+ -# = f.label :template
8
+ = f.select :email_template_id, options_for_select( @email_templates_list )
9
+ .action
10
+ = f.submit 'Reply'
11
+
12
+ .field.send-at
13
+ -# = f.label :send_at
14
+ = f.text_field :send_at, placeholder: 'YYYY-MM-DD', value: 1.business_day.after(Time.now).strftime('%Y-%m-%d'), size: 10, class: 'input-date'
15
+
16
+ .action
17
+ = f.submit 'Schedule'
@@ -0,0 +1,30 @@
1
+
2
+ .messages--meta.flex-row
3
+ %ul
4
+ %li <b>froms:</b> #{message.froms}
5
+ %li <b>tos:</b> #{message.tos}
6
+ %li <b>ccs:</b> #{message.ccs}
7
+ %li <b>bccs:</b> #{message.bccs}
8
+ %li <b>logs:</b> #{message.logs}
9
+ %ul
10
+ %li
11
+ <b>date:</b> #{message.date}
12
+ %li
13
+ <b>id:</b> #{link_to message.id, message_path(message)}
14
+ %li
15
+ <b>message_id:</b> #{message.message_id}
16
+ %li
17
+ <b>object_key:</b> #{message.object_key}
18
+ %li <b>in_reply_to_id:</b> #{message.in_reply_to_id}
19
+ %li
20
+ <b>n_images:</b> #{message.photos.length}
21
+ %br
22
+ - message.photos.each do |photo|
23
+ = image_tag photo.photo.url(:thumb)
24
+ %li
25
+ <b>n_assets:</b> #{message.assets.length}
26
+ - if !message.assets.blank?
27
+ %ol
28
+ - message.assets.each do |asset|
29
+ %li
30
+ = link_to asset.filename, asset.object.url(:original), target: :_blank
@@ -0,0 +1,13 @@
1
+
2
+ .messages-show
3
+ %h5
4
+ Message
5
+ <b>Subject:</b>
6
+ = link_to @message.conversation.subject, email_conversation_path(@message.conversation)
7
+ (#{@message.conversation.messages.length})
8
+
9
+ = render 'meta', message: @message
10
+ %iframe.message-iframe{ src: message_iframe_path(@message) }
11
+ = render '/wco_email/contexts/form_reply', lead_id: @message.lead_id, message: @message
12
+
13
+
@@ -0,0 +1,5 @@
1
+
2
+
3
+ = raw @message.part_html_sanitized
4
+ %hr{ style: 'border-top: 1px solid red;' }
5
+ %pre= @message.part_txt
@@ -0,0 +1,4 @@
1
+
2
+ <%= form_tag('/email/auth/keycloak', method: 'post', data: {turbo: false}) do %>
3
+ <button type='submit'>Login with Keycloak</button>
4
+ <% end %>
@@ -0,0 +1,4 @@
1
+
2
+ .unsubscrives--header
3
+ = link_to "Unsubscribes (#{WcoEmail::Unsubscribe.all.length})", unsubscribes_path
4
+ = link_to '[analytics]', analytics_path
@@ -0,0 +1,22 @@
1
+
2
+ - unsubscribes ||= @unsubscribes
3
+
4
+ .unsubscribes-index.maxwidth
5
+ %h5 Unsubscribes
6
+
7
+ %table.bordered.data-table
8
+ %thead
9
+ %tr
10
+ %td Lead
11
+ %td Date
12
+ %td campaign_id
13
+ %td template_id
14
+
15
+
16
+ - unsubscribes.each do |uuu|
17
+ %tr
18
+ %td= uuu.lead
19
+ %td= uuu.unsubscribed_at
20
+ %td= uuu.campaign
21
+ %td= uuu.template
22
+
@@ -0,0 +1,10 @@
1
+
2
+ Rails.application.config.assets.version = '1.0'
3
+
4
+ Rails.application.config.assets.precompile += %w(
5
+ wco/application.js
6
+ wco/application.css
7
+
8
+ wco_email/application.js
9
+ wco_email/application.css
10
+ );
data/config/routes.rb ADDED
@@ -0,0 +1,49 @@
1
+
2
+ WcoEmail::Engine.routes.draw do
3
+ # root to: '/wco_email/email_conversations#index'
4
+ root to: redirect('/email/conversations')
5
+
6
+ get 'analytics', to: 'application#analytics'
7
+ get 'tinymce', to: 'application#tinymce', as: :application_tinymce
8
+
9
+ # get 'conversations', to: '/wco_email/conversations#index', as: :email_conversations
10
+ get 'conversations/in/:tagname', to: '/wco_email/conversations#index', as: :email_conversations_in
11
+ get 'conversations/not-in/:tagname_not', to: '/wco_email/conversations#index', as: :email_conversations_in_not
12
+ get 'conversations/:id', to: '/wco_email/conversations#show', as: :email_conversation
13
+ post 'conversations/:id1/merge/:id2', to: '/wco_email/conversations#merge', as: :merge_email_conversations
14
+ post 'conversations/addtag', to: 'conversations#addtag'
15
+ post 'conversations/addtag/:slug', to: 'conversations#addtag'
16
+ post 'conversations/rmtag', to: 'conversations#rmtag'
17
+ post 'conversations/rmtag/:slug', to: 'conversations#rmtag'
18
+ resources :conversations
19
+
20
+ resources :email_action_templates
21
+ resources :email_actions
22
+ resources :email_campaigns
23
+ resources :email_layouts
24
+
25
+ get 'contexts/iframe_src/:id', to: 'contexts#iframe_src', as: :context_iframe
26
+ get 'contexts/summary', to: 'contexts#summary'
27
+ post 'contexts/send_immediate/:id', to: 'contexts#send_immediate', as: :send_context
28
+ resources :contexts
29
+ resources :email_filters
30
+ get 'email_templates/:id/iframe', to: 'email_templates#show_iframe', as: :email_template_iframe
31
+ resources :email_templates
32
+
33
+ resources :lead_action_templates
34
+ resources :lead_actions
35
+
36
+ get 'messages/:id/iframe', to: 'messages#show_iframe', as: :message_iframe
37
+ resources :messages
38
+
39
+ post 'message_stub/:id/churn', to: 'message_stubs#churn', as: :churn_message_stub
40
+ resources :message_stubs
41
+
42
+ get '/obf/:id', to: 'obfuscated_redirects#show', as: :obf
43
+
44
+
45
+
46
+ resources :unsubscribes
47
+
48
+
49
+ end
@@ -0,0 +1,50 @@
1
+
2
+ module Bjjc
3
+ end
4
+
5
+ class Bjjc::Sitemap
6
+
7
+ DEFAULT_ORIGIN = 'https://bjjcollective.com'
8
+
9
+ def checks
10
+ out = [
11
+ # { path: '/2022/09/sturfee-build-pipeline', selector: 'article.wco-id-100' },
12
+ # ]; tmp = [
13
+
14
+
15
+ { path: '/en/locations/show/tomorrowland', selector: 'body' },
16
+ { path: '/en/locations/show/florida', selector: 'body' },
17
+
18
+
19
+
20
+ # /technique/guards
21
+ # /technique/guards/closed-guard
22
+ # /technique/guards/open-guard
23
+ # /technique/guards/butterfly-guard
24
+ # /technique/guards/rubber-guard
25
+ # /technique/guards/de-la-riva
26
+ # /technique/guards/reverse-de-la-riva-guard
27
+ # /technique/guards/sleeve-and-collar-guards
28
+ # /technique/guards/spider-guard
29
+ # /technique/guards/turtle-guard
30
+ # /technique/guards/x-guard
31
+ # /technique/guards/half-guard
32
+ # /technique/guards/inverted-guards
33
+ # /technique/guards/koala-guard
34
+ # /technique/guards/misc-guards
35
+ # /technique/mounts
36
+ # /technique/stand-up-gi
37
+ # /technique/stand-up-no-gi
38
+ # /technique/submission-escapes-finishes
39
+ # /technique/sweeps
40
+ # /technique/sweeps/butterfly-sweep
41
+ # /technique/misc
42
+
43
+
44
+ ]
45
+ return out
46
+ end
47
+ end
48
+
49
+
50
+
@@ -0,0 +1,12 @@
1
+
2
+ namespace :db do
3
+
4
+ desc "seed"
5
+ task seed: :environment do
6
+ inbox = Wco::Tag.find_or_create_by({ slug: 'inbox' })
7
+ trash = Wco::Tag.find_or_create_by({ slug: 'trash' })
8
+
9
+ poxlovi = Wco::Lead.find_or_create_by!({ email: 'poxlovi@gmail.com' })
10
+ end
11
+
12
+ end
@@ -0,0 +1,35 @@
1
+
2
+ namespace :office do
3
+
4
+ desc "20221118 - churn envelopes"
5
+ task :churn_20231118 => :environment do
6
+ props = {
7
+ from: {
8
+ name: 'Wasya Co',
9
+ address_2: '201 W 5th St 11th Fl',
10
+ address_3: 'Austin, TX 78701',
11
+ },
12
+ tos: [],
13
+ }
14
+ ## 0 1 2 3 4 5 6
15
+ ## first name, last name, company name, address, city, state, zipcode
16
+ inns = CSV.read('data/20231118_402_marketing.csv', headers: true).each do |row|
17
+ props[:tos].push({
18
+ name: "#{row[0]} #{row[1]}, #{row[2]}",
19
+ address_2: row[3],
20
+ address_3: "#{row[4]}, #{row[5]} #{row[6]}",
21
+ })
22
+ end
23
+
24
+ pdf = Office::DirectmailEnvelope.list_to_envelopes props
25
+ path = '/tmp/envelopes.pdf'
26
+ # File.write(path, pdf)
27
+ pdf.render_file path
28
+ `mv /tmp/envelopes.pdf ~/Desktop/`
29
+ puts 'ok'
30
+ end
31
+
32
+ end
33
+
34
+
35
+
@@ -0,0 +1,25 @@
1
+
2
+ module Ish
3
+ end
4
+
5
+ class Ish::Sitemap
6
+
7
+ DEFAULT_ORIGIN = 'https://infiniteshelter.com'
8
+
9
+ def checks
10
+ out = [
11
+ # { path: '/2022/09/sturfee-build-pipeline', selector: 'article.wco-id-100' },
12
+ # ]; tmp = [
13
+
14
+
15
+ { path: '/en/locations/show/tomorrowland', selector: 'body' },
16
+ { path: '/en/locations/show/florida', selector: 'body' },
17
+
18
+
19
+ ]
20
+ return out
21
+ end
22
+ end
23
+
24
+
25
+
@@ -0,0 +1,80 @@
1
+
2
+ module Pi
3
+ end
4
+
5
+ class Pi::Sitemap
6
+
7
+ DEFAULT_ORIGIN = 'https://piousbox.com'
8
+
9
+ def checks
10
+ out = [
11
+ # { path: '/2022/09/sturfee-build-pipeline', selector: 'article.wco-id-100' },
12
+ # ]; tmp = [
13
+
14
+ ##
15
+ ## numbers
16
+ ##
17
+ { path: '/2021/06/2399', selector: 'article.post-2399' },
18
+ { path: '/2022/03/bundler-and-private-repositories', redirect_to: 'https://wasyaco.com/2022/03/bundler-and-private-repositories' },
19
+ { path: '/2022/03/ruby-on-rails-allow-parameters-to-have-dot', redirect_to: 'https://wasyaco.com/2022/03/ruby-on-rails-allow-parameters-to-have-dot' },
20
+ { path: '/2022/03/ruby-on-rails-allow-parameters-to-have-dot/', redirect_to: 'https://wasyaco.com/2022/03/ruby-on-rails-allow-parameters-to-have-dot' },
21
+ { path: '/2022/12/japan-securities-clearing-corp-jscc-issues-emergency-margin-call/', selector: 'article.post-7033' },
22
+ { path: '/2022/08/convert-wireframe-edges-to-a-model-in-maya/', selector: 'article.post-5854' },
23
+ { path: '/2023/10/does-using-cannabis-lower-blood-pressure', selector: 'article[data-history-node-id="68"]' },
24
+
25
+ { path: '/2023/08/what-stocks/', selector: 'article[data-history-node-id="88"]' },
26
+
27
+ # /2023/08/fed-chair-jerome-powell-we-have-tightened-policy-significantly-over-the-past-year-inflation-has-moved-down-from-its-peak-it-remains-too-high-we-are-prepared-to-raise-rates-further-if-app/
28
+ # /2023/08/sam-zeloof-makes-cpus-in-his-garage/
29
+ # /2023/04/the-letter-to-pause-ai-development-is-a-power-grab-by-the-elites/
30
+
31
+ # /2023/01/a-gentle-minimalist-intro-to-machine-learning
32
+
33
+ ##
34
+ ## A
35
+ ##
36
+
37
+ # /about
38
+
39
+ ##
40
+ ## C
41
+ ##
42
+
43
+ { path: '/contact-us', selector: 'article[data-history-node-id="82"]' },
44
+
45
+ ##
46
+ ## I
47
+ ##
48
+ { path: '/index.php?p=2399', redirect_to: '/2021/06/2399' },
49
+ { path: '/index.php?p=7033', redirect_to: '/2022/12/japan-securities-clearing-corp-jscc-issues-emergency-margin-call/' },
50
+
51
+ { path: '/issues/2023q4-issue', selector: 'article[data-history-node-id="4"]' },
52
+
53
+ ##
54
+ ## P
55
+ ##
56
+
57
+ # /pages/recruiter-intake-form
58
+ { path: '/pages/bookshelf', selector: 'article[data-history-node-id="83"]' },
59
+
60
+ ##
61
+ ## S
62
+ ##
63
+
64
+ # /sections/technology
65
+ # /sections/ai-ml
66
+ # /sections/markets-trading
67
+
68
+ ##
69
+ ## T
70
+ ##
71
+
72
+ { path: '/tags/health', selector: '#taxonomy-term-47' },
73
+
74
+ ]
75
+ return out
76
+ end
77
+ end
78
+
79
+
80
+