diff rhodecode/templates/base/base.html @ 1512:bf263968da47

merge beta in stable branch
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 07 Oct 2011 01:08:50 +0200
parents 0dc8d578ff49 6ebb165c3942
children 82a88013a3fd
line wrap: on
line diff
--- a/rhodecode/templates/base/base.html	Thu May 12 19:50:48 2011 +0200
+++ b/rhodecode/templates/base/base.html	Fri Oct 07 01:08:50 2011 +0200
@@ -1,113 +1,132 @@
 ## -*- 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>${next.title()}</title>
-    <link rel="icon" href="${h.url('/images/icons/database_gear.png')}" type="image/png" />
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-    <meta name="robots" content="index, nofollow"/>
-    <!-- stylesheets -->
-    ${self.css()}
-    <!-- scripts -->
-    ${self.js()}
-</head>
-<body>
-    <!-- header -->
-    <div id="header">
-        <!-- user -->
-        <ul id="logged-user">
-	            <li class="first">
-	                <div class="gravatar">
-	                    <img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,20)}" />
-	                </div>
-		            <div class="account">
-		            %if c.rhodecode_user.username == 'default':
-                        %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')(): 
-                            ${h.link_to('anonymous',h.url('register'),title='%s %s'%(c.rhodecode_user.name,c.rhodecode_user.lastname))}
-                        %else:
-                            ${h.link_to('anonymous',h.url('#'),title='%s %s'%(c.rhodecode_user.name,c.rhodecode_user.lastname))}
-                        %endif		            
-                        
-                    %else:                        		            
-		            	${h.link_to(c.rhodecode_user.username,h.url('admin_settings_my_account'),title='%s %s'%(c.rhodecode_user.name,c.rhodecode_user.lastname))}
-		            %endif
-		            </div>	
-	            </li>
-	            <li>
-	               <a href="${h.url('home')}">${_('Home')}</a>
-	            </li>
-	            %if c.rhodecode_user.username != 'default':
-                <li>
-                   <a href="${h.url('journal')}">${_('Journal')}</a> 
-                   ##(${c.unread_journal})</a>
-                </li>
-                %endif
-                %if c.rhodecode_user.username == 'default':
-                    <li class="last highlight">${h.link_to(u'Login',h.url('login_home'))}</li>
-                %else:
-                    <li class="last highlight">${h.link_to(u'Log Out',h.url('logout_home'))}</li>
-                %endif
+<%inherit file="root.html"/>
+
+<!-- HEADER -->
+<div id="header">
+    <!-- user -->
+    <ul id="logged-user">
+         <li class="first">
+			<div id="quick_login" style="display:none">
+			${h.form(h.url('login_home',came_from=h.url.current()))}
+			<div class="form">
+			    <div class="fields">
+			        <div class="field">
+			            <div class="label">
+			                <label for="username">${_('Username')}:</label>
+			            </div>
+			            <div class="input">
+			                ${h.text('username',class_='focus',size=40)}
+			            </div>
+			            
+			        </div>                     
+			        <div class="field">
+			            <div class="label">
+			                <label for="password">${_('Password')}:</label>
+			            </div>
+			            <div class="input">
+			                ${h.password('password',class_='focus',size=40)}
+			            </div>
+			            
+			        </div>
+			        <div class="buttons">
+			            <div class="password_forgoten">${h.link_to(_('Forgot password ?'),h.url('reset_password'))}</div>
+                        <div class="register">
+                        %if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
+                         ${h.link_to(_("Don't have an account ?"),h.url('register'))}
+                        %endif                        
+                        </div>
+                            ${h.submit('sign_in',_('Sign In'),class_="ui-button")}
+			        </div>
+			    </div>
+			</div>
+			${h.end_form()}
+			</div>         
+         
+             <div class="gravatar">
+                 <img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,20)}" />
+             </div>
+          <div class="account">
+          %if c.rhodecode_user.username == 'default':
+              <a href="${h.url('public_journal')}">${_('Public journal')}</a>   
+          %else:                        		            
+          	${h.link_to(c.rhodecode_user.username,h.url('admin_settings_my_account'),title='%s %s'%(c.rhodecode_user.name,c.rhodecode_user.lastname))}
+          %endif
+          </div>	
+         </li>
+         <li>
+            <a href="${h.url('home')}">${_('Home')}</a>
+         </li>
+         %if c.rhodecode_user.username != 'default':
+            <li>
+               <a href="${h.url('journal')}">${_('Journal')}</a> 
+               ##(${c.unread_journal}
+            </li>
+            %endif
+            %if c.rhodecode_user.username == 'default':
+                <li class="last highlight">${h.link_to(_(u'Login'),h.url('login_home'),id='quick_login_link')}</li>
+            %else:
+                <li class="last highlight">${h.link_to(_(u'Log Out'),h.url('logout_home'))}</li>
+            %endif
+    </ul>
+    <!-- end user -->
+    <div id="header-inner" class="title">
+        <div id="logo">
+            <h1><a href="${h.url('home')}">${c.rhodecode_name}</a></h1>
+        </div>
+        <!-- MENU -->
+        ${self.page_nav()}
+        <!-- END MENU -->
+        ${self.body()}
+    </div>
+</div>     
+<!-- END HEADER -->
+    
+<!-- CONTENT -->
+<div id="content"> 
+    <div class="flash_msg">
+        <% messages = h.flash.pop_messages() %>
+        % if messages:
+        <ul id="flash-messages">
+            % for message in messages:
+            <li class="${message.category}_msg">${message}</li>
+            % endfor
         </ul>
