Show More
@@ -3,15 +3,100 b'' | |||
|
3 | 3 | ## headers we additionally can set for email |
|
4 | 4 | <%def name="headers()" filter="n,trim"></%def> |
|
5 | 5 | |
|
6 | ## plain text version of the email. Empty by default | |
|
6 | <%def name="plaintext_footer()"> | |
|
7 | ${_('This is a notification from RhodeCode. %(instance_url)s') % {'instance_url': instance_url}} | |
|
8 | </%def> | |
|
9 | ||
|
7 | 10 | <%def name="body_plaintext()" filter="n,trim"></%def> |
|
8 | 11 | |
|
9 | ${self.body()} | |
|
12 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
|
13 | <html xmlns="http://www.w3.org/1999/xhtml"> | |
|
14 | <head> | |
|
15 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
|
16 | <meta name="viewport" content="width=device-width, initial-scale=1.0"/> | |
|
17 | <title>${self.subject()}</title> | |
|
18 | <style type="text/css"> | |
|
19 | /* Based on The MailChimp Reset INLINE: Yes. */ | |
|
20 | #outlook a {padding:0;} /* Force Outlook to provide a "view in browser" menu link. */ | |
|
21 | body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;} | |
|
22 | /* Prevent Webkit and Windows Mobile platforms from changing default font sizes.*/ | |
|
23 | .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */ | |
|
24 | .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} | |
|
25 | /* Forces Hotmail to display normal line spacing. More on that: http://www.emailonacid.com/forum/viewthread/43/ */ | |
|
26 | #backgroundTable {margin:0; padding:0; line-height: 100% !important;} | |
|
27 | /* End reset */ | |
|
10 | 28 | |
|
29 | /* defaults for images*/ | |
|
30 | img {outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;} | |
|
31 | a img {border:none;} | |
|
32 | .image_fix {display:block;} | |
|
33 | ||
|
34 | body {line-height:1.2em;} | |
|
35 | p {margin: 0 0 20px;} | |
|
36 | h1, h2, h3, h4, h5, h6 {color:#323232!important;} | |
|
37 | a {color:#427cc9;text-decoration:none;outline:none;cursor:pointer;} | |
|
38 | a:focus {outline:none;} | |
|
39 | a:hover {color: #305b91;} | |
|
40 | h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {color:#427cc9!important;text-decoration:none!important;} | |
|
41 | h1 a:active, h2 a:active, h3 a:active, h4 a:active, h5 a:active, h6 a:active {color: #305b91!important;} | |
|
42 | h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {color: #305b91!important;} | |
|
43 | table {font-size:13px;border-collapse:collapse;mso-table-lspace:0pt;mso-table-rspace:0pt;} | |
|
44 | table td {padding:.65em 1em .65em 0;border-collapse:collapse;vertical-align:top;text-align:left;} | |
|
45 | input {display:inline;border-radius:2px;border-style:solid;border: 1px solid #dbd9da;padding:.5em;} | |
|
46 | input:focus {outline: 1px solid #979797} | |
|
47 | @media only screen and (-webkit-min-device-pixel-ratio: 2) { | |
|
48 | /* Put your iPhone 4g styles in here */ | |
|
49 | } | |
|
11 | 50 | |
|
12 | <div> | |
|
13 | -- | |
|
14 | <br/> | |
|
15 | <br/> | |
|
16 | <b>${_('This is a notification from RhodeCode. %(instance_url)s') % {'instance_url': instance_url}}</b> | |
|
17 | </div> | |
|
51 | /* Android targeting */ | |
|
52 | @media only screen and (-webkit-device-pixel-ratio:.75){ | |
|
53 | /* Put CSS for low density (ldpi) Android layouts in here */ | |
|
54 | } | |
|
55 | @media only screen and (-webkit-device-pixel-ratio:1){ | |
|
56 | /* Put CSS for medium density (mdpi) Android layouts in here */ | |
|
57 | } | |
|
58 | @media only screen and (-webkit-device-pixel-ratio:1.5){ | |
|
59 | /* Put CSS for high density (hdpi) Android layouts in here */ | |
|
60 | } | |
|
61 | /* end Android targeting */ | |
|
62 | ||
|
63 | </style> | |
|
64 | ||
|
65 | <!-- Targeting Windows Mobile --> | |
|
66 | <!--[if IEMobile 7]> | |
|
67 | <style type="text/css"> | |
|
68 | ||
|
69 | </style> | |
|
70 | <![endif]--> | |
|
71 | ||
|
72 | <!--[if gte mso 9]> | |
|
73 | <style> | |
|
74 | /* Target Outlook 2007 and 2010 */ | |
|
75 | </style> | |
|
76 | <![endif]--> | |
|
77 | </head> | |
|
78 | <body> | |
|
79 | <!-- 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. --> | |
|
80 | <table cellpadding="0" cellspacing="0" border="0" id="backgroundTable" align="left" style="margin:1%;width:97%;padding:0;font-family:sans-serif;font-weight:100;border:1px solid #dbd9da"> | |
|
81 | <tr> | |
|
82 | <td valign="top" style="padding:0;"> | |
|
83 | <table cellpadding="0" cellspacing="0" border="0" align="left" width="100%"> | |
|
84 | <tr><td style="width:100%;padding:7px;background-color:#202020" valign="top"> | |
|
85 | <a style="width:100%;height:100%;display:block;color:#eeeeee;text-decoration:none;" href="${instance_url}"> | |
|
86 | ${_('RhodeCode')} | |
|
87 | % if c.rhodecode_name: | |
|
88 | - ${c.rhodecode_name} | |
|
89 | % endif | |
|
90 | </a> | |
|
91 | </td></tr> | |
|
92 | <tr><td style="padding:15px;" valign="top">${self.body()}</td></tr> | |
|
93 | </table> | |
|
94 | </td> | |
|
95 | </tr> | |
|
96 | </table> | |
|
97 | <!-- End of wrapper table --> | |
|
98 | <p><a style="margin-top:15px;margin-left:1%;font-family:sans-serif;font-weight:100;font-size:11px;display:block;color:#666666;text-decoration:none;" href="${instance_url}"> | |
|
99 | ${self.plaintext_footer()} | |
|
100 | </a></p> | |
|
101 | </body> | |
|
102 | </html> |
@@ -2,7 +2,7 b'' | |||
|
2 | 2 | <%inherit file="base.mako"/> |
|
3 | 3 | |
|
4 | 4 | <%def name="subject()" filter="n,trim"> |
|
5 |
|
|
|
5 | ${_('[mention]') if mention else ''} ${_('%(user)s commented on a commit of %(repo_name)s') % { | |
|
6 | 6 | 'user': h.person(user), |
|
7 | 7 | 'repo_name': repo_name |
|
8 | 8 | } } |
@@ -28,30 +28,21 b'' | |||
|
28 | 28 | ${_('Commit status was changed to')}: *${status_change}* |
|
29 | 29 | %endif |
|
30 | 30 | |
|
31 | ${self.plaintext_footer()} | |
|
31 | 32 | </%def> |
|
32 | 33 | |
|
33 | ||
|
34 | <table style="text-align:left;vertical-align:middle;"> | |
|
35 | <tr><td colspan="2" style="width:100%;padding-bottom:15px;border-bottom:1px solid #dbd9da;"><h4><a href="${commit_comment_url}" style="color:#427cc9;text-decoration:none;cursor:pointer"> | |
|
34 | 36 | % if comment_file: |
|
35 | <h4>${_('%(user)s commented on a file in commit of %(repo_url)s.') % {'user': h.person(user), 'repo_url': commit_target_repo} |n}</h4> | |
|
37 | ${_('%(user)s commented on %(comment_file)s on line %(comment_line)s</a> in the %(repo)s repository') % {'user': h.person(user), 'comment_file': comment_file, 'comment_line': comment_line, 'repo': commit_target_repo} |n}</h4> | |
|
36 | 38 | % else: |
|
37 |
|
|
|
39 | ${_('%(user)s commented on a commit</a> in the %(repo)s repository') % {'user': h.person(user), 'repo': commit_target_repo} |n} | |
|
38 | 40 | % endif |
|
39 | ||
|
40 | <ul> | |
|
41 | <li>${_('Comment link')}: <a href="${commit_comment_url}">${commit_comment_url}</a></li> | |
|
42 | %if comment_file: | |
|
43 | <li>${_('File: %(comment_file)s on line %(comment_line)s') % {'comment_file': comment_file, 'comment_line': comment_line}}</li> | |
|
41 | </h4></td></tr> | |
|
42 | <tr><td style="padding-right:20px;padding-top:15px;">${_('Commit')}</td><td style="padding-top:15px;"><a href="${commit_comment_url}" style="color:#427cc9;text-decoration:none;cursor:pointer">${h.show_id(commit)}</a></td></tr> | |
|
43 | <tr><td style="padding-right:20px;">${_('Description')}</td><td>${h.urlify_commit_message(commit.message, repo_name)}</td></tr> | |
|
44 | %if status_change: | |
|
45 | <tr><td style="padding-right:20px;">${_('Status')}<td/>${_('The commit status was changed to')} ${status_change}.</td></tr> | |
|
44 | 46 | %endif |
|
45 | <li>${_('Commit')}: ${h.show_id(commit)}</li> | |
|
46 | <li> | |
|
47 | ${_('Commit Description')}: <p>${h.urlify_commit_message(commit.message, repo_name)}</p> | |
|
48 | </li> | |
|
49 | </ul> | |
|
50 | ||
|
51 | <hr> | |
|
52 | <p>${h.render(comment_body, renderer=renderer_type, mentions=True)}</p> | |
|
53 | <hr/> | |
|
54 | ||
|
55 | %if status_change: | |
|
56 | <p>${_('Commit status was changed to')}: <b>${status_change}</b></p> | |
|
57 | %endif | |
|
47 | <tr><td style="padding-right:20px;">${_('Comment')}</td><td style="line-height:1.2em;">${h.render(comment_body, renderer=renderer_type, mentions=True)}</td></tr> | |
|
48 | </table> No newline at end of file |
@@ -11,6 +11,6 b'' | |||
|
11 | 11 | </%def> |
|
12 | 12 | |
|
13 | 13 | ## BODY GOES BELOW |
|
14 | <div style="white-space: pre-wrap"> | |
|
15 | ${body_plaintext()} | |
|
16 | </div> No newline at end of file | |
|
14 | <table style="text-align:left;vertical-align:top;"> | |
|
15 | <tr><td style="padding-right:20px;padding-top:15px;white-space:pre-wrap">${body}</td></tr> | |
|
16 | </table> No newline at end of file |
@@ -16,9 +16,16 b' There was a request to reset your passwo' | |||
|
16 | 16 | You can continue, and generate new password by clicking following URL: |
|
17 | 17 | ${password_reset_url} |
|
18 | 18 | |
|
19 | ${self.plaintext_footer()} | |
|
19 | 20 | </%def> |
|
20 | 21 | |
|
21 | 22 | ## BODY GOES BELOW |
|
22 | <div style="white-space: pre-wrap"> | |
|
23 | ${body_plaintext()} | |
|
24 | </div> No newline at end of file | |
|
23 | <p> | |
|
24 | Hello ${user.username}, | |
|
25 | </p><p> | |
|
26 | There was a request to reset your password using the email address ${email} on ${h.format_date(date)} | |
|
27 | <br/> | |
|
28 | <strong>If you did not request a password reset, please contact your RhodeCode administrator.</strong> | |
|
29 | </p><p> | |
|
30 | ${_('<a href="%(url)s">Generate new password here</a>.') % {'url': password_reset_url} |n} | |
|
31 | </p> No newline at end of file |
@@ -9,14 +9,22 b' Your new RhodeCode password' | |||
|
9 | 9 | <%def name="body_plaintext()" filter="n,trim"> |
|
10 | 10 | Hi ${user.username}, |
|
11 | 11 | |
|
12 | Below is your new access password for RhodeCode. | |
|
12 | There was a request to reset your password using the email address ${email} on ${h.format_date(date)} | |
|
13 | ||
|
14 | *If you didn't do this, please contact your RhodeCode administrator.* | |
|
13 | 15 | |
|
14 | password: ${new_password} | |
|
16 | You can continue, and generate new password by clicking following URL: | |
|
17 | ${password_reset_url} | |
|
15 | 18 | |
|
16 | *If you didn't request a new password, please contact your RhodeCode administrator immediately.* | |
|
19 | ${self.plaintext_footer()} | |
|
17 | 20 | </%def> |
|
18 | 21 | |
|
19 | 22 | ## BODY GOES BELOW |
|
20 | <div style="white-space: pre-wrap"> | |
|
21 | ${body_plaintext()} | |
|
22 | </div> No newline at end of file | |
|
23 | <p> | |
|
24 | Hello ${user.username}, | |
|
25 | </p><p> | |
|
26 | Below is your new access password for RhodeCode. | |
|
27 | <br/> | |
|
28 | <strong>If you didn't request a new password, please contact your RhodeCode administrator.</strong> | |
|
29 | </p> | |
|
30 | <p>password: <input value='${new_password}'></pre></p> No newline at end of file |
@@ -2,11 +2,11 b'' | |||
|
2 | 2 | <%inherit file="base.mako"/> |
|
3 | 3 | |
|
4 | 4 | <%def name="subject()" filter="n,trim"> |
|
5 |
|
|
|
6 |
|
|
|
7 |
|
|
|
8 |
|
|
|
9 |
|
|
|
5 | ${_('[mention]') if mention else ''} ${_('%(user)s commented on pull request #%(pr_id)s: "%(pr_title)s"') % { | |
|
6 | 'user': h.person(user), | |
|
7 | 'pr_title': pull_request.title, | |
|
8 | 'pr_id': pull_request.pull_request_id | |
|
9 | } |n} | |
|
10 | 10 | </%def> |
|
11 | 11 | |
|
12 | 12 | <%def name="body_plaintext()" filter="n,trim"> |
@@ -31,36 +31,30 b'' | |||
|
31 | 31 | ${_('Pull request was closed with status')}: *${status_change}* |
|
32 | 32 | %endif |
|
33 | 33 | |
|
34 | ${self.plaintext_footer()} | |
|
34 | 35 | </%def> |
|
35 | 36 | |
|
37 | <table style="text-align:left;vertical-align:middle;"> | |
|
38 | <tr><td colspan="2" style="width:100%;padding-bottom:15px;border-bottom:1px solid #dbd9da;"><h4><a href="${pr_comment_url}" style="color:#427cc9;text-decoration:none;cursor:pointer"> | |
|
36 | 39 | % if comment_file: |
|
37 | <h4>${_('%(user)s commented on a file on pull request #%(pr_id)s: "%(pr_title)s".') % { | |
|
38 | 'user': h.person(user), | |
|
39 | 'pr_title': pull_request.title, | |
|
40 | 'pr_id': pull_request.pull_request_id | |
|
41 | } |n}</h4> | |
|
42 |
% |
|
|
43 | <h4>${_('%(user)s commented on a pull request #%(pr_id)s "%(pr_title)s".') % { | |
|
44 | 'user': h.person(user), | |
|
45 | 'pr_title': pull_request.title, | |
|
46 | 'pr_id': pull_request.pull_request_id | |
|
47 | } |n}</h4> | |
|
40 | ${_('%(user)s commented on %(comment_file)s on pull request #%(pr_id)s: "%(pr_title)s".') % {'user': h.person(user), 'comment_file': comment_file, 'pr_title': pull_request.title, 'pr_id': pull_request.pull_request_id} |n} | |
|
41 | % elif status_change and not closing_pr: | |
|
42 | ${_('%(user)s changed the status of pull request #%(pr_id)s "%(pr_title)s" to %(status)s.') % {'user': h.person(user),'pr_title': pull_request.title,'pr_id': pull_request.pull_request_id, 'status': status_change} |n} | |
|
43 | %elif status_change and closing_pr: | |
|
44 | ${_('%(user)s closed pull request #%(pr_id)s "%(pr_title)s" with status %(status)s.') % {'user': h.person(user),'pr_title': pull_request.title,'pr_id': pull_request.pull_request_id, 'status': status_change} |n} | |
|
45 | %else: | |
|
46 | ${_('%(user)s commented in pull request #%(pr_id)s "%(pr_title)s".') % {'user': h.person(user),'pr_title': pull_request.title,'pr_id': pull_request.pull_request_id} |n} | |
|
48 | 47 | % endif |
|
48 | </a></h4></td></tr> | |
|
49 | <tr><td style="padding-right:20px;padding-top:15px;">${_('Source')}</td><td style="padding-top:15px;"><a style="color:#427cc9;text-decoration:none;cursor:pointer" href="${pr_source_repo_url}">${pr_source_repo.repo_name}</a></td></tr> | |
|
50 | % if comment_file: | |
|
51 | <tr><td style="padding-right:20px;">${_('File')}</td><td>${_('%(comment_file)s on line %(comment_line)s') % {'comment_file': comment_file, 'comment_line': comment_line}}</td></tr> | |
|
52 | %endif | |
|
53 | %if status_change and not closing_pr: | |
|
54 | <tr><td style="padding-right:20px;">${_('Status')}</td><td>${_('The commit status was changed to')} ${status_change}</td></tr> | |
|
55 | %elif status_change and closing_pr: | |
|
56 | <tr><td style="padding-right:20px;">${_('Status')}</td><td>${_('Pull request was closed with status')}: ${status_change}</td></tr> | |
|
57 | %endif | |
|
58 | <tr><td style="padding-right:20px;">${_('Comment')}</td><td style="line-height:1.2em;">${h.render(comment_body, renderer=renderer_type, mentions=True)}</td></tr> | |
|
59 | </table> | |
|
49 | 60 | |
|
50 | <ul> | |
|
51 | <li>${_('Comment link')}: <a href="${pr_comment_url}">${pr_comment_url}</a></li> | |
|
52 | <li>${_('Source repository')}: <a href="${pr_source_repo_url}">${pr_source_repo.repo_name}</a></li> | |
|
53 | %if comment_file: | |
|
54 | <li>${_('File: %(comment_file)s on line %(comment_line)s') % {'comment_file': comment_file, 'comment_line': comment_line}}</li> | |
|
55 | %endif | |
|
56 | </ul> | |
|
57 | ||
|
58 | <hr> | |
|
59 | <p>${h.render(comment_body, renderer=renderer_type, mentions=True)}</p> | |
|
60 | <hr/> | |
|
61 | ||
|
62 | %if status_change and not closing_pr: | |
|
63 | <p>${_('Pull request status was changed to')}: <b>${status_change}</b></p> | |
|
64 | %elif status_change and closing_pr: | |
|
65 | <p>${_('Pull request was closed with status')}: <b>${status_change}</b></p> | |
|
66 | %endif |
@@ -29,53 +29,33 b'' | |||
|
29 | 29 | |
|
30 | 30 | * ${_('Description')}: |
|
31 | 31 | |
|
32 |
|
|
|
32 | ${pull_request.description} | |
|
33 | 33 | |
|
34 | 34 | |
|
35 | 35 | * ${ungettext('Commit (%(num)s)', 'Commits (%(num)s)', len(pull_request_commits) ) % {'num': len(pull_request_commits)}}: |
|
36 | 36 | |
|
37 | 37 | % for commit_id, message in pull_request_commits: |
|
38 | 38 | - ${h.short_id(commit_id)} |
|
39 | ${h.chop_at_smart(message, '\n', suffix_if_chopped='...')} | |
|
39 | 40 | |
|
40 | ${h.chop_at_smart(message, '\n', suffix_if_chopped='...')} | |
|
41 | 41 | % endfor |
|
42 | 42 | |
|
43 | ${self.plaintext_footer()} | |
|
43 | 44 | </%def> |
|
44 | 45 | |
|
45 | ||
|
46 | <h4> | |
|
47 | ${_('%(user)s wants you to review pull request #%(pr_id)s: "%(pr_title)s".') % { | |
|
48 | 'user': h.person(user), | |
|
49 | 'pr_title': pull_request.title, | |
|
50 | 'pr_id': pull_request.pull_request_id | |
|
51 | } } | |
|
52 | </h4> | |
|
53 | ||
|
54 | <p>${h.literal(_('Pull request from %(source_ref_type)s:%(source_ref_name)s of %(repo_url)s into %(target_ref_type)s:%(target_ref_name)s') % { | |
|
55 | 'source_ref_type': pull_request.source_ref_parts.type, | |
|
56 | 'source_ref_name': pull_request.source_ref_parts.name, | |
|
57 | 'target_ref_type': pull_request.target_ref_parts.type, | |
|
58 | 'target_ref_name': pull_request.target_ref_parts.name, | |
|
59 | 'repo_url': h.link_to(pull_request_source_repo.repo_name, pull_request_source_repo_url) | |
|
60 | })} | |
|
61 | </p> | |
|
62 | ||
|
63 | <p>${_('Link')}: ${h.link_to(pull_request_url, pull_request_url)}</p> | |
|
64 | ||
|
65 | <p><strong>${_('Title')}</strong>: ${pull_request.title}</p> | |
|
66 | <p> | |
|
67 | <strong>${_('Description')}:</strong><br/> | |
|
68 | <span style="white-space: pre-wrap;">${pull_request.description}</span> | |
|
69 | </p> | |
|
70 | ||
|
71 | <p> | |
|
72 | <strong>${ungettext('Commit (%(num)s)', 'Commits (%(num)s)', len(pull_request_commits) ) % {'num': len(pull_request_commits)}}</strong>: | |
|
73 | <ol> | |
|
74 | % for commit_id, message in pull_request_commits: | |
|
75 | <li> | |
|
76 | <pre>${h.short_id(commit_id)}</pre> | |
|
77 | ${h.chop_at_smart(message, '\n', suffix_if_chopped='...')} | |
|
78 | </li> | |
|
79 | % endfor | |
|
80 | </ol> | |
|
81 | </p> | |
|
46 | <table style="text-align:left;vertical-align:middle;"> | |
|
47 | <tr><td colspan="2" style="width:100%;padding-bottom:15px;border-bottom:1px solid #dbd9da;"><h4><a href="${pull_request_url}" style="color:#427cc9;text-decoration:none;cursor:pointer">${_('%(user)s wants you to review pull request #%(pr_id)s: "%(pr_title)s".') % { 'user': h.person(user), 'pr_title': pull_request.title, 'pr_id': pull_request.pull_request_id } }</a></h4></td></tr> | |
|
48 | <tr><td style="padding-right:20px;padding-top:15px;">${_('Title')}</td><td style="padding-top:15px;">${pull_request.title}</td></tr> | |
|
49 | <tr><td style="padding-right:20px;">${_('Source')}</td><td>${h.literal(_('<pre style="display:inline;border-radius:2px;color:#666666;font-size:12px;background-color:#f9f9f9;padding:.2em;border:1px solid #979797;">%(source_ref_name)s</pre> %(source_ref_type)s of %(source_repo_url)s') % {'source_ref_type': pull_request.source_ref_parts.type,'source_ref_name': pull_request.source_ref_parts.name,'source_repo_url': h.link_to(pull_request_source_repo.repo_name, pull_request_source_repo_url)})}</td></tr> | |
|
50 | <tr><td style="padding-right:20px;">${_('Target')}</td><td>${h.literal(_('<pre style="display:inline;border-radius:2px;color:#666666;font-size:12px;background-color:#f9f9f9;padding:.2em;border:1px solid #979797;">%(target_ref_name)s</pre> %(target_ref_type)s of %(target_repo_url)s') % {'target_ref_type': pull_request.target_ref_parts.type,'target_ref_name': pull_request.target_ref_parts.name,'target_repo_url': h.link_to(pull_request_target_repo.repo_name, pull_request_target_repo_url)})}</td></tr> | |
|
51 | <tr><td style="padding-right:20px;">${_('Description')}</td><td style="white-space:pre-wrap">${pull_request.description}</td></tr> | |
|
52 | <tr><td style="padding-right:20px;">${ungettext('%(num)s Commit', '%(num)s Commits', len(pull_request_commits)) % {'num': len(pull_request_commits)}}</td> | |
|
53 | <td><ol style="margin:0 0 0 1em;padding:0;text-align:left;"> | |
|
54 | % for commit_id, message in pull_request_commits: | |
|
55 | <li style="margin:0 0 1em;"><pre style="margin:0 0 .5em">${h.short_id(commit_id)}</pre> | |
|
56 | ${h.chop_at_smart(message, '\n', suffix_if_chopped='...')} | |
|
57 | </li> | |
|
58 | % endfor | |
|
59 | </ol></td> | |
|
60 | </tr> | |
|
61 | </table> |
@@ -2,10 +2,9 b'' | |||
|
2 | 2 | <%inherit file="base.mako"/> |
|
3 | 3 | |
|
4 | 4 | <%def name="subject()" filter="n,trim"> |
|
5 | RhodeCode new user registration | |
|
5 | RhodeCode new user registration: ${user.username} | |
|
6 | 6 | </%def> |
|
7 | 7 | |
|
8 | ## plain text version of the email. Empty by default | |
|
9 | 8 | <%def name="body_plaintext()" filter="n,trim"> |
|
10 | 9 | |
|
11 | 10 | A new user `${user.username}` has registered on ${h.format_date(date)} |
@@ -14,9 +13,15 b' A new user `${user.username}` has regist' | |||
|
14 | 13 | - Full Name: ${user.firstname} ${user.lastname} |
|
15 | 14 | - Email: ${user.email} |
|
16 | 15 | - Profile link: ${h.url('user_profile', username=user.username, qualified=True)} |
|
16 | ||
|
17 | ${self.plaintext_footer()} | |
|
17 | 18 | </%def> |
|
18 | 19 | |
|
19 | 20 | ## BODY GOES BELOW |
|
20 | <div style="white-space: pre-wrap"> | |
|
21 | ${body_plaintext()} | |
|
22 | </div> | |
|
21 | <table style="text-align:left;vertical-align:middle;"> | |
|
22 | <tr><td colspan="2" style="width:100%;padding-bottom:15px;border-bottom:1px solid #dbd9da;"><h4><a href="${h.url('user_profile', username=user.username, qualified=True)}" style="color:#427cc9;text-decoration:none;cursor:pointer">${_('New user %(user)s has registered on %(date)s') % {'user': user.username, 'date': h.format_date(date)}}</h4></td></tr> | |
|
23 | <tr><td style="padding-right:20px;padding-top:20px;">${_('Username')}</td><td style="line-height:1;padding-top:20px;"><img style="margin-bottom:-5px;text-align:left;border:1px solid #dbd9da" src="${h.gravatar_url(user.email, 16)}" height="16" width="16"> ${user.username}</td></tr> | |
|
24 | <tr><td style="padding-right:20px;">${_('Full Name')}</td><td>${user.firstname} ${user.lastname}</td></tr> | |
|
25 | <tr><td style="padding-right:20px;">${_('Email')}</td><td>${user.email}</td></tr> | |
|
26 | <tr><td style="padding-right:20px;">${_('Profile')}</td><td><a href="${h.url('user_profile', username=user.username, qualified=True)}">${h.url('user_profile', username=user.username, qualified=True)}</a></td></tr> | |
|
27 | </table> No newline at end of file |
General Comments 0
You need to be logged in to leave comments.
Login now