base.mako
540 lines
| 15.3 KiB
| application/x-mako
|
MakoHtmlLexer
r1 | ## -*- coding: utf-8 -*- | |||
r548 | ## helpers | |||
<%def name="tag_button(text, tag_type=None)"> | ||||
r4038 | <% | |||
color_scheme = { | ||||
'default': 'border:1px solid #979797;color:#666666;background-color:#f9f9f9', | ||||
'approved': 'border:1px solid #0ac878;color:#0ac878;background-color:#f9f9f9', | ||||
'rejected': 'border:1px solid #e85e4d;color:#e85e4d;background-color:#f9f9f9', | ||||
'under_review': 'border:1px solid #ffc854;color:#ffc854;background-color:#f9f9f9', | ||||
} | ||||
css_style = ';'.join([ | ||||
'display:inline', | ||||
'border-radius:2px', | ||||
'font-size:12px', | ||||
'padding:.2em', | ||||
]) | ||||
%> | ||||
<pre style="${css_style}; ${color_scheme.get(tag_type, color_scheme['default'])}">${text}</pre> | ||||
r548 | </%def> | |||
<%def name="status_text(text, tag_type=None)"> | ||||
<% | ||||
color_scheme = { | ||||
'default': 'color:#666666', | ||||
'approved': 'color:#0ac878', | ||||
'rejected': 'color:#e85e4d', | ||||
'under_review': 'color:#ffc854', | ||||
} | ||||
%> | ||||
<span style="font-weight:bold;font-size:12px;padding:.2em;${color_scheme.get(tag_type, color_scheme['default'])}">${text}</span> | ||||
</%def> | ||||
r4038 | <%def name="gravatar_img(email, size=16)"> | |||
<% | ||||
css_style = ';'.join([ | ||||
'padding: 0', | ||||
'margin: -4px 0', | ||||
'border-radius: 50%', | ||||
'box-sizing: content-box', | ||||
'display: inline', | ||||
'line-height: 1em', | ||||
'min-width: 16px', | ||||
'min-height: 16px', | ||||
]) | ||||
%> | ||||
<img alt="gravatar" style="${css_style}" src="${h.gravatar_url(email, size)}" height="${size}" width="${size}"> | ||||
</%def> | ||||
<%def name="link_css()">\ | ||||
<% | ||||
css_style = ';'.join([ | ||||
'color:#427cc9', | ||||
'text-decoration:none', | ||||
'cursor:pointer' | ||||
]) | ||||
%>\ | ||||
${css_style}\ | ||||
</%def> | ||||
r3170 | ## Constants | |||
<% | ||||
r4217 | text_regular = "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Helvetica, sans-serif" | |||
text_monospace = "'Menlo', 'Liberation Mono', 'Consolas', 'DejaVu Sans Mono', 'Ubuntu Mono', 'Courier New', 'andale mono', 'lucida console', monospace" | ||||
r3170 | ||||
%> | ||||
r1 | ## headers we additionally can set for email | |||
<%def name="headers()" filter="n,trim"></%def> | ||||
r4038 | <%def name="plaintext_footer()" filter="trim"> | |||
${_('This is a notification from RhodeCode.')} ${instance_url} | ||||
r508 | </%def> | |||
r509 | <%def name="body_plaintext()" filter="n,trim"> | |||
## this example is not called itself but overridden in each template | ||||
## the plaintext_footer should be at the bottom of both html and text emails | ||||
${self.plaintext_footer()} | ||||
</%def> | ||||
r1 | ||||
r508 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml"> | ||||
<head> | ||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> | ||||
<title>${self.subject()}</title> | ||||
<style type="text/css"> | ||||
r4038 | /* Based on The MailChimp Reset INLINE: Yes. */ | |||
#outlook a { | ||||
padding: 0; | ||||
} | ||||
/* Force Outlook to provide a "view in browser" menu link. */ | ||||
body { | ||||
width: 100% !important; | ||||
-webkit-text-size-adjust: 100%; | ||||
-ms-text-size-adjust: 100%; | ||||
margin: 0; | ||||
padding: 0; | ||||
r4217 | font-family: ${text_regular|n}; | |||
r4038 | } | |||
/* Prevent Webkit and Windows Mobile platforms from changing default font sizes.*/ | ||||
.ExternalClass { | ||||
width: 100%; | ||||
} | ||||
/* Force Hotmail to display emails at full width */ | ||||
.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { | ||||
line-height: 100%; | ||||
} | ||||
/* Forces Hotmail to display normal line spacing. More on that: http://www.emailonacid.com/forum/viewthread/43/ */ | ||||
#backgroundTable { | ||||
margin: 0; | ||||
padding: 0; | ||||
line-height: 100% !important; | ||||
} | ||||
r508 | /* End reset */ | |||
r1 | ||||
r508 | /* defaults for images*/ | |||
r4038 | img { | |||
outline: none; | ||||
text-decoration: none; | ||||
-ms-interpolation-mode: bicubic; | ||||
} | ||||
a img { | ||||
border: none; | ||||
} | ||||
.image_fix { | ||||
display: block; | ||||
} | ||||
body { | ||||
line-height: 1.2em; | ||||
} | ||||
p { | ||||
margin: 0 0 20px; | ||||
} | ||||
h1, h2, h3, h4, h5, h6 { | ||||
color: #323232 !important; | ||||
} | ||||
a { | ||||
color: #427cc9; | ||||
text-decoration: none; | ||||
outline: none; | ||||
cursor: pointer; | ||||
} | ||||
a:focus { | ||||
outline: none; | ||||
} | ||||
a:hover { | ||||
color: #305b91; | ||||
} | ||||
r508 | ||||
r4038 | h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { | |||
color: #427cc9 !important; | ||||
text-decoration: none !important; | ||||
} | ||||
h1 a:active, h2 a:active, h3 a:active, h4 a:active, h5 a:active, h6 a:active { | ||||
color: #305b91 !important; | ||||
} | ||||
h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited { | ||||
color: #305b91 !important; | ||||
} | ||||
table { | ||||
font-size: 13px; | ||||
border-collapse: collapse; | ||||
mso-table-lspace: 0pt; | ||||
mso-table-rspace: 0pt; | ||||
} | ||||
r4217 | table tr { | |||
display: table-row; | ||||
vertical-align: inherit; | ||||
border-color: inherit; | ||||
border-spacing: 0 3px; | ||||
} | ||||
r4038 | table td { | |||
padding: .65em 1em .65em 0; | ||||
border-collapse: collapse; | ||||
vertical-align: top; | ||||
text-align: left; | ||||
} | ||||
input { | ||||
display: inline; | ||||
border-radius: 2px; | ||||
border: 1px solid #dbd9da; | ||||
padding: .5em; | ||||
} | ||||
input:focus { | ||||
outline: 1px solid #979797 | ||||
} | ||||
r4217 | code { | |||
font-family: ${text_monospace|n}; | ||||
} | ||||
r508 | @media only screen and (-webkit-min-device-pixel-ratio: 2) { | |||
r4038 | /* Put your iPhone 4g styles in here */ | |||
r508 | } | |||
r1 | ||||
r508 | /* Android targeting */ | |||
@media only screen and (-webkit-device-pixel-ratio:.75){ | ||||
/* Put CSS for low density (ldpi) Android layouts in here */ | ||||
} | ||||
@media only screen and (-webkit-device-pixel-ratio:1){ | ||||
/* Put CSS for medium density (mdpi) Android layouts in here */ | ||||
} | ||||
@media only screen and (-webkit-device-pixel-ratio:1.5){ | ||||
/* Put CSS for high density (hdpi) Android layouts in here */ | ||||
} | ||||
/* end Android targeting */ | ||||
r4038 | /** MARKDOWN styling **/ | |||
div.markdown-block { | ||||
clear: both; | ||||
overflow: hidden; | ||||
margin: 0; | ||||
padding: 3px 5px 3px | ||||
} | ||||
div.markdown-block h1, div.markdown-block h2, div.markdown-block h3, div.markdown-block h4, div.markdown-block h5, div.markdown-block h6 { | ||||
border-bottom: none !important; | ||||
padding: 0 !important; | ||||
overflow: visible !important | ||||
} | ||||
div.markdown-block h1, div.markdown-block h2 { | ||||
border-bottom: 1px #e6e5e5 solid !important | ||||
} | ||||
div.markdown-block h1 { | ||||
font-size: 32px; | ||||
margin: 15px 0 15px 0 !important; | ||||
padding-bottom: 5px !important | ||||
} | ||||
div.markdown-block h2 { | ||||
font-size: 24px !important; | ||||
margin: 34px 0 10px 0 !important; | ||||
padding-top: 15px !important; | ||||
padding-bottom: 8px !important | ||||
} | ||||
div.markdown-block h3 { | ||||
font-size: 18px !important; | ||||
margin: 30px 0 8px 0 !important; | ||||
padding-bottom: 2px !important | ||||
} | ||||
div.markdown-block h4 { | ||||
font-size: 13px !important; | ||||
margin: 18px 0 3px 0 !important | ||||
} | ||||
div.markdown-block h5 { | ||||
font-size: 12px !important; | ||||
margin: 15px 0 3px 0 !important | ||||
} | ||||
div.markdown-block h6 { | ||||
font-size: 12px; | ||||
color: #777777; | ||||
margin: 15px 0 3px 0 !important | ||||
} | ||||
div.markdown-block hr { | ||||
border: 0; | ||||
color: #e6e5e5; | ||||
background-color: #e6e5e5; | ||||
height: 3px; | ||||
margin-bottom: 13px | ||||
} | ||||
div.markdown-block ol, div.markdown-block ul, div.markdown-block p, div.markdown-block blockquote, div.markdown-block dl, div.markdown-block li, div.markdown-block table { | ||||
margin: 3px 0 13px 0 !important; | ||||
color: #424242 !important; | ||||
font-size: 13px !important; | ||||
r4217 | font-family: ${text_regular|n}; | |||
r4038 | font-weight: normal !important; | |||
overflow: visible !important; | ||||
line-height: 140% !important | ||||
} | ||||
div.markdown-block pre { | ||||
margin: 3px 0 13px 0 !important; | ||||
padding: .5em; | ||||
color: #424242 !important; | ||||
font-size: 13px !important; | ||||
overflow: visible !important; | ||||
line-height: 140% !important; | ||||
background-color: #F5F5F5 | ||||
} | ||||
div.markdown-block img { | ||||
border-style: none; | ||||
background-color: #fff; | ||||
padding-right: 20px; | ||||
max-width: 100% | ||||
} | ||||
div.markdown-block strong { | ||||
font-weight: 600; | ||||
margin: 0 | ||||
} | ||||
div.markdown-block ul.checkbox, div.markdown-block ol.checkbox { | ||||
padding-left: 20px !important; | ||||
margin-top: 0 !important; | ||||
margin-bottom: 18px !important | ||||
} | ||||
div.markdown-block ul, div.markdown-block ol { | ||||
padding-left: 30px !important; | ||||
margin-top: 0 !important; | ||||
margin-bottom: 18px !important | ||||
} | ||||
div.markdown-block ul.checkbox li, div.markdown-block ol.checkbox li { | ||||
list-style: none !important; | ||||
margin: 6px !important; | ||||
padding: 0 !important | ||||
} | ||||
div.markdown-block ul li, div.markdown-block ol li { | ||||
list-style: disc !important; | ||||
margin: 6px !important; | ||||
padding: 0 !important | ||||
} | ||||
div.markdown-block ol li { | ||||
list-style: decimal !important | ||||
} | ||||
div.markdown-block #message { | ||||
-webkit-border-radius: 2px; | ||||
-moz-border-radius: 2px; | ||||
border-radius: 2px; | ||||
border: 1px solid #dbd9da; | ||||
display: block; | ||||
width: 100%; | ||||
height: 60px; | ||||
margin: 6px 0 | ||||
} | ||||
div.markdown-block button, div.markdown-block #ws { | ||||
font-size: 13px; | ||||
padding: 4px 6px; | ||||
-webkit-border-radius: 2px; | ||||
-moz-border-radius: 2px; | ||||
border-radius: 2px; | ||||
border: 1px solid #dbd9da; | ||||
background-color: #eeeeee | ||||
} | ||||
div.markdown-block code, div.markdown-block pre, div.markdown-block #ws, div.markdown-block #message { | ||||
r4217 | font-family: ${text_monospace|n}; | |||
r4038 | font-size: 11px; | |||
-webkit-border-radius: 2px; | ||||
-moz-border-radius: 2px; | ||||
border-radius: 2px; | ||||
background-color: white; | ||||
color: #7E7F7F | ||||
} | ||||
div.markdown-block code { | ||||
border: 1px solid #eeeeee; | ||||
margin: 0 2px; | ||||
padding: 0 5px | ||||
} | ||||
div.markdown-block pre { | ||||
border: 1px solid #dbd9da; | ||||
overflow: auto; | ||||
padding: .5em; | ||||
background-color: #F5F5F5 | ||||
} | ||||
div.markdown-block pre > code { | ||||
border: 0; | ||||
margin: 0; | ||||
padding: 0 | ||||
} | ||||
div.rst-block { | ||||
clear: both; | ||||
overflow: hidden; | ||||
margin: 0; | ||||
padding: 3px 5px 3px | ||||
} | ||||
div.rst-block h2 { | ||||
font-weight: normal | ||||
} | ||||
div.rst-block h1, div.rst-block h2, div.rst-block h3, div.rst-block h4, div.rst-block h5, div.rst-block h6 { | ||||
border-bottom: 0 !important; | ||||
margin: 0 !important; | ||||
padding: 0 !important; | ||||
line-height: 1.5em !important | ||||
} | ||||
div.rst-block h1:first-child { | ||||
padding-top: .25em !important | ||||
} | ||||
div.rst-block h2, div.rst-block h3 { | ||||
margin: 1em 0 !important | ||||
} | ||||
div.rst-block h1, div.rst-block h2 { | ||||
border-bottom: 1px #e6e5e5 solid !important | ||||
} | ||||
div.rst-block h2 { | ||||
margin-top: 1.5em !important; | ||||
padding-top: .5em !important | ||||
} | ||||
div.rst-block p { | ||||
color: black !important; | ||||
margin: 1em 0 !important; | ||||
line-height: 1.5em !important | ||||
} | ||||
div.rst-block ul { | ||||
list-style: disc !important; | ||||
margin: 1em 0 1em 2em !important; | ||||
clear: both | ||||
} | ||||
div.rst-block ol { | ||||
list-style: decimal; | ||||
margin: 1em 0 1em 2em !important | ||||
} | ||||
div.rst-block pre, div.rst-block code { | ||||
font: 12px "Bitstream Vera Sans Mono", "Courier", monospace | ||||
} | ||||
div.rst-block code { | ||||
font-size: 12px !important; | ||||
background-color: ghostWhite !important; | ||||
color: #444 !important; | ||||
padding: 0 .2em !important; | ||||
border: 1px solid #dedede !important | ||||
} | ||||
div.rst-block pre code { | ||||
padding: 0 !important; | ||||
font-size: 12px !important; | ||||
background-color: #eee !important; | ||||
border: none !important | ||||
} | ||||
div.rst-block pre { | ||||
margin: 1em 0; | ||||
padding: 15px; | ||||
border: 1px solid #eeeeee; | ||||
-webkit-border-radius: 2px; | ||||
-moz-border-radius: 2px; | ||||
border-radius: 2px; | ||||
overflow: auto; | ||||
font-size: 12px; | ||||
color: #444; | ||||
background-color: #F5F5F5 | ||||
} | ||||
r508 | </style> | |||
<!-- Targeting Windows Mobile --> | ||||
<!--[if IEMobile 7]> | ||||
<style type="text/css"> | ||||
</style> | ||||
<![endif]--> | ||||
<!--[if gte mso 9]> | ||||
r4038 | <style> | |||
/* Target Outlook 2007 and 2010 */ | ||||
</style> | ||||
r508 | <![endif]--> | |||
</head> | ||||
<body> | ||||
r4217 | ||||
<div> | ||||
r508 | <!-- Wrapper/Container Table: Use a wrapper table to control the width and the background color consistently of your email. Use this approach instead of setting attributes on the body tag. --> | |||
r4217 | <table cellpadding="0" cellspacing="0" border="0" id="backgroundTable" align="left" style="margin:1%;width:97%;padding:0;font-family:${text_regular|n};font-weight:100;border:1px solid #dbd9da"> | |||
r508 | <tr> | |||
r4038 | <td valign="top" style="padding:0;"> | |||
r508 | <table cellpadding="0" cellspacing="0" border="0" align="left" width="100%"> | |||
r4038 | <tr> | |||
<td style="width:100%;padding:10px 15px;background-color:#202020" valign="top"> | ||||
<a style="color:#eeeeee;text-decoration:none;" href="${instance_url}"> | ||||
${_('RhodeCode')} | ||||
% if rhodecode_instance_name: | ||||
- ${rhodecode_instance_name} | ||||
% endif | ||||
</a> | ||||
</td> | ||||
</tr> | ||||
<tr> | ||||
<td style="padding:15px;" valign="top">${self.body()}</td> | ||||
</tr> | ||||
r508 | </table> | |||
</td> | ||||
</tr> | ||||
</table> | ||||
<!-- End of wrapper table --> | ||||
r4217 | </div> | |||
r3170 | ||||
r4217 | <div style="width:100%; clear: both; height: 1px"> </div> | |||
<div style="margin-left:1%;font-weight:100;font-size:11px;color:#666666;text-decoration:none;font-family:${text_monospace};"> | ||||
r4038 | ${_('This is a notification from RhodeCode.')} | |||
r4217 | <a style="font-weight:100;font-size:11px;color:#666666;text-decoration:none;font-family:${text_monospace};" href="${instance_url}"> | |||
r4038 | ${instance_url} | |||
</a> | ||||
</div> | ||||
r508 | </body> | |||
</html> | ||||