ish_manager 0.1.8.316 → 0.1.8.317

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/ish_manager/application.scss +4 -0
  3. data/app/assets/stylesheets/ish_manager/email_templates.scss +47 -0
  4. data/app/controllers/ish_manager/{campaigns_controller.rb → email_campaigns_controller.rb} +1 -1
  5. data/app/controllers/ish_manager/email_contexts_controller.rb +74 -0
  6. data/app/controllers/ish_manager/email_templates_controller.rb +43 -0
  7. data/app/controllers/ish_manager/invoices_controller.rb +2 -2
  8. data/app/controllers/ish_manager/leads_controller.rb +2 -1
  9. data/app/controllers/ish_manager/meetings_controller.rb +1 -1
  10. data/app/controllers/ish_manager/{cities_controller.rb → trash/cities_controller.rb} +0 -0
  11. data/app/controllers/ish_manager/{orders_controller.rb → trash/orders_controller.rb} +0 -0
  12. data/app/controllers/ish_manager/{sites_controller.rb → trash/sites_controller.rb} +0 -0
  13. data/app/controllers/ish_manager/{venues_controller.rb → trash/venues_controller.rb} +0 -0
  14. data/app/controllers/ish_manager/unsubscribes_controller.rb +1 -1
  15. data/app/mailers/ish_manager/office_mailer.rb +22 -0
  16. data/app/views/ish_manager/application/_main_header_admin.haml +13 -1
  17. data/app/views/ish_manager/email_contexts/_form.haml +26 -0
  18. data/app/views/ish_manager/email_contexts/edit.haml +3 -0
  19. data/app/views/ish_manager/email_contexts/iframe_src.haml +4 -0
  20. data/app/views/ish_manager/email_contexts/index.haml +21 -0
  21. data/app/views/ish_manager/email_contexts/new.haml +3 -0
  22. data/app/views/ish_manager/email_contexts/show.haml +16 -0
  23. data/app/views/ish_manager/email_templates/_form.haml +11 -0
  24. data/app/views/ish_manager/email_templates/_marketing_ror_1.html +0 -0
  25. data/app/views/ish_manager/email_templates/_marketing_ror_2.html +0 -0
  26. data/app/views/ish_manager/email_templates/_marketing_wordpress_1.html +0 -0
  27. data/app/views/ish_manager/email_templates/_marketing_wordpress_2.html +0 -0
  28. data/app/views/ish_manager/email_templates/_piousbox_roundborders.html.erb +1005 -0
  29. data/app/views/ish_manager/email_templates/_social.html.erb +181 -0
  30. data/app/views/ish_manager/email_templates/index.haml +18 -0
  31. data/app/views/ish_manager/email_templates/show.haml +4 -0
  32. data/app/views/ish_manager/{application_mailer → iron_warbler_mailer}/condor_followup_alerb.html.erb +0 -0
  33. data/app/views/ish_manager/{application_mailer → iron_warbler_mailer}/option_alert.html.erb +0 -0
  34. data/app/views/ish_manager/{application_mailer → iron_warbler_mailer}/stock_alert.html.erb +0 -0
  35. data/app/views/ish_manager/maps/_map_meta_row.haml +1 -1
  36. data/app/views/ish_manager/{meeting_mailer → office_mailer}/morning_reminder.haml +0 -0
  37. data/app/views/ish_manager/office_mailer/render +1 -0
  38. data/app/views/ish_manager/{application_mailer → office_mailer}/test_email.html.haml +0 -0
  39. data/app/views/ish_manager/{cities → trash/cities}/_form.haml +0 -0
  40. data/app/views/ish_manager/{cities → trash/cities}/_header.haml +0 -0
  41. data/app/views/ish_manager/{cities → trash/cities}/edit.haml +0 -0
  42. data/app/views/ish_manager/{cities → trash/cities}/edit_feature.haml +0 -0
  43. data/app/views/ish_manager/{cities → trash/cities}/index.haml +0 -0
  44. data/app/views/ish_manager/{cities → trash/cities}/new.haml +0 -0
  45. data/app/views/ish_manager/{cities → trash/cities}/new_feature.haml +0 -0
  46. data/app/views/ish_manager/{cities → trash/cities}/new_newsitem.haml +0 -0
  47. data/app/views/ish_manager/{cities → trash/cities}/show.haml +0 -0
  48. data/app/views/ish_manager/{events → trash/events}/_form.haml +0 -0
  49. data/app/views/ish_manager/{events → trash/events}/_index.haml +0 -0
  50. data/app/views/ish_manager/{events → trash/events}/edit.haml +0 -0
  51. data/app/views/ish_manager/{events → trash/events}/index.haml +0 -0
  52. data/app/views/ish_manager/{events → trash/events}/new.haml +0 -0
  53. data/app/views/ish_manager/trash/meeting_mailer/README.txt +5 -0
  54. data/app/views/ish_manager/{sites → trash/sites}/_form.haml +0 -0
  55. data/app/views/ish_manager/{sites → trash/sites}/_header.haml +0 -0
  56. data/app/views/ish_manager/{sites → trash/sites}/edit.haml +0 -0
  57. data/app/views/ish_manager/{sites → trash/sites}/galleries.haml +0 -0
  58. data/app/views/ish_manager/{sites → trash/sites}/index.haml +0 -0
  59. data/app/views/ish_manager/{sites → trash/sites}/new.haml +0 -0
  60. data/app/views/ish_manager/{sites → trash/sites}/show.haml +0 -0
  61. data/app/views/ish_manager/{venues → trash/venues}/_form.haml +0 -0
  62. data/app/views/ish_manager/{venues → trash/venues}/_index.haml +0 -0
  63. data/app/views/ish_manager/{venues → trash/venues}/_search.haml +0 -0
  64. data/app/views/ish_manager/{venues → trash/venues}/edit.haml +0 -0
  65. data/app/views/ish_manager/{venues → trash/venues}/index.haml +0 -0
  66. data/app/views/ish_manager/{venues → trash/venues}/new.haml +0 -0
  67. data/app/views/ish_manager/{venues → trash/venues}/show.haml +0 -0
  68. data/app/views/layouts/ish_manager/application.haml +13 -13
  69. data/config/routes.rb +24 -7
  70. metadata +61 -41
  71. data/app/views/ish_manager/features/_index.haml-trash +0 -36
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 18b3141485361167090653528482f267142c3bab300104bbfadeb37be603c74b
4
- data.tar.gz: 1fe3ab212b45dfdc7bc4be1370090e6dc884b9f8e4e4d59fd769f862279d51f1
3
+ metadata.gz: 46aac642f2935fba5fd3fbdde3b5c8db3d5de1e662548ade2034e92b9139a85b
4
+ data.tar.gz: bca3a8046029e062114dd953e3c176bfca6b1bd707af2884a40005eae3f3245c
5
5
  SHA512:
