ish_manager 0.1.8.467 → 0.1.8.469

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/ish_manager/application.js +8 -0
  3. data/app/assets/stylesheets/ish_manager/application.scss +19 -1
  4. data/app/controllers/ish_manager/application_controller.rb +1 -3
  5. data/app/controllers/ish_manager/email_conversations_controller.rb +9 -1
  6. data/app/controllers/ish_manager/email_templates_controller.rb +18 -2
  7. data/app/controllers/ish_manager/lead_action_templates_controller.rb +27 -0
  8. data/app/controllers/ish_manager/lead_actions_controller.rb +10 -0
  9. data/app/controllers/ish_manager/newsitems_controller.rb +18 -5
  10. data/app/controllers/ish_manager/user_profiles_controller.rb +4 -4
  11. data/app/helpers/ish_manager/application_helper.rb +14 -0
  12. data/app/views/ish_manager/application/_main_footer.haml +4 -0
  13. data/app/views/ish_manager/application/_main_header_admin.haml +7 -4
  14. data/app/views/ish_manager/application/home.haml +120 -29
  15. data/app/views/ish_manager/email_layouts/can_unsubscribe.html.erb +0 -0
  16. data/app/views/ish_manager/email_layouts/piousbox_roundborders.html.erb +0 -0
  17. data/app/views/ish_manager/email_layouts/plain.html.erb +0 -0
  18. data/app/views/ish_manager/email_layouts/roundborders.html.erb +0 -0
  19. data/app/views/ish_manager/email_layouts/wco_roundborders.html.erb +0 -0
  20. data/app/views/ish_manager/email_templates/_footer_unsubscribe.html.erb +26 -0
  21. data/app/views/ish_manager/email_templates/_form.haml +6 -0
  22. data/app/views/ish_manager/email_templates/_m202309_feedback.html.erb +1153 -0
  23. data/app/views/ish_manager/email_templates/_m202309_holiday_black_friday.html.erb +0 -0
  24. data/app/views/ish_manager/email_templates/_m202309_holiday_christmas.html.erb +0 -0
  25. data/app/views/ish_manager/email_templates/_m202309_holiday_cinco_de_mayo.html.erb +0 -0
  26. data/app/views/ish_manager/email_templates/_m202309_holiday_columbus_day.html.erb +0 -0
  27. data/app/views/ish_manager/email_templates/_m202309_holiday_cyber_monday.html.erb +0 -0
  28. data/app/views/ish_manager/email_templates/_m202309_holiday_easter.html.erb +0 -0
  29. data/app/views/ish_manager/email_templates/_m202309_holiday_fathers_day.html.erb +0 -0
  30. data/app/views/ish_manager/email_templates/_m202309_holiday_flag_day.html.erb +0 -0
  31. data/app/views/ish_manager/email_templates/_m202309_holiday_groundhog_day.html.erb +0 -0
  32. data/app/views/ish_manager/email_templates/_m202309_holiday_halloween.html.erb +0 -0
  33. data/app/views/ish_manager/email_templates/_m202309_holiday_inauguration_day.html.erb +0 -0
  34. data/app/views/ish_manager/email_templates/_m202309_holiday_independence_day.html.erb +0 -0
  35. data/app/views/ish_manager/email_templates/_m202309_holiday_juneteenth.html.erb +0 -0
  36. data/app/views/ish_manager/email_templates/_m202309_holiday_labor_day.html.erb +0 -0
  37. data/app/views/ish_manager/email_templates/_m202309_holiday_may_forth.html.erb +3 -0
  38. data/app/views/ish_manager/email_templates/_m202309_holiday_memorial_day.html.erb +0 -0
  39. data/app/views/ish_manager/email_templates/_m202309_holiday_mlk.html.erb +0 -0
  40. data/app/views/ish_manager/email_templates/_m202309_holiday_mothers_day.html.erb +0 -0
  41. data/app/views/ish_manager/email_templates/_m202309_holiday_newyear.html.erb +0 -0
  42. data/app/views/ish_manager/email_templates/_m202309_holiday_presidents_day.html.erb +0 -0
  43. data/app/views/ish_manager/email_templates/_m202309_holiday_st_patricks.html.erb +0 -0
  44. data/app/views/ish_manager/email_templates/_m202309_holiday_thanksgiving.html.erb +0 -0
  45. data/app/views/ish_manager/email_templates/_m202309_holiday_valentines.html.erb +0 -0
  46. data/app/views/ish_manager/email_templates/_m202309_holiday_veterans_day.html.erb +0 -0
  47. data/app/views/ish_manager/email_templates/_marketing_node_1.html.erb +764 -456
  48. data/app/views/ish_manager/email_templates/edit.haml +3 -0
  49. data/app/views/ish_manager/lead_action_templates/_form.haml +12 -0
  50. data/app/views/ish_manager/lead_action_templates/edit.haml +5 -0
  51. data/app/views/ish_manager/lead_action_templates/index.haml +11 -0
  52. data/app/views/ish_manager/lead_actions/index.haml +12 -0
  53. data/app/views/layouts/ish_manager/application.haml +1 -0
  54. data/config/routes.rb +12 -0
  55. data/lib/tasks/office_tasks.rake +18 -0
  56. metadata +39 -3
  57. data/app/controllers/ish_manager/email_unsubscribes_controller.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8b67a0b7afbfa9d1004831b4bdc1d109e78156d3861f2c9aedef5e398180277
