Skip to content

Commit baffdb0

Browse files
Release_2025-08-20 Custom Images
PRD custom images (#349)
2 parents d4041a8 + 108fd07 commit baffdb0

File tree

2 files changed

+275
-0
lines changed

2 files changed

+275
-0
lines changed

lib/travis/addons/billing/mailer/billing_mailer.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@ def subscription_cancellation_requested(receivers, subscription, owner, charge,
6060
mail(from: cancellation_email, to: receivers, subject: subject, template_path: 'billing_mailer')
6161
end
6262

63+
def storage_limit_exceeded(receivers, subscription, owner, _charge, _event, invoice, cc_last_digits)
64+
@subscription = subscription
65+
@custom_images_url = signin_url(owner)
66+
subject = "Travis CI: Storage Limit Exceeded – Additional Charges May Apply"
67+
mail(from: travis_email, to: receivers, subject: subject, template_path: 'billing_mailer')
68+
end
69+
6370
private
6471

6572
def travis_email
Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
8+
<style type="text/css" media="screen">
9+
body {
10+
min-width: 100%;
11+
height: 100%;
12+
margin: 0;
13+
padding: 0;
14+
}
15+
16+
body, td {
17+
font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
18+
}
19+
20+
strong {
21+
display: block;
22+
}
23+
24+
#travis-ci-email-container {
25+
height: 100%;
26+
width: 100%;
27+
padding: 30px;
28+
font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
29+
text-align: center;
30+
color: #333333;
31+
line-height: 1.4;
32+
background-color: #f6f7fa;
33+
background-image: url('https://s3.amazonaws.com/travis-email-assets/billing-background.png');
34+
background-size: 600px 600px;
35+
}
36+
37+
#email-central-container {
38+
font-family: inherit;
39+
width: 500px;
40+
}
41+
42+
#email-content-container {
43+
padding: 6% 7% 5% 7%;
44+
background-color: #FFFFFF;
45+
text-align: center;
46+
width: 100%;
47+
}
48+
49+
#email-content-container p {
50+
font-size: 16px;
51+
margin: 0 0 10px 0;
52+
}
53+
54+
#travis-logo-img-container {
55+
border-bottom: 2px solid #e5e7e9;
56+
padding-bottom: 4.545%;
57+
}
58+
59+
#travis-logo-img {
60+
width: 42%;
61+
}
62+
63+
#storage-limit-exceeded-header {
64+
font-size: 24px;
65+
font-weight: 600;
66+
margin: 10.227% 0 6.818% 0;
67+
}
68+
69+
.green-highlight {
70+
color: #32d282;
71+
}
72+
73+
#email-content-container .button {
74+
display: inline-block;
75+
padding: 12px 15px;
76+
color: #333333;
77+
background-color: #f4f5f9;
78+
font-size: 14px;
79+
line-height: 14px;
80+
margin: 10px 0 10px 0;
81+
border-radius: 5px;
82+
text-decoration: none;
83+
text-transform: uppercase;
84+
font-weight: 600;
85+
}
86+
87+
#email-content-container .button--green {
88+
color: #ffffff;
89+
background-color: #32d282;
90+
}
91+
92+
#closing-message-section {
93+
padding: 10.227% 0 1.136% 0;
94+
}
95+
96+
#closing-message-section > p {
97+
margin: 0;
98+
}
99+
100+
#travis-ci-twitter-section {
101+
text-align: center;
102+
}
103+
104+
#travis-ci-twitter-section a {
105+
display: inline-block;
106+
height: 32px;
107+
vertical-align: bottom;
108+
}
109+
110+
#travis-ci-twitter-section img {
111+
width: 32px;
112+
height: 32px;
113+
}
114+
115+
#travis-ci-email-footer-container {
116+
padding: 10% 7% 0% 7%;
117+
}
118+
119+
#questions-section {
120+
font-size: 18px;
121+
color: #0068FF;
122+
padding-bottom: 10.227%;
123+
}
124+
125+
#questions-section span {
126+
background-color: #f6f7fa;
127+
background-color: rgba(246, 247, 250, 0.8);
128+
}
129+
130+
#questions-section a {
131+
color: #0068FF;
132+
}
133+
134+
#travis-ci-footer-logo-section {
135+
padding-bottom: 6.818%;
136+
text-align: center;
137+
}
138+
139+
#email-footer-section {
140+
font-size: 11px;
141+
color: #9EA3A8;
142+
text-align: center;
143+
padding-top: 0px;
144+
margin: 0px;
145+
}
146+
147+
#email-footer-section a {
148+
color: #9ea3a8;
149+
}
150+
151+
#email-footer-section p {
152+
margin: 0px;
153+
}
154+
155+
#email-footer-section #payment-processor-message {
156+
margin-bottom: 3.409%;
157+
padding: 0 1%;
158+
}
159+
</style>
160+
</head>
161+
162+
<body style="min-width: 100%;height: 100%;margin: 0;padding: 0;font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;">
163+
164+
<table id="travis-ci-email-container" align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" style="height: 100%;width: 100%;padding: 30px;font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;text-align: center;color: #333333;line-height: 1.4;background-color: #f6f7fa;background-image: url(#{Travis.config.s3.url}/billing-background.png);background-size: 600px 600px;">
165+
<!-- Main Content Section -->
166+
<tr>
167+
<td align="center" valign="top" style="font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;">
168+
<table id="email-central-container" border="0" cellpadding="0" cellspacing="0" style="font-family: inherit;width: 500px;">
169+
<tr>
170+
<td style="font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;">
171+
<table id="email-content-container" border="0" cellpadding="0" cellspacing="0" style="padding: 6% 7% 5% 7%;background-color: #FFFFFF;text-align: center;width: 100%;">
172+
<!-- Logo -->
173+
<tr>
174+
<td id="travis-logo-img-container" style="font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;border-bottom: 2px solid #e5e7e9;padding-bottom: 4.545%;">
175+
<img src="#{Travis.config.s3.url}/travis_ci_logo.png" alt="Travis CI Logo" id="travis-logo-img" style="width: 42%;">
176+
</td>
177+
</tr>
178+
<!-- Header - Storage Limit Exceeded -->
179+
<tr>
180+
<td style="font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;">
181+
<h2 id="storage-limit-exceeded-header" style="font-size: 24px;font-weight: 600;margin: 10.227% 0 6.818% 0;">Storage Limit Exceeded</h2>
182+
</td>
183+
</tr>
184+
<!-- Body text -->
185+
<tr>
186+
<td style="font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;">
187+
<!-- Basic info -->
188+
<p style="font-size: 16px;margin: 0 0 10px 0;">
189+
Dear <%= @subscription[:first_name] %> <%= @subscription[:last_name] %>,
190+
</p>
191+
192+
<!-- Storage info -->
193+
<p style="font-size: 16px;margin: 0 0 10px 0;">
194+
We wanted to inform you that your storage space limit has been exceeded.
195+
<br>
196+
Depending on your plan details, any excess usage may incur additional charges,
197+
which will be deducted from your credit pool at the end of the current billing cycle.
198+
</p>
199+
200+
<p style="font-size: 16px;margin: 0 0 10px 0;">
201+
You can manage your storage and reduce usage if needed by visiting the following link:
202+
<a href="<%= @custom_images_url %>" style="color: #333333;"><%= @custom_images_url %></a>
203+
</p>
204+
205+
<p style="font-size: 16px;margin: 0 0 10px 0;">
206+
If you have any questions, feel free to contact us.
207+
</p>
208+
</td>
209+
</tr>
210+
<!-- Closing Message Section -->
211+
<tr>
212+
<td id="closing-message-section" align="center" valign="top" style="font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;padding: 10.227% 0 1.136% 0;">
213+
<p style="font-size: 16px;margin: 0;">Happy building!</p>
214+
<p style="font-size: 16px;margin: 0;"><strong style="display: block;">Travis CI</strong></p>
215+
</td>
216+
</tr>
217+
<tr>
218+
<td id="travis-ci-twitter-section" style="font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;text-align: center;">
219+
<a href="http://www.twitter.com/travisci" style="display: inline-block;height: 32px;vertical-align: bottom;">
220+
<img id="travis-ci-twitter-logo" src="#{Travis.config.s3.url}/twitter2x.png" alt="Twitter Logo" style="width: 32px;height: 32px;">
221+
</a>
222+
</td>
223+
</tr>
224+
</table>
225+
226+
<!-- Email Footer Section -->
227+
<table id="travis-ci-email-footer-container" border="0" cellpadding="0" cellspacing="0" style="padding: 10% 7% 0% 7%;">
228+
<tr>
229+
<td id="questions-section" align="center" valign="top" style="font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 18px;color: #0068FF;padding-bottom: 10.227%;">
230+
<span style="background-color: rgba(246, 247, 250, 0.8);">
231+
Have any questions?
232+
<a href="mailto:support@travis-ci.com" style="color: #0068FF;">We&rsquo;re here to help.</a>
233+
</span>
234+
</td>
235+
</tr>
236+
<tr>
237+
<td id="travis-ci-footer-logo-section" style="font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;padding-bottom: 6.818%;text-align: center;">
238+
<%= link_to(image_tag("#{Travis.config.s3.url}/TravisCI-Logo-BW.png", alt: 'black and white travis ci logo'), 'https://travis-ci.com')%>
239+
</td>
240+
</tr>
241+
<tr>
242+
<td id="email-footer-section" style="font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 11px;color: #9EA3A8;text-align: center;padding-top: 0px;margin: 0px;">
243+
<p id="payment-processor-message" style="margin: 0px;margin-bottom: 3.409%;padding: 0 1%;">
244+
We use <a href="https://stripe.com" style="color: #9ea3a8;">Stripe Inc.</a>, 3180 18th Street, Suite 100, San Francisco, CA 94110, USA, as our payment partner
245+
</p>
246+
<p style="margin: 0px;">
247+
Travis CI GmbH, Bonner Straße 12, 51379 Leverkusen, Germany | GF/CEO: Randy Jacops |
248+
<span>Contact: <%= link_to('contact@travis-ci.com', 'mailto:contact@travis-ci.com', style: 'color: #9EA3A8')%> | Amtsgericht Charlottenburg, Berlin, HRB 108397 | Umsatzsteuer-ID gemäß §27 a Umsatzsteuergesetz:
249+
<% if @subscription[:country] == 'United Kingdom' %>
250+
GB370195891
251+
<% elsif @subscription[:country] == 'Russian Federation' %>
252+
INN 9909575690, KPP 997789001
253+
<% else %>
254+
DE282002648
255+
<% end %>
256+
</span>
257+
</p>
258+
</td>
259+
</tr>
260+
</table>
261+
</td>
262+
</tr>
263+
</table>
264+
</td>
265+
</tr>
266+
</table>
267+
</body>
268+
</html>

0 commit comments

Comments
 (0)