6
- metadata.gz: 40051254ade984fbacbb6ea63843d525ef6f6a9778259203488a6ea2b473b1ae17a6812ee2cff5903a95db72542fcfef6ef8bd45fd899c928dc0a2efa579f7b6
7
- data.tar.gz: 68ec34c76a50135d8da176fec88fc975e9e94ef2b9535cc09a53f9b4f65ae3f3652607e7200d1a23152970fe5e23d20bf0917ed6d51dd531c02cbc7d01d4f88c
6
+ metadata.gz: c272991b54c0d0e841e01df392da16147210066e95fff67c680f9c80f95da58924b4cc15e98ff8024d2c0ce939bd358f5375e08dffd0aa34149f1f0ea6c27d4a
7
+ data.tar.gz: fb6f0a1676f62df1719a529d64804fa17b163ab82aa6000e8855e9e6e069ef6a6a98d7c4d7d2da0e1791b64009bfb56ad97b4d1479f33340c0587d8a8826dfb1
@@ -3,6 +3,10 @@
3
3
  *
4
4
  *= require ish_manager/jquery-ui
5
5
  *= require_self
6
+ *
7
+ * includes email contexts:
8
+ *= require ish_manager/email_templates
9
+ *
6
10
  *= require ish_manager/galleries
7
11
  *= require ish_manager/maps
8
12
  *= require ish_manager/markers