-        <!-- end user -->
-        <div id="header-inner" class="title top-left-rounded-corner top-right-rounded-corner">
-            <!-- logo -->
-            <div id="logo">
-                <h1><a href="${h.url('home')}">${c.rhodecode_name}</a></h1>
-            </div>
-            <!-- end logo -->
-            <!-- menu -->
-            ${self.page_nav()}
-            <!-- quick -->
-        </div>
-    </div>     
-    <!-- end header -->
-    
-	<!-- CONTENT -->
-	<div id="content"> 
-        <div class="flash_msg">
-            <% messages = h.flash.pop_messages() %>
-            % if messages:
-            <ul id="flash-messages">
-                % for message in messages:
-                <li class="${message.category}_msg">${message}</li>
-                % endfor
-            </ul>
-            % endif
-        </div>	    
-	    <div id="main"> 
-	        ${next.main()}
-	    </div>
-	</div> 
-    <!-- END CONTENT -->
+        % endif
+    </div>	    
+    <div id="main"> 
+        ${next.main()}
+    </div>
+</div> 
+<!-- END CONTENT -->
 
-	<!-- footer -->
-	<div id="footer">
-	   <div id="footer-inner" class="title bottom-left-rounded-corner bottom-right-rounded-corner">
-	       <div>
-	           <p class="footer-link">${h.link_to(_('Submit a bug'),h.url('bugtracker'))}</p>
-		       <p class="footer-link-right">
-			       <a href="${h.url('rhodecode_official')}">RhodeCode</a> 
-       	           ${c.rhodecode_version} &copy; 2010-${h.datetime.today().year} by Marcin Kuzminski		       
-		       </p>
-	       </div>
-	   </div>
-        <script type="text/javascript">
-        function tooltip_activate(){
-        ${h.tooltip.activate()}
-        }
-        tooltip_activate();
-        </script>
-	</div>
-	<!-- end footer -->
-</body>
+<!-- FOOTER -->
+<div id="footer">
+   <div id="footer-inner" class="title">
+       <div>
+           <p class="footer-link">
+                <a href="${h.url('bugtracker')}">${_('Submit a bug')}</a>
+           </p>
+	       <p class="footer-link-right">
+	           <a href="${h.url('rhodecode_official')}">RhodeCode</a> 
+	           ${c.rhodecode_version} &copy; 2010-${h.datetime.today().year} by Marcin Kuzminski
+	       </p>
+       </div>
+   </div>
+</div>
+<!-- END FOOTER -->
 
-</html>
+### MAKO DEFS ###
+<%def name="page_nav()">
+    ${self.menu()}
+</%def>
 
-### MAKO DEFS ### 
-<%def name="page_nav()">
-	${self.menu()}
+<%def name="breadcrumbs()">
+    <div class="breadcrumbs">
+    ${self.breadcrumbs_links()}
+    </div>
 </%def>
 
+
 <%def name="menu(current=None)">
 		<% 
 		def is_current(selected):
@@ -121,26 +140,75 @@
 				<li>
 					<a id="repo_switcher" title="${_('Switch repository')}" href="#">
                     <span class="icon">
-                        <img src="${h.url("/images/icons/database.png")}" alt="${_('Products')}" />
+                        <img src="${h.url('/images/icons/database.png')}" alt="${_('Products')}" />
                     </span>
                     <span>&darr;</span>					
 					</a>
