wco_email 0.1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.txt +129 -0
- data/Rakefile +5 -0
- data/app/assets/config/wco_email_manifest.js +7 -0
- data/app/assets/javascript/vendor-trash/jquery-ui.min.js +13 -0
- data/app/assets/javascript/vendor-trash/jquery.fileupload.js +1482 -0
- data/app/assets/javascript/vendor-trash/jquery.iframe-transport.js +224 -0
- data/app/assets/javascript/vendor-trash/jquery.ui.widget.js +572 -0
- data/app/assets/javascript/vendor-trash/summernote-bs4.min.js +3 -0
- data/app/assets/javascript/wco_email/application.js +11 -0
- data/app/assets/javascript/wco_email/contexts.js +19 -0
- data/app/assets/javascript/wco_email/conversations.js +177 -0
- data/app/assets/javascript/wco_email/file_upload.js-trash +32 -0
- data/app/assets/javascript/wco_email/shared.js +22 -0
- data/app/assets/stylesheets/wco_email/application.scss +29 -0
- data/app/assets/stylesheets/wco_email/contexts.scss +63 -0
- data/app/assets/stylesheets/wco_email/conversations.scss +16 -0
- data/app/assets/stylesheets/wco_email/tags.scss +6 -0
- data/app/controllers/wco_email/application_controller.rb +16 -0
- data/app/controllers/wco_email/contexts_controller.rb +156 -0
- data/app/controllers/wco_email/conversations_controller.rb +129 -0
- data/app/controllers/wco_email/email_action_templates_controller.rb +77 -0
- data/app/controllers/wco_email/email_actions_controller.rb +55 -0
- data/app/controllers/wco_email/email_campaigns_controller.rb +73 -0
- data/app/controllers/wco_email/email_filters_controller.rb +72 -0
- data/app/controllers/wco_email/email_layouts_controller.rb +13 -0
- data/app/controllers/wco_email/email_templates_controller.rb +124 -0
- data/app/controllers/wco_email/message_stubs_controller.rb +14 -0
- data/app/controllers/wco_email/messages_controller.rb +28 -0
- data/app/controllers/wco_email/obfuscated_redirects_controller.rb +20 -0
- data/app/controllers/wco_email/sessions_controller.rb +19 -0
- data/app/controllers/wco_email/unsubscribes_controller.rb +40 -0
- data/app/helpers/wco_email/application_helper.rb +20 -0
- data/app/jobs/wco_email/message_intake_job.rb +54 -0
- data/app/mailers/wco_email/application_mailer.rb +98 -0
- data/app/views/202212 Mailchimp Templates/202212 1col fixed-width.html +863 -0
- data/app/views/202212 Mailchimp Templates/202212 1col full-width.html +906 -0
- data/app/views/202212 Mailchimp Templates/202212 2col fixed-width 2.html +1003 -0
- data/app/views/202212 Mailchimp Templates/202212 2col fixed-width.html +1082 -0
- data/app/views/202212 Mailchimp Templates/202212 2col full-width 2.html +1053 -0
- data/app/views/202212 Mailchimp Templates/202212 2col full-width.html +1147 -0
- data/app/views/202212 Mailchimp Templates/202212 3col fixed-width.html +1087 -0
- data/app/views/202212 Mailchimp Templates/202212 3col full-width.html +1136 -0
- data/app/views/202212 Mailchimp Templates/202212 catalog various-colors-1.html +1223 -0
- data/app/views/202212 Mailchimp Templates/202212 educate.html +1080 -0
- data/app/views/202212 Mailchimp Templates/202212 follow up.html +1001 -0
- data/app/views/202212 Mailchimp Templates/202212 make an announcement.html +1048 -0
- data/app/views/202212 Mailchimp Templates/202212 sell-a-product.html +977 -0
- data/app/views/202212 Mailchimp Templates/202212 tell a story.html +1168 -0
- data/app/views/202212 Mailchimp Templates/202212 theme art-newsletter.html +1612 -0
- data/app/views/202212 Mailchimp Templates/202212 theme caribou-xmas.html +856 -0
- data/app/views/202212 Mailchimp Templates/202212 theme colorbox.html +1027 -0
- data/app/views/202212 Mailchimp Templates/202212 theme competition-invitation.html +918 -0
- data/app/views/202212 Mailchimp Templates/202212 theme event-veerle.html +1132 -0
- data/app/views/202212 Mailchimp Templates/202212 theme fall-colors.html +1407 -0
- data/app/views/202212 Mailchimp Templates/202212 theme gift-giving.html +787 -0
- data/app/views/202212 Mailchimp Templates/202212 theme giftgiving-snowmen.html +731 -0
- data/app/views/202212 Mailchimp Templates/202212 theme heart-of-flowers.html +795 -0
- data/app/views/202212 Mailchimp Templates/202212 theme hero-card.html +915 -0
- data/app/views/202212 Mailchimp Templates/202212 theme hero-image.html +1148 -0
- data/app/views/202212 Mailchimp Templates/202212 theme monthly-contest.html +967 -0
- data/app/views/202212 Mailchimp Templates/202212 theme multiple-event.html +1189 -0
- data/app/views/202212 Mailchimp Templates/202212 theme postcard.html +914 -0
- data/app/views/202212 Mailchimp Templates/202212 theme snowy-fields.html +733 -0
- data/app/views/202212 Mailchimp Templates/202212 theme soft.html +849 -0
- data/app/views/202212 Mailchimp Templates/202212 theme sophisticated.html +1079 -0
- data/app/views/202212 Mailchimp Templates/202212 theme subtle.html +1218 -0
- data/app/views/202212 Mailchimp Templates/202212 theme ticket.html +1015 -0
- data/app/views/202212 Mailchimp Templates/202212 theme whale.html +888 -0
- data/app/views/202310 Email Templates/_acknowledgement_of_document_receipt.html.erb +23 -0
- data/app/views/202310 Email Templates/_support_ticket_created.html.erb +26 -0
- data/app/views/layouts/wco_email/application.haml +64 -0
- data/app/views/layouts/wco_email/mailbox.haml-trash +62 -0
- data/app/views/wco_email/_analytics.erb +16 -0
- data/app/views/wco_email/_main_header.haml +31 -0
- data/app/views/wco_email/_sidebar.haml +10 -0
- data/app/views/wco_email/application_mailer/_footer_unsubscribe.html.erb +24 -0
- data/app/views/wco_email/application_mailer/_header_logo.html.erb +12 -0
- data/app/views/wco_email/application_mailer/forwarder_notify.html.erb +17 -0
- data/app/views/wco_email/contexts/_form.haml +59 -0
- data/app/views/wco_email/contexts/_form_reply.haml +27 -0
- data/app/views/wco_email/contexts/_header.haml +22 -0
- data/app/views/wco_email/contexts/_index.haml +8 -0
- data/app/views/wco_email/contexts/edit.haml +8 -0
- data/app/views/wco_email/contexts/iframe_src.haml +3 -0
- data/app/views/wco_email/contexts/index.haml +51 -0
- data/app/views/wco_email/contexts/new.haml +5 -0
- data/app/views/wco_email/contexts/show.haml +34 -0
- data/app/views/wco_email/contexts/summary.csv.erb +4 -0
- data/app/views/wco_email/contexts/summary.haml +16 -0
- data/app/views/wco_email/conversations/_actions.haml +21 -0
- data/app/views/wco_email/conversations/_search.haml +14 -0
- data/app/views/wco_email/conversations/index.haml +43 -0
- data/app/views/wco_email/conversations/show.haml +27 -0
- data/app/views/wco_email/email_action_templates/_form.haml +45 -0
- data/app/views/wco_email/email_action_templates/_header.haml +8 -0
- data/app/views/wco_email/email_action_templates/edit.haml +7 -0
- data/app/views/wco_email/email_action_templates/index.haml +36 -0
- data/app/views/wco_email/email_action_templates/new.haml +9 -0
- data/app/views/wco_email/email_action_templates/show.haml +11 -0
- data/app/views/wco_email/email_actions/_form.haml +24 -0
- data/app/views/wco_email/email_actions/_form_mini.haml-trash +28 -0
- data/app/views/wco_email/email_actions/_header.haml +8 -0
- data/app/views/wco_email/email_actions/edit.haml +4 -0
- data/app/views/wco_email/email_actions/index.haml +31 -0
- data/app/views/wco_email/email_actions/new.haml +4 -0
- data/app/views/wco_email/email_actions/show.haml +0 -0
- data/app/views/wco_email/email_campaigns/_form.haml +33 -0
- data/app/views/wco_email/email_campaigns/_header.haml +5 -0
- data/app/views/wco_email/email_campaigns/edit.haml +5 -0
- data/app/views/wco_email/email_campaigns/index.haml +14 -0
- data/app/views/wco_email/email_campaigns/new.haml +5 -0
- data/app/views/wco_email/email_campaigns/show.haml +17 -0
- data/app/views/wco_email/email_filters/_form.haml +40 -0
- data/app/views/wco_email/email_filters/_header.haml +5 -0
- data/app/views/wco_email/email_filters/edit.haml +5 -0
- data/app/views/wco_email/email_filters/index.haml +48 -0
- data/app/views/wco_email/email_filters/new.haml +5 -0
- data/app/views/wco_email/email_templates/_form.haml +48 -0
- data/app/views/wco_email/email_templates/_form_mini.haml +9 -0
- data/app/views/wco_email/email_templates/_form_reply_mini.haml +8 -0
- data/app/views/wco_email/email_templates/_form_schedule_mini.haml +11 -0
- data/app/views/wco_email/email_templates/_header.haml +6 -0
- data/app/views/wco_email/email_templates/_index.haml +26 -0
- data/app/views/wco_email/email_templates/_index_expanded.haml +13 -0
- data/app/views/wco_email/email_templates/_m20221201react.html.erb +1202 -0
- data/app/views/wco_email/email_templates/_m20221222merryxmas.html.erb +766 -0
- data/app/views/wco_email/email_templates/_m202309_feedback.html.erb +1161 -0
- data/app/views/wco_email/email_templates/_m202309_ror4.html.erb +1068 -0
- data/app/views/wco_email/email_templates/_marketing_node_1.html.erb +984 -0
- data/app/views/wco_email/email_templates/_marketing_react_1.html +0 -0
- data/app/views/wco_email/email_templates/_marketing_react_2.html.erb +749 -0
- data/app/views/wco_email/email_templates/_marketing_react_3.html.erb +628 -0
- data/app/views/wco_email/email_templates/_marketing_ror_1.html +751 -0
- data/app/views/wco_email/email_templates/_marketing_ror_2.html.erb +755 -0
- data/app/views/wco_email/email_templates/_marketing_ror_3.html.erb +25 -0
- data/app/views/wco_email/email_templates/_marketing_ror_4.html.erb +25 -0
- data/app/views/wco_email/email_templates/_marketing_ror_5.html.erb +17 -0
- data/app/views/wco_email/email_templates/_marketing_wordpress_1.html +0 -0
- data/app/views/wco_email/email_templates/_marketing_wordpress_2.html +0 -0
- data/app/views/wco_email/email_templates/_meta.haml +6 -0
- data/app/views/wco_email/email_templates/_piousbox_roundborders.html.erb +1007 -0
- data/app/views/wco_email/email_templates/_piousbox_social.html.erb +181 -0
- data/app/views/wco_email/email_templates/_plain.haml +15 -0
- data/app/views/wco_email/email_templates/_rec_resume_shared_with_you.html.erb +39 -0
- data/app/views/wco_email/email_templates/_slug-1.html.erb +0 -0
- data/app/views/wco_email/email_templates/_slug-2.html.erb +0 -0
- data/app/views/wco_email/email_templates/_slug-3.html.erb +0 -0
- data/app/views/wco_email/email_templates/_tracking_footer.html.erb +13 -0
- data/app/views/wco_email/email_templates/_wasyaco_roundborders.html.erb +686 -0
- data/app/views/wco_email/email_templates/_wasyaco_social.html.erb +181 -0
- data/app/views/wco_email/email_templates/edit.haml +6 -0
- data/app/views/wco_email/email_templates/new.haml +6 -0
- data/app/views/wco_email/email_templates/show.haml +11 -0
- data/app/views/wco_email/email_templates/show_iframe.haml +2 -0
- data/app/views/wco_email/lead_action_templates/_header.haml +7 -0
- data/app/views/wco_email/lead_actions/_header.haml +8 -0
- data/app/views/wco_email/message_stubs/_index.haml +10 -0
- data/app/views/wco_email/messages/_form_reply.haml-trash +17 -0
- data/app/views/wco_email/messages/_meta.haml +30 -0
- data/app/views/wco_email/messages/show.haml +13 -0
- data/app/views/wco_email/messages/show_iframe.haml +5 -0
- data/app/views/wco_email/sessions/new.html.erb +4 -0
- data/app/views/wco_email/unsubscribes/_header.haml +4 -0
- data/app/views/wco_email/unsubscribes/_table.haml +22 -0
- data/config/initializers/assets.rb +10 -0
- data/config/routes.rb +49 -0
- data/lib/tasks/bjjcollective/sitemap.rb +50 -0
- data/lib/tasks/db_tasks.rake +12 -0
- data/lib/tasks/direct_mail_tasks.rake +35 -0
- data/lib/tasks/infinite_shelter/sitemap.rb +25 -0
- data/lib/tasks/piousbox/sitemap.rb +80 -0
- data/lib/tasks/publish2_wordpress_tasks.rake +54 -0
- data/lib/tasks/scrape_reddit_tasks.rake-bk +23 -0
- data/lib/tasks/trash/email_tasks.rake-trash +126 -0
- data/lib/tasks/trash/sitemap_tasks.rake-trash +146 -0
- data/lib/tasks/wasya_co/sitemap.rb +281 -0
- data/lib/tasks/wco_email_tasks.rake +117 -0
- data/lib/wco_email/README_email_actions.rb +7 -0
- data/lib/wco_email/README_email_contexts.rb +7 -0
- data/lib/wco_email/engine.rb +8 -0
- data/lib/wco_email.rb +19 -0
- metadata +493 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
Subject: Acknowledgement of Document Receipt
|
2
|
+
|
3
|
+
Dear [Sender's Name],
|
4
|
+
|
5
|
+
I hope this email finds you well. I am writing to confirm the successful receipt of the document you sent to our company.
|
6
|
+
|
7
|
+
We acknowledge the reception of [Document Name] on [Date Received]. Rest assured, our team is currently reviewing the contents, and we appreciate the promptness of your submission.
|
8
|
+
|
9
|
+
Should any further actions be required or if we have any queries regarding the document, we will reach out to you directly.
|
10
|
+
|
11
|
+
Thank you for your cooperation and for providing us with the necessary information. We value your contribution to our business processes.
|
12
|
+
|
13
|
+
If you have any questions or need any additional assistance, please feel free to get in touch with our team at [Contact Email/Phone].
|
14
|
+
|
15
|
+
Once again, thank you for your cooperation.
|
16
|
+
|
17
|
+
Best regards,
|
18
|
+
|
19
|
+
[Your Name]
|
20
|
+
[Your Title/Position]
|
21
|
+
[Company Name]
|
22
|
+
[Email Address]
|
23
|
+
[Phone Number]
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Subject: Acknowledgement of Support Ticket Receipt
|
2
|
+
|
3
|
+
Dear [Customer's Name],
|
4
|
+
|
5
|
+
Thank you for reaching out to our software consultancy regarding your support request. This email serves as an acknowledgment that we have received your support ticket, and we appreciate the opportunity to assist you.
|
6
|
+
|
7
|
+
At [Company Name], we understand the importance of timely and efficient support, and we are committed to resolving your issue as quickly as possible. Our team of experts is currently reviewing your request and will begin investigating the matter shortly.
|
8
|
+
|
9
|
+
Please rest assured that your support ticket has been assigned a unique reference number [#TicketNumber], which will help us track and monitor the progress of your case. You can use this reference number for any future communication regarding this issue.
|
10
|
+
|
11
|
+
Our goal is to provide you with the best possible solution, and we will keep you informed throughout the entire process. We aim to respond to your request within [Service Level Agreement (SLA) timeframe], depending on the priority level assigned to your ticket.
|
12
|
+
|
13
|
+
In the meantime, if you have any additional information, screenshots, or details that may assist us in understanding and resolving your issue more effectively, please feel free to provide them. You can reply directly to this email, and our support team will be notified immediately.
|
14
|
+
|
15
|
+
We understand that technical issues can be disruptive, and we appreciate your patience as we work towards a resolution. Rest assured that we are committed to delivering high-quality support and ensuring your satisfaction.
|
16
|
+
|
17
|
+
If you have any urgent concerns or need immediate assistance, please do not hesitate to contact our support hotline at [Phone Number]. Our support agents are available [Working Hours] and will be happy to assist you.
|
18
|
+
|
19
|
+
Thank you once again for choosing [Company Name]. We value your business and will do our best to address your support request promptly. We will reach out to you soon with an update or resolution.
|
20
|
+
|
21
|
+
Best regards,
|
22
|
+
|
23
|
+
[Your Name]
|
24
|
+
[Your Position]
|
25
|
+
[Company Name]
|
26
|
+
[Contact Information]
|
@@ -0,0 +1,64 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title #{@page_title} | wco_email_rb-application
|
5
|
+
%link{ :rel => 'icon', :href => "/favicon_#{ENV['RAILS_ENV']}.gif" }
|
6
|
+
%meta{ :name => :viewport, :content => 'width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=2' }
|
7
|
+
%meta{ :charset => 'UTF-8' }
|
8
|
+
%meta{ :description => @page_description }
|
9
|
+
|
10
|
+
= javascript_include_tag "//code.jquery.com/jquery-3.3.1.min.js"
|
11
|
+
|
12
|
+
%script{ :src => "//cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js" }
|
13
|
+
= stylesheet_link_tag "//cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css"
|
14
|
+
|
15
|
+
= stylesheet_link_tag "//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css", :media => 'all'
|
16
|
+
= stylesheet_link_tag "//fonts.googleapis.com/icon?family=Material+Icons"
|
17
|
+
|
18
|
+
= stylesheet_link_tag "//cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css"
|
19
|
+
= javascript_include_tag "//cdn.jsdelivr.net/npm/popper.js@1.14.7/dist/umd/popper.min.js"
|
20
|
+
= javascript_include_tag "//cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/js/bootstrap.min.js"
|
21
|
+
|
22
|
+
= stylesheet_link_tag "//cdn.jsdelivr.net/npm/select2@4.0.0/dist/css/select2.min.css"
|
23
|
+
= javascript_include_tag "//cdn.jsdelivr.net/npm/select2@4.0.0/dist/js/select2.min.js"
|
24
|
+
|
25
|
+
= stylesheet_link_tag "//cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.css"
|
26
|
+
= javascript_include_tag "//cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.js"
|
27
|
+
|
28
|
+
= javascript_include_tag "wco/application"
|
29
|
+
= stylesheet_link_tag "wco/application", media: "all"
|
30
|
+
|
31
|
+
= javascript_include_tag "wco_email/application"
|
32
|
+
= stylesheet_link_tag "wco_email/application", media: "all"
|
33
|
+
|
34
|
+
|
35
|
+
-# %script{crossorigin: "", src: "https://unpkg.com/react@18/umd/react.development.js"}
|
36
|
+
-# %script{crossorigin: "", src: "https://unpkg.com/react-dom@18/umd/react-dom.development.js"}
|
37
|
+
-# %script{src: "https://unpkg.com/prop-types@15.6/prop-types.min.js"}
|
38
|
+
-# %script{src: "https://unpkg.com/axios/dist/axios.min.js"}
|
39
|
+
-# %script{src: "https://unpkg.com/recharts/umd/Recharts.js"}
|
40
|
+
|
41
|
+
= csrf_meta_tags
|
42
|
+
= csp_meta_tag
|
43
|
+
%body{ class: [ params[:controller].gsub("wco_email/",""), "#{params[:controller].gsub("wco_email/","")}-#{params[:action]}", params[:action], "application-fullwidth" ] }
|
44
|
+
|
45
|
+
= render "/wco/main_header"
|
46
|
+
= render "/wco_email/main_header"
|
47
|
+
= render '/wco/alerts_notices' if notice || alert
|
48
|
+
%hr
|
49
|
+
|
50
|
+
-# .padded
|
51
|
+
-# .row
|
52
|
+
-# .col-md-2.border-right
|
53
|
+
-# = yield :sidebar
|
54
|
+
-# .col-md-10
|
55
|
+
-# %span.absolute.collapse-expand#mainW
|
56
|
+
-# = yield
|
57
|
+
|
58
|
+
.flex-row
|
59
|
+
= yield :sidebar
|
60
|
+
%span.absolute.collapse-expand#mainW
|
61
|
+
= yield
|
62
|
+
|
63
|
+
= render '/wco/main_footer'
|
64
|
+
= render '/wco_email/analytics' if Rails.env.production?
|
@@ -0,0 +1,62 @@
|
|
1
|
+
!!!
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title #{@page_title} | wco_email_rb-mailbox
|
5
|
+
%link{ :rel => 'icon', :href => "/favicon_#{ENV['RAILS_ENV']}.gif" }
|
6
|
+
%meta{ :name => :viewport, :content => 'width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=2' }
|
7
|
+
%meta{ :charset => 'UTF-8' }
|
8
|
+
%meta{ :description => @page_description }
|
9
|
+
|
10
|
+
= javascript_include_tag "//code.jquery.com/jquery-3.3.1.min.js"
|
11
|
+
|
12
|
+
%script{ :src => "//cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js" }
|
13
|
+
= stylesheet_link_tag "//cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css"
|
14
|
+
|
15
|
+
= stylesheet_link_tag "//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css", :media => 'all'
|
16
|
+
= stylesheet_link_tag "//fonts.googleapis.com/icon?family=Material+Icons"
|
17
|
+
|
18
|
+
= stylesheet_link_tag "//cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/css/bootstrap.min.css"
|
19
|
+
= javascript_include_tag "//cdn.jsdelivr.net/npm/popper.js@1.14.7/dist/umd/popper.min.js"
|
20
|
+
= javascript_include_tag "//cdn.jsdelivr.net/npm/bootstrap@4.3.1/dist/js/bootstrap.min.js"
|
21
|
+
|
22
|
+
= stylesheet_link_tag "//cdn.jsdelivr.net/npm/select2@4.0.0/dist/css/select2.min.css"
|
23
|
+
= javascript_include_tag "//cdn.jsdelivr.net/npm/select2@4.0.0/dist/js/select2.min.js"
|
24
|
+
|
25
|
+
-# summernote
|
26
|
+
= stylesheet_link_tag "//cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.css"
|
27
|
+
= javascript_include_tag "//cdn.jsdelivr.net/npm/summernote@0.8.18/dist/summernote.min.js"
|
28
|
+
-# quill core
|
29
|
+
-# = stylesheet_link_tag "//cdn.quilljs.com/1.3.6/quill.core.css"
|
30
|
+
-# = javascript_include_tag "//cdn.quilljs.com/1.3.6/quill.core.js"
|
31
|
+
-# quill
|
32
|
+
-# = stylesheet_link_tag "//cdn.quilljs.com/1.3.6/quill.snow.css"
|
33
|
+
-# = javascript_include_tag "//cdn.quilljs.com/1.3.6/quill.min.js"
|
34
|
+
|
35
|
+
= javascript_include_tag "wco_email/application"
|
36
|
+
= stylesheet_link_tag "wco_email/application", media: "all"
|
37
|
+
= stylesheet_link_tag "wco/application", media: "all"
|
38
|
+
|
39
|
+
-# %script{crossorigin: "", src: "https://unpkg.com/react@18/umd/react.development.js"}
|
40
|
+
-# %script{crossorigin: "", src: "https://unpkg.com/react-dom@18/umd/react-dom.development.js"}
|
41
|
+
-# %script{src: "https://unpkg.com/prop-types@15.6/prop-types.min.js"}
|
42
|
+
-# %script{src: "https://unpkg.com/axios/dist/axios.min.js"}
|
43
|
+
-# %script{src: "https://unpkg.com/recharts/umd/Recharts.js"}
|
44
|
+
|
45
|
+
= csrf_meta_tags
|
46
|
+
%body{ class: [ params[:controller].gsub("wco_email/",""), "#{params[:controller].gsub("wco_email/","")}-#{params[:action]}", params[:action], "application-fullwidth" ] }
|
47
|
+
|
48
|
+
= render "/wco/main_header"
|
49
|
+
= render "/wco_email/main_header"
|
50
|
+
= render '/wco/alerts_notices' if notice || alert
|
51
|
+
%hr
|
52
|
+
|
53
|
+
.padded
|
54
|
+
.row
|
55
|
+
.col-md-2.border-right
|
56
|
+
= render 'wco_email/sidebar'
|
57
|
+
.col-md-10
|
58
|
+
%span.absolute.collapse-expand#mainW
|
59
|
+
= yield
|
60
|
+
|
61
|
+
= render '/wco/main_footer'
|
62
|
+
= render '/wco_email/analytics' if Rails.env.production?
|
@@ -0,0 +1,16 @@
|
|
1
|
+
|
2
|
+
<!-- Matomo -->
|
3
|
+
<script>
|
4
|
+
var _paq = window._paq = window._paq || [];
|
5
|
+
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
6
|
+
_paq.push(['trackPageView']);
|
7
|
+
_paq.push(['enableLinkTracking']);
|
8
|
+
(function() {
|
9
|
+
var u="//analytics.wasya.co/";
|
10
|
+
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
11
|
+
_paq.push(['setSiteId', '13']); /* 13 :: email.wasya.co */
|
12
|
+
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
13
|
+
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
14
|
+
})();
|
15
|
+
</script>
|
16
|
+
<!-- End Matomo Code -->
|
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
.application--main-header.main-header.maxwidth{ class: "#{ENV['RAILS_ENV']} #{ENV['RAILS_ENV'][0...3]=="dev" ? "development" : ''}" }
|
3
|
+
|
4
|
+
%i.fa.fa-compress.collapse-expand#collapseHeaderEmail
|
5
|
+
Wco Email & CRM
|
6
|
+
.flex-row
|
7
|
+
%ul
|
8
|
+
%li= link_to 'Email Messages', conversations_path
|
9
|
+
%li
|
10
|
+
Stubs
|
11
|
+
(#{WcoEmail::MessageStub.pending.length})
|
12
|
+
(#{WcoEmail::MessageStub.all.length})
|
13
|
+
%li= render '/wco_email/email_templates/header'
|
14
|
+
%li= render '/wco_email/email_campaigns/header'
|
15
|
+
%li= render '/wco_email/email_filters/header'
|
16
|
+
%li= render '/wco_email/contexts/header'
|
17
|
+
%li= render '/wco_email/unsubscribes/header'
|
18
|
+
|
19
|
+
|
20
|
+
%ul
|
21
|
+
%li= render '/wco_email/email_action_templates/header'
|
22
|
+
%li= render '/wco_email/email_actions/header'
|
23
|
+
|
24
|
+
-# %li= render '/wco_email/lead_action_templates/header'
|
25
|
+
-# %li= render '/wco_email/lead_actions/header'
|
26
|
+
|
27
|
+
-# %li
|
28
|
+
-# = link_to "OActions (#{Wco::OfficeAction.all.length})", office_actions_path
|
29
|
+
-# = link_to '[+]', new_office_action_path
|
30
|
+
|
31
|
+
.c
|
@@ -0,0 +1,10 @@
|
|
1
|
+
|
2
|
+
.application--sidebar
|
3
|
+
%ul.tags-list
|
4
|
+
- @tags.each do |tag|
|
5
|
+
%li
|
6
|
+
= link_to tag.slug, email_conversations_in_path( tag.slug )
|
7
|
+
-# (#{tag.conversations.unread.length}, #{tag.conversations.length})
|
8
|
+
(#{tag.conversations.unread.length})
|
9
|
+
(#{tag.conversations.length})
|
10
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<table align="left" border="0" cellpadding="0" cellspacing="0"
|
2
|
+
style="max-width:100%; min-width:100%;" width="100%"
|
3
|
+
class="mcnTextContentContainer">
|
4
|
+
<tbody>
|
5
|
+
<tr>
|
6
|
+
|
7
|
+
<td valign="top" class="mcnTextContent"
|
8
|
+
style="padding-top:0; padding-right:160px; padding-bottom:9px; padding-left:160px;">
|
9
|
+
|
10
|
+
<em>Copyright © Wasya Co</em><br><br>
|
11
|
+
|
12
|
+
<strong>Our mailing address is:</strong><br>
|
13
|
+
|
14
|
+
201 W 5th St 11th Floor, Austin, TX 78701<br><br>
|
15
|
+
|
16
|
+
Want to change how you receive these emails? You can
|
17
|
+
<% # link_to( 'update your preferences', obfuscate( user_dashboard_url ) ) + ' or ' %>
|
18
|
+
<%= link_to 'unsubscribe from this list', obfuscate( @unsubscribe_url ) %>.<br><br>
|
19
|
+
|
20
|
+
</td>
|
21
|
+
|
22
|
+
</tr>
|
23
|
+
</tbody>
|
24
|
+
</table>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
|
2
|
+
<table cellpadding="0" cellspacing="0" width="100%">
|
3
|
+
<tr>
|
4
|
+
<td align="center">
|
5
|
+
<br />
|
6
|
+
<img
|
7
|
+
src="https://d15g8hc4183yn4.cloudfront.net/wp-content/uploads/2022/09/29185755/259x66-WasyaCo-Logo-YellowShadow.png"
|
8
|
+
alt="Wasya Co [logo]" />
|
9
|
+
</td>
|
10
|
+
</tr>
|
11
|
+
</table>
|
12
|
+
<br /><br />
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
<ul>
|
4
|
+
<li><b>From:</b> <%= @msg.from %></li>
|
5
|
+
<li><b>To:</b> <%= @msg.to %></li>
|
6
|
+
<li><b>Cc:</b> <%= @msg.cc %></li>
|
7
|
+
<li><b>Subject:</b> <%= @msg.subject %></li>
|
8
|
+
<li><b>Date:</b> <%= @msg.date %></li>
|
9
|
+
<li><b>N Assets:</b> <%= @msg.assets.length %></li>
|
10
|
+
</ul>
|
11
|
+
|
12
|
+
<%= raw @msg.part_html %>
|
13
|
+
|
14
|
+
<hr />
|
15
|
+
|
16
|
+
<%= raw @msg.part_txt %>
|
17
|
+
|
@@ -0,0 +1,59 @@
|
|
1
|
+
|
2
|
+
-# = ctx.inspect
|
3
|
+
|
4
|
+
.email-contexts--form
|
5
|
+
-# - url = ctx.new_record? ? contexts_path : context_path(ctx)
|
6
|
+
= form_for ctx, as: :ctx do |f|
|
7
|
+
|
8
|
+
.flex-row
|
9
|
+
= f.label "Template"
|
10
|
+
= f.select :email_template_id, options_for_select(@email_templates_list, selected: params[:email_template_id] || ctx.email_template_id ), {}, { class: 'select2' }
|
11
|
+
- if ctx.email_template_id
|
12
|
+
= link_to '[view]', email_template_path( ctx.email_template_id ), target: :_blank, class: [ 'action-view' ]
|
13
|
+
= link_to '[~]', edit_email_template_path( ctx.email_template_id ), target: :_blank, class: [ 'action-view' ]
|
14
|
+
<b>Layout:</b>
|
15
|
+
= ctx.email_template.layout
|
16
|
+
|
17
|
+
-# .field
|
18
|
+
-# %label Layout
|
19
|
+
-# = f.select :layout, options_for_select( @layouts_list, selected: ctx.layout_id )
|
20
|
+
|
21
|
+
.flex-row
|
22
|
+
%label From
|
23
|
+
= f.select :from_email, options_for_select(WcoEmail::EmailTemplate.from_emails_list, selected: ctx.from_email), {}, { class: 'select2' }
|
24
|
+
|
25
|
+
%label To lead
|
26
|
+
= f.select :lead_id, options_for_select( @leads_list, selected: ctx.lead_id ), {}, { class: 'select2' }
|
27
|
+
|
28
|
+
%label cc
|
29
|
+
= f.text_field :cc, class: 'w-100'
|
30
|
+
|
31
|
+
.flex-row
|
32
|
+
= f.label :subject
|
33
|
+
= f.text_field :subject, class: 'w-100'
|
34
|
+
|
35
|
+
.flex-row
|
36
|
+
= f.label :reply_to_message
|
37
|
+
= f.select :reply_to_message_id, options_for_select([[ ctx.reply_to_message.subject, ctx.reply_to_message_id ]], selected: ctx.reply_to_message_id), {}, class: 'w-100'
|
38
|
+
|
39
|
+
.tab-labels.flex-row
|
40
|
+
%a.label-raw{ href: "javascript: void(0)", data: { ref: '.tab-raw' } } Raw
|
41
|
+
%a.label-preview.active{ href: "javascript: void(0)", data: { ref: '.tab-preview' } } Preview
|
42
|
+
.label-save-preview= f.submit 'Save & Preview'
|
43
|
+
.tabs
|
44
|
+
.tab-raw
|
45
|
+
= f.text_area :body, class: 'tinymce'
|
46
|
+
.tab-preview
|
47
|
+
- if ctx.new_record?
|
48
|
+
New record...
|
49
|
+
- else
|
50
|
+
%iframe{ src: context_iframe_path(ctx), width: '100%', height: '100%' }
|
51
|
+
|
52
|
+
|
53
|
+
.actions
|
54
|
+
.left
|
55
|
+
= f.submit 'Preview'
|
56
|
+
.right
|
57
|
+
= f.label :send_at
|
58
|
+
= f.text_field :send_at
|
59
|
+
= f.submit 'Schedule'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
-# = ctx.inspect
|
3
|
+
|
4
|
+
.email-contexts--form-reply.form-mini
|
5
|
+
= form_for ctx do |f|
|
6
|
+
|
7
|
+
.flex-row
|
8
|
+
.flex-row
|
9
|
+
%label from
|
10
|
+
= f.select :from_email, options_for_select( WcoEmail::EmailTemplate.from_emails_list, selected: ctx.from_email ), {}, class: 'select2'
|
11
|
+
%label to (lead)
|
12
|
+
= f.select :lead, options_for_select( @leads_list, selected: lead_id ), {}, class: 'select2', required: true
|
13
|
+
.flex-row
|
14
|
+
= f.label :template
|
15
|
+
= f.select :email_template_id, options_for_select( @email_templates_list ), {}, class: 'select2', required: true
|
16
|
+
= link_to '[+]', new_email_template_path, target: :_blank
|
17
|
+
.flex-row
|
18
|
+
%label Subject
|
19
|
+
= f.text_field :subject, class: 'w-100'
|
20
|
+
.flex-row
|
21
|
+
.flex-row
|
22
|
+
%label Respond inline?
|
23
|
+
= check_box_tag :respond_inline, message.id, checked: true
|
24
|
+
.flex-row
|
25
|
+
= f.label :send_at
|
26
|
+
= f.text_field :send_at, required: true, placeholder: 'YYYY-MM-DD', value: Time.now.strftime('%Y-%m-%d'), size: 10, class: 'input-date'
|
27
|
+
= f.submit 'Send/Schedule'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
- ctxs = @ctxs || WcoEmail::Context.all
|
3
|
+
|
4
|
+
.a
|
5
|
+
= link_to contexts_path({ sent: false }) do
|
6
|
+
Email Contexts (#{ctxs.length})
|
7
|
+
- if @lead
|
8
|
+
For lead #{@lead.email}
|
9
|
+
- if my_truthy? params[:sent]
|
10
|
+
= link_to '[notsent]', contexts_path({ sent: false })
|
11
|
+
<b>sent</b>
|
12
|
+
- else
|
13
|
+
<b>notsent</b>
|
14
|
+
= link_to '[sent]', contexts_path({ sent: true })
|
15
|
+
= form_tag contexts_path, method: :get do
|
16
|
+
= text_field_tag :q
|
17
|
+
= link_to '[+]', new_context_path
|
18
|
+
= link_to '[summary]', contexts_summary_path( format: :html )
|
19
|
+
= link_to '[csv]', contexts_summary_path( format: :csv )
|
20
|
+
|
21
|
+
|
22
|
+
-# = link_to '[sent]', contexts_path({ sent: true })
|
@@ -0,0 +1,8 @@
|
|
1
|
+
|
2
|
+
.email-contexts-edit.maxwidth
|
3
|
+
.header
|
4
|
+
%h5.title
|
5
|
+
Edit email Context
|
6
|
+
= link_to "[view]", context_path( @ctx )
|
7
|
+
= button_to 'Send', send_context_path(@ctx), form_class: 'inline', :data => { :confirm => 'Are you sure?' }
|
8
|
+
= render '/wco_email/contexts/form', ctx: @ctx, tmpl: @tmpl
|
@@ -0,0 +1,51 @@
|
|
1
|
+
|
2
|
+
.email-contexts-index.padded
|
3
|
+
|
4
|
+
%h5.flex-row.header.collapse-expand-trash#emailContextsIndex
|
5
|
+
= render '/wco_email/contexts/header'
|
6
|
+
|
7
|
+
.W0
|
8
|
+
= render 'wco/paginate', resource: @ctxs, param_name: :ctxs_page, views_prefix: :wco
|
9
|
+
|
10
|
+
%table.bordered.data-table
|
11
|
+
%thead
|
12
|
+
%tr
|
13
|
+
%th.actions
|
14
|
+
%th.from From
|
15
|
+
%th.to To
|
16
|
+
%th.subject Subject
|
17
|
+
%th.template Template
|
18
|
+
%th.send_at Send at
|
19
|
+
%th.sent_at Sent at
|
20
|
+
%th.unsubscribed_at Unsubscribed at
|
21
|
+
%tbody
|
22
|
+
- @ctxs.each do |ctx|
|
23
|
+
%tr
|
24
|
+
%td.actions.padded
|
25
|
+
.flex-row
|
26
|
+
- if ctx.sent_at || ctx.unsubscribed_at
|
27
|
+
\--
|
28
|
+
- else
|
29
|
+
= link_to '[~]', edit_context_path(ctx)
|
30
|
+
= button_to 'x', context_path(ctx), method: :delete, form_class: :inline, data: { confirm: 'Are you sure?' }
|
31
|
+
= button_to 'send', send_context_path(ctx), form_class: :inline, data: { confirm: 'Are you sure?' }
|
32
|
+
|
33
|
+
%td.from
|
34
|
+
= ctx.from_email ? ctx.from_email : "t| #{ctx.tmpl.from_email}"
|
35
|
+
%td.to
|
36
|
+
= link_to ctx.lead.email, wco.lead_path(ctx.lead)
|
37
|
+
%td
|
38
|
+
= link_to context_path(ctx) do
|
39
|
+
= ctx.subject ? ctx.subject : "t| #{ctx.tmpl.subject}"
|
40
|
+
%td= ctx.email_template.slug
|
41
|
+
%td.send_at.padded
|
42
|
+
.datetime
|
43
|
+
.date= pp_date ctx.send_at
|
44
|
+
.time= pp_time ctx.send_at
|
45
|
+
%td
|
46
|
+
.datetime.padded= pp_date ctx.sent_at
|
47
|
+
%td
|
48
|
+
.datetime.padded= pp_date ctx.unsubscribed_at
|
49
|
+
|
50
|
+
|
51
|
+
= render 'wco/paginate', resource: @ctxs, param_name: :ctxs_page, views_prefix: :wco
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
.email-contexts-show.maxwidth
|
3
|
+
.header
|
4
|
+
%h5.title
|
5
|
+
= link_to '[~]', edit_context_path(@ctx)
|
6
|
+
Email Context `#{@ctx.subject}`
|
7
|
+
|
8
|
+
.row
|
9
|
+
.col-md-8
|
10
|
+
%ul
|
11
|
+
%li
|
12
|
+
<b>Layout:</b> #{link_to @ctx.email_template.layout, email_layout_path(@ctx.email_template.layout) }
|
13
|
+
<b>Template:</b> #{link_to @ctx.email_template.slug, email_template_path(@ctx.email_template), target: :_blank }
|
14
|
+
%li <b>From:</b> #{@ctx.from_email}
|
15
|
+
%li <b>To Lead:</b> #{link_to @ctx.lead.email, wco.lead_path(@ctx.lead)}
|
16
|
+
%li <b>reply_to_message:</b> #{ link_to @ctx.reply_to_message, message_path(@ctx.reply_to_message), target: :_blank }
|
17
|
+
|
18
|
+
|
19
|
+
.col-md-4
|
20
|
+
%ul
|
21
|
+
%li <b>Send at:</b> #{@ctx.send_at&.strftime('%Y-%m-%d %l:%M%P')}
|
22
|
+
%li <b>Sent at:</b> #{@ctx.sent_at&.strftime('%Y-%m-%d %l:%M%P')}
|
23
|
+
%li
|
24
|
+
= button_to 'Send', send_context_path(@ctx), form_class: 'inline', :data => { :confirm => 'Are you sure?' }
|
25
|
+
|
26
|
+
|
27
|
+
.maxwidth
|
28
|
+
- if @ctx.sent_at
|
29
|
+
= raw @ctx.rendered_str
|
30
|
+
-# = @ctx.tmpl
|
31
|
+
|
32
|
+
- else
|
33
|
+
-# = link_to 'i-src', context_iframe_path(@ctx), target: :_blank
|
34
|
+
%iframe.h-500px{ src: email_context_iframe_path(@ctx), width: '100%', height: '100%' }
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
.conversations--actions.bordered.d-flex
|
3
|
+
%a.btn.archive-btn{ href: "javascript: void(0)", data: { url: conversations_rmtag_path(Wco::Tag::INBOX) } }
|
4
|
+
%i.material-icons archive
|
5
|
+
archive
|
6
|
+
%a.btn.delete-btn{ href: "javascript: void(0)", data: { url: conversations_path } }
|
7
|
+
%i.material-icons delete
|
8
|
+
delete
|
9
|
+
%a.btn.reload-btn{ href: "javascript: location.reload()" }
|
10
|
+
%i.material-icons refresh
|
11
|
+
refresh
|
12
|
+
.bordered.inline-block
|
13
|
+
= select_tag :emailtag, options_for_select(@tags_list)
|
14
|
+
= check_box_tag :is_move
|
15
|
+
%label move?
|
16
|
+
%a.btn.add-tag-btn{ href: "javascript: void(0)", data: { url: conversations_addtag_path } }
|
17
|
+
%i.material-icons add
|
18
|
+
Addtag
|
19
|
+
%a.btn.remove-tag-btn{ href: "javascript: void(0)", data: { url: conversations_rmtag_path } }
|
20
|
+
%i.material-icons remove
|
21
|
+
Rmtag
|
@@ -0,0 +1,14 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
.conversations--search.Card
|
4
|
+
.inline-block
|
5
|
+
= form_tag email_conversations_path do
|
6
|
+
%label Search from_email
|
7
|
+
= text_field_tag :from_email, params[:from_email]
|
8
|
+
-# = submit_tag '>'
|
9
|
+
-# .inline-block
|
10
|
+
-# = form_tag email_conversations_path do
|
11
|
+
%label by subject
|
12
|
+
= text_field_tag :subject, params[:subject]
|
13
|
+
= submit_tag '>'
|
14
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
|
2
|
+
- content_for :sidebar do
|
3
|
+
= render 'wco_email/sidebar'
|
4
|
+
|
5
|
+
.conversations-index
|
6
|
+
|
7
|
+
= render '/wco_email/conversations/actions'
|
8
|
+
|
9
|
+
= render '/wco/paginate', resource: @conversations, param_name: :conv_page
|
10
|
+
|
11
|
+
%table.bordered
|
12
|
+
%tr
|
13
|
+
%th.select-all.nosort
|
14
|
+
.a
|
15
|
+
= check_box_tag :select_all
|
16
|
+
.n-selected -
|
17
|
+
%th.leads leads
|
18
|
+
%th.subject subject, preview
|
19
|
+
%th.latest-at latest_at
|
20
|
+
- @conversations.each_with_index do |conv, idx|
|
21
|
+
%tr
|
22
|
+
%td.select-all
|
23
|
+
.gray= idx+1
|
24
|
+
= check_box_tag 'conversation_ids[]', conv.id.to_s, nil, { class: 'i-sel' }
|
25
|
+
%td.leads.mini
|
26
|
+
-# - conv.from_emails.each do |from|
|
27
|
+
-# = link_to from, wco.lead_path( from )
|
28
|
+
-# %hr
|
29
|
+
- conv.leads.each do |lead|
|
30
|
+
= link_to lead.email, wco.lead_path( lead )
|
31
|
+
%td.subject
|
32
|
+
- if conv.unread?
|
33
|
+
<b>#{link_to conv.subject, email_conversation_path(conv)}</b>
|
34
|
+
- else
|
35
|
+
= link_to conv.subject, email_conversation_path(conv)
|
36
|
+
<b>(#{conv.messages.length})</b>
|
37
|
+
%span.gray= conv.preview
|
38
|
+
%td.latest-at
|
39
|
+
= pp_date conv.latest_at
|
40
|
+
= pp_time conv.latest_at
|
41
|
+
|
42
|
+
|
43
|
+
= render '/wco/paginate', resource: @conversations, param_name: :conv_page
|