@@ -0,0 +1,47 @@
1
+
2
+
3
+ .email-contexts-new {
4
+ .actions {
5
+ display: flex;
6
+ justify-content: space-between;
7
+ }
8
+ }
9
+
10
+ .email-contexts-show {
11
+
12
+ iframe {
13
+ min-height: 500px;
14
+ }
15
+
16
+ }
17
+
18
+ .email-templates-index ul li,
19
+ .email-contexts-index {
20
+
21
+ a {
22
+ margin-right: 0.5em;
23
+
24
+ &::before {
25
+ content: "[";
26
+ }
27
+
28
+ &::after {
29
+ content: "]";
30
+ }
31
+ }
32
+
33
+ }
34
+
35
+ .email-templates--form {
36
+ border: 1px solid red;
37
+ padding: 1em;
38
+
39
+ form {
40
+ display: flex;
41
+
42
+ > * {
43
+ padding-right: 20px;
44
+ }
45
+ }
46
+
47
+ }
@@ -1,5 +1,5 @@
1
1
 
2
- class IshManager::CampaignsController < IshManager::ApplicationController
2
+ class ::IshManager::EmailCampaignsController < IshManager::ApplicationController
3
3
 
4
4
  def index
5
5
  authorize! :index, Ish::Campaign
@@ -0,0 +1,74 @@
1
+
2
+ class ::IshManager::EmailContextsController < ::IshManager::ApplicationController
3
+
4
+ before_action :set_lists
5
+
6
+ def create
7
+ authorize! :create, ::Ish::EmailContext
8
+ @email_ctx = ::Ish::EmailContext.new params[:ish_email_context].permit!
9
+ if @email_ctx.save
10
+ flash[:notice] = 'Saved.'
11
+ redirect_to action: 'show', id: @email_ctx.id
12
+ return
13
+ else
14
+ flash[:alert] = "Could not save: #{@email_ctx.errors.full_messages.join(', ')}"
15
+ render action: :new
16
+ return
17
+ end
18
+ end
19
+
20
+ def do_send
21
+ authorize! :send, ::Ish::EmailContext
22
+ IshManager::OfficeMailer.send_context_email(params[:id]).deliver_later
23
+ flash[:notice] = 'Scheduled send'
24
+ redirect_to action: 'index'
25
+ end
26
+
27
+ def edit
28
+ authorize! :edit, ::Ish::EmailContext
29
+ @email_ctx = ::Ish::EmailContext.find params[:id]
30
+ end
31
+
32
+ def iframe_src
33
+ authorize! :iframe_src, Ish::EmailContext
34
+ @email_ctx = EmailContext.find params[:id]
35
+ render layout: false
36
+ end
37
+
38
+ def index
39
+ authorize! :index, ::Ish::EmailContext
40
+ @email_ctxs = ::Ish::EmailContext.all.page( params[:contexts_page] )
41
+ end
42
+
43
+ def new
44
+ authorize! :new, ::Ish::EmailContext
45
+ @email_ctx = ::Ish::EmailContext.new email_template: @template
46
+ end
47
+
48
+ def show
49
+ authorize! :show, ::Ish::EmailContext
50
+ @email_ctx = ::Ish::EmailContext.find( params[:id] )
51
+ end
52
+
53
+ def update
54
+ authorize! :update, ::Ish::EmailContext
55
+ @email_ctx = ::Ish::EmailContext.find params[:id]
56
+ if @email_ctx.update_attributes params[:ish_email_context].permit!
57
+ flash[:notice] = 'Saved.'
58
+ redirect_to action: 'show', id: @email_ctx.id
59
+ return
60
+ else
61
+ flash[:alert] = "Could not save: #{@email_ctx.errors.full_messages.join(', ')}"
62
+ render action: :edit
63
+ return
64
+ end
65
+ end
66
+
67
+ private
68
+
69
+ def set_lists
70
+ @email_templates_list = [ [nil, nil] ] + ::Ish::EmailTemplate.all.map { |tmpl| [ tmpl.slug, tmpl.id ] }
71
+ end
72
+
73
+ end
74
+
@@ -0,0 +1,43 @@
1
+
2
+ class ::IshManager::EmailTemplatesController < ::IshManager::ApplicationController
3
+
4
+ def create
5
+ authorize! :create, ::Ish::EmailTemplate
6
+ template = ::Ish::EmailTemplate.create params[:ish_email_template].permit!
7
+ if template.persisted?
8
+ flash[:notice] = 'Success.'
9
+ else
10
+ flash[:alert] = "Could not create an email template: #{template.errors.full_messages.join(', ')}."
11
+ end
12
+ redirect_to action: :index
13
+ end
14
+
15
+ def destroy
16
+ authorize! :destroy, ::Ish::EmailTemplate
17
+ @template = Ish::EmailTemplate.where({ id: params[:id] }).first || Ish::EmailTemplate.find_by({ slug: params[:id] })
18
+ if @template.destroy
19
+ flash[:notice] = 'Success.'
20
+ else
21
+ flash[:alert] = 'Cannot destroy this template.'
22
+ end
23
+ redirect_to action: :index
24
+ end
25
+
26
+ def iframe_src
27
+ authorize! :iframe_src, Ish::EmailTemplate
28
+ end
29
+
30
+ def index
31
+ authorize! :index, Ish::EmailTemplate
32
+ @templates = Ish::EmailTemplate.all.page( params[:templates_page] )
33
+ end
34
+
35
+ def show
36
+ authorize! :show, Ish::EmailTemplate
37
+ @email_ctx = EmailContext.new
38
+ @template = Ish::EmailTemplate.where({ id: params[:id] }).first || Ish::EmailTemplate.find_by({ slug: params[:id] })
39
+ # render params[:id], layout: false
40
+ end
41
+
42
+
43
+ end
@@ -1,5 +1,5 @@
1
1
 
