view pylons_app/templates/base/base.html @ 346:51362853ac3b

added settings rest controllers for admin, updated routes with easier submodule handling
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 14 Jul 2010 13:30:31 +0200
parents 9c390ca19deb
children 558eb7c5028f
line wrap: on
line source

## -*- 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" id="mainhtml">
<head>
    <link rel="icon" href="/images/hgicon.png" type="image/png" />
    <meta name="robots" content="index, nofollow"/>
    <title>${next.title()}</title>
    ##For future use yui reset for cross browser compatability.
    ##<link rel="stylesheet" href="/js/yui/reset-fonts-grids/reset-fonts-grids.css" type="text/css" />
    ${self.css()}
    ${self.js()}
</head>

<body class="mainbody">
<div id="container">
    <div class="page-header">
        <h1 class="breadcrumbs">${next.breadcrumbs()}</h1>
        ${self.page_nav()}
    <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()}
    	<script type="text/javascript">${h.tooltip.activate()}</script>    	
    </div>
    <div class="page-footer">
        Hg App ${c.hg_app_version} &copy; 2010 by Marcin Kuzminski
    </div>   

    <div id="powered-by">
        <p>
        <a href="http://mercurial.selenic.com/" title="Mercurial">
            <img src="/images/hglogo.png" width="75" height="90" alt="mercurial"/></a>
        </p>
    </div>

    <div id="corner-top-left"></div>
    <div id="corner-top-right"></div>
    <div id="corner-bottom-left"></div>
    <div id="corner-bottom-right"></div>

</div>
</body>
</html>

### MAKO DEFS ### 

<%def name="page_nav()">
	${self.menu()}
	${self.submenu()}
</%def>

<%def name="menu(current)">
<% 
def is_current(selected):
	if selected == current:
		return "class='current'"
%>
		%if current not in ['home','admin']:
		##regular menu
	       <script type="text/javascript">
	       	YAHOO.util.Event.onDOMReady(function(){
				YAHOO.util.Event.addListener('repo_switcher','click',function(){
					if(YAHOO.util.Dom.hasClass('repo_switcher','selected')){
						YAHOO.util.Dom.setStyle('switch_repos','display','none');
						YAHOO.util.Dom.setStyle('repo_switcher','background','');
						YAHOO.util.Dom.removeClass('repo_switcher','selected');
						YAHOO.util.Dom.get('repo_switcher').removeAttribute('style');
					}
					else{
						YAHOO.util.Dom.setStyle('switch_repos','display','');
						YAHOO.util.Dom.setStyle('repo_switcher','background','#FFFFFF');
						YAHOO.util.Dom.setStyle('repo_switcher','color','#556CB5');
						YAHOO.util.Dom.addClass('repo_switcher','selected');
					}
					});
				YAHOO.util.Event.addListener('repos_list','change',function(e){
		            var wa = YAHOO.util.Dom.get('repos_list').value;
		        	
		            var url = "${h.url('summary_home',repo_name='__REPLACE__')}".replace('__REPLACE__',wa);
			        window.location = url;
				})
	           });
	       	</script>       	
	        <ul class="page-nav">
				<li>
					<a id="repo_switcher" title="${_('Switch repository')}" href="#">&darr;</a>
					<div id="switch_repos" style="display:none;position: absolute;height: 25px">
						<select id="repos_list" size="=10" style="min-width: 150px">
						%for repo in sorted(x.name.lower() for x in c.cached_repo_list.values()):
							<option value="${repo}">${repo}</option>
						%endfor
						</select>
					</div>			
				</li>
	            <li ${is_current('summary')}>${h.link_to(_('summary'),h.url('summary_home',repo_name=c.repo_name))}</li>
	            <li ${is_current('shortlog')}>${h.link_to(_('shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}</li>
				<li ${is_current('changelog')}>${h.link_to(_('changelog'),h.url('changelog_home',repo_name=c.repo_name))}</li>            
	            <li ${is_current('branches')}>${h.link_to(_('branches'),h.url('branches_home',repo_name=c.repo_name))}</li>
	            <li ${is_current('tags')}>${h.link_to(_('tags'),h.url('tags_home',repo_name=c.repo_name))}</li>
	            <li ${is_current('files')}>${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name))}</li>
				%if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
					<li ${is_current('settings')}>${h.link_to(_('settings'),h.url('repo_settings_home',repo_name=c.repo_name))}</li>
				%endif					        
	        </ul>
		%else:
		##Root menu
			<ul class="page-nav">
				<li ${is_current('home')}>${h.link_to(_('Home'),h.url('/'))}</li>
				%if h.HasPermissionAll('hg.admin')('access admin main page'):
					<li ${is_current('admin')}>${h.link_to(_('Admin'),h.url('admin_home'))}</li>
				%endif
				<li class="logout">${h.link_to(u'Logout',h.url('logout_home'))}</li>
			</ul>
		%endif    
		</div>
</%def>
<%def name="submenu(current=None)">
	<% 
	def is_current(selected):
		if selected == current:
			return "class='current_submenu'"
	%>
	%if current != None:
	<div>
    <ul class="submenu">
        <li ${is_current('repos')}>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
        <li ${is_current('users')}>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
        ##commented<li ${is_current('permissions')}>${h.link_to(_('permissions'),h.url('permissions'),class_='permissions')}</li>
		<li ${is_current('settings')}>${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>        
    </ul>
    </div>
    %endif
</%def>


<%def name="css()">
<link rel="stylesheet" href="/css/monoblue_custom.css" type="text/css" />
</%def>

<%def name="js()">
<script type="text/javascript" src="/js/yui/utilities/utilities.js"></script>
<script type="text/javascript" src="/js/yui/container/container-min.js"></script>
<script type="text/javascript" src="/js/yui/datasource/datasource-min.js"></script>
<script type="text/javascript" src="/js/yui/autocomplete/autocomplete-min.js"></script>
</%def>

<!-- DEFINITION OF FORM ERROR FETCHER -->
<%def name="get_form_error(element)">
	%if hasattr(c,'form_errors') and type(c.form_errors) == dict:
        %if c.form_errors.get(element,False):
            <span class="error-message">
                ${c.form_errors.get(element,'')}
            </span>
        %endif
	%endif           
</%def>