##// END OF EJS Templates
security: use no-referrer for outside link to stop leaking potential parameters such...
ergo -
r2039:5a2a7c7a default
parent child Browse files
Show More
@@ -1,176 +1,183 b''
1 ## -*- coding: utf-8 -*-
1 ## -*- coding: utf-8 -*-
2 <!DOCTYPE html>
2 <!DOCTYPE html>
3
3
4 <%
4 <%
5 c.template_context['repo_name'] = getattr(c, 'repo_name', '')
5 c.template_context['repo_name'] = getattr(c, 'repo_name', '')
6
6
7 if hasattr(c, 'rhodecode_db_repo'):
7 if hasattr(c, 'rhodecode_db_repo'):
8 c.template_context['repo_type'] = c.rhodecode_db_repo.repo_type
8 c.template_context['repo_type'] = c.rhodecode_db_repo.repo_type
9 c.template_context['repo_landing_commit'] = c.rhodecode_db_repo.landing_rev[1]
9 c.template_context['repo_landing_commit'] = c.rhodecode_db_repo.landing_rev[1]
10
10
11 if getattr(c, 'rhodecode_user', None) and c.rhodecode_user.user_id:
11 if getattr(c, 'rhodecode_user', None) and c.rhodecode_user.user_id:
12 c.template_context['rhodecode_user']['username'] = c.rhodecode_user.username
12 c.template_context['rhodecode_user']['username'] = c.rhodecode_user.username
13 c.template_context['rhodecode_user']['email'] = c.rhodecode_user.email
13 c.template_context['rhodecode_user']['email'] = c.rhodecode_user.email
14 c.template_context['rhodecode_user']['notification_status'] = c.rhodecode_user.get_instance().user_data.get('notification_status', True)
14 c.template_context['rhodecode_user']['notification_status'] = c.rhodecode_user.get_instance().user_data.get('notification_status', True)
15 c.template_context['rhodecode_user']['first_name'] = c.rhodecode_user.first_name
15 c.template_context['rhodecode_user']['first_name'] = c.rhodecode_user.first_name
16 c.template_context['rhodecode_user']['last_name'] = c.rhodecode_user.last_name
16 c.template_context['rhodecode_user']['last_name'] = c.rhodecode_user.last_name
17
17
18 c.template_context['visual']['default_renderer'] = h.get_visual_attr(c, 'default_renderer')
18 c.template_context['visual']['default_renderer'] = h.get_visual_attr(c, 'default_renderer')
19 c.template_context['default_user'] = {
19 c.template_context['default_user'] = {
20 'username': h.DEFAULT_USER,
20 'username': h.DEFAULT_USER,
21 'user_id': 1
21 'user_id': 1
22 }
22 }
23
23
24 %>
24 %>
25 <html xmlns="http://www.w3.org/1999/xhtml">
25 <html xmlns="http://www.w3.org/1999/xhtml">
26 <head>
26 <head>
27 <script src="${h.asset('js/vendors/webcomponentsjs/webcomponents-lite.min.js', ver=c.rhodecode_version_hash)}"></script>
27 <script src="${h.asset('js/vendors/webcomponentsjs/webcomponents-lite.min.js', ver=c.rhodecode_version_hash)}"></script>
28 <link rel="import" href="${h.asset('js/rhodecode-components.html', ver=c.rhodecode_version_hash)}">
28 <link rel="import" href="${h.asset('js/rhodecode-components.html', ver=c.rhodecode_version_hash)}">
29 <title>${self.title()}</title>
29 <title>${self.title()}</title>
30 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
30 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
31
32 % if 'safari' in request.user_agent.lower():
33 <meta name="referrer" content="origin">
34 % else:
35 <meta name="referrer" content="origin-when-cross-origin">
36 % endif
37
31 <%def name="robots()">
38 <%def name="robots()">
32 <meta name="robots" content="index, nofollow"/>
39 <meta name="robots" content="index, nofollow"/>
33 </%def>
40 </%def>
34 ${self.robots()}
41 ${self.robots()}
35 <link rel="icon" href="${h.asset('images/favicon.ico', ver=c.rhodecode_version_hash)}" sizes="16x16 32x32" type="image/png" />
42 <link rel="icon" href="${h.asset('images/favicon.ico', ver=c.rhodecode_version_hash)}" sizes="16x16 32x32" type="image/png" />
36
43
37 ## CSS definitions
44 ## CSS definitions
38 <%def name="css()">
45 <%def name="css()">
39 <link rel="stylesheet" type="text/css" href="${h.asset('css/style.css', ver=c.rhodecode_version_hash)}" media="screen"/>
46 <link rel="stylesheet" type="text/css" href="${h.asset('css/style.css', ver=c.rhodecode_version_hash)}" media="screen"/>
40 <!--[if lt IE 9]>
47 <!--[if lt IE 9]>
41 <link rel="stylesheet" type="text/css" href="${h.asset('css/ie.css', ver=c.rhodecode_version_hash)}" media="screen"/>
48 <link rel="stylesheet" type="text/css" href="${h.asset('css/ie.css', ver=c.rhodecode_version_hash)}" media="screen"/>
42 <![endif]-->
49 <![endif]-->
43 ## EXTRA FOR CSS
50 ## EXTRA FOR CSS
44 ${self.css_extra()}
51 ${self.css_extra()}
45 </%def>
52 </%def>
46 ## CSS EXTRA - optionally inject some extra CSS stuff needed for specific websites
53 ## CSS EXTRA - optionally inject some extra CSS stuff needed for specific websites
47 <%def name="css_extra()">
54 <%def name="css_extra()">
48 </%def>
55 </%def>
49
56
50 ${self.css()}
57 ${self.css()}
51
58
52 ## JAVASCRIPT
59 ## JAVASCRIPT
53 <%def name="js()">
60 <%def name="js()">
54 <script>
61 <script>
55 // setup Polymer options
62 // setup Polymer options
56 window.Polymer = {lazyRegister: true, dom: 'shadow'};
63 window.Polymer = {lazyRegister: true, dom: 'shadow'};
57
64
58 // Load webcomponentsjs polyfill if browser does not support native Web Components
65 // Load webcomponentsjs polyfill if browser does not support native Web Components
59 (function() {
66 (function() {
60 'use strict';
67 'use strict';
61 var onload = function() {
68 var onload = function() {
62 // For native Imports, manually fire WebComponentsReady so user code
69 // For native Imports, manually fire WebComponentsReady so user code
63 // can use the same code path for native and polyfill'd imports.
70 // can use the same code path for native and polyfill'd imports.
64 if (!window.HTMLImports) {
71 if (!window.HTMLImports) {
65 document.dispatchEvent(
72 document.dispatchEvent(
66 new CustomEvent('WebComponentsReady', {bubbles: true})
73 new CustomEvent('WebComponentsReady', {bubbles: true})
67 );
74 );
68 }
75 }
69 };
76 };
70 var webComponentsSupported = (
77 var webComponentsSupported = (
71 'registerElement' in document
78 'registerElement' in document
72 && 'import' in document.createElement('link')
79 && 'import' in document.createElement('link')
73 && 'content' in document.createElement('template')
80 && 'content' in document.createElement('template')
74 );
81 );
75 if (!webComponentsSupported) {
82 if (!webComponentsSupported) {
76 } else {
83 } else {
77 onload();
84 onload();
78 }
85 }
79 })();
86 })();
80 </script>
87 </script>
81
88
82 <script src="${h.asset('js/rhodecode/i18n/%s.js' % c.language, ver=c.rhodecode_version_hash)}"></script>
89 <script src="${h.asset('js/rhodecode/i18n/%s.js' % c.language, ver=c.rhodecode_version_hash)}"></script>
83 <script type="text/javascript">
90 <script type="text/javascript">
84 // register templateContext to pass template variables to JS
91 // register templateContext to pass template variables to JS
85 var templateContext = ${h.json.dumps(c.template_context)|n};
92 var templateContext = ${h.json.dumps(c.template_context)|n};
86
93
87 var APPLICATION_URL = "${h.route_path('home').rstrip('/')}";
94 var APPLICATION_URL = "${h.route_path('home').rstrip('/')}";
88 var ASSET_URL = "${h.asset('')}";
95 var ASSET_URL = "${h.asset('')}";
89 var DEFAULT_RENDERER = "${h.get_visual_attr(c, 'default_renderer')}";
96 var DEFAULT_RENDERER = "${h.get_visual_attr(c, 'default_renderer')}";
90 var CSRF_TOKEN = "${getattr(c, 'csrf_token', '')}";
97 var CSRF_TOKEN = "${getattr(c, 'csrf_token', '')}";
91
98
92 var APPENLIGHT = {
99 var APPENLIGHT = {
93 enabled: ${'true' if getattr(c, 'appenlight_enabled', False) else 'false'},
100 enabled: ${'true' if getattr(c, 'appenlight_enabled', False) else 'false'},
94 key: '${getattr(c, "appenlight_api_public_key", "")}',
101 key: '${getattr(c, "appenlight_api_public_key", "")}',
95 % if getattr(c, 'appenlight_server_url', None):
102 % if getattr(c, 'appenlight_server_url', None):
96 serverUrl: '${getattr(c, "appenlight_server_url", "")}',
103 serverUrl: '${getattr(c, "appenlight_server_url", "")}',
97 % endif
104 % endif
98 requestInfo: {
105 requestInfo: {
99 % if getattr(c, 'rhodecode_user', None):
106 % if getattr(c, 'rhodecode_user', None):
100 ip: '${c.rhodecode_user.ip_addr}',
107 ip: '${c.rhodecode_user.ip_addr}',
101 username: '${c.rhodecode_user.username}'
108 username: '${c.rhodecode_user.username}'
102 % endif
109 % endif
103 },
110 },
104 tags: {
111 tags: {
105 rhodecode_version: '${c.rhodecode_version}',
112 rhodecode_version: '${c.rhodecode_version}',
106 rhodecode_edition: '${c.rhodecode_edition}'
113 rhodecode_edition: '${c.rhodecode_edition}'
107 }
114 }
108 };
115 };
109
116
110 </script>
117 </script>
111 <%include file="/base/plugins_base.mako"/>
118 <%include file="/base/plugins_base.mako"/>
112 <!--[if lt IE 9]>
119 <!--[if lt IE 9]>
113 <script language="javascript" type="text/javascript" src="${h.asset('js/excanvas.min.js')}"></script>
120 <script language="javascript" type="text/javascript" src="${h.asset('js/excanvas.min.js')}"></script>
114 <![endif]-->
121 <![endif]-->
115 <script language="javascript" type="text/javascript" src="${h.asset('js/rhodecode/routes.js', ver=c.rhodecode_version_hash)}"></script>
122 <script language="javascript" type="text/javascript" src="${h.asset('js/rhodecode/routes.js', ver=c.rhodecode_version_hash)}"></script>
116 <script> var alertMessagePayloads = ${h.flash.json_alerts(request)|n}; </script>
123 <script> var alertMessagePayloads = ${h.flash.json_alerts(request)|n}; </script>
117 ## avoide escaping the %N
124 ## avoide escaping the %N
118 <script language="javascript" type="text/javascript" src="${h.asset('js/rhodecode-components.js', ver=c.rhodecode_version_hash)}"></script>
125 <script language="javascript" type="text/javascript" src="${h.asset('js/rhodecode-components.js', ver=c.rhodecode_version_hash)}"></script>
119 <script>CodeMirror.modeURL = "${h.asset('') + 'js/mode/%N/%N.js?ver='+c.rhodecode_version_hash}";</script>
126 <script>CodeMirror.modeURL = "${h.asset('') + 'js/mode/%N/%N.js?ver='+c.rhodecode_version_hash}";</script>
120
127
121
128
122 ## JAVASCRIPT EXTRA - optionally inject some extra JS for specificed templates
129 ## JAVASCRIPT EXTRA - optionally inject some extra JS for specificed templates
123 ${self.js_extra()}
130 ${self.js_extra()}
124
131
125 <script type="text/javascript">
132 <script type="text/javascript">
126 Rhodecode = (function() {
133 Rhodecode = (function() {
127 function _Rhodecode() {
134 function _Rhodecode() {
128 this.comments = new CommentsController();
135 this.comments = new CommentsController();
129 }
136 }
130 return new _Rhodecode();
137 return new _Rhodecode();
131 })();
138 })();
132
139
133 $(document).ready(function(){
140 $(document).ready(function(){
134 show_more_event();
141 show_more_event();
135 timeagoActivate();
142 timeagoActivate();
136 clipboardActivate();
143 clipboardActivate();
137 })
144 })
138 </script>
145 </script>
139
146
140 </%def>
147 </%def>
141
148
142 ## JAVASCRIPT EXTRA - optionally inject some extra JS for specificed templates
149 ## JAVASCRIPT EXTRA - optionally inject some extra JS for specificed templates
143 <%def name="js_extra()"></%def>
150 <%def name="js_extra()"></%def>
144 ${self.js()}
151 ${self.js()}
145
152
146 <%def name="head_extra()"></%def>
153 <%def name="head_extra()"></%def>
147 ${self.head_extra()}
154 ${self.head_extra()}
148 ## extra stuff
155 ## extra stuff
149 %if c.pre_code:
156 %if c.pre_code:
150 ${c.pre_code|n}
157 ${c.pre_code|n}
151 %endif
158 %endif
152 </head>
159 </head>
153 <body id="body">
160 <body id="body">
154 <noscript>
161 <noscript>
155 <div class="noscript-error">
162 <div class="noscript-error">
156 ${_('Please enable JavaScript to use RhodeCode Enterprise')}
163 ${_('Please enable JavaScript to use RhodeCode Enterprise')}
157 </div>
164 </div>
158 </noscript>
165 </noscript>
159 ## IE hacks
166 ## IE hacks
160 <!--[if IE 7]>
167 <!--[if IE 7]>
161 <script>$(document.body).addClass('ie7')</script>
168 <script>$(document.body).addClass('ie7')</script>
162 <![endif]-->
169 <![endif]-->
163 <!--[if IE 8]>
170 <!--[if IE 8]>
164 <script>$(document.body).addClass('ie8')</script>
171 <script>$(document.body).addClass('ie8')</script>
165 <![endif]-->
172 <![endif]-->
166 <!--[if IE 9]>
173 <!--[if IE 9]>
167 <script>$(document.body).addClass('ie9')</script>
174 <script>$(document.body).addClass('ie9')</script>
168 <![endif]-->
175 <![endif]-->
169
176
170 ${next.body()}
177 ${next.body()}
171 %if c.post_code:
178 %if c.post_code:
172 ${c.post_code|n}
179 ${c.post_code|n}
173 %endif
180 %endif
174 <rhodecode-app></rhodecode-app>
181 <rhodecode-app></rhodecode-app>
175 </body>
182 </body>
176 </html>
183 </html>
General Comments 0
You need to be logged in to leave comments. Login now