Show More
@@ -3,15 +3,100 b'' | |||||
3 | ## headers we additionally can set for email |
|
3 | ## headers we additionally can set for email | |
4 | <%def name="headers()" filter="n,trim"></%def> |
|
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 | <%def name="body_plaintext()" filter="n,trim"></%def> |
|
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> |
|
51 | /* Android targeting */ | |
13 | -- |
|
52 | @media only screen and (-webkit-device-pixel-ratio:.75){ | |
14 | <br/> |
|
53 | /* Put CSS for low density (ldpi) Android layouts in here */ | |
15 | <br/> |
|
54 | } | |
16 | <b>${_('This is a notification from RhodeCode. %(instance_url)s') % {'instance_url': instance_url}}</b> |
|
55 | @media only screen and (-webkit-device-pixel-ratio:1){ | |
17 | </div> |
|
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 | <%inherit file="base.mako"/> |
|
2 | <%inherit file="base.mako"/> | |
3 |
|
3 | |||
4 | <%def name="subject()" filter="n,trim"> |
|
4 | <%def name="subject()" filter="n,trim"> | |
5 |
|
|
5 | ${_('[mention]') if mention else ''} ${_('%(user)s commented on a commit of %(repo_name)s') % { | |
6 | 'user': h.person(user), |
|
6 | 'user': h.person(user), | |
7 | 'repo_name': repo_name |
|
7 | 'repo_name': repo_name | |
8 | } } |
|
8 | } } | |
@@ -28,30 +28,21 b'' | |||||
28 | ${_('Commit status was changed to')}: *${status_change}* |
|
28 | ${_('Commit status was changed to')}: *${status_change}* | |
29 | %endif |
|
29 | %endif | |
30 |
|
30 | |||
|
31 | ${self.plaintext_footer()} | |||
31 | </%def> |
|
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 | % if comment_file: |
|
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 | % else: |
|
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 | % 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> |
|
|||
44 |
|
|
40 | % endif | |
45 | <li>${_('Commit')}: ${h.show_id(commit)}</li> |
|
41 | </h4></td></tr> | |
46 | <li> |
|
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> | |
47 |
|
|
43 | <tr><td style="padding-right:20px;">${_('Description')}</td><td>${h.urlify_commit_message(commit.message, repo_name)}</td></tr> | |
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: |
|
44 | %if status_change: | |
56 |
<p>${_(' |
|
45 | <tr><td style="padding-right:20px;">${_('Status')}<td/>${_('The commit status was changed to')} ${status_change}.</td></tr> | |
57 | %endif |
|
46 | %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 | </%def> |
|
11 | </%def> | |
12 |
|
12 | |||
13 | ## BODY GOES BELOW |
|
13 | ## BODY GOES BELOW | |
14 | <div style="white-space: pre-wrap"> |
|
14 | <table style="text-align:left;vertical-align:top;"> | |
15 | ${body_plaintext()} |
|
15 | <tr><td style="padding-right:20px;padding-top:15px;white-space:pre-wrap">${body}</td></tr> | |
16 | </div> No newline at end of file |
|
16 | </table> No newline at end of file |
@@ -16,9 +16,16 b' There was a request to reset your passwo' | |||||
16 | You can continue, and generate new password by clicking following URL: |
|
16 | You can continue, and generate new password by clicking following URL: | |
17 | ${password_reset_url} |
|
17 | ${password_reset_url} | |
18 |
|
18 | |||
|
19 | ${self.plaintext_footer()} | |||
19 | </%def> |
|
20 | </%def> | |
20 |
|
21 | |||
21 | ## BODY GOES BELOW |
|
22 | ## BODY GOES BELOW | |
22 | <div style="white-space: pre-wrap"> |
|
23 | <p> | |
23 | ${body_plaintext()} |
|
24 | Hello ${user.username}, | |
24 | </div> No newline at end of file |
|
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 | <%def name="body_plaintext()" filter="n,trim"> |
|
9 | <%def name="body_plaintext()" filter="n,trim"> | |
10 | Hi ${user.username}, |
|
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 | </%def> |
|
20 | </%def> | |
18 |
|
21 | |||
19 | ## BODY GOES BELOW |
|
22 | ## BODY GOES BELOW | |
20 | <div style="white-space: pre-wrap"> |
|
23 | <p> | |
21 | ${body_plaintext()} |
|
24 | Hello ${user.username}, | |
22 | </div> No newline at end of file |
|
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 |
@@ -31,36 +31,30 b'' | |||||
31 | ${_('Pull request was closed with status')}: *${status_change}* |
|
31 | ${_('Pull request was closed with status')}: *${status_change}* | |
32 | %endif |
|
32 | %endif | |
33 |
|
33 | |||
|
34 | ${self.plaintext_footer()} | |||
34 | </%def> |
|
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 | % if comment_file: |
|
39 | % if comment_file: | |
37 | <h4>${_('%(user)s commented on a file on pull request #%(pr_id)s: "%(pr_title)s".') % { |
|
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} | |
38 | 'user': h.person(user), |
|
41 | % elif status_change and not closing_pr: | |
39 | 'pr_title': pull_request.title, |
|
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} | |
40 | 'pr_id': pull_request.pull_request_id |
|
43 | %elif status_change and closing_pr: | |
41 | } |n}</h4> |
|
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} | |
42 |
% |
|
45 | %else: | |
43 | <h4>${_('%(user)s commented on a pull request #%(pr_id)s "%(pr_title)s".') % { |
|
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} | |
44 | 'user': h.person(user), |
|
47 | % endif | |
45 | 'pr_title': pull_request.title, |
|
48 | </a></h4></td></tr> | |
46 | 'pr_id': pull_request.pull_request_id |
|
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> | |
47 | } |n}</h4> |
|
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> | |||
48 |
% |
|
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 |
|
@@ -36,46 +36,26 b'' | |||||
36 |
|
36 | |||
37 | % for commit_id, message in pull_request_commits: |
|
37 | % for commit_id, message in pull_request_commits: | |
38 | - ${h.short_id(commit_id)} |
|
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 | % endfor |
|
41 | % endfor | |
42 |
|
42 | |||
|
43 | ${self.plaintext_footer()} | |||
43 | </%def> |
|
44 | </%def> | |
44 |
|
45 | |||
45 |
|
46 | <table style="text-align:left;vertical-align:middle;"> | ||
46 | <h4> |
|
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> | |
47 | ${_('%(user)s wants you to review pull request #%(pr_id)s: "%(pr_title)s".') % { |
|
48 | <tr><td style="padding-right:20px;padding-top:15px;">${_('Title')}</td><td style="padding-top:15px;">${pull_request.title}</td></tr> | |
48 | 'user': h.person(user), |
|
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> | |
49 | 'pr_title': pull_request.title, |
|
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> | |
50 | 'pr_id': pull_request.pull_request_id |
|
51 | <tr><td style="padding-right:20px;">${_('Description')}</td><td style="white-space:pre-wrap">${pull_request.description}</td></tr> | |
51 | } } |
|
52 | <tr><td style="padding-right:20px;">${ungettext('%(num)s Commit', '%(num)s Commits', len(pull_request_commits)) % {'num': len(pull_request_commits)}}</td> | |
52 | </h4> |
|
53 | <td><ol style="margin:0 0 0 1em;padding:0;text-align:left;"> | |
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 |
|
|
54 | % for commit_id, message in pull_request_commits: | |
75 | <li> |
|
55 | <li style="margin:0 0 1em;"><pre style="margin:0 0 .5em">${h.short_id(commit_id)}</pre> | |
76 | <pre>${h.short_id(commit_id)}</pre> |
|
|||
77 |
|
|
56 | ${h.chop_at_smart(message, '\n', suffix_if_chopped='...')} | |
78 | </li> |
|
57 | </li> | |
79 |
|
|
58 | % endfor | |
80 | </ol> |
|
59 | </ol></td> | |
81 | </p> |
|
60 | </tr> | |
|
61 | </table> |
@@ -2,10 +2,9 b'' | |||||
2 | <%inherit file="base.mako"/> |
|
2 | <%inherit file="base.mako"/> | |
3 |
|
3 | |||
4 | <%def name="subject()" filter="n,trim"> |
|
4 | <%def name="subject()" filter="n,trim"> | |
5 | RhodeCode new user registration |
|
5 | RhodeCode new user registration: ${user.username} | |
6 | </%def> |
|
6 | </%def> | |
7 |
|
7 | |||
8 | ## plain text version of the email. Empty by default |
|
|||
9 | <%def name="body_plaintext()" filter="n,trim"> |
|
8 | <%def name="body_plaintext()" filter="n,trim"> | |
10 |
|
9 | |||
11 | A new user `${user.username}` has registered on ${h.format_date(date)} |
|
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 | - Full Name: ${user.firstname} ${user.lastname} |
|
13 | - Full Name: ${user.firstname} ${user.lastname} | |
15 | - Email: ${user.email} |
|
14 | - Email: ${user.email} | |
16 | - Profile link: ${h.url('user_profile', username=user.username, qualified=True)} |
|
15 | - Profile link: ${h.url('user_profile', username=user.username, qualified=True)} | |
|
16 | ||||
|
17 | ${self.plaintext_footer()} | |||
17 | </%def> |
|
18 | </%def> | |
18 |
|
19 | |||
19 | ## BODY GOES BELOW |
|
20 | ## BODY GOES BELOW | |
20 | <div style="white-space: pre-wrap"> |
|
21 | <table style="text-align:left;vertical-align:middle;"> | |
21 | ${body_plaintext()} |
|
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> | |
22 | </div> |
|
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