4
- data.tar.gz: 19a33c1f6d6b5f4e61bd1052cd7c2ea198fc14f1cc8dbc189e046c30c96dd2da
3
+ metadata.gz: 3b3a788b6e7e83e53fdbf17a632d57eb0d506ca7bf5c8127396d5c8e39070f01
4
+ data.tar.gz: 71361bf035d9484a5de3b4c01193f938828e8ba3e1e01676bc8a30faab4b2c71
5
5
  SHA512:
6
- metadata.gz: 5e67bfdd3bce54fbf561fd41b9db0b36cb72bed30afee3868e15810103ba761502aa5374277a15d19d409aaa7bb3cacd916d945d8fbb1b2f2aff71e0bc32eeba
7
- data.tar.gz: b81ff5ed28ab05f2bca362b6aa3f9cdb8e9ba33fe75910394bff2fdea436b5d831bf0b92900141b66e5b61423c9b67399bd95eb86da0fa8a3aebc71a258381b1
6
+ metadata.gz: 1e83bdd682a7a94e681af8ae269380eb15afd8078f055a6058d997dcf1e4a58944b57f5279e25727302bbaf7ae9712b72d941340c6f7bbf5ac453661faa32bd3
7
+ data.tar.gz: fe8ed81b42f3b4195c407fdbfcb45c194db504181c7918e8c9054e72c70cd58826b033630244302096dc76d8e82c03168af9fd9f3dd9fdb282a9499e04b52a5b
@@ -161,6 +161,14 @@ $(function () {
161
161
  $( $(".n-selected")[0] ).html( $("input[type='checkbox'].i-sel:checked").length )
162
162
  })
163
163
 
164
+ // set jwt token
165
+ let jwt_token = localStorage.getItem('jwt_token')
166
+ $('.jwt-token').html( jwt_token )
167
+ $('button.set-jwt-token').click(function () {
168
+ localStorage.setItem('jwt_token', window.jwt_token)
169
+ $('button.set-jwt-token').html('set!')
170
+ })
171
+
164
172
 
165
173
  });
166
174
 
@@ -415,7 +415,8 @@ textarea.large {
415
415
  z-index: -1;
416
416
  }
417
417
 
