maily 0.6.3 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +5 -11
- data/Appraisals +4 -0
- data/CHANGELOG.md +90 -0
- data/MIT-LICENSE +1 -1
- data/README.md +21 -2
- data/app/assets/images/maily/icons/globe.svg +13 -0
- data/app/assets/images/maily/icons/paperclip.svg +8 -0
- data/app/assets/images/maily/logo.png +0 -0
- data/app/assets/stylesheets/maily/_variables.scss +6 -0
- data/app/assets/stylesheets/maily/application.scss +88 -96
- data/app/assets/stylesheets/maily/normalize.css +23 -129
- data/app/controllers/maily/emails_controller.rb +10 -5
- data/app/helpers/maily/application_helper.rb +15 -1
- data/app/helpers/maily/emails_helper.rb +10 -1
- data/app/views/layouts/maily/application.html.erb +5 -5
- data/app/views/maily/emails/edit.html.erb +16 -18
- data/app/views/maily/emails/index.html.erb +2 -4
- data/app/views/maily/emails/show.html.erb +61 -64
- data/app/views/maily/shared/_flash_messages.html.erb +7 -0
- data/app/views/maily/shared/_header.html.erb +4 -1
- data/app/views/maily/shared/_sidebar.html.erb +2 -2
- data/gemfiles/rails_4.2.gemfile +2 -2
- data/gemfiles/rails_5.0.gemfile +1 -1
- data/gemfiles/rails_5.1.gemfile +1 -1
- data/gemfiles/rails_5.2.gemfile +7 -0
- data/lib/maily.rb +1 -3
- data/lib/maily/email.rb +18 -13
- data/lib/maily/mailer.rb +32 -14
- data/lib/maily/version.rb +1 -1
- data/maily.gemspec +1 -2
- data/screenshot.png +0 -0
- data/spec/controllers_spec.rb +40 -1
- data/spec/dummy/app/mailers/notifier.rb +8 -0
- data/spec/dummy/lib/maily_hooks.rb +3 -0
- data/spec/email_spec.rb +5 -0
- data/spec/mailer_spec.rb +6 -1
- data/spec/maily_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- metadata +10 -26
- data/app/assets/images/maily/icons/maily.eot +0 -0
- data/app/assets/images/maily/icons/maily.svg +0 -90
- data/app/assets/images/maily/icons/maily.ttf +0 -0
- data/app/assets/images/maily/icons/maily.woff +0 -0
- data/app/assets/stylesheets/maily/icons.css +0 -199
- data/spec/dummy/app/mailers/.keep +0 -0
- data/spec/dummy/lib/assets/.keep +0 -0
@@ -1,17 +1,15 @@
|
|
1
|
-
/*! normalize.css
|
1
|
+
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
|
2
2
|
|
3
3
|
/* Document
|
4
4
|
========================================================================== */
|
5
5
|
|
6
6
|
/**
|
7
7
|
* 1. Correct the line height in all browsers.
|
8
|
-
* 2. Prevent adjustments of font size after orientation changes in
|
9
|
-
* IE on Windows Phone and in iOS.
|
8
|
+
* 2. Prevent adjustments of font size after orientation changes in iOS.
|
10
9
|
*/
|
11
10
|
|
12
11
|
html {
|
13
12
|
line-height: 1.15; /* 1 */
|
14
|
-
-ms-text-size-adjust: 100%; /* 2 */
|
15
13
|
-webkit-text-size-adjust: 100%; /* 2 */
|
16
14
|
}
|
17
15
|
|
@@ -19,26 +17,13 @@ html {
|
|
19
17
|
========================================================================== */
|
20
18
|
|
21
19
|
/**
|
22
|
-
* Remove the margin in all browsers
|
20
|
+
* Remove the margin in all browsers.
|
23
21
|
*/
|
24
22
|
|
25
23
|
body {
|
26
24
|
margin: 0;
|
27
25
|
}
|
28
26
|
|
29
|
-
/**
|
30
|
-
* Add the correct display in IE 9-.
|
31
|
-
*/
|
32
|
-
|
33
|
-
article,
|
34
|
-
aside,
|
35
|
-
footer,
|
36
|
-
header,
|
37
|
-
nav,
|
38
|
-
section {
|
39
|
-
display: block;
|
40
|
-
}
|
41
|
-
|
42
27
|
/**
|
43
28
|
* Correct the font size and margin on `h1` elements within `section` and
|
44
29
|
* `article` contexts in Chrome, Firefox, and Safari.
|
@@ -52,25 +37,6 @@ h1 {
|
|
52
37
|
/* Grouping content
|
53
38
|
========================================================================== */
|
54
39
|
|
55
|
-
/**
|
56
|
-
* Add the correct display in IE 9-.
|
57
|
-
* 1. Add the correct display in IE.
|
58
|
-
*/
|
59
|
-
|
60
|
-
figcaption,
|
61
|
-
figure,
|
62
|
-
main { /* 1 */
|
63
|
-
display: block;
|
64
|
-
}
|
65
|
-
|
66
|
-
/**
|
67
|
-
* Add the correct margin in IE 8.
|
68
|
-
*/
|
69
|
-
|
70
|
-
figure {
|
71
|
-
margin: 1em 40px;
|
72
|
-
}
|
73
|
-
|
74
40
|
/**
|
75
41
|
* 1. Add the correct box sizing in Firefox.
|
76
42
|
* 2. Show the overflow in Edge and IE.
|
@@ -96,17 +62,15 @@ pre {
|
|
96
62
|
========================================================================== */
|
97
63
|
|
98
64
|
/**
|
99
|
-
*
|
100
|
-
* 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
|
65
|
+
* Remove the gray background on active links in IE 10.
|
101
66
|
*/
|
102
67
|
|
103
68
|
a {
|
104
|
-
background-color: transparent;
|
105
|
-
-webkit-text-decoration-skip: objects; /* 2 */
|
69
|
+
background-color: transparent;
|
106
70
|
}
|
107
71
|
|
108
72
|
/**
|
109
|
-
* 1. Remove the bottom border in Chrome 57-
|
73
|
+
* 1. Remove the bottom border in Chrome 57-
|
110
74
|
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
111
75
|
*/
|
112
76
|
|
@@ -116,15 +80,6 @@ abbr[title] {
|
|
116
80
|
text-decoration: underline dotted; /* 2 */
|
117
81
|
}
|
118
82
|
|
119
|
-
/**
|
120
|
-
* Prevent the duplicate application of `bolder` by the next rule in Safari 6.
|
121
|
-
*/
|
122
|
-
|
123
|
-
b,
|
124
|
-
strong {
|
125
|
-
font-weight: inherit;
|
126
|
-
}
|
127
|
-
|
128
83
|
/**
|
129
84
|
* Add the correct font weight in Chrome, Edge, and Safari.
|
130
85
|
*/
|
@@ -146,23 +101,6 @@ samp {
|
|
146
101
|
font-size: 1em; /* 2 */
|
147
102
|
}
|
148
103
|
|
149
|
-
/**
|
150
|
-
* Add the correct font style in Android 4.3-.
|
151
|
-
*/
|
152
|
-
|
153
|
-
dfn {
|
154
|
-
font-style: italic;
|
155
|
-
}
|
156
|
-
|
157
|
-
/**
|
158
|
-
* Add the correct background and color in IE 9-.
|
159
|
-
*/
|
160
|
-
|
161
|
-
mark {
|
162
|
-
background-color: #ff0;
|
163
|
-
color: #000;
|
164
|
-
}
|
165
|
-
|
166
104
|
/**
|
167
105
|
* Add the correct font size in all browsers.
|
168
106
|
*/
|
@@ -196,44 +134,18 @@ sup {
|
|
196
134
|
========================================================================== */
|
197
135
|
|
198
136
|
/**
|
199
|
-
*
|
200
|
-
*/
|
201
|
-
|
202
|
-
audio,
|
203
|
-
video {
|
204
|
-
display: inline-block;
|
205
|
-
}
|
206
|
-
|
207
|
-
/**
|
208
|
-
* Add the correct display in iOS 4-7.
|
209
|
-
*/
|
210
|
-
|
211
|
-
audio:not([controls]) {
|
212
|
-
display: none;
|
213
|
-
height: 0;
|
214
|
-
}
|
215
|
-
|
216
|
-
/**
|
217
|
-
* Remove the border on images inside links in IE 10-.
|
137
|
+
* Remove the border on images inside links in IE 10.
|
218
138
|
*/
|
219
139
|
|
220
140
|
img {
|
221
141
|
border-style: none;
|
222
142
|
}
|
223
143
|
|
224
|
-
/**
|
225
|
-
* Hide the overflow in IE.
|
226
|
-
*/
|
227
|
-
|
228
|
-
svg:not(:root) {
|
229
|
-
overflow: hidden;
|
230
|
-
}
|
231
|
-
|
232
144
|
/* Forms
|
233
145
|
========================================================================== */
|
234
146
|
|
235
147
|
/**
|
236
|
-
* 1. Change the font styles in all browsers
|
148
|
+
* 1. Change the font styles in all browsers.
|
237
149
|
* 2. Remove the margin in Firefox and Safari.
|
238
150
|
*/
|
239
151
|
|
@@ -242,7 +154,7 @@ input,
|
|
242
154
|
optgroup,
|
243
155
|
select,
|
244
156
|
textarea {
|
245
|
-
font-family:
|
157
|
+
font-family: inherit; /* 1 */
|
246
158
|
font-size: 100%; /* 1 */
|
247
159
|
line-height: 1.15; /* 1 */
|
248
160
|
margin: 0; /* 2 */
|
@@ -269,16 +181,14 @@ select { /* 1 */
|
|
269
181
|
}
|
270
182
|
|
271
183
|
/**
|
272
|
-
*
|
273
|
-
* controls in Android 4.
|
274
|
-
* 2. Correct the inability to style clickable types in iOS and Safari.
|
184
|
+
* Correct the inability to style clickable types in iOS and Safari.
|
275
185
|
*/
|
276
186
|
|
277
187
|
button,
|
278
|
-
|
188
|
+
[type="button"],
|
279
189
|
[type="reset"],
|
280
190
|
[type="submit"] {
|
281
|
-
-webkit-appearance: button;
|
191
|
+
-webkit-appearance: button;
|
282
192
|
}
|
283
193
|
|
284
194
|
/**
|
@@ -329,17 +239,15 @@ legend {
|
|
329
239
|
}
|
330
240
|
|
331
241
|
/**
|
332
|
-
*
|
333
|
-
* 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
242
|
+
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
334
243
|
*/
|
335
244
|
|
336
245
|
progress {
|
337
|
-
|
338
|
-
vertical-align: baseline; /* 2 */
|
246
|
+
vertical-align: baseline;
|
339
247
|
}
|
340
248
|
|
341
249
|
/**
|
342
|
-
* Remove the default vertical scrollbar in IE
|
250
|
+
* Remove the default vertical scrollbar in IE 10+.
|
343
251
|
*/
|
344
252
|
|
345
253
|
textarea {
|
@@ -347,8 +255,8 @@ textarea {
|
|
347
255
|
}
|
348
256
|
|
349
257
|
/**
|
350
|
-
* 1. Add the correct box sizing in IE 10
|
351
|
-
* 2. Remove the padding in IE 10
|
258
|
+
* 1. Add the correct box sizing in IE 10.
|
259
|
+
* 2. Remove the padding in IE 10.
|
352
260
|
*/
|
353
261
|
|
354
262
|
[type="checkbox"],
|
@@ -377,10 +285,9 @@ textarea {
|
|
377
285
|
}
|
378
286
|
|
379
287
|
/**
|
380
|
-
* Remove the inner padding
|
288
|
+
* Remove the inner padding in Chrome and Safari on macOS.
|
381
289
|
*/
|
382
290
|
|
383
|
-
[type="search"]::-webkit-search-cancel-button,
|
384
291
|
[type="search"]::-webkit-search-decoration {
|
385
292
|
-webkit-appearance: none;
|
386
293
|
}
|
@@ -399,12 +306,10 @@ textarea {
|
|
399
306
|
========================================================================== */
|
400
307
|
|
401
308
|
/*
|
402
|
-
* Add the correct display in IE
|
403
|
-
* 1. Add the correct display in Edge, IE, and Firefox.
|
309
|
+
* Add the correct display in Edge, IE 10+, and Firefox.
|
404
310
|
*/
|
405
311
|
|
406
|
-
details
|
407
|
-
menu {
|
312
|
+
details {
|
408
313
|
display: block;
|
409
314
|
}
|
410
315
|
|
@@ -416,30 +321,19 @@ summary {
|
|
416
321
|
display: list-item;
|
417
322
|
}
|
418
323
|
|
419
|
-
/*
|
324
|
+
/* Misc
|
420
325
|
========================================================================== */
|
421
326
|
|
422
327
|
/**
|
423
|
-
* Add the correct display in IE
|
424
|
-
*/
|
425
|
-
|
426
|
-
canvas {
|
427
|
-
display: inline-block;
|
428
|
-
}
|
429
|
-
|
430
|
-
/**
|
431
|
-
* Add the correct display in IE.
|
328
|
+
* Add the correct display in IE 10+.
|
432
329
|
*/
|
433
330
|
|
434
331
|
template {
|
435
332
|
display: none;
|
436
333
|
}
|
437
334
|
|
438
|
-
/* Hidden
|
439
|
-
========================================================================== */
|
440
|
-
|
441
335
|
/**
|
442
|
-
* Add the correct display in IE 10
|
336
|
+
* Add the correct display in IE 10.
|
443
337
|
*/
|
444
338
|
|
445
339
|
[hidden] {
|
@@ -39,7 +39,7 @@ module Maily
|
|
39
39
|
def update
|
40
40
|
@maily_email.update_template(params[:body], params[:part])
|
41
41
|
|
42
|
-
redirect_to maily_email_path(mailer: params[:mailer], email: params[:email], part: params[:part])
|
42
|
+
redirect_to maily_email_path(mailer: params[:mailer], email: params[:email], part: params[:part]), notice: 'Template updated!'
|
43
43
|
end
|
44
44
|
|
45
45
|
def deliver
|
@@ -47,23 +47,28 @@ module Maily
|
|
47
47
|
|
48
48
|
@email.deliver
|
49
49
|
|
50
|
-
redirect_to maily_email_path(mailer: params[:mailer], email: params[:email])
|
50
|
+
redirect_to maily_email_path(mailer: params[:mailer], email: params[:email]), notice: "Email sent to <b>#{params[:to]}</b>!"
|
51
51
|
end
|
52
52
|
|
53
53
|
private
|
54
54
|
|
55
55
|
def allowed_action?
|
56
|
-
Maily.allowed_action?(action_name) || redirect_to(root_path, alert: "
|
56
|
+
Maily.allowed_action?(action_name) || redirect_to(root_path, alert: "Action <b>#{action_name}</b> not allowed!")
|
57
57
|
end
|
58
58
|
|
59
59
|
def load_mailers
|
60
|
-
@mailers = Maily::Mailer.all
|
60
|
+
@mailers = Maily::Mailer.all.values
|
61
61
|
end
|
62
62
|
|
63
63
|
def load_mailer_and_email
|
64
64
|
mailer = Maily::Mailer.find(params[:mailer])
|
65
65
|
@maily_email = mailer.find_email(params[:email])
|
66
|
-
|
66
|
+
|
67
|
+
if @maily_email
|
68
|
+
@email = @maily_email.call
|
69
|
+
else
|
70
|
+
redirect_to(root_path, alert: "Email not found!")
|
71
|
+
end
|
67
72
|
end
|
68
73
|
|
69
74
|
def perform_with_locale
|
@@ -1,7 +1,21 @@
|
|
1
1
|
module Maily
|
2
2
|
module ApplicationHelper
|
3
|
+
def title
|
4
|
+
_title = 'Maily'
|
5
|
+
|
6
|
+
if params[:mailer] && params[:email]
|
7
|
+
_title << " - #{params[:mailer].humanize} | #{params[:email].humanize}"
|
8
|
+
end
|
9
|
+
|
10
|
+
_title
|
11
|
+
end
|
12
|
+
|
3
13
|
def sidebar_class(mailer, email)
|
4
|
-
'
|
14
|
+
'selected_mail' if mailer.name == params[:mailer] && email.name == params[:email]
|
15
|
+
end
|
16
|
+
|
17
|
+
def icon(name)
|
18
|
+
image_tag "maily/icons/#{name}.svg", class: 'icon'
|
5
19
|
end
|
6
20
|
end
|
7
21
|
end
|
@@ -1,7 +1,16 @@
|
|
1
1
|
module Maily
|
2
2
|
module EmailsHelper
|
3
3
|
def total_emails(mailers)
|
4
|
-
mailers.map { |mailer| mailer.
|
4
|
+
mailers.map { |mailer| mailer.total_emails }.sum
|
5
|
+
end
|
6
|
+
|
7
|
+
def email_description(email)
|
8
|
+
return unless email.description
|
9
|
+
|
10
|
+
content_tag(:div, class: 'mail_description') do
|
11
|
+
concat content_tag(:strong, 'Description ')
|
12
|
+
concat email.description
|
13
|
+
end
|
5
14
|
end
|
6
15
|
|
7
16
|
def part_class(part)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
-
<title
|
4
|
+
<title><%= title %></title>
|
5
5
|
<%= stylesheet_link_tag "maily/application", :media => "all" %>
|
6
6
|
<%= javascript_include_tag "maily/application" %>
|
7
7
|
<%= csrf_meta_tags %>
|
@@ -12,11 +12,11 @@
|
|
12
12
|
<div class="wrap_content clearfix">
|
13
13
|
<%= render 'maily/shared/sidebar' %>
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
<% end %>
|
15
|
+
<div class="content">
|
16
|
+
<%= render 'maily/shared/flash_messages' %>
|
18
17
|
|
19
|
-
|
18
|
+
<%= yield %>
|
19
|
+
</div>
|
20
20
|
</div>
|
21
21
|
|
22
22
|
<%= render 'maily/shared/footer' %>
|
@@ -1,21 +1,19 @@
|
|
1
|
-
|
2
|
-
<%= form_tag(update_maily_email_path(mailer: params[:mailer], email: params[:email], part: params[:part]), method: :put) do %>
|
3
|
-
<ul class="maily_action_bar">
|
4
|
-
<li>
|
5
|
-
<em class="icon-maily-eye"></em>
|
6
|
-
<%= link_to 'Show', maily_email_path(mailer: params[:mailer], email: params[:email]) %>
|
7
|
-
</li>
|
1
|
+
<%= email_description(@maily_email) %>
|
8
2
|
|
9
|
-
|
3
|
+
<%= form_tag(update_maily_email_path(mailer: params[:mailer], email: params[:email], part: params[:part]), method: :put) do %>
|
4
|
+
<ul class="action_bar">
|
5
|
+
<li>
|
6
|
+
<%= link_to 'Show', maily_email_path(mailer: params[:mailer], email: params[:email]) %>
|
7
|
+
</li>
|
10
8
|
|
11
|
-
|
12
|
-
<em class="icon-maily-checkmark"></em>
|
13
|
-
<%= submit_tag 'Update', class: 'maily_button' %>
|
14
|
-
</li>
|
15
|
-
</ul>
|
9
|
+
<li class="splitter">|</li>
|
16
10
|
|
17
|
-
<
|
18
|
-
<%=
|
19
|
-
</
|
20
|
-
|
21
|
-
|
11
|
+
<li>
|
12
|
+
<%= submit_tag 'Update', class: 'button' %>
|
13
|
+
</li>
|
14
|
+
</ul>
|
15
|
+
|
16
|
+
<div class="mail_preview">
|
17
|
+
<%= text_area_tag :body, @template, class: 'mail_updatearea' %>
|
18
|
+
</div>
|
19
|
+
<% end %>
|