2
- class IshManager::InvoicesController < IshManager::ApplicationController
2
+ class ::IshManager::InvoicesController < IshManager::ApplicationController
3
3
 
4
4
  before_action :set_lists
5
5
 
@@ -39,7 +39,7 @@ class IshManager::InvoicesController < IshManager::ApplicationController
39
39
  # private
40
40
  #
41
41
  private
42
-
42
+
43
43
  def set_lists
44
44
  @invoice_number = Ish::Invoice.order_by( :number => :desc ).first
45
45
  @invoice_number = @invoice_number ? @invoice_number.number + 1 : 1
@@ -1,4 +1,5 @@
1
- class IshManager::LeadsController < IshManager::ApplicationController
1
+
2
+ class ::IshManager::LeadsController < IshManager::ApplicationController
2
3
 
3
4
  ## alphabetized : )
4
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- class IshManager::MeetingsController < IshManager::ApplicationController
2
+ class ::IshManager::MeetingsController < IshManager::ApplicationController
3
3
 
4
4
  # alphabetized
5
5
 
@@ -1,5 +1,5 @@
1
1
 
2
- class IshManager::UnsubscribesController < IshManager::ApplicationController
2
+ class ::IshManager::UnsubscribesController < IshManager::ApplicationController
3
3
 
4
4
  layout false
5
5
 
@@ -0,0 +1,22 @@
1
+
2
+ class IshManager::OfficeMailer < IshManager::ApplicationMailer
3
+ default from: 'piousbox@gmail.com'
4
+ # layout 'mailer'
5
+
6
+ def send_context_email ctx_id
7
+ @email_ctx = ::Ish::EmailContext.find ctx_id
8
+ template = "render/_#{@email_ctx.email_template.slug}"
9
+
10
+ ac = ActionController::Base.new
11
+ ac.instance_variable_set( :@email_ctx, @email_ctx )
12
+ rendered_str = ac.render_to_string("ish_manager/email_templates/_#{@email_ctx.email_template.slug}")
13
+ @email_ctx.update( rendered_str: rendered_str, sent_at: Time.now )
14
+
15
+ mail( to: @email_ctx.to_email,
16
+ bcc: 'piousbox@gmail.com',
17
+ subject: @email_ctx.subject,
18
+ template_name: template )
19
+
20
+ end
21
+
22
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  .application--main-header-admin.main-header{ class: "#{ENV['RAILS_ENV']} #{ENV['RAILS_ENV'][0...3]=="dev" ? "development" : ''}" }
4
4
  .container
5
- %i.fa.fa-compress.collapse-expand#collapseHeader
5
+ %i.fa.fa-compress.collapse-expand#collapseHeaderIsh
6
6
  .content
7
7
  %ul
8
8
  %li{ :class => params[:controller] == 'ish_manager/maps' ? 'active' : '' }
@@ -36,11 +36,23 @@
36
36
  %li{ :class => params[:controller] == 'ish_manager/user_profiles' ? 'active' : '' }= link_to 'Ish::UserProfiles', user_profiles_path
37
37
  %li
38
38
  = link_to "Ish::ImageAsset's", image_assets_path
39
+ .c
40
+ %i.fa.fa-compress.collapse-expand#collapseHeaderOffice
41
+ .namespace
39
42
  %ul
