comparison rhodecode/templates/base/root.html @ 1421:c6b811f11c94 beta

Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 09 Jul 2011 20:07:59 +0200
parents 166317d464f3
children 241a5167c4e0
comparison
equal deleted inserted replaced
1420:a2fe0ac8d007 1421:c6b811f11c94
3 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head> 4 <head>
5 <title>${self.title()}</title> 5 <title>${self.title()}</title>
6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 6 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
7 <meta name="robots" content="index, nofollow"/> 7 <meta name="robots" content="index, nofollow"/>
8 <link rel="icon" href="${h.url("/images/icons/database_gear.png")}" type="image/png" /> 8 <link rel="icon" href="${h.url('/images/icons/database_gear.png')}" type="image/png" />
9 9
10 <!-- stylesheets --> 10 ## CSS ###
11 <%def name="css()">
12 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen"/>
13 <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css')}"/>
14 <link rel="stylesheet" type="text/css" href="${h.url('/css/diff.css')}"/>
15 ## EXTRA FOR CSS
16 ${self.css_extra()}
17 </%def>
18 <%def name="css_extra()">
19 </%def>
20
11 ${self.css()} 21 ${self.css()}
12 22
13 %if c.ga_code: 23 %if c.ga_code:
14 <!-- Analytics --> 24 <!-- Analytics -->
15 <script type="text/javascript"> 25 <script type="text/javascript">
23 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 33 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
24 })(); 34 })();
25 </script> 35 </script>
26 %endif 36 %endif
27 37
28 <!-- scripts --> 38 ## JAVASCRIPT ##
39 <%def name="js()">
40 <script type="text/javascript" src="${h.url('/js/yui.2.9.js')}"></script>
41 <!--[if IE]>
42 <script language="javascript" type="text/javascript" src="${h.url('/js/excanvas.min.js')}"></script>
43 <![endif]-->
44 <script type="text/javascript" src="${h.url('/js/yui.flot.js')}"></script>
45 <script type="text/javascript" src="${h.url('/js/rhodecode.js')}"></script>
46 ## EXTRA FOR JS
47 ${self.js_extra()}
48
49 <script type="text/javascript">
50 var base_url = "${h.url('toggle_following')}";
51 function onSuccess(target){
52 var f = YUD.get(target.id);
53 var f_cnt = YUD.get('current_followers_count');
54
55 if(f.getAttribute('class')=='follow'){
56 f.setAttribute('class','following');
57 f.setAttribute('title',"${_('Stop following this repository')}");
58
59 if(f_cnt){
60 var cnt = Number(f_cnt.innerHTML)+1;
61 f_cnt.innerHTML = cnt;
62 }
63 }
64 else{
65 f.setAttribute('class','follow');
66 f.setAttribute('title',"${_('Start following this repository')}");
67 if(f_cnt){
68 var cnt = Number(f_cnt.innerHTML)+1;
69 f_cnt.innerHTML = cnt;
70 }
71 }
72 }
73
74 function toggleFollowingUser(target,fallows_user_id,token,user_id){
75 args = 'follows_user_id='+fallows_user_id;
76 args+= '&amp;auth_token='+token;
77 if(user_id != undefined){
78 args+="&amp;user_id="+user_id;
79 }
80 YUC.asyncRequest('POST',base_url,{
81 success:function(o){
82 onSuccess(target);
83 }
84 },args);
85 return false;
86 }
87
88 function toggleFollowingRepo(target,fallows_repo_id,token,user_id){
89
90 args = 'follows_repo_id='+fallows_repo_id;
91 args+= '&amp;auth_token='+token;
92 if(user_id != undefined){
93 args+="&amp;user_id="+user_id;
94 }
95 YUC.asyncRequest('POST',base_url,{
96 success:function(o){
97 onSuccess(target);
98 }
99 },args);
100 return false;
101 }
102 YUE.onDOMReady(function(){
103
104 YUE.on('quick_login_link','click',function(e){
105
106 if(YUD.hasClass('quick_login_link','enabled')){
107 YUD.setStyle('quick_login','display','none');
108 YUD.removeClass('quick_login_link','enabled');
109 }
110 else{
111 YUD.setStyle('quick_login','display','');
112 YUD.addClass('quick_login_link','enabled');
113 YUD.get('username').focus();
114 }
115 //make sure we don't redirect
116 YUE.preventDefault(e);
117 });
118
119 tooltip_activate()
120 })
121 </script>
122
123 </%def>
124 <%def name="js_extra()">
125 </%def>
29 ${self.js()} 126 ${self.js()}
30
31 </head> 127 </head>
32
33 <body id="body"> 128 <body id="body">
34 ${next.body()} 129 ${next.body()}
35 </body> 130 </body>
36
37 </html> 131 </html>
38
39 <%def name="css()">
40 <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen"/>
41 <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css')}"/>
42 <link rel="stylesheet" type="text/css" href="${h.url('/css/diff.css')}"/>
43 ${self.css_extra()}
44 </%def>
45 <%def name="css_extra()">
46 </%def>
47 <%def name="js()">
48 <script type="text/javascript">
49 if (typeof console == "undefined" || typeof console.log == "undefined")
50 console = { log: function() {} }
51 </script>
52
53 % if False:
54 <script type="text/javascript" src="${h.url('/js/yui/utilities/utilities.js')}"></script>
55 <script type="text/javascript" src="${h.url('/js/yui/container/container.js')}"></script>
56 <script type="text/javascript" src="${h.url('/js/yui/datasource/datasource.js')}"></script>
57 <script type="text/javascript" src="${h.url('/js/yui/autocomplete/autocomplete.js')}"></script>
58 <script type="text/javascript" src="${h.url('/js/yui/selector/selector-min.js')}"></script>
59 % else:
60 <script type="text/javascript" src="${h.url('/js/yui2a.js')}"></script>
61 <!--[if IE]>
62 <script language="javascript" type="text/javascript" src="${h.url('/js/excanvas.min.js')}"></script>
63 <![endif]-->
64 <script type="text/javascript" src="${h.url('/js/yui.flot.js')}"></script>
65 % endif
66 ${self.js_extra()}
67 <script type="text/javascript">
68 var YUC = YAHOO.util.Connect;
69 var YUD = YAHOO.util.Dom;
70 var YUE = YAHOO.util.Event;
71 </script>
72
73 <script type="text/javascript">
74 var base_url = "${h.url('toggle_following')}";
75 function onSuccess(target){
76
77 var f = YUD.get(target.id);
78 var f_cnt = YUD.get('current_followers_count');
79
80 if(f.getAttribute('class')=='follow'){
81 f.setAttribute('class','following');
82 f.setAttribute('title',"${_('Stop following this repository')}");
83
84 if(f_cnt){
85 var cnt = Number(f_cnt.innerHTML)+1;
86 f_cnt.innerHTML = cnt;
87 }
88
89 }
90 else{
91 f.setAttribute('class','follow');
92 f.setAttribute('title',"${_('Start following this repository')}");
93 if(f_cnt){
94 var cnt = Number(f_cnt.innerHTML)+1;
95 f_cnt.innerHTML = cnt;
96 }
97 }
98 }
99
100 function toggleFollowingUser(target,fallows_user_id,token,user_id){
101 args = 'follows_user_id='+fallows_user_id;
102 args+= '&amp;auth_token='+token;
103 if(user_id != undefined){
104 args+="&amp;user_id="+user_id;
105 }
106 YUC.asyncRequest('POST',base_url,{
107 success:function(o){
108 onSuccess(target);
109 }
110 },args); return false;
111 }
112
113 function toggleFollowingRepo(target,fallows_repo_id,token,user_id){
114
115 args = 'follows_repo_id='+fallows_repo_id;
116 args+= '&amp;auth_token='+token;
117 if(user_id != undefined){
118 args+="&amp;user_id="+user_id;
119 }
120 YUC.asyncRequest('POST',base_url,{
121 success:function(o){
122 onSuccess(target);
123 }
124 },args); return false;
125 }
126 </script>
127
128 </%def>
129 <%def name="js_extra()">
130 </%def>