-					<ul class="repo_switcher">
-                        %for repo in c.cached_repo_list:
-                        
-                          %if repo['repo'].dbrepo.private:
-                             <li><img src="${h.url("/images/icons/lock.png")}" alt="${_('Private repository')}" class="repo_switcher_type"/>${h.link_to(repo['repo'].name,h.url('summary_home',repo_name=repo['repo'].name),class_="%s" % repo['repo'].dbrepo.repo_type)}</li>
-                          %else:
-                             <li><img src="${h.url("/images/icons/lock_open.png")}" alt="${_('Public repository')}" class="repo_switcher_type" />${h.link_to(repo['repo'].name,h.url('summary_home',repo_name=repo['repo'].name),class_="%s" % repo['repo'].dbrepo.repo_type)}</li>
-                          %endif  
-                        %endfor					
-					</ul>			
+					<ul id="repo_switcher_list" class="repo_switcher">
+                        <li>
+                            <a href="#">${_('loading...')}</a>
+                        </li>
+					</ul>
+					<script type="text/javascript">
+					   YUE.on('repo_switcher','mouseover',function(){
+						      function qfilter(){
+						         var S = YAHOO.util.Selector;
+						         
+						         var q_filter = YUD.get('q_filter_rs');
+						         var F = YAHOO.namespace('q_filter_rs'); 
+						         
+						         YUE.on(q_filter,'click',function(){
+						            q_filter.value = '';
+						         });
+						    
+						         F.filterTimeout = null;
+						         
+						         F.updateFilter  = function() { 
+						            // Reset timeout 
+						            F.filterTimeout = null;
+						            
+						            var obsolete = [];
+						            var nodes = S.query('ul#repo_switcher_list li a.repo_name');
+						            var req = YUD.get('q_filter_rs').value;
+						            for (n in nodes){
+						                YUD.setStyle(nodes[n].parentNode,'display','')
+						            }
+						            if (req){
+						                for (n in nodes){
+						                    if (nodes[n].innerHTML.toLowerCase().indexOf(req) == -1) {
+						                        obsolete.push(nodes[n]); 
+						                    }
+						                }
+						                if(obsolete){
+						                    for (n in obsolete){
+						                        YUD.setStyle(obsolete[n].parentNode,'display','none');
+						                    }
+						                }
+						            }
+						         }
+						         
+						         YUE.on(q_filter,'keyup',function(e){
+						             clearTimeout(F.filterTimeout); 
+						             F.filterTimeout = setTimeout(F.updateFilter,600); 
+						         });
+						}
+						   var loaded = YUD.hasClass('repo_switcher','loaded');
+						   if(!loaded){
+							   YUD.addClass('repo_switcher','loaded');
+							   ypjax("${h.url('repo_switcher')}",'repo_switcher_list',
+								   function(o){qfilter();},
+								   function(o){YUD.removeClass('repo_switcher','loaded');}
+								   ,null);
+						   }
+						   return false;
+					   });
+					</script>	
 				</li>
 				
 	            <li ${is_current('summary')}>
 	               <a title="${_('Summary')}" href="${h.url('summary_home',repo_name=c.repo_name)}">
 	               <span class="icon">
-	                   <img src="${h.url("/images/icons/clipboard_16.png")}" alt="${_('Summary')}" />
+	                   <img src="${h.url('/images/icons/clipboard_16.png')}" alt="${_('Summary')}" />
 	               </span>
 	               <span>${_('Summary')}</span>                 
 	               </a>	            
@@ -148,7 +216,7 @@
                 ##<li ${is_current('shortlog')}>
                 ##   <a title="${_('Shortlog')}" href="${h.url('shortlog_home',repo_name=c.repo_name)}">
                 ##   <span class="icon">
-                ##       <img src="${h.url("/images/icons/application_view_list.png")}" alt="${_('Shortlog')}" />
+                ##       <img src="${h.url('/images/icons/application_view_list.png')}" alt="${_('Shortlog')}" />
                 ##   </span>
                 ##   <span>${_('Shortlog')}</span>                 
                 ##   </a>             
@@ -156,7 +224,7 @@
                 <li ${is_current('changelog')}>
                    <a title="${_('Changelog')}" href="${h.url('changelog_home',repo_name=c.repo_name)}">
                    <span class="icon">
-                       <img src="${h.url("/images/icons/time.png")}" alt="${_('Changelog')}" />
+                       <img src="${h.url('/images/icons/time.png')}" alt="${_('Changelog')}" />
                    </span>
                    <span>${_('Changelog')}</span>                 
                    </a>             
@@ -165,16 +233,16 @@
                 <li ${is_current('switch_to')}>
                    <a title="${_('Switch to')}" href="#">
                    <span class="icon">