40
43
  %li= link_to 'Leads', leads_path
41
44
  %li
42
45
  = link_to 'Meetings', meetings_path
43
46
  = link_to '[+]', new_meeting_path
47
+ %ul
48
+ %li
49
+ = link_to 'Email Templates', email_templates_path
50
+ %li
51
+ = link_to 'Email Contexts', email_contexts_path
52
+ %li
53
+ = link_to 'Email Campaigns', email_campaigns_path
54
+ %li
55
+ = link_to 'Sent Emails', sent_emails_path
44
56
  %li
45
57
  = button_to 'Test Email', email_test_path, { form_class: 'inline-block' }
46
58
  %hr
@@ -0,0 +1,26 @@
1
+
2
+ .email-contexts--form
3
+ %h2
4
+ New Email Context
5
+ -# with template `#{email_ctx.email_template&.slug}`
6
+
7
+ - url = %w| index new create |.include?( params[:action] ) ? email_contexts_path : email_context_path(email_ctx)
8
+ = form_for email_ctx, url: url do |f|
9
+ .field
10
+ = f.label :email_template_id
11
+ = f.select :email_template_id, options_for_select(@email_templates_list, selected: params[:email_template_id] || email_ctx.email_template&.id )
12
+
13
+ .field
14
+ = f.label :to_email
15
+ = f.text_field :to_email
16
+ .field
17
+ = f.label :subject
18
+ = f.text_field :subject
19
+ .field
20
+ = f.label :body
21
+ = f.text_area :body, class: 'tinymce'
22
+ .actions
23
+ .left
24
+ = f.submit 'Preview'
25
+ .right
26
+ -# = f.submit 'Schedule/Send'
@@ -0,0 +1,3 @@
1
+
2
+ .email-contexts-edit
3
+ = render 'ish_manager/email_contexts/form', template: @template, email_ctx: @email_ctx
@@ -0,0 +1,4 @@
1
+
2
+ -# = @email_ctx.email_template.inspect
3
+
4
+ = render "ish_manager/email_templates/#{@email_ctx.email_template.slug}", ctx: @ctx
@@ -0,0 +1,21 @@
1
+
2
+ .email-contexts-index
3
+
4
+ %h2
5
+ Paginated Email Contexts (aka emails)
6
+ = link_to '+', new_email_context_path
7
+
8
+ %ul
9
+ - @email_ctxs.each do |ctx|
10
+ %li
11
+ - if ctx.sent_at
12
+ \----
13
+ - else
14
+ = link_to '~', edit_email_context_path(ctx)
15
+ = link_to email_context_path(ctx) do
16
+ view
17
+ -# %i.fa.fa-external-link
18
+ = link_to email_context_iframe_path(ctx), target: :_blank do
19
+ iframe
20
+ %i.fa.fa-external-link
21
+ To #{ctx.to_email}: #{ctx.subject}
@@ -0,0 +1,3 @@
1
+
2
+ .email-contexts-new
3
+ = render 'ish_manager/email_contexts/form', template: @template, email_ctx: @email_ctx
@@ -0,0 +1,16 @@
1
+
2
+ .email-contexts-show
3
+
4
+ %ul
5
+ %li <b>To:</b> #{@email_ctx.to_email}
6
+ %li <b>Subject:</b> #{@email_ctx.subject}
7
+ %li <b>Template:</b> #{@email_ctx.email_template.slug}
8
+ - if @email_ctx.sent_at
9
+ %li <b>Sent at:</b> #{@email_ctx.sent_at.strftime('%Y-%m-%d %l:%M%P')}
10
+ - else
11
+ %li= button_to 'Send', email_context_send_path(@email_ctx)
12
+
13
+ - if @email_ctx.sent_at
14
+ =raw @email_ctx.rendered_str
15
+ - else
16
+ %iframe{ src: email_context_iframe_path(@email_ctx), width: '100%', height: '100%' }
@@ -0,0 +1,11 @@
1
+
2
+ - url = %w| index new create |.include?( params[:action] ) ? email_templates_path : email_template_path(email_template.id)
3
+
4
+ .email-templates--form
5
+ = form_for email_template, url: url do |f|
6
+ %h3 New Email Template
7
+ .field
8
+ = f.label :slug
9
+ = f.text_field :slug
10
+ .actions
11
+ = f.submit 'Submit'