##// END OF EJS Templates
rhodecode-toasts: added flash toast into pages that don't inherit from base.
marcink -
r1485:26f1df06 default
parent child Browse files
Show More
@@ -1,301 +1,301 b''
1 //LOGIN
1 //LOGIN
2
2
3
3
4 .loginbox {
4 .loginbox {
5 max-width: 65%;
5 max-width: 65%;
6 margin: @pagepadding auto;
6 margin: @pagepadding auto;
7 font-family: @text-light;
7 font-family: @text-light;
8 border: @border-thickness solid @grey5;
8 border: @border-thickness solid @grey5;
9 box-sizing: border-box;
9 box-sizing: border-box;
10
10
11 @media (max-width:1200px) {
11 @media (max-width:1200px) {
12 max-width: 85%;
12 max-width: 85%;
13 }
13 }
14
14
15 @media (max-width:768px) {
15 @media (max-width:768px) {
16 max-width: 100%;
16 max-width: 100%;
17 width: 100%;
17 width: 100%;
18 margin: 0;
18 margin: 0;
19 }
19 }
20
20
21 .title {
21 .title {
22 float: none;
22 float: none;
23 }
23 }
24
24
25 .header {
25 .header {
26 width: 100%;
26 width: 100%;
27 padding: 0 35px;
27 padding: 0 35px;
28 box-sizing: border-box;
28 box-sizing: border-box;
29
29
30 .title {
30 .title {
31 padding: 0;
31 padding: 0;
32 }
32 }
33 }
33 }
34
34
35 .loginwrapper {
35 .loginwrapper {
36 float: left;
36 float: left;
37 height: 100%;
37 height: 100%;
38 width: 100%;
38 width: 100%;
39 padding: 35px 55px 35px 0;
39 padding: 35px 55px 35px 35px;
40 background-color: white;
40 background-color: white;
41 box-sizing: border-box;
41 box-sizing: border-box;
42
42
43 @media (max-width:414px) {
43 @media (max-width:414px) {
44 padding: 35px;
44 padding: 35px;
45 }
45 }
46 }
46 }
47
47
48 .left-column {
48 .left-column {
49 float: left;
49 float: left;
50 position: relative;
50 position: relative;
51 width: 50%;
51 width: 50%;
52 height: 100%;
52 height: 100%;
53
53
54 @media (max-width:414px) {
54 @media (max-width:414px) {
55 display:none;
55 display:none;
56 }
56 }
57 }
57 }
58
58
59 .right-column {
59 .right-column {
60 float: right;
60 float: right;
61 position: relative;
61 position: relative;
62 width: 50%;
62 width: 50%;
63
63
64 @media (max-width:414px) {
64 @media (max-width:414px) {
65 width: 100%;
65 width: 100%;
66 }
66 }
67 }
67 }
68
68
69 .sign-in-image {
69 .sign-in-image {
70 display: block;
70 display: block;
71 width: 65%;
71 width: 65%;
72 margin: 5% auto;
72 margin: 5% auto;
73 }
73 }
74
74
75 .sign-in-title {
75 .sign-in-title {
76 h1 {
76 h1 {
77 margin: 0;
77 margin: 0;
78 }
78 }
79
79
80 h4 {
80 h4 {
81 margin: @padding*2 0;
81 margin: @padding*2 0;
82 }
82 }
83 }
83 }
84
84
85 .form {
85 .form {
86 label {
86 label {
87 display: block;
87 display: block;
88 }
88 }
89
89
90 input {
90 input {
91 width: 100%;
91 width: 100%;
92 margin: 0 10% @padding 0;
92 margin: 0 10% @padding 0;
93 .box-sizing(border-box) ;
93 .box-sizing(border-box) ;
94
94
95 &[type="checkbox"] {
95 &[type="checkbox"] {
96 clear: both;
96 clear: both;
97 width: auto;
97 width: auto;
98 margin: 0 1em @padding 0;
98 margin: 0 1em @padding 0;
99 }
99 }
100 }
100 }
101
101
102 .checkbox {
102 .checkbox {
103 display: inline;
103 display: inline;
104 width: auto;
104 width: auto;
105 }
105 }
106
106
107 .sign-in {
107 .sign-in {
108 clear: both;
108 clear: both;
109 width: 100%;
109 width: 100%;
110 margin: @padding 0;
110 margin: @padding 0;
111 }
111 }
112 }
112 }
113 .register_message,
113 .register_message,
114 .activation_msg {
114 .activation_msg {
115 padding: 0 0 @padding;
115 padding: 0 0 @padding;
116 }
116 }
117
117
118 .buttons,
118 .buttons,
119 .links {
119 .links {
120 padding: 0;
120 padding: 0;
121 }
121 }
122
122
123 .buttons {
123 .buttons {
124 input {
124 input {
125 margin-right: 0;
125 margin-right: 0;
126 .box-sizing(border-box);
126 .box-sizing(border-box);
127 }
127 }
128
128
129 #sign_up, #send {
129 #sign_up, #send {
130 width: 100%;
130 width: 100%;
131 }
131 }
132 }
132 }
133
133
134 .fields {
134 .fields {
135 .field.field-compact {
135 .field.field-compact {
136 margin-bottom: 0px;
136 margin-bottom: 0px;
137 }
137 }
138
138
139 .buttons {
139 .buttons {
140 margin: 0;
140 margin: 0;
141 }
141 }
142
142
143 .field {
143 .field {
144 margin-bottom: 15px;
144 margin-bottom: 15px;
145
145
146 input {
146 input {
147 width: 100%;
147 width: 100%;
148 .box-sizing(border-box);
148 .box-sizing(border-box);
149 }
149 }
150
150
151 .input {
151 .input {
152 margin-left: 0;
152 margin-left: 0;
153 }
153 }
154
154
155 .label {
155 .label {
156 padding-top: 0;
156 padding-top: 0;
157 }
157 }
158 }
158 }
159 }
159 }
160
160
161 .checkbox {
161 .checkbox {
162 margin: 0 0 @textmargin 0;
162 margin: 0 0 @textmargin 0;
163
163
164 input[type="checkbox"] {
164 input[type="checkbox"] {
165 width: auto;
165 width: auto;
166 }
166 }
167
167
168 label {
168 label {
169 padding: 0;
169 padding: 0;
170 min-height: 0;
170 min-height: 0;
171 }
171 }
172 }
172 }
173
173
174 .activation_msg {
174 .activation_msg {
175 padding: @padding 0 0;
175 padding: @padding 0 0;
176 color: @grey4;
176 color: @grey4;
177 }
177 }
178
178
179 .links {
179 .links {
180 float: right;
180 float: right;
181 margin: 0;
181 margin: 0;
182 padding: 0;
182 padding: 0;
183 line-height: 1;
183 line-height: 1;
184
184
185 p {
185 p {
186 float: right;
186 float: right;
187 margin: 0;
187 margin: 0;
188 line-height: 1.5em;
188 line-height: 1.5em;
189 }
189 }
190 }
190 }
191
191
192 p.help-block {
192 p.help-block {
193 margin-left: 0;
193 margin-left: 0;
194 }
194 }
195 }
195 }
196
196
197 .user-menu.submenu {
197 .user-menu.submenu {
198 right: 0;
198 right: 0;
199 left: auto;
199 left: auto;
200 }
200 }
201 #quick_login {
201 #quick_login {
202 left: auto;
202 left: auto;
203 right: 0;
203 right: 0;
204 padding: @menupadding;
204 padding: @menupadding;
205 z-index: 999;
205 z-index: 999;
206 overflow: hidden;
206 overflow: hidden;
207 background-color: @grey6;
207 background-color: @grey6;
208 color: @grey2;
208 color: @grey2;
209
209
210 h4 {
210 h4 {
211 margin-bottom: 12px;
211 margin-bottom: 12px;
212 }
212 }
213
213
214 .form {
214 .form {
215 width: auto;
215 width: auto;
216 }
216 }
217
217
218 label, .field {
218 label, .field {
219 margin-bottom: 0;
219 margin-bottom: 0;
220 }
220 }
221
221
222 .label {
222 .label {
223 padding-top: 0;
223 padding-top: 0;
224 }
224 }
225
225
226 input {
226 input {
227 min-width: 215px;
227 min-width: 215px;
228 margin: 8px 0 @padding;
228 margin: 8px 0 @padding;
229 }
229 }
230
230
231 input[type="submit"] {
231 input[type="submit"] {
232 &:extend(.btn-primary);
232 &:extend(.btn-primary);
233 width:100%;
233 width:100%;
234 min-width: 0;
234 min-width: 0;
235 }
235 }
236
236
237 .forgot_password,
237 .forgot_password,
238 .buttons .register {
238 .buttons .register {
239 a {
239 a {
240 color: @rcblue;
240 color: @rcblue;
241
241
242 &:hover {
242 &:hover {
243 color: @rcdarkblue;
243 color: @rcdarkblue;
244 }
244 }
245 }
245 }
246 }
246 }
247
247
248 .buttons {
248 .buttons {
249 margin: 0;
249 margin: 0;
250 }
250 }
251
251
252 .buttons a {
252 .buttons a {
253 padding: 8px 0;
253 padding: 8px 0;
254 line-height: 1.4em;
254 line-height: 1.4em;
255 color: @grey4;
255 color: @grey4;
256
256
257 &:hover {
257 &:hover {
258 color: @grey2;
258 color: @grey2;
259 }
259 }
260 }
260 }
261
261
262 #sign_in {
262 #sign_in {
263 margin-bottom: 0
263 margin-bottom: 0
264 }
264 }
265
265
266 .big_gravatar {
266 .big_gravatar {
267 float: left;
267 float: left;
268 display: block;
268 display: block;
269 margin-top: .5em;
269 margin-top: .5em;
270 }
270 }
271
271
272 .full_name,
272 .full_name,
273 .email {
273 .email {
274 margin: 0 0 0 65px;
274 margin: 0 0 0 65px;
275 }
275 }
276
276
277 .email {
277 .email {
278 font-family: @text-light;
278 font-family: @text-light;
279 }
279 }
280
280
281 ol.links {
281 ol.links {
282 clear:both;
282 clear:both;
283 margin: 0;
283 margin: 0;
284 padding: @padding 0 0 0;
284 padding: @padding 0 0 0;
285
285
286 li {
286 li {
287 border-top: @border-thickness solid @grey5;
287 border-top: @border-thickness solid @grey5;
288
288
289 input {
289 input {
290 margin: @padding 0 0 0;
290 margin: @padding 0 0 0;
291 }
291 }
292 }
292 }
293 }
293 }
294 }
294 }
295 .submenu #quick_login li:hover {
295 .submenu #quick_login li:hover {
296 background-color: transparent;
296 background-color: transparent;
297 }
297 }
298
298
299 #quick_login_link:hover + #quick_login {
299 #quick_login_link:hover + #quick_login {
300 display: block;
300 display: block;
301 }
301 }
@@ -1,87 +1,88 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="base/root.mako"/>
2 <%inherit file="base/root.mako"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Sign In')}
5 ${_('Sign In')}
6 %if c.rhodecode_name:
6 %if c.rhodecode_name:
7 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${h.branding(c.rhodecode_name)}
8 %endif
8 %endif
9 </%def>
9 </%def>
10
10
11 <style>body{background-color:#eeeeee;}</style>
11 <style>body{background-color:#eeeeee;}</style>
12 <div class="loginbox">
12 <div class="loginbox">
13 <div class="header">
13 <div class="header">
14 <div id="header-inner" class="title">
14 <div id="header-inner" class="title">
15 <div id="logo">
15 <div id="logo">
16 <div class="logo-wrapper">
16 <div class="logo-wrapper">
17 <a href="${h.url('home')}"><img src="${h.asset('images/rhodecode-logo-white-216x60.png')}" alt="RhodeCode"/></a>
17 <a href="${h.url('home')}"><img src="${h.asset('images/rhodecode-logo-white-216x60.png')}" alt="RhodeCode"/></a>
18 </div>
18 </div>
19 %if c.rhodecode_name:
19 %if c.rhodecode_name:
20 <div class="branding"> ${h.branding(c.rhodecode_name)}</div>
20 <div class="branding"> ${h.branding(c.rhodecode_name)}</div>
21 %endif
21 %endif
22 </div>
22 </div>
23 </div>
23 </div>
24 </div>
24 </div>
25
25
26 <div class="loginwrapper">
26 <div class="loginwrapper">
27 <rhodecode-toast id="notifications"></rhodecode-toast>
27 <div class="left-column">
28 <div class="left-column">
28 <img class="sign-in-image" src="${h.asset('images/sign-in.png')}" alt="RhodeCode"/>
29 <img class="sign-in-image" src="${h.asset('images/sign-in.png')}" alt="RhodeCode"/>
29 </div>
30 </div>
30 <%block name="above_login_button" />
31 <%block name="above_login_button" />
31 <div id="login" class="right-column">
32 <div id="login" class="right-column">
32 <!-- login -->
33 <!-- login -->
33 <div class="sign-in-title">
34 <div class="sign-in-title">
34 <h1>${_('Sign In')}</h1>
35 <h1>${_('Sign In')}</h1>
35 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
36 %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
36 <h4>${h.link_to(_("Go to the registration page to create a new account."), request.route_path('register'))}</h4>
37 <h4>${h.link_to(_("Go to the registration page to create a new account."), request.route_path('register'))}</h4>
37 %endif
38 %endif
38 </div>
39 </div>
39 <div class="inner form">
40 <div class="inner form">
40 ${h.form(request.route_path('login', _query={'came_from': came_from}), needs_csrf_token=False)}
41 ${h.form(request.route_path('login', _query={'came_from': came_from}), needs_csrf_token=False)}
41
42
42 <label for="username">${_('Username')}:</label>
43 <label for="username">${_('Username')}:</label>
43 ${h.text('username', class_='focus', value=defaults.get('username'))}
44 ${h.text('username', class_='focus', value=defaults.get('username'))}
44 %if 'username' in errors:
45 %if 'username' in errors:
45 <span class="error-message">${errors.get('username')}</span>
46 <span class="error-message">${errors.get('username')}</span>
46 <br />
47 <br />
47 %endif
48 %endif
48
49
49 <label for="password">${_('Password')}:</label>
50 <label for="password">${_('Password')}:</label>
50 ${h.password('password', class_='focus')}
51 ${h.password('password', class_='focus')}
51 %if 'password' in errors:
52 %if 'password' in errors:
52 <span class="error-message">${errors.get('password')}</span>
53 <span class="error-message">${errors.get('password')}</span>
53 <br />
54 <br />
54 %endif
55 %endif
55
56
56 ${h.checkbox('remember', value=True, checked=defaults.get('remember'))}
57 ${h.checkbox('remember', value=True, checked=defaults.get('remember'))}
57 <label class="checkbox" for="remember">${_('Remember me')}</label>
58 <label class="checkbox" for="remember">${_('Remember me')}</label>
58
59
59 %if h.HasPermissionAny('hg.password_reset.enabled')():
60 %if h.HasPermissionAny('hg.password_reset.enabled')():
60 <p class="links">
61 <p class="links">
61 ${h.link_to(_('Forgot your password?'), h.route_path('reset_password'), class_='pwd_reset')}
62 ${h.link_to(_('Forgot your password?'), h.route_path('reset_password'), class_='pwd_reset')}
62 </p>
63 </p>
63 %elif h.HasPermissionAny('hg.password_reset.hidden')():
64 %elif h.HasPermissionAny('hg.password_reset.hidden')():
64 <p class="help-block">
65 <p class="help-block">
65 ${_('Password reset is disabled. Please contact ')}
66 ${_('Password reset is disabled. Please contact ')}
66 % if c.visual.rhodecode_support_url:
67 % if c.visual.rhodecode_support_url:
67 <a href="${c.visual.rhodecode_support_url}" target="_blank">${_('Support')}</a>
68 <a href="${c.visual.rhodecode_support_url}" target="_blank">${_('Support')}</a>
68 ${_('or')}
69 ${_('or')}
69 % endif
70 % endif
70 ${_('an administrator if you need help.')}
71 ${_('an administrator if you need help.')}
71 </p>
72 </p>
72 %endif
73 %endif
73
74
74 ${h.submit('sign_in', _('Sign In'), class_="btn sign-in")}
75 ${h.submit('sign_in', _('Sign In'), class_="btn sign-in")}
75
76
76 ${h.end_form()}
77 ${h.end_form()}
77 <script type="text/javascript">
78 <script type="text/javascript">
78 $(document).ready(function(){
79 $(document).ready(function(){
79 $('#username').focus();
80 $('#username').focus();
80 })
81 })
81 </script>
82 </script>
82 </div>
83 </div>
83 <!-- end login -->
84 <!-- end login -->
84 <%block name="below_login_button" />
85 <%block name="below_login_button" />
85 </div>
86 </div>
86 </div>
87 </div>
87 </div>
88 </div>
@@ -1,90 +1,91 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <%inherit file="base/root.mako"/>
2 <%inherit file="base/root.mako"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Reset Password')}
5 ${_('Reset Password')}
6 %if c.rhodecode_name:
6 %if c.rhodecode_name:
7 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${h.branding(c.rhodecode_name)}
8 %endif
8 %endif
9 </%def>
9 </%def>
10 <style>body{background-color:#eeeeee;}</style>
10 <style>body{background-color:#eeeeee;}</style>
11
11
12 <div class="loginbox">
12 <div class="loginbox">
13 <div class="header">
13 <div class="header">
14 <div id="header-inner" class="title">
14 <div id="header-inner" class="title">
15 <div id="logo">
15 <div id="logo">
16 <div class="logo-wrapper">
16 <div class="logo-wrapper">
17 <a href="${h.url('home')}"><img src="${h.asset('images/rhodecode-logo-white-216x60.png')}" alt="RhodeCode"/></a>
17 <a href="${h.url('home')}"><img src="${h.asset('images/rhodecode-logo-white-216x60.png')}" alt="RhodeCode"/></a>
18 </div>
18 </div>
19 %if c.rhodecode_name:
19 %if c.rhodecode_name:
20 <div class="branding"> ${h.branding(c.rhodecode_name)}</div>
20 <div class="branding"> ${h.branding(c.rhodecode_name)}</div>
21 %endif
21 %endif
22 </div>
22 </div>
23 </div>
23 </div>
24 </div>
24 </div>
25
25
26 <div class="loginwrapper">
26 <div class="loginwrapper">
27 <rhodecode-toast id="notifications"></rhodecode-toast>
27 <div class="left-column">
28 <div class="left-column">
28 <img class="sign-in-image" src="${h.asset('images/sign-in.png')}" alt="RhodeCode"/>
29 <img class="sign-in-image" src="${h.asset('images/sign-in.png')}" alt="RhodeCode"/>
29 </div>
30 </div>
30
31
31 %if h.HasPermissionAny('hg.password_reset.disabled')():
32 %if h.HasPermissionAny('hg.password_reset.disabled')():
32 <div class="right-column">
33 <div class="right-column">
33 <p>
34 <p>
34 ${_('Password reset is disabled. Please contact ')}
35 ${_('Password reset is disabled. Please contact ')}
35 % if c.visual.rhodecode_support_url:
36 % if c.visual.rhodecode_support_url:
36 <a href="${c.visual.rhodecode_support_url}" target="_blank">${_('Support')}</a>
37 <a href="${c.visual.rhodecode_support_url}" target="_blank">${_('Support')}</a>
37 ${_('or')}
38 ${_('or')}
38 % endif
39 % endif
39 ${_('an administrator if you need help.')}
40 ${_('an administrator if you need help.')}
40 </p>
41 </p>
41 </div>
42 </div>
42 %else:
43 %else:
43 <div id="register" class="right-column">
44 <div id="register" class="right-column">
44 <!-- login -->
45 <!-- login -->
45 <div class="sign-in-title">
46 <div class="sign-in-title">
46 <h1>${_('Reset your Password')}</h1>
47 <h1>${_('Reset your Password')}</h1>
47 <h4>${h.link_to(_("Go to the login page to sign in."), request.route_path('login'))}</h4>
48 <h4>${h.link_to(_("Go to the login page to sign in."), request.route_path('login'))}</h4>
48 </div>
49 </div>
49 <div class="inner form">
50 <div class="inner form">
50 ${h.form(request.route_path('reset_password'), needs_csrf_token=False)}
51 ${h.form(request.route_path('reset_password'), needs_csrf_token=False)}
51 <label for="email">${_('Email Address')}:</label>
52 <label for="email">${_('Email Address')}:</label>
52 ${h.text('email', defaults.get('email'))}
53 ${h.text('email', defaults.get('email'))}
53 %if 'email' in errors:
54 %if 'email' in errors:
54 <span class="error-message">${errors.get('email')}</span>
55 <span class="error-message">${errors.get('email')}</span>
55 <br />
56 <br />
56 %endif
57 %endif
57
58
58 %if captcha_active:
59 %if captcha_active:
59 <div class="login-captcha">
60 <div class="login-captcha">
60 <label for="email">${_('Captcha')}:</label>
61 <label for="email">${_('Captcha')}:</label>
61 ${h.hidden('recaptcha_field')}
62 ${h.hidden('recaptcha_field')}
62 <div id="recaptcha"></div>
63 <div id="recaptcha"></div>
63 %if 'recaptcha_field' in errors:
64 %if 'recaptcha_field' in errors:
64 <span class="error-message">${errors.get('recaptcha_field')}</span>
65 <span class="error-message">${errors.get('recaptcha_field')}</span>
65 <br />
66 <br />
66 %endif
67 %endif
67 </div>
68 </div>
68 %endif
69 %endif
69
70
70 ${h.submit('send', _('Send password reset email'), class_="btn sign-in")}
71 ${h.submit('send', _('Send password reset email'), class_="btn sign-in")}
71 <div class="activation_msg">${_('Password reset link will be sent to matching email address')}</div>
72 <div class="activation_msg">${_('Password reset link will be sent to matching email address')}</div>
72
73
73 ${h.end_form()}
74 ${h.end_form()}
74 </div>
75 </div>
75 </div>
76 </div>
76 %endif
77 %endif
77 </div>
78 </div>
78 </div>
79 </div>
79
80
80 %if captcha_active:
81 %if captcha_active:
81 <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
82 <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
82 %endif
83 %endif
83 <script type="text/javascript">
84 <script type="text/javascript">
84 $(document).ready(function(){
85 $(document).ready(function(){
85 $('#email').focus();
86 $('#email').focus();
86 %if captcha_active:
87 %if captcha_active:
87 Recaptcha.create("${captcha_public_key}", "recaptcha", {theme: "white"});
88 Recaptcha.create("${captcha_public_key}", "recaptcha", {theme: "white"});
88 %endif
89 %endif
89 });
90 });
90 </script>
91 </script>
@@ -1,122 +1,123 b''
1 =## -*- coding: utf-8 -*-
1 =## -*- coding: utf-8 -*-
2 <%inherit file="base/root.mako"/>
2 <%inherit file="base/root.mako"/>
3
3
4 <%def name="title()">
4 <%def name="title()">
5 ${_('Create an Account')}
5 ${_('Create an Account')}
6 %if c.rhodecode_name:
6 %if c.rhodecode_name:
7 &middot; ${h.branding(c.rhodecode_name)}
7 &middot; ${h.branding(c.rhodecode_name)}
8 %endif
8 %endif
9 </%def>
9 </%def>
10 <style>body{background-color:#eeeeee;}</style>
10 <style>body{background-color:#eeeeee;}</style>
11
11
12 <div class="loginbox">
12 <div class="loginbox">
13 <div class="header">
13 <div class="header">
14 <div id="header-inner" class="title">
14 <div id="header-inner" class="title">
15 <div id="logo">
15 <div id="logo">
16 <div class="logo-wrapper">
16 <div class="logo-wrapper">
17 <a href="${h.url('home')}"><img src="${h.asset('images/rhodecode-logo-white-216x60.png')}" alt="RhodeCode"/></a>
17 <a href="${h.url('home')}"><img src="${h.asset('images/rhodecode-logo-white-216x60.png')}" alt="RhodeCode"/></a>
18 </div>
18 </div>
19 %if c.rhodecode_name:
19 %if c.rhodecode_name:
20 <div class="branding"> ${h.branding(c.rhodecode_name)}</div>
20 <div class="branding"> ${h.branding(c.rhodecode_name)}</div>
21 %endif
21 %endif
22 </div>
22 </div>
23 </div>
23 </div>
24 </div>
24 </div>
25
25
26 <div class="loginwrapper">
26 <div class="loginwrapper">
27 <rhodecode-toast id="notifications"></rhodecode-toast>
27 <div class="left-column">
28 <div class="left-column">
28 <img class="sign-in-image" src="${h.asset('images/sign-in.png')}" alt="RhodeCode"/>
29 <img class="sign-in-image" src="${h.asset('images/sign-in.png')}" alt="RhodeCode"/>
29 </div>
30 </div>
30 <%block name="above_register_button" />
31 <%block name="above_register_button" />
31 <div id="register" class="right-column">
32 <div id="register" class="right-column">
32 <!-- login -->
33 <!-- login -->
33 <div class="sign-in-title">
34 <div class="sign-in-title">
34 <h1>${_('Create an account')}</h1>
35 <h1>${_('Create an account')}</h1>
35 <h4>${h.link_to(_("Go to the login page to sign in with an existing account."), request.route_path('login'))}</h4>
36 <h4>${h.link_to(_("Go to the login page to sign in with an existing account."), request.route_path('login'))}</h4>
36 </div>
37 </div>
37 <div class="inner form">
38 <div class="inner form">
38 ${h.form(request.route_path('register'), needs_csrf_token=False)}
39 ${h.form(request.route_path('register'), needs_csrf_token=False)}
39
40
40 <label for="username">${_('Username')}:</label>
41 <label for="username">${_('Username')}:</label>
41 ${h.text('username', defaults.get('username'))}
42 ${h.text('username', defaults.get('username'))}
42 %if 'username' in errors:
43 %if 'username' in errors:
43 <span class="error-message">${errors.get('username')}</span>
44 <span class="error-message">${errors.get('username')}</span>
44 <br />
45 <br />
45 %endif
46 %endif
46
47
47 <label for="password">${_('Password')}:</label>
48 <label for="password">${_('Password')}:</label>
48 ${h.password('password', defaults.get('password'))}
49 ${h.password('password', defaults.get('password'))}
49 %if 'password' in errors:
50 %if 'password' in errors:
50 <span class="error-message">${errors.get('password')}</span>
51 <span class="error-message">${errors.get('password')}</span>
51 <br />
52 <br />
52 %endif
53 %endif
53
54
54 <label for="password_confirmation">${_('Re-enter password')}:</label>
55 <label for="password_confirmation">${_('Re-enter password')}:</label>
55 ${h.password('password_confirmation', defaults.get('password_confirmation'))}
56 ${h.password('password_confirmation', defaults.get('password_confirmation'))}
56 %if 'password_confirmation' in errors:
57 %if 'password_confirmation' in errors:
57 <span class="error-message">${errors.get('password_confirmation')}</span>
58 <span class="error-message">${errors.get('password_confirmation')}</span>
58 <br />
59 <br />
59 %endif
60 %endif
60
61
61 <label for="firstname">${_('First Name')}:</label>
62 <label for="firstname">${_('First Name')}:</label>
62 ${h.text('firstname', defaults.get('firstname'))}
63 ${h.text('firstname', defaults.get('firstname'))}
63 %if 'firstname' in errors:
64 %if 'firstname' in errors:
64 <span class="error-message">${errors.get('firstname')}</span>
65 <span class="error-message">${errors.get('firstname')}</span>
65 <br />
66 <br />
66 %endif
67 %endif
67
68
68 <label for="lastname">${_('Last Name')}:</label>
69 <label for="lastname">${_('Last Name')}:</label>
69 ${h.text('lastname', defaults.get('lastname'))}
70 ${h.text('lastname', defaults.get('lastname'))}
70 %if 'lastname' in errors:
71 %if 'lastname' in errors:
71 <span class="error-message">${errors.get('lastname')}</span>
72 <span class="error-message">${errors.get('lastname')}</span>
72 <br />
73 <br />
73 %endif
74 %endif
74
75
75 <label for="email">${_('Email')}:</label>
76 <label for="email">${_('Email')}:</label>
76 ${h.text('email', defaults.get('email'))}
77 ${h.text('email', defaults.get('email'))}
77 %if 'email' in errors:
78 %if 'email' in errors:
78 <span class="error-message">${errors.get('email')}</span>
79 <span class="error-message">${errors.get('email')}</span>
79 <br />
80 <br />
80 %endif
81 %endif
81
82
82 %if captcha_active:
83 %if captcha_active:
83 <div>
84 <div>
84 <label for="recaptcha">${_('Captcha')}:</label>
85 <label for="recaptcha">${_('Captcha')}:</label>
85 ${h.hidden('recaptcha_field')}
86 ${h.hidden('recaptcha_field')}
86 <div id="recaptcha"></div>
87 <div id="recaptcha"></div>
87 %if 'recaptcha_field' in errors:
88 %if 'recaptcha_field' in errors:
88 <span class="error-message">${errors.get('recaptcha_field')}</span>
89 <span class="error-message">${errors.get('recaptcha_field')}</span>
89 <br />
90 <br />
90 %endif
91 %endif
91 </div>
92 </div>
92 %endif
93 %endif
93
94
94 %if not auto_active:
95 %if not auto_active:
95 <p class="activation_msg">
96 <p class="activation_msg">
96 ${_('Account activation requires admin approval.')}
97 ${_('Account activation requires admin approval.')}
97 </p>
98 </p>
98 %endif
99 %endif
99 <p class="register_message">
100 <p class="register_message">
100 ${register_message|n}
101 ${register_message|n}
101 </p>
102 </p>
102
103
103 ${h.submit('sign_up',_('Create Account'),class_="btn sign-in")}
104 ${h.submit('sign_up',_('Create Account'),class_="btn sign-in")}
104
105
105 ${h.end_form()}
106 ${h.end_form()}
106 </div>
107 </div>
107 <%block name="below_register_button" />
108 <%block name="below_register_button" />
108 </div>
109 </div>
109 </div>
110 </div>
110 </div>
111 </div>
111
112
112 %if captcha_active:
113 %if captcha_active:
113 <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
114 <script type="text/javascript" src="https://www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
114 %endif
115 %endif
115 <script type="text/javascript">
116 <script type="text/javascript">
116 $(document).ready(function(){
117 $(document).ready(function(){
117 $('#username').focus();
118 $('#username').focus();
118 %if captcha_active:
119 %if captcha_active:
119 Recaptcha.create("${captcha_public_key}", "recaptcha", {theme: "white"});
120 Recaptcha.create("${captcha_public_key}", "recaptcha", {theme: "white"});
120 %endif
121 %endif
121 });
122 });
122 </script>
123 </script>
General Comments 0
You need to be logged in to leave comments. Login now