-                       <img src="${h.url("/images/icons/arrow_switch.png")}" alt="${_('Switch to')}" />
+                       <img src="${h.url('/images/icons/arrow_switch.png')}" alt="${_('Switch to')}" />
                    </span>
                    <span>${_('Switch to')}</span>                 
                    </a>    
                     <ul>
                         <li>
-                            ${h.link_to('%s (%s)' % (_('branches'),len(c.repository_branches.values()),),h.url('branches_home',repo_name=c.repo_name),class_='branches childs')}
+                            ${h.link_to('%s (%s)' % (_('branches'),len(c.rhodecode_repo.branches.values()),),h.url('branches_home',repo_name=c.repo_name),class_='branches childs')}
                             <ul>
-                            %if c.repository_branches.values():
-						        %for cnt,branch in enumerate(c.repository_branches.items()):
+                            %if c.rhodecode_repo.branches.values():
+						        %for cnt,branch in enumerate(c.rhodecode_repo.branches.items()):
 						            <li>${h.link_to('%s - %s' % (branch[0],h.short_id(branch[1])),h.url('files_home',repo_name=c.repo_name,revision=branch[1]))}</li>
 						        %endfor
 						    %else:
@@ -183,10 +251,10 @@
                             </ul>                        
                         </li>
                         <li>
-                            ${h.link_to('%s (%s)' % (_('tags'),len(c.repository_tags.values()),),h.url('tags_home',repo_name=c.repo_name),class_='tags childs')}
+                            ${h.link_to('%s (%s)' % (_('tags'),len(c.rhodecode_repo.tags.values()),),h.url('tags_home',repo_name=c.repo_name),class_='tags childs')}
                             <ul>
-                            %if c.repository_tags.values():
-                                %for cnt,tag in enumerate(c.repository_tags.items()):
+                            %if c.rhodecode_repo.tags.values():
+                                %for cnt,tag in enumerate(c.rhodecode_repo.tags.items()):
                                  <li>${h.link_to('%s - %s' % (tag[0],h.short_id(tag[1])),h.url('files_home',repo_name=c.repo_name,revision=tag[1]))}</li>
                                 %endfor
                             %else:
@@ -199,7 +267,7 @@
                 <li ${is_current('files')}>
                    <a title="${_('Files')}" href="${h.url('files_home',repo_name=c.repo_name)}">
                    <span class="icon">
-                       <img src="${h.url("/images/icons/file.png")}" alt="${_('Files')}" />
+                       <img src="${h.url('/images/icons/file.png')}" alt="${_('Files')}" />
                    </span>
                    <span>${_('Files')}</span>                 
                    </a>             
@@ -208,7 +276,7 @@
                 <li ${is_current('options')}>
                    <a title="${_('Options')}" href="#">
                    <span class="icon">
-                       <img src="${h.url("/images/icons/table_gear.png")}" alt="${_('Admin')}" />
+                       <img src="${h.url('/images/icons/table_gear.png')}" alt="${_('Admin')}" />
                    </span>
                    <span>${_('Options')}</span>                 
                    </a>
@@ -223,14 +291,16 @@
                    	<li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li>
                    	<li>${h.link_to(_('search'),h.url('search_repo',search_repo=c.repo_name),class_='search')}</li>
                     
-                    %if h.HasPermissionAll('hg.admin')('access admin main page'):
-                    <li>
+                    % if h.HasPermissionAll('hg.admin')('access admin main page'):
+                     <li>
                        ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}  
                         <%def name="admin_menu()">
                         <ul>
                             <li>${h.link_to(_('journal'),h.url('admin_home'),class_='journal')}</li>
                             <li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
