view rhodecode/templates/base/root.html @ 2850:867820342329 beta

fix for #569 add version to static files for rhodecode to overcome cache problems
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 19 Sep 2012 20:21:35 +0200
parents ad4bc0f66d6a
children 58bb350bfef8
line wrap: on
line source

## -*- coding: utf-8 -*-
<!DOCTYPE html>
<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', ver=c.rhodecode_version)}" media="screen"/>
            <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css', ver=c.rhodecode_version)}"/>
            ## 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">
            //JS translations map
            var TRANSLATION_MAP = {
                'add another comment':'${_("add another comment")}',
                'Stop following this repository':"${_('Stop following this repository')}",
                'Start following this repository':"${_('Start following this repository')}",
                'Group':"${_('Group')}",
                'members':"${_('members')}",
                'search truncated': "${_('search truncated')}",
                'no matching files': "${_('no matching files')}"

            };
            var _TM = TRANSLATION_MAP;
            </script>
            <script type="text/javascript" src="${h.url('/js/yui.2.9.js', ver=c.rhodecode_version)}"></script>
            <!--[if lt IE 9]>
               <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', ver=c.rhodecode_version)}"></script>
            <script type="text/javascript" src="${h.url('/js/native.history.js', ver=c.rhodecode_version)}"></script>
            <script type="text/javascript" src="${h.url('/js/rhodecode.js', ver=c.rhodecode_version)}"></script>
           ## EXTRA FOR JS
           ${self.js_extra()}

            <script type="text/javascript">
            (function(window,undefined){

                // Prepare
                var History = window.History; // Note: We are using a capital H instead of a lower h
                if ( !History.enabled ) {
                     // History.js is disabled for this browser.
                     // This is because we can optionally choose to support HTML4 browsers or not.
                    return false;
                }
            })(window);
            var follow_base_url  = "${h.url('toggle_following')}";

            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',_TM['Stop following this repository']);

                    if(f_cnt){
                        var cnt = Number(f_cnt.innerHTML)+1;
                        f_cnt.innerHTML = cnt;
                    }
                }
                else{
                    f.setAttribute('class','follow');
                    f.setAttribute('title',_TM['Start following this repository']);
                    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');
                     var usr = YUD.get('username');
                     if(usr){
                    	 usr.focus();
                     }
                 }
             });
           })
            </script>
        </%def>
        <%def name="js_extra()"></%def>
        ${self.js()}
        <%def name="head_extra()"></%def>
        ${self.head_extra()}
    </head>
    <body id="body">
     ## IE hacks
      <!--[if IE 7]>
      <script>YUD.addClass(document.body,'ie7')</script>
      <![endif]-->
      <!--[if IE 8]>
      <script>YUD.addClass(document.body,'ie8')</script>
      <![endif]-->
      <!--[if IE 9]>
      <script>YUD.addClass(document.body,'ie9')</script>
      <![endif]-->

      ${next.body()}
    </body>
</html>