418
- .max-width {
418
+ .max-width,
419
+ .maxwidth {
419
420
  max-width: 1140px;
420
421
  width: 100%;
421
422
  margin: auto;
@@ -529,3 +530,20 @@ textarea.large {
529
530
  width: 100px;
530
531
  }
531
532
 
533
+ div.set-jwt-token {
534
+ border: 1px solid orange;
535
+ width: 100%;
536
+
537
+ display: flex;
538
+ overflow: hidden;
539
+
540
+ .jwt-token {
541
+ flex-grow: 1;
542
+ }
543
+ }
544
+
545
+ /* V */
546
+
547
+ .valign-top {
548
+ align-items: flex-start;
549
+ }
@@ -106,7 +106,6 @@ class IshManager::ApplicationController < ActionController::Base
106
106
  @email_actions_list = [[nil,nil]] + Office::EmailAction.all.map { |a| [ a.slug, a.id ] }
107
107
  @email_templates_list = [[nil,nil]] + Ish::EmailTemplate.all.map { |t| [ t.slug, t.id ] }
108
108
  @email_tags_list = [[nil,nil]] + WpTag.email_tags.map { |t| [ t.name, t.id ] }
109
- @galleries_list = Gallery.all.list
110
109
  @leads_list = Lead.list
111
110
  @leadsets_list = Leadset.list
112
111
  @locations_list = ::Gameui::Map.list
@@ -117,14 +116,13 @@ class IshManager::ApplicationController < ActionController::Base
117
116
  @reports_list = Report.all.list
118
117
  @tags_list = [[nil,nil]] + WpTag.all.map { |t| [ t.name, t.id ] }
119
118
  @user_profiles_list = Ish::UserProfile.list
120
- @videos_list = Video.all.list
119
+
121
120
  end
122
121
 
123
122
  def set_title
124
123
  @page_title = "#{ params[:controller].gsub('ish_manager/', '') } #{params[:action]} #{params[:slug]||params[:id]} ".gsub(" ", " ")
125
124
  end
126
125
 
127
-
128
126
  end
129
127
 
130
128
 
@@ -7,6 +7,13 @@ class ::IshManager::EmailConversationsController < IshManager::ApplicationContro
7
7
  authorize! :email_conversations_index, IshManager::Ability
8
8
  @email_conversations = ::Office::EmailConversation.all
9
9
 
10
+ if current_profile.per_page > 100
11
+ flash_notice "Cannot display more than 100 conversations per page."
12
+ per_page = 100
13
+ else
14
+ per_page = current_profile.per_page
15
+ end
16
+
10
17
  if params[:slug]
11
18
  @email_conversations = @email_conversations.in_emailtag( params[:slug] )
12
19
  end
@@ -15,9 +22,10 @@ class ::IshManager::EmailConversationsController < IshManager::ApplicationContro
15
22
  end
16
23
  @email_conversations = @email_conversations.order_by( latest_at: :desc
17
24
  ).page( params[:conv_page]
18
- ).per( current_profile.per_page )
25
+ ).per( per_page )
19
26
  end
20
27
 
28
+
21
29
  def show
22
30
  authorize! :email_conversations_show, IshManager::Ability
23
31
  @email_conversation = ::Office::EmailConversation.find( params[:id] )
@@ -35,8 +35,8 @@ class ::IshManager::EmailTemplatesController < ::IshManager::ApplicationControll
35
35
  Ish::EmailTemplate.find_by({ slug: params[:id] })
36
36
  authorize! :iframe_src, @email_template
37
37
 
38
- pox = Lead.find_by({ email: 'poxlovi@gmail.com' })
39
- @ctx = Ctx.new({ email_template: @tmpl, lead_id: pox.id })
38
+ @lead = Lead.find_by({ email: 'poxlovi@gmail.com' })
39
+ @ctx = Ctx.new({ email_template: @tmpl, lead_id: @lead.id })
40
40
 
41
41
  @utm_tracking_str = {
42
42
  'cid' => @ctx.lead_id,
@@ -45,6 +45,22 @@ class ::IshManager::EmailTemplatesController < ::IshManager::ApplicationControll
45
45
  'utm_source' => @ctx.tmpl.slug,
46
46
  }.map { |k, v| "#{k}=#{v}" }.join("&")
47
47
 
48
+ to = Ishapi::Engine.routes.url_helpers.email_unsubscribes_url({
49
+ template_id: @ctx.tmpl.id,
50
+ lead_id: @lead.id,
51
+ token: @lead.unsubscribe_token,
52
+ })
53
+ obf = Office::ObfuscatedRedirect.find_or_create_by({ to: to })
54
+ @unsubscribe_url = Ishapi::Engine.routes.url_helpers.obf_url( obf.id )
55
+
56
+ to = Ishapi::Engine.routes.url_helpers.users_dashboard_url({
57
+ lead_id: @lead.id,
58
+ })
59
+ obf = Office::ObfuscatedRedirect.find_or_create_by({ to: to })
60
+ @update_preferences_url = Ishapi::Engine.routes.url_helpers.obf_url( obf.id )
61
+
62
+ eval( @ctx.tmpl.config_exe )
63
+
48
64
  render layout: false
49
65
  end
50
66
 
@@ -0,0 +1,27 @@
1
+
2
+ class IshManager::LeadActionTemplatesController < IshManager::ApplicationController
3
+
4
+ def create
5
+ authorize! :create, Office::LeadActionTemplate
6
+ @tmpl = ::Office::LeadActionTemplate.new params[:tmpl].permit!
7
+ if @tmpl.save
8
+ flash_notice 'saved'
9
+ else
10
+ flash_alert "cannot save: #{@tmpl.errors.full_messages.join(', ')}."
11
+ end
12
+ redirect_to action: :index
13
+ end
14
+
15
+ def edit
16
+ @tmpl = Office::LeadActionTemplate.find params[:id]
17
+ authorize! :edit, @tmpl
18
+ end
19
+
20
+ def index
21
+ authorize! :index, Office::LeadActionTemplate
22
+ @tmpls = ::Office::LeadActionTemplate.all
23
+ @new_lat = ::Office::LeadActionTemplate.new
24
+ end
25
+
26
+ end
27
+
@@ -0,0 +1,10 @@
1
+
2
+ class IshManager::LeadActionsController < IshManager::ApplicationController
3
+
4
+ def index
5
+ authorize! :index, Office::LeadAction
6
+ @lead_actions = Office::LeadAction.all
7
+ end
8
+
9
+ end
10
+
@@ -57,11 +57,6 @@ class IshManager::NewsitemsController < IshManager::ApplicationController
57
57
  def edit
58
58
  @newsitem = Newsitem.find( params[:id] )
59
59
  authorize! :edit, @newsitem
60
-
61
- ## @TODO: what on earth is this?
62
- out = Gallery.unscoped.where( :is_trash => false, :user_profile => @current_profile ).order_by( :created_at => :desc )
63
- @galleries_list = [['', nil]] + out.map { |item| [ "#{item.created_at.strftime('%Y%m%d')} #{item.name}", item.id ] }
64
-
65
60
  end
66
61
 
67
62
  def index
@@ -99,5 +94,23 @@ class IshManager::NewsitemsController < IshManager::ApplicationController
99
94
 
100
95
  end
101
96
 
97
+ ##
98
+ ## private
99
+ ##
100
+ private
101
+
102
+ def set_lists
103
+
104
+ ## NO SUPER!
105
+ # super
106
+
107
+ # out = Gallery.unscoped.where( :is_trash => false, :user_profile => @current_profile ).order_by( :created_at => :desc )
108
+ # @galleries_list = [['', nil]] + out.map { |item| [ "#{item.created_at.strftime('%Y%m%d')} #{item.name}", item.id ] }
109
+
110
+ @galleries_list = Gallery.all.list
111
+ @videos_list = Video.all.list
112
+
113
+ end
114
+
102
115
  end
103
116
 
@@ -18,9 +18,9 @@ class IshManager::UserProfilesController < IshManager::ApplicationController
18
18
  raise "cannot save profile.user: #{@user.errors.full_messages} profile errors: #{@user_profile.errors.full_messages}"
19
19
  end
20
20
  if @user_profile.save
21
- flash[:notice] = "Created profile"
21
+ flash_notice "Created profile."
22
22
  else
23
- flash[:alert] = "Cannot create profile: #{@user_profile.errors.messages}"
23
+ flash_alert "Cannot create profile: #{@user_profile.errors.messages} ."
24
24
  end
25
25
  redirect_to :action => :index
26
26
  end
@@ -67,9 +67,9 @@ class IshManager::UserProfilesController < IshManager::ApplicationController
67
67
  flag = @profile.update_attributes params[:profile].permit!
68
68
 
69
69
  if flag
70
- flash[:notice] = "Updated profile #{@profile.email}"
70
+ flash_notice "Updated profile #{@profile.email} ."
71
71
  else
72
- flash[:alert] = "Cannot update profile: #{@profile.errors.full_messages}"
72
+ flash_alert "Cannot update profile: #{@profile.errors.full_messages} ."
73
73
  end
74
74
  if params[:redirect_to]
75
75
  redirect_to params[:redirect_to]
@@ -34,6 +34,20 @@ module IshManager
34
34
  # "/manager/email_contexts/for_lead/#{lead.id.to_s}"
35
35
  # end
36
36
 
37
+ ##
38
+ ## O
39
+ ##
40
+
41
+ def obfuscate link
42
+ puts! link, 'obfuscate helper'
43
+ obf = Office::ObfuscatedRedirect.find_or_create_by({ to: link })
44
+ return Ishapi::Engine.routes.url_helpers.obf_url( obf.id )
45
+ end
46
+
47
+ ##
48
+ ## P
49
+ ##
50
+
37
51
  def pp_errors errors
38
52
  return errors
39
53
  end
@@ -23,6 +23,10 @@
23
23
 
24
24
  .col-sm-4
25
25
  = button_to 'Logout', main_app.destroy_user_session_path, :method => :delete, data: { confirm: 'Are you sure?' }
26
+ .set-jwt-token
27
+
28
+ = button_tag 'Set JWT', class: 'set-jwt-token'
29
+ .jwt-token
26
30
  = form_for @current_profile, url: profile_path(@current_profile), as: :profile do |f|
27
31
  .flex-row
28
32
  = f.label :per_page
@@ -3,6 +3,8 @@
3
3
  .application--main-header-admin.main-header{ class: "#{ENV['RAILS_ENV']} #{ENV['RAILS_ENV'][0...3]=="dev" ? "development" : ''}" }
4
4
  %i.fa.fa-compress.collapse-expand#collapseHeaderMain
5
5
  Piousbox Suite
6
+ = link_to '[Current Issue]', '/'
7
+ = link_to '[Dashboard]', '/manager'
6
8
  .container
7
9
 
8
10
  %i.fa.fa-compress.collapse-expand#collapseHeaderPiCMS
@@ -64,8 +66,6 @@
64
66
  = form_tag leadsets_path, method: :get do
65
67
  = text_field_tag :q
66
68
  = link_to '[+]', new_leadset_path
67
-
68
-
69
69
  %li
70
70
  = link_to "EActions (#{Office::EmailAction.count})", email_actions_path
71
71
  = link_to '[+]', new_email_action_path
@@ -91,8 +91,11 @@
91
91
  = link_to '[+]', new_scheduled_email_action_path
92
92
 
93
93
  %ul
94
- %li &nbsp;
95
- %li &nbsp;
94
+ %li
95
+ = link_to 'Lead Actions', lead_actions_path
96
+ %li
97
+ = link_to 'Lead Action Templatess', lead_action_templates_path
98
+ -# = link_to '[+]', new_lead_action_template_path
96
99
  %li
97
100
  = link_to "Campaigns (#{Ish::EmailCampaign.count})", email_campaigns_path
98
101
  = link_to '[+]', new_email_campaign_path
@@ -1,40 +1,131 @@
1
1
 
2
- .application-home.max-width
3
- %h5 Welcome home
2
+ - yesterday = (Time.now - 1.day ).strftime('%Y-%m-%d')
3
+ - month_ago = (Time.now - 28.days ).strftime('%Y-%m-%d')
4
+ - month2_ago = (Time.now - 56.days ).strftime('%Y-%m-%d')
5
+ - month4_ago = (Time.now - 112.days ).strftime('%Y-%m-%d')
4
6
 
5
- .bordered-card
6
- = form_tag "https://www.cgtrader.com/free-3d-models", method: :get, target: :_blank do
7
- %p Search CGTrader:
8
- = hidden_field_tag "polygons", "lt_5k"
9
- = text_field_tag "keywords"
10
- = submit_tag 'search'
7
+ .application-home
11
8
 
12
- .bordered-card
13
- = form_tag "https://www.youtube.com/results", method: :get, target: :_blank do
14
- %p Search Youtube:
15
- = text_field_tag "search_query"
16
- = submit_tag 'search'
9
+ .center
10
+ %h2 Welcome Home
17
11
 
18
- .bordered-card
19
- = form_tag "https://wiki.wasya.co/index.php", method: :get, target: :_blank do
20
- %p Search wiki.wasya.co:
21
- = text_field_tag "search"
22
- = submit_tag 'search'
12
+ .maxwidth.flex-row.justify-content-center
23
13
 
14
+ .bordered-card
15
+ = form_tag "https://www.cgtrader.com/free-3d-models", method: :get, target: :_blank do
16
+ %p Search CGTrader:
17
+ = hidden_field_tag "polygons", "lt_5k"
18
+ = text_field_tag "keywords"
19
+ = submit_tag 'search'
24
20
 
21
+ .bordered-card
22
+ = form_tag "https://www.youtube.com/results", method: :get, target: :_blank do
23
+ %p Search Youtube:
24
+ = text_field_tag "search_query"
25
+ = submit_tag 'search'
25
26
 
26
- .bordered-card
27
- %h5.center.text-center USD to COP
28
- #root{ width: 500, height: 300 }
29
- %script{src: "/recharts-example-out.js", type: "module"}
30
- %script{type: "module"}
27
+ .bordered-card
28
+ = form_tag "https://wiki.wasya.co/index.php", method: :get, target: :_blank do
29
+ %p Search wiki.wasya.co:
30
+ = text_field_tag "search"
31
+ = submit_tag 'search'
31
32
 
33
+ .flex-row.valign-top.justify-content-center
32
34
 
33
- import App from '/recharts-example-out.js';
35
+ .bordered-card
36
+ %h5.center Wasya Co KPI's
37
+ %ul
38
+ %li
39
+ = link_to 'Visits 1,2 mo', "https://analytics.wasya.co/index.php?module=CoreHome&action=index&idSite=2&period=day&date=yesterday#?period=range&date=#{month_ago},#{yesterday}&category=Dashboard_Dashboard&subcategory=1&comparePeriods%5B%5D=range&compareDates%5B%5D=#{month2_ago},#{month_ago}", target: :_blank
40
+ %li
41
+ = link_to 'Visits 2,4 mo', "https://analytics.wasya.co/index.php?module=CoreHome&action=index&idSite=2&period=day&date=yesterday#?period=range&date=#{month2_ago},#{yesterday}&category=Dashboard_Dashboard&subcategory=1&comparePeriods%5B%5D=range&compareDates%5B%5D=#{month4_ago},#{month2_ago}", target: :_blank
42
+ %li
43
+ = link_to 'Google Webmasters', 'https://search.google.com/search-console?utm_source=about-page&resource_id=https://wasya.co/'
44
+ %li
45
+ = link_to 'Bing Webmasters', 'https://www.bing.com/webmasters/home?siteUrl=https://wasya.co/'
46
+ %li
47
+ = link_to 'Persistent advertisement messages ', '#'
48
+ %br
49
+ (CL, maybe reddit?)
50
+ %li= link_to 'N Sitemap Pages', '#'
51
+ %li= link_to 'N Email Messages', '#'
52
+ %li= link_to 'N Email Filters', '#'
53
+ %li= link_to 'N Email Autoresponds', '#'
54
+ %li= link_to 'N Email templates', '#'
55
+ %li= link_to 'N Email campaigns', '#'
34
56
 
35
- const el = document.querySelector('#root')
36
- const e = React.createElement;
57
+ %hr
37
58
 
38
- const domContainer = document.querySelector('#root');
39
- const root = ReactDOM.createRoot(domContainer);
40
- root.render(e(App));
59
+ %li= link_to 'N mautic form responses', '#'
60
+
61
+ %hr
62
+
63
+ %li= link_to 'this month revenue', '#'
64
+ %li= link_to 'possible future revenue', '#'
65
+
66
+ .bordered-card
67
+ %h5.center Piousbox KPI's
68
+ %ul
69
+ %li
70
+ = link_to 'Visits', "https://analytics.wasya.co/index.php?module=CoreHome&action=index&idSite=3&period=day&date=yesterday#?period=day&date=yesterday&category=Dashboard_Dashboard&subcategory=1&idSite=3"
71
+ %li
72
+ = link_to 'Visits 2,4 mo', "https://analytics.wasya.co/index.php?module=CoreHome&action=index&idSite=3&period=day&date=yesterday#?period=range&date=#{month2_ago},#{yesterday}&category=Dashboard_Dashboard&subcategory=1&comparePeriods%5B%5D=range&compareDates%5B%5D=#{month4_ago},#{month2_ago}", target: :_blank
73
+ %li
74
+ = link_to 'Google Webmasters', 'https://search.google.com/search-console?resource_id=sc-domain%3Apiousbox.com'
75
+ %li
76
+ = link_to 'Bing Webmasters', 'https://www.bing.com/webmasters/home?siteUrl=https://piousbox.com'
77
+ %li= link_to 'N Sitemap Pages', '#'
78
+
79
+ %hr
80
+ %li= link_to 'Gym', '#'
81
+ %li
82
+ = link_to 'Aggressive Twice-a-day', '#'
83
+ = link_to '[~]', '#'
84
+
85
+
86
+ .bordered-card
87
+ %h5.center Infinite Shelter KPI's
88
+ %ul
89
+ %li
90
+ = link_to 'Visits', "https://analytics.wasya.co/index.php?module=CoreHome&action=index&idSite=5&period=day&date=yesterday#?period=day&date=yesterday&category=Dashboard_Dashboard&subcategory=1&idSite=3"
91
+ %li
92
+ = link_to 'Google Webmasters', 'https://search.google.com/search-console?resource_id=sc-domain%3Ainfiniteshelter.com'
93
+ %li
94
+ = link_to 'Bing Webmasters', 'https://www.bing.com/webmasters/home?siteUrl=https://infiniteshelter.com'
95
+ %li= link_to 'N contributed content', '#'
96
+
97
+ .bordered-card
98
+ %h5.center DemmiTV KPI's
99
+ %ul
100
+ %li
101
+ = link_to 'Visits', "https://analytics.wasya.co/index.php?module=CoreHome&action=index&idSite=5&period=day&date=yesterday#?period=day&date=yesterday&category=Dashboard_Dashboard&subcategory=1&idSite=3"
102
+ %li
103
+ = link_to 'Google Webmasters', 'https://search.google.com/search-console?resource_id=sc-domain%3Ainfiniteshelter.com'
104
+ %li
105
+ = link_to 'Bing Webmasters', 'https://www.bing.com/webmasters/home?siteUrl=https://infiniteshelter.com'
106
+ %li= link_to 'N Sitemap Pages', '#'
107
+
108
+ %li= link_to 'N contributed content', '#'
109
+
110
+ .maxwidth.flex-row.justify-content-center
111
+
112
+ .bordered-card
113
+ %h5.center KPI sent contexts
114
+ #kpiSentContexts{ width: 500, height: 300 }
115
+ %script{type: "module"}
116
+ import App from '/bundle-kpi-sent-contexts.js';
117
+ const el = document.querySelector('#kpiSentContexts')
118
+ const e = React.createElement;
119
+ const root = ReactDOM.createRoot(el);
120
+ root.render(e(App));
121
+
122
+
123
+ .bordered-card
124
+ %h5.center.text-center USD to COP
125
+ #root{ width: 500, height: 300 }
126
+ %script{type: "module"}
127
+ import App from '/recharts-example-out.js';
128
+ const e = React.createElement;
129
+ const el = document.querySelector('#root');
130
+ const root = ReactDOM.createRoot(el);
131
+ root.render(e(App));
@@ -0,0 +1,26 @@
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:18px; padding-bottom:9px; padding-left:18px;">
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?<br>
17
+
18
+ You can <%= link_to 'update your preferences', @update_preferences_url %> or
19
+
20
+ <%= link_to 'unsubscribe from this list', @unsubscribe_url %>.<br><br>
21
+
22
+ </td>
23
+
24
+ </tr>
25
+ </tbody>
26
+ </table>
@@ -22,6 +22,9 @@
22
22
  .field
23
23
  = f.label :preview_str
24
24
  = f.text_field :preview_str
25
+ .field
26
+ = f.label :can_unsubscribe
27
+ = f.check_box :can_unsubscribe
25
28
 
26
29
 
27
30
  .tab-labels
@@ -36,6 +39,9 @@
36
39
  -# .descr= render "ish_manager/email_templates/#{email_template.layout}", ctx: Ish::EmailContext.new, tmpl: email_template
37
40
  %iframe{ src: email_template_iframe_path(email_template), width: '100%', height: '100%' }
38
41
 
42
+ .field
43
+ = f.label :config_exe
44
+ = f.text_area :config_exe
39
45
 
40
46
  .actions
41
47
  = f.submit 'Save'