+                            <li>${h.link_to(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li>
                             <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
+                            <li>${h.link_to(_('users groups'),h.url('users_groups'),class_='groups')}</li>
                             <li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li>
                             <li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li>
                             <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>        
@@ -238,31 +308,28 @@
                         </%def>
                         
                         ${admin_menu()}
-                    </li>
-                    %endif
-
+                     </li>
+                    % endif
                    </ul>             
                 </li>
                 
                 <li>
-                    <a title="${_('Followers')}" href="#">
+                    <a title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}">
                     <span class="icon_short">
-                        <img src="${h.url("/images/icons/heart.png")}" alt="${_('Followers')}" />
+                        <img src="${h.url('/images/icons/heart.png')}" alt="${_('Followers')}" />
                     </span>
-                    <span class="short">${c.repository_followers}</span>
+                    <span id="current_followers_count" class="short">${c.repository_followers}</span>
                     </a>
                 </li>
                 <li>
-                    <a title="${_('Forks')}" href="#">
+                    <a title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
                     <span class="icon_short">
-                        <img src="${h.url("/images/icons/arrow_divide.png")}" alt="${_('Forks')}" />
+                        <img src="${h.url('/images/icons/arrow_divide.png')}" alt="${_('Forks')}" />
                     </span>
                     <span class="short">${c.repository_forks}</span>
                     </a>
                 </li>                
                 
-                
-                
 	        </ul>
 		%else:
 		    ##ROOT MENU
@@ -270,25 +337,25 @@
                 <li>
                     <a title="${_('Home')}"  href="${h.url('home')}">
                     <span class="icon">
-                        <img src="${h.url("/images/icons/home_16.png")}" alt="${_('Home')}" />
+                        <img src="${h.url('/images/icons/home_16.png')}" alt="${_('Home')}" />
                     </span>
                     <span>${_('Home')}</span>                 
                     </a>        
                 </li>
-                %if c.rhodecode_user.username != 'default':
-                <li>
+                % if c.rhodecode_user.username != 'default':
+                 <li>
                     <a title="${_('Journal')}"  href="${h.url('journal')}">
                     <span class="icon">
-                        <img src="${h.url("/images/icons/book.png")}" alt="${_('Journal')}" />
+                        <img src="${h.url('/images/icons/book.png')}" alt="${_('Journal')}" />
                     </span>
                     <span>${_('Journal')}</span>                 
                     </a>        
-                </li>
-                %endif          
+                 </li>
+                % endif
                 <li>
                     <a title="${_('Search')}"  href="${h.url('search')}">
                     <span class="icon">
-                        <img src="${h.url("/images/icons/search_16.png")}" alt="${_('Search')}" />
+                        <img src="${h.url('/images/icons/search_16.png')}" alt="${_('Search')}" />
                     </span>
                     <span>${_('Search')}</span>                 
                     </a>        
@@ -298,7 +365,7 @@
                 <li ${is_current('admin')}>
                    <a title="${_('Admin')}" href="${h.url('admin_home')}">
                    <span class="icon">
-                       <img src="${h.url("/images/icons/cog_edit.png")}" alt="${_('Admin')}" />
+                       <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
                    </span>
                    <span>${_('Admin')}</span>                 
                    </a>
@@ -308,70 +375,3 @@
 			</ul>
 		%endif    
 </%def>
-
-
-<%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')}"  />
-</%def>
-
-<%def name="js()">
-##<script type="text/javascript" src="${h.url('/js/yui/utilities/utilities.js')}"></script>
-##<script type="text/javascript" src="${h.url('/js/yui/container/container.js')}"></script>
-##<script type="text/javascript" src="${h.url('/js/yui/datasource/datasource.js')}"></script>
-##<script type="text/javascript" src="${h.url('/js/yui/autocomplete/autocomplete.js')}"></script>
-##<script type="text/javascript" src="${h.url('/js/yui/selector/selector-min.js')}"></script>
-
-<script type="text/javascript" src="${h.url('/js/yui2a.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">
-var base_url  = "${h.url('toggle_following')}";
-var YUC = YAHOO.util.Connect;
-var YUD = YAHOO.util.Dom;
-var YUE = YAHOO.util.Event;
-
-function onSuccess(target){
-	
-	var f = YUD.get(target.id);
-    if(f.getAttribute('class')=='follow'){
-        f.setAttribute('class','following');
-        f.setAttribute('title',"${_('Stop following this repository')}");
-    }
-    else{
-        f.setAttribute('class','follow');
-        f.setAttribute('title',"${_('Start following this repository')}");
-    }
-}
-
-function toggleFollowingUser(fallows_user_id,token){
-    args = 'follows_user_id='+fallows_user_id;
-    args+= '&amp;auth_token='+token;
-    YUC.asyncRequest('POST',base_url,{
-        success:function(o){
-        	onSuccess();
-        }
-    },args); return false;
-}
-
-function toggleFollowingRepo(target,fallows_repo_id,token){
-
-    args = 'follows_repo_id='+fallows_repo_id;
-    args+= '&amp;auth_token='+token;
-    YUC.asyncRequest('POST',base_url,{
-        success:function(o){
-        	onSuccess(target);
-        }
-    },args); return false;
-}    
-</script>
-
-</%def>
-
-<%def name="breadcrumbs()">
-    <div class="breadcrumbs">
-    ${self.breadcrumbs_links()}
-    </div>
-</%def>
\ No newline at end of file