@@ -9,7 +9,15 @@ class MissionMailer < ActionMailer::Base |
||
9 | 9 |
mail :to => step.mission_agent.user.email, |
10 | 10 |
:subject => "#{t 'step.step_validated'} - #{step.title}", |
11 | 11 |
:from => "mission_control@avalanche.network", |
12 |
- :from_name => "Avalanche System" |
|
12 |
+ :from_name => "Mission Control - Avalanche Network" |
|
13 |
+ end |
|
14 |
+ |
|
15 |
+ def step_denied_notification(step) |
|
16 |
+ @step = step |
|
17 |
+ mail :to => step.mission_agent.user.email, |
|
18 |
+ :subject => "#{t 'step.step_denied'} - #{step.title}", |
|
19 |
+ :from => "mission_control@avalanche.network", |
|
20 |
+ :from_name => "Mission Control - Avalanche Network" |
|
13 | 21 |
end |
14 | 22 |
|
15 | 23 |
end |
@@ -0,0 +1,253 @@ |
||
1 |
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
2 |
+<html xmlns="http://www.w3.org/1999/xhtml"> |
|
3 |
+ <head> |
|
4 |
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
|
5 |
+ <title>*|MC:SUBJECT|*</title> |
|
6 |
+ <style type="text/css" data-roadie-ignore> |
|
7 |
+ /* ---- CLIENT-SPECIFIC STYLES ---- */ |
|
8 |
+ |
|
9 |
+ /* Force Outlook to provide a "view in browser" message */ |
|
10 |
+ #outlook a{padding:0;} |
|
11 |
+ /* Force Hotmail to display emails at full width */ |
|
12 |
+ .ReadMsgBody{width:100%;} .ExternalClass{width:100%;} |
|
13 |
+ /* Force Hotmail to display normal line spacing */ |
|
14 |
+ .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} |
|
15 |
+ /* Prevent WebKit and Windows mobile changing default text sizes */ |
|
16 |
+ body, table, td, p, a, li, blockquote{-webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;} |
|
17 |
+ /* Remove spacing between tables in Outlook 2007 and up */ |
|
18 |
+ table, td{mso-table-lspace:0pt; mso-table-rspace:0pt;} |
|
19 |
+ /* Allow smoother rendering of resized image in Internet Explorer */ |
|
20 |
+ img{-ms-interpolation-mode:bicubic;} |
|
21 |
+ |
|
22 |
+ /* ---- RESET STYLES ---- */ |
|
23 |
+ body{margin:0; padding:0;} |
|
24 |
+ img{border:0; height:auto; line-height:100%; outline:none; text-decoration:none;} |
|
25 |
+ table{border-collapse:collapse !important;} |
|
26 |
+ body, .bodyTable, .bodyCell{height:100% !important; margin:0; padding:0; width:100% !important;} |
|
27 |
+ |
|
28 |
+ /* ---- TEMPLATE STYLES ---- */ |
|
29 |
+ .container, #page-header, #page-content, #page-footer { width: 600px; } |
|
30 |
+ |
|
31 |
+ |
|
32 |
+ |
|
33 |
+ .page-footer a { |
|
34 |
+ color: #202020; |
|
35 |
+ text-decoration: underline; |
|
36 |
+ } |
|
37 |
+ .btn:hover { background: rgba(0, 0, 0, 0.2); } |
|
38 |
+ |
|
39 |
+ /* ---- MOBILE STYLES ---- */ |
|
40 |
+ |
|
41 |
+ @media only screen and (max-width: 480px){ |
|
42 |
+ |
|
43 |
+ /* ---- CLIENT-SPECIFIC MOBILE STYLES ---- */ |
|
44 |
+ /* Prevent Webkit platforms from changing default text sizes */ |
|
45 |
+ body, table, td, p, a, li, blockquote{-webkit-text-size-adjust:none !important;} |
|
46 |
+ /* Prevent iOS Mail from adding padding to the body */ |
|
47 |
+ body{width:100% !important; min-width:100% !important;} |
|
48 |
+ |
|
49 |
+ /* ---- MOBILE RESET STYLES ---- */ |
|
50 |
+ .bodyCell{padding:0px !important;} |
|
51 |
+ |
|
52 |
+ /* ---- MOBILE STYLES ---- */ |
|
53 |
+ |
|
54 |
+ @media only screen and (max-width: 480px){ |
|
55 |
+ |
|
56 |
+ /* ---- MOBILE TEMPLATE STYLES ---- */ |
|
57 |
+ .page-header, #page-header, #page-content, #page-footer { width: 100%; padding-left: 25px; padding-right: 25px; margin-left: 0px; margin-right: 0px;} |
|
58 |
+ .hide-mobile { display:none !important; } |
|
59 |
+ } |
|
60 |
+ } |
|
61 |
+ </style> |
|
62 |
+ |
|
63 |
+ <style> |
|
64 |
+ |
|
65 |
+ /* ---- TEMPLATE STYLES ---- */ |
|
66 |
+ |
|
67 |
+ body, .bodyTable{ |
|
68 |
+ /*@editable*/ background-color:#FFFFFF; |
|
69 |
+ padding: 0px; margin: 0px; |
|
70 |
+ } |
|
71 |
+ |
|
72 |
+ h1 { |
|
73 |
+ /* mission description 2: */ |
|
74 |
+ font-family: Avenir-Light; |
|
75 |
+ font-size: 28px; |
|
76 |
+ color: #000000; |
|
77 |
+ line-height: 38px; |
|
78 |
+ } |
|
79 |
+ |
|
80 |
+ .bodyTable, .bodyCell { margin: 0px; padding: 0px;} |
|
81 |
+ |
|
82 |
+ #body-success { background-color: #92BC64; width: 100%; margin-left: 0px; margin-right: 0px;} |
|
83 |
+ #body-danger { background-color: #ED5A51; width: 100%; margin-left: 0px; margin-right: 0px;} |
|
84 |
+ |
|
85 |
+ .cetered { text-align: center; } |
|
86 |
+ |
|
87 |
+ #content-main { padding-left: 10px; padding-right: 10px; } |
|
88 |
+ |
|
89 |
+ .page-header { |
|
90 |
+ text-align: left; |
|
91 |
+ padding-top: 30px; |
|
92 |
+ } |
|
93 |
+ |
|
94 |
+ .page-header small { |
|
95 |
+ font-family: Avenir-MediumOblique; |
|
96 |
+ font-size: 18px; |
|
97 |
+ color: #1D1D26; |
|
98 |
+ line-height: 25px; |
|
99 |
+ font-weight: 300; |
|
100 |
+ text-transform: uppercase; |
|
101 |
+ } |
|
102 |
+ .page-header h2 { |
|
103 |
+ font-family: Helvetica-LightOblique; |
|
104 |
+ font-size: 48px; |
|
105 |
+ color: #1D1D26; |
|
106 |
+ line-height: 58px; |
|
107 |
+ font-weight: 300; |
|
108 |
+ margin-top: 0px; |
|
109 |
+ margin-bottom: 7px; |
|
110 |
+ } |
|
111 |
+ |
|
112 |
+ .page-header h3 { |
|
113 |
+ font-family: Helvetica-Light; |
|
114 |
+ font-size: 28px; |
|
115 |
+ color: #000000; |
|
116 |
+ line-height: 38px; |
|
117 |
+ font-weight: 400; |
|
118 |
+ margin-top: 0px; |
|
119 |
+ |
|
120 |
+ } |
|
121 |
+ |
|
122 |
+ .page-header p { |
|
123 |
+ /* mission description: */ |
|
124 |
+ font-family: Helvetica-Light; |
|
125 |
+ font-size: 18px; |
|
126 |
+ color: #1D1D26; |
|
127 |
+ line-height: 25px; |
|
128 |
+ margin-top: 0px; |
|
129 |
+ } |
|
130 |
+ |
|
131 |
+ .page-footer { |
|
132 |
+ text-align: center; |
|
133 |
+ margin-top: 30px; |
|
134 |
+ margin-bottom: 25px; |
|
135 |
+ font-family: Avenir-LightOblique; |
|
136 |
+ font-size: 14px; |
|
137 |
+ color: #000000; |
|
138 |
+ line-height: 19px; |
|
139 |
+ } |
|
140 |
+ |
|
141 |
+ .page-footer a { |
|
142 |
+ color: #202020; |
|
143 |
+ text-decoration: none; |
|
144 |
+ } |
|
145 |
+ |
|
146 |
+ hr { border: 1px solid black; margin-bottom: 20px;} |
|
147 |
+ |
|
148 |
+ .btn { |
|
149 |
+ display: inline-block; |
|
150 |
+ padding: 4px 12px; |
|
151 |
+ margin-bottom: 0; |
|
152 |
+ text-align: center; |
|
153 |
+ vertical-align: middle; |
|
154 |
+ cursor: pointer; |
|
155 |
+ background-color: transparent; |
|
156 |
+ border: 2px solid #202020; |
|
157 |
+ border-bottom-color: #202020; |
|
158 |
+ border-radius: 4px; |
|
159 |
+ text-shadow: none; |
|
160 |
+ font-family: Avenir-Book; |
|
161 |
+ font-style: normal; |
|
162 |
+ color: #333333; |
|
163 |
+ text-transform: none; |
|
164 |
+ text-decoration:none; |
|
165 |
+ } |
|
166 |
+ .btn-container { |
|
167 |
+ margin-bottom: 45px; |
|
168 |
+ margin-top: 35px; |
|
169 |
+ text-align: center; |
|
170 |
+ } |
|
171 |
+ .copyright { padding-top: 15px;} |
|
172 |
+ |
|
173 |
+ </style> |
|
174 |
+ |
|
175 |
+ </head> |
|
176 |
+ <body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0"> |
|
177 |
+ <table align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" class="bodyTable"> |
|
178 |
+ <tr> |
|
179 |
+ <td align="center" valign="top" class="bodyCell"> |
|
180 |
+ |
|
181 |
+ <!-- BEGIN HEADER // --> |
|
182 |
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" id="page-header"> |
|
183 |
+ <tr> |
|
184 |
+ <td valign="top" class="cetered"> |
|
185 |
+ <img src="http://avalanche2.s3.amazonaws.com/email_files/base/avalanche2_logo.png" style="width:100px; height: 100px;" id="logo" /> |
|
186 |
+ </td> |
|
187 |
+ </tr> |
|
188 |
+ </table> |
|
189 |
+ <!-- // END HEADER --> |
|
190 |
+ |
|
191 |
+ </td> |
|
192 |
+ </tr> |
|
193 |
+ </table> |
|
194 |
+ <table align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" class="bodyTable" id="body-danger"> |
|
195 |
+ <tr> |
|
196 |
+ <td align="center" valign="top" class="bodyCell"> |
|
197 |
+ |
|
198 |
+ <!-- BEGIN BODY // --> |
|
199 |
+ <table border="0" cellpadding="0" cellspacing="0" class="container" id="page-content"> |
|
200 |
+ <tr> |
|
201 |
+ <td valign="top" class="centered" id="content-main"> |
|
202 |
+ <%= content_tag(:div, class: 'page-header') do %> |
|
203 |
+ <%= content_tag(:small, ((t 'mission.notification')+':').html_safe) %> |
|
204 |
+ <%= content_tag(:h2) do %> |
|
205 |
+ <%= "#{t 'mission.step'} #{@step.step.to_s} #{t 'step.denied'}".html_safe %> |
|
206 |
+ <% end %> |
|
207 |
+ <hr> |
|
208 |
+ <%= content_tag(:small, ((t 'mission.step')+':').html_safe) %> |
|
209 |
+ <%= content_tag(:h3) do %> |
|
210 |
+ <%= @step.title %> |
|
211 |
+ <% end %> |
|
212 |
+ <%= content_tag(:small, ((t 'mission.mission')+':').html_safe) %> |
|
213 |
+ <%= content_tag(:p, @step.mission_agent.mission.title) %> |
|
214 |
+ <% end %> |
|
215 |
+ <%= content_tag(:div, class: 'btn-container') do %> |
|
216 |
+ <%= link_to((t 'step.review_step'), url_for(controller: 'missions', action: 'show_agent_details', id: @step.mission_agent.mission.slug, agent: @step.mission_agent.slug, only_path: false), class: 'btn') %> |
|
217 |
+ <% end %> |
|
218 |
+ |
|
219 |
+ </td> |
|
220 |
+ </tr> |
|
221 |
+ </table> |
|
222 |
+ <!-- // END BODY --> |
|
223 |
+ |
|
224 |
+ </td> |
|
225 |
+ </tr> |
|
226 |
+ </table> |
|
227 |
+ <table align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" class="bodyTable"> |
|
228 |
+ <tr> |
|
229 |
+ <td align="center" valign="top" class="bodyCell"> |
|
230 |
+ |
|
231 |
+ <!-- BEGIN FOOTER // --> |
|
232 |
+ <table border="0" cellpadding="0" cellspacing="0" class="container" id="page-footer"> |
|
233 |
+ <tr> |
|
234 |
+ <td valign="top" class="centered"> |
|
235 |
+ <%= content_tag(:div, class: 'page-footer') do %> |
|
236 |
+ <%= link_to((t 'agent.dashboard'), url_for(controller: 'agents', action: 'dashboard', only_path: false)) %> |
|
237 |
+ | |
|
238 |
+ <%= link_to((t 'missions.missions'), url_for(controller: 'missions', action: 'index', only_path: false)) %> |
|
239 |
+ | |
|
240 |
+ <%= link_to((t 'agent.account'), url_for(controller: 'devise/registrations', action: 'edit', only_path: false)) %> |
|
241 |
+ <br> |
|
242 |
+ <span class="copyright">© Avalanche Network</span> |
|
243 |
+ <% end %> |
|
244 |
+ </td> |
|
245 |
+ </tr> |
|
246 |
+ </table> |
|
247 |
+ <!-- // END FOOTER --> |
|
248 |
+ |
|
249 |
+ </td> |
|
250 |
+ </tr> |
|
251 |
+ </table> |
|
252 |
+ </body> |
|
253 |
+</html> |
@@ -0,0 +1,12 @@ |
||
1 |
+----------------- |
|
2 |
+ |
|
3 |
+<%= "#{t 'mission.step'} #{@step.step.to_s} #{t 'step.denied'} - #{@step.title}" %> |
|
4 |
+ |
|
5 |
+<%= "#{t 'mission.mission'}:" %> |
|
6 |
+<%= @step.mission_agent.mission.title %> |
|
7 |
+ |
|
8 |
+<%= "#{t 'step.review_step'}:" %> |
|
9 |
+<%= url_for(controller: 'missions', action: 'show_agent_details', id: @step.mission_agent.mission.slug, agent: @step.mission_agent.slug, only_path: false) %> |
|
10 |
+ |
|
11 |
+----------------- |
|
12 |
+Avalanche Mission Control |
@@ -1,9 +1,12 @@ |
||
1 |
-Welcome to example.com, |
|
2 |
-=============================================== |
|
3 |
- |
|
4 |
-You have successfully signed up to example.com, |
|
5 |
-your username is: |
|
6 |
- |
|
7 |
-To login to the site, just follow this link: |
|
8 |
- |
|
9 |
-Thanks for joining and have a great day! |
|
1 |
+----------------- |
|
2 |
+ |
|
3 |
+<%= "#{t 'mission.step'} #{@step.step.to_s} #{t 'step.validated'} - #{@step.title}" %> |
|
4 |
+ |
|
5 |
+<%= "#{t 'mission.mission'}:" %> |
|
6 |
+<%= @step.mission_agent.mission.title %> |
|
7 |
+ |
|
8 |
+<%= "#{t 'step.view_next_step'}:" %> |
|
9 |
+<%= url_for(controller: 'missions', action: 'show_agent_details', id: @step.mission_agent.mission.slug, agent: @step.mission_agent.slug, only_path: false) %> |
|
10 |
+ |
|
11 |
+----------------- |
|
12 |
+Avalanche Mission Control |
@@ -27,20 +27,20 @@ Avalanche2::Application.configure do |
||
27 | 27 |
# number of complex assets. |
28 | 28 |
config.assets.debug = true |
29 | 29 |
|
30 |
- config.action_mailer.default_url_options = { host: 'localhost', port: 5000 } |
|
30 |
+ config.action_mailer.default_url_options = { host: 'localhost', port: 3000 } |
|
31 | 31 |
config.action_mailer.raise_delivery_errors = true |
32 | 32 |
|
33 |
- #config.action_mailer.delivery_method = :letter_opener |
|
34 |
- config.action_mailer.delivery_method = :smtp |
|
35 |
- |
|
36 |
- config.action_mailer.smtp_settings = { |
|
37 |
- :address => "smtp.mandrillapp.com", |
|
38 |
- :port => 587, # ports 587 and 2525 are also supported with STARTTLS |
|
39 |
- :enable_starttls_auto => true, # detects and uses STARTTLS |
|
40 |
- :user_name => ENV["MANDRILL_USERNAME"], |
|
41 |
- :password => ENV["MANDRILL_KEY"], # SMTP password is any valid API key |
|
42 |
- :authentication => 'login', # Mandrill supports 'plain' or 'login' |
|
43 |
- :domain => ENV["DOMAIN_NAME"] # your domain to identify your server when connecting |
|
44 |
- } |
|
33 |
+ config.action_mailer.delivery_method = :letter_opener |
|
34 |
+ #config.action_mailer.delivery_method = :smtp |
|
35 |
+ |
|
36 |
+ # config.action_mailer.smtp_settings = { |
|
37 |
+ # :address => "smtp.mandrillapp.com", |
|
38 |
+ # :port => 587, # ports 587 and 2525 are also supported with STARTTLS |
|
39 |
+ # :enable_starttls_auto => true, # detects and uses STARTTLS |
|
40 |
+ # :user_name => ENV["MANDRILL_USERNAME"], |
|
41 |
+ # :password => ENV["MANDRILL_KEY"], # SMTP password is any valid API key |
|
42 |
+ # :authentication => 'login', # Mandrill supports 'plain' or 'login' |
|
43 |
+ # :domain => ENV["DOMAIN_NAME"] # your domain to identify your server when connecting |
|
44 |
+ # } |
|
45 | 45 |
|
46 | 46 |
end |
@@ -0,0 +1,16 @@ |
||
1 |
+en: |
|
2 |
+ mission: |
|
3 |
+ mission: 'Mission' |
|
4 |
+ missions: 'Missions' |
|
5 |
+ notification: 'Notification' |
|
6 |
+ step: 'Step' |
|
7 |
+ step: |
|
8 |
+ validated: 'Validated' |
|
9 |
+ step_validated: 'Step validated' |
|
10 |
+ denied: 'Denied' |
|
11 |
+ step_denied: 'Step denied' |
|
12 |
+ view_next_step: 'View Next Step' |
|
13 |
+ review_step: 'Review Step' |
|
14 |
+ agent: |
|
15 |
+ dashboard: 'Dashboard' |
|
16 |
+ account: 'Account' |
@@ -0,0 +1,16 @@ |
||
1 |
+pt-Br: |
|
2 |
+ mission: |
|
3 |
+ mission: 'Missão' |
|
4 |
+ missions: 'Missões' |
|
5 |
+ notification: 'Notificação' |
|
6 |
+ step: 'Passo' |
|
7 |
+ step: |
|
8 |
+ validated: 'Validado' |
|
9 |
+ step_validated: 'Passo validado' |
|
10 |
+ denied: 'Negado' |
|
11 |
+ step_denied: 'Passo negado' |
|
12 |
+ view_next_step: 'Ver Proximo Passo' |
|
13 |
+ review_step: 'Revisar Passo' |
|
14 |
+ agent: |
|
15 |
+ dashboard: 'Painel' |
|
16 |
+ account: 'Conta' |