Files @ 2aa7f454204e
Branch filter:

Location: kallithea/rhodecode/templates/base/root.html

Marcin Kuzminski
fixes #298, ldap email addresses created by rhodecode automatically during first login didn't get converted to lower case, which lead to lookup failures and than wrong checks for uniqueness. Fixed that by putting a setter on db model column that will enforce converting to lowercase.
## -*- coding: utf-8 -*-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>${self.title()}</title>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <meta name="robots" content="index, nofollow"/>
        <link rel="icon" href="${h.url('/images/icons/database_gear.png')}" type="image/png" />

        ## CSS ###
        <%def name="css()">
            <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css')}" media="screen"/>
            <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css')}"/>
            <link rel="stylesheet" type="text/css" href="${h.url('/css/diff.css')}"/>
            ## EXTRA FOR CSS
            ${self.css_extra()}
        </%def>
        <%def name="css_extra()">
        </%def>
                    
        ${self.css()}
        
        %if c.ga_code:
        <!-- Analytics -->
	     <script type="text/javascript">
	      var _gaq = _gaq || [];
	      _gaq.push(['_setAccount', '${c.ga_code}']);
	      _gaq.push(['_trackPageview']);
	    
	      (function() {
	        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
	      })();
	     </script>
	    %endif
        
        ## JAVASCRIPT ##
        <%def name="js()">
            <script type="text/javascript" src="${h.url('/js/yui.2.9.js')}"></script>
            <!--[if IE]>
               <script language="javascript" type="text/javascript" src="${h.url('/js/excanvas.min.js')}"></script>
            <![endif]-->
            <script type="text/javascript" src="${h.url('/js/yui.flot.js')}"></script>
            <script type="text/javascript" src="${h.url('/js/rhodecode.js')}"></script>
           ## EXTRA FOR JS
           ${self.js_extra()}
        
            <script type="text/javascript">
            var follow_base_url  = "${h.url('toggle_following')}";
            var stop_follow_text = "${_('Stop following this repository')}";
            var start_follow_text = "${_('Start following this repository')}"; 
            
            
            var onSuccessFollow = function(target){
                var f = YUD.get(target.id);
                var f_cnt = YUD.get('current_followers_count');
                
                if(f.getAttribute('class')=='follow'){
                    f.setAttribute('class','following');
                    f.setAttribute('title',stop_follow_text);
                    
                    if(f_cnt){
                        var cnt = Number(f_cnt.innerHTML)+1;
                        f_cnt.innerHTML = cnt;
                    }
                }
                else{
                    f.setAttribute('class','follow');
                    f.setAttribute('title',start_follow_text);
                    if(f_cnt){
                        var cnt = Number(f_cnt.innerHTML)+1;
                        f_cnt.innerHTML = cnt;
                    }      
                }
            }
            
            var toggleFollowingUser = function(target,fallows_user_id,token,user_id){
                args = 'follows_user_id='+fallows_user_id;
                args+= '&amp;auth_token='+token;
                if(user_id != undefined){
                    args+="&amp;user_id="+user_id;
                }
                YUC.asyncRequest('POST',follow_base_url,{
                    success:function(o){
                    	onSuccessFollow(target);
                    }
                },args);
                return false;
            }
            
            var toggleFollowingRepo = function(target,fallows_repo_id,token,user_id){
            
                args = 'follows_repo_id='+fallows_repo_id;
                args+= '&amp;auth_token='+token;
                if(user_id != undefined){
                    args+="&amp;user_id="+user_id;
                }    
                YUC.asyncRequest('POST',follow_base_url,{
                    success:function(o){
                    	onSuccessFollow(target);
                    }
                },args); 
                return false;
            }
           YUE.onDOMReady(function(){
             tooltip_activate();
             show_more_event();               
             
             YUE.on('quick_login_link','click',function(e){
                 // make sure we don't redirect 
                 YUE.preventDefault(e);
                 
                 if(YUD.hasClass('quick_login_link','enabled')){
                     YUD.setStyle('quick_login','display','none');
                     YUD.removeClass('quick_login_link','enabled');
                 }
                 else{
                     YUD.setStyle('quick_login','display','');
                     YUD.addClass('quick_login_link','enabled');
                     YUD.get('username').focus();
                 }
             });
             
            YUE.on(YUQ('.quick_repo_menu'),'click',function(e){
            	var menu = e.currentTarget.firstElementChild;
            	if(YUD.hasClass(menu,'hidden')){
            		YUD.addClass(e.currentTarget,'active');
            		YUD.removeClass(menu,'hidden');
            	}else{
            		YUD.removeClass(e.currentTarget,'active');
            		YUD.addClass(menu,'hidden');
            	}
            })
            
            YUE.on(window,'scroll',function(){
                if(YUD.getDocumentScrollTop() > 45){
                      YUD.addClass('header-inner','hover');
                }
                else{
                    YUD.removeClass('header-inner','hover');
                }
            }) 
           })   
            </script>
        </%def>
        <%def name="js_extra()"></%def>
        ${self.js()}
    </head>
    <body id="body">
        ${next.body()}
    </body>
</html>