Changeset - 64e1125fc479
[Not reviewed]
default
0 8 0
Marcin Kuzminski - 15 years ago 2010-05-25 19:18:12
marcin@python-works.com
html + css changes, added icons and etc.
8 files changed with 161 insertions and 41 deletions:
0 comments (0 inline, 0 general)
pylons_app/public/css/diff.css
Show inline comments
 
div.diffblock {
 
    overflow: auto;
 
    padding: 0px;
 
    border: 1px solid #ccc;
 
    background: #f8f8f8;
 
    font-size: 100%;
 
    line-height: 100%;
 
    /* new */
 
    line-height: 125%;
 
}
 
div.diffblock .code-header{
 
	border-bottom: 1px solid #CCCCCC;
 
	background: #EEEEEE;
 
	color:blue;
 
	padding:10px 0 10px 0;
 
}
 
div.diffblock .code-header div{
 
	margin-left:25px;
 
	font-weight: bold;
 
}
 
div.diffblock .code-body{
 
	background: #EEEEEE;
 
	background: #FFFFFF;
 
}
 
div.diffblock pre.raw{
 
	background: #FFFFFF;
 
	color:#000000;
 
}
 

	
 
.code-difftable{
 
	border-collapse: collapse;
 
	width: 99%;
 
}
 
.code-difftable td:target *{
 
	background:  repeat scroll 0 0 #FFFFBE !important;
 
	text-decoration: underline;
 
}
 
.code-difftable .context{
 
	background:none repeat scroll 0 0 #DDE7EF;
 
}
 
.code-difftable .add{
 
	background:none repeat scroll 0 0 #DDFFDD;
 
}
 
.code-difftable .add ins{
 
	background:none repeat scroll 0 0 #AAFFAA;
 
	text-decoration:none;
 
}
pylons_app/public/css/monoblue_custom.css
Show inline comments
 
/*** Initial Settings ***/
 
#mainhtml{
 
	margin: 15px 50px;
 
	background: #DBD4C6;
 
	font-family: sans-serif;
 
}
 

	
 
a {
 
	color: #0000cc;
 
	color: #556CB5;
 
	text-decoration: none;
 
}
 
a:HOVER{
 
	text-decoration: underline;
 
}
 

	
 
/*** end of Initial Settings ***/ 
 

	
 
/*** ***/
 
.table_disp {
 
    border-left: 0px solid #666666;
 
    border-bottom: 1px solid #666666;
 
    border-right: 1px solid #666666;
 
    padding: 0px;
 
    margin: 0px;
 
    border-spacing: 0px;    
 
}
 

	
 
.table_disp .header {
 
    border-top: 1px solid #666666;
 
    background-color: #556CB5;
 
    font-weight: bold;
 
    color: white;
 
    vertical-align: middle;
 
    padding: 3px 5px;
 
    text-align: left;
 
    font-size: 0.9em;
 
}
 

	
 
.table_disp .header td {
 
    padding: 4px;
 
    vertical-align: middle;
 
    border-top: 1px solid #AAAAAA;
 
    border-bottom: 2px solid #666666;
 
}
 
.table_disp td {
 
    border-left: 1px solid #AAAAAA;
 
    padding-left: 2px;
 
    padding-right: 0px;
 
}
 

	
 
table tr.parity0:hover,table tr.parity1:hover {
 
    background: #D5E1E6;
 
}
 

	
 
table tr.parity0 {
 
    background: #EAEAE9;
 
}
 

	
 
table tr.parity1 {
 
    background: #FFFFFF;
 
}
 

	
 

	
 
/*** ***/
 

	
 
/** common settings **/
 
.add_icon{
 
    background: url("/images/icons/add.png") no-repeat scroll 3px;
 
    height: 16px;
 
    padding-left: 20px;
 
    padding-top: 0px;
 
    text-align: left;
 

	
 
}
 
.edit_icon{
 
    background: url("/images/icons/folder_edit.png") no-repeat scroll 3px;
 
    height: 16px;
 
    padding-left: 20px;
 
    padding-top: 0px;
 
    text-align: left;
 
}
 

	
 
.delete_icon{
 
    background: url("/images/icons/delete.png") no-repeat scroll 3px;
 
    height: 16px;
 
    padding-left: 20px;
 
    padding-top: 0px;
 
    text-align: left;
 

	
 
}
 

	
 
.action_button{
 
    border:0px;
 
    display: block;
 
}
 
.action_button:hover{
 
    border:0px;
 
    font-style:italic;
 
    cursor: pointer;
 
}
 

	
 
div#main {
 
	padding: 5px;
 
}
 

	
 
div#container {
 
	background: #FFFFFF;
 
	position: relative;
 
	color: #666;
 
}
 

	
 
div.page-header {
 
	padding: 50px 20px 0;
 
	background: #556cb5 top left repeat-x;
 
	position: relative;
 
}
 

	
 
div.page-header h1 {
 
	margin: 10px 0 30px;
 
	font-size: 1.8em;
 
	font-weight: bold;
 
	font-family: sans-serif;
 
	letter-spacing: 1px;
 
	color: #DDD;
 
}
 
@@ -100,67 +184,95 @@ ul.page-nav li {
 

	
 
ul.page-nav li.current {
 
	background: #FFF;
 
	padding-right: 5px;
 
	padding-left: 5px;
 
}
 

	
 
ul.page-nav li a {
 
	height: 24px;
 
	color: #666;
 
	padding-right: 5px;
 
	padding-left: 5px;
 
	display: block;
 
	text-decoration: none;
 
}
 
ul.page-nav li.logout a {
 
	color: red;
 
}
 
ul.page-nav li a:hover {
 
	color: #333;
 
	background: #FFF;
 
}
 

	
 
ul.submenu {
 
	margin: 10px 0 -10px 20px;
 
	margin: 5px 0px -20px 0px;
 
	list-style-type: none;
 
}
 

	
 
ul.submenu li {
 
	margin: 0 10px 0 0;
 
	font-size: 1.2em;
 
	font-size: 0.9em;
 
	font-weight:bold;
 
	display: inline;
 
}
 
ul.submenu .repos {
 
    background: url("/images/icons/folder_edit.png") no-repeat scroll 3px;
 
    height: 16px;
 
    padding-left: 20px;
 
    padding-top: 0px;
 
    text-align: left;
 
   
 
}
 
ul.submenu .users {
 
    background: url("/images/icons/user_edit.png") no-repeat scroll 3px;
 
    height: 16px;
 
    padding-left: 20px;
 
    padding-top: 0px;
 
    text-align: left;
 
}
 
ul.submenu .permissions {
 
    background: url("/images/icons/folder_key.png") no-repeat scroll 3px;
 
    height: 16px;
 
    padding-left: 20px;
 
    padding-top: 0px;
 
    text-align: left;
 
}
 

	
 
ul.submenu .current_submenu {
 
    border-bottom: 2px solid #556CB5;
 
}
 

	
 
h2 {
 
	margin: 20px 0 10px;
 
	height: 30px;
 
	line-height: 30px;
 
	text-indent: 20px;
 
	background: #FFF;
 
	font-size: 1.2em;
 
	border-top: dotted 1px #D5E1E6;
 
	font-weight: bold;
 
	color:#556CB5;
 
}
 

	
 
h2.no-link {
 
	color: #006699;
 
}
 

	
 
h2.no-border {
 
	color: #FFF;
 
	background: #556CB5;
 
	border: 0;
 
}
 

	
 
h2 a {
 
	font-weight: bold;
 
	color: #006699;
 
}
 

	
 
div.page-path {
 
	text-align: right;
 
	padding: 20px 30px 10px 0;
 
	border: solid #d9d8d1;
 
	border-width: 0px 0px 1px;
 
	font-size: 1.2em;
 
}
 
@@ -194,60 +306,48 @@ ul.rss-logo li {
 

	
 
ul.rss-logo li a {
 
	padding: 3px 6px;
 
	line-height: 10px;
 
	border: 1px solid;
 
	border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
 
	color: #ffffff;
 
	background-color: #ff6600;
 
	font-weight: bold;
 
	font-family: sans-serif;
 
	font-size: 10px;
 
	text-align: center;
 
	text-decoration: none;
 
}
 

	
 
div.rss-logo li a:hover {
 
	background-color: #ee5500;
 
}
 

	
 
p.normal {
 
	margin: 20px 0 20px 30px;
 
	font-size: 1.2em;
 
}
 

	
 
table tr.parity0:hover,table tr.parity1:hover {
 
	background: #D5E1E6;
 
}
 

	
 
table tr.parity0 {
 
	background: #EAEAE9;
 
}
 

	
 
table tr.parity1 {
 
	background: #FFFFFF;
 
}
 

	
 
span.logtags span {
 
	background-repeat: no-repeat;
 
	height: 16px;
 
	padding-left: 20px;
 
	padding-top: 0px;
 
	text-align: left;
 
	font-weight: bold;
 
}
 

	
 
span.logtags span.tagtag {
 
	background-image: url("/images/icons/tag_green.png");
 
}
 

	
 
span.logtags span.branchtag {
 
	background-image: url("/images/icons/arrow_branch.png");
 
	color: #628F53;
 
}
 

	
 
span.logtags span.inbranchtag {
 
	background-image: url("/images/icons/arrow_branch.png");
 
}
 

	
 
div.diff pre {
 
	margin: 10px 0 0 0;
 
@@ -315,48 +415,51 @@ div#powered-by a {
 
	text-decoration: none;
 
}
 

	
 
div#powered-by a:hover {
 
	text-decoration: underline;
 
}
 

	
 
dl.overview {
 
	margin: 0 0 0 30px;
 
	font-size: 1.1em;
 
	overflow: hidden;
 
}
 

	
 
dl.overview dt,dl.overview dd {
 
	margin: 5px 0;
 
	float: left;
 
}
 

	
 
dl.overview dt {
 
	clear: left;
 
	font-weight: bold;
 
	width: 150px;
 
}
 

	
 
#clone_url{
 
    border: 0px;
 
}
 
/** end of summary **/ 
 

	
 
/** chagelog **/
 
h3.changelog {
 
	margin: 20px 0 5px 30px;
 
	padding: 0 0 2px;
 
	font-size: 1.4em;
 
	border-bottom: dotted 1px #D5E1E6;
 
}
 

	
 
ul.changelog-entry {
 
	margin: 0 0 10px 30px;
 
	list-style-type: none;
 
	position: relative;
 
}
 

	
 
ul.changelog-entry li span.revdate {
 
	font-size: 1.1em;
 
}
 

	
 
ul.changelog-entry li.age {
 
	position: absolute;
 
	top: -25px;
 
	right: 10px;
 
@@ -630,32 +733,28 @@ table.code-browser tbody td {
 
	padding-top: 0px;
 
	text-align: left;
 
}
 
.archive_logo{
 
	background: url("/images/icons/compress.png") no-repeat scroll 3px;
 
	height: 16px;
 
	padding-left: 20px;
 
	text-align: left;
 
}
 

	
 
.browser-file {
 
	background: url("/images/icons/document_16.png") no-repeat scroll 3px;
 
	height: 16px;
 
	padding-left: 20px;
 
	text-align: left;
 
}
 

	
 
.browser-dir {
 
	background: url("/images/icons/folder_16.png") no-repeat scroll 3px;
 
	height: 16px;
 
	padding-left: 20px;
 
	text-align: left;
 
}
 

	
 
.current_submenu {
 
	border-bottom: 2px solid;
 
}
 

	
 
#repos_list {
 
	border: 1px solid #556CB5;
 
	background: #FFFFFF;
 
}
 
\ No newline at end of file
pylons_app/templates/admin/admin.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%def name="title()">
 
    ${_('Administration')}
 
</%def>
 
<%def name="breadcrumbs()">
 
	${h.link_to(u'Admin',h.url('admin_home'))}
 
	 /  
 
</%def>
 
<%def name="page_nav()">
 
	${self.menu('admin')}
 
	${self.submenu('')}
 
</%def>
 
<%def name="main()">
 
    %if c.admin_user:
 
	    <div>
 
	        <h2>Welcome ${c.admin_username}</h2>
 
	        ${_('Last actions')}
 
			    <div id="user_log">
 
					${c.log_data}
 
				</div>
 
	    </div>
 
    %else:
 
		<h2>${_('Sorry only admin users can acces this area')}</h2>
 
    %endif
 
    
 
</%def>
 
\ No newline at end of file
pylons_app/templates/admin/admin_log.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
%if c.users_log:
 
<table>
 
	<tr>
 
<table class="table_disp">
 
	<tr class="header">
 
		<td>${_('Username')}</td>
 
		<td>${_('Repository')}</td>
 
		<td>${_('Action')}</td>
 
		<td>${_('Date')}</td>
 
	</tr>
 

	
 
	%for cnt,l in enumerate(c.users_log):
 
	<tr class="parity${cnt%2}">
 
		<td>${l.user.username}</td>
 
		<td>${l.repository}</td>
 
		<td>${l.action}</td>
 
		<td>${l.action_date}</td>
 
	</tr>
 
	%endfor
 

	
 
</table>
 
<div>
 
		<script type="text/javascript">
 
		var data_div = 'user_log';
 
		YAHOO.util.Event.onDOMReady(function(){
 
		  var data_div = 'user_log';
 
		  YAHOO.util.Event.onDOMReady(function(){
 
			YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('pager_link'),"click",function(){
 
					YAHOO.util.Dom.setStyle('shortlog_data','opacity','0.3');});});
 
		</script>
 
		<h2>${c.users_log.pager('$link_previous ~2~ $link_next',
 
		onclick="""YAHOO.util.Connect.asyncRequest('GET','$partial_url',{
 
		success:function(o){YAHOO.util.Dom.get(data_div).innerHTML=o.responseText;
 
		YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName('pager_link'),"click",function(){
 
				YAHOO.util.Dom.setStyle(data_div,'opacity','0.3');});		
 
		YAHOO.util.Dom.setStyle(data_div,'opacity','1');}},null); return false;""")}
 
		</h2>
 
</div>
 
%else: 
 
	${_('No actions yet')} 
 
%endif
pylons_app/templates/admin/repos/repos.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%def name="title()">
 
    ${_('Repositories administration')}
 
</%def>
 
<%def name="breadcrumbs()">
 
	${h.link_to(u'Admin',h.url('admin_home'))}
 
	 /  
 
</%def>
 
<%def name="page_nav()">
 
	${self.menu('admin')}
 
	${self.submenu('repos')}
 
</%def>
 
<%def name="main()">
 
	<div>
 
        <h2>${_('Repositories administration')}</h2>
 
        <table>
 
        <table class="table_disp">
 
        <tr class="header">
 
            <td>${_('name')}</td>
 
            <td>${_('last revision')}</td>
 
            <td>${_('action')}</td>
 
        </tr>
 
	        %for cnt,repo in enumerate(c.repos_list):
 
	 		<tr class="parity${cnt%2}">
 
			    <td>${h.link_to(repo['name'],h.url('summary_home',repo_name=repo['name']))}</td>
 
		        <td>r${repo['rev']}:${repo['tip']}</td>
 
                <td>
 
                  ${h.form(url('repo', id=repo['name']),method='delete')}
 
                  	${h.submit('remove','remove',class_="submit",onclick="return confirm('Confirm to delete this repository');")}
 
                  	${h.submit('remove','delete',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
 
                  ${h.end_form()}
 
     			</td>
 
			</tr>
 
			%endfor
 
		</table>
 
		<span class="add_icon">${h.link_to(u'add repo',h.url('new_repo'))}</span>    
 
    </div>
 
</%def>    
pylons_app/templates/admin/users/users.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%def name="title()">
 
    ${_('Users administration')}
 
</%def>
 
<%def name="breadcrumbs()">
 
	${h.link_to(u'Admin',h.url('admin_home'))}
 
	 /  
 
</%def>
 
<%def name="page_nav()">
 
	${self.menu('admin')}
 
	${self.submenu('users')}
 
</%def>
 
<%def name="main()">
 
	<div>
 
        <h2>${_('Mercurial users')}</h2>
 
        <table>
 
         <tr>
 
            <th>Id</th>
 
            <th>Username</th>
 
            <th>Active</th>
 
            <th>Admin</th>
 
            <th>Action</th>
 
        <table class="table_disp">
 
         <tr class="header">
 
            <td>ID</td>
 
            <td>Username</td>
 
            <td>Active</td>
 
            <td>Admin</td>
 
            <td>Action</td>
 
         </tr>
 
            %for user in c.users_list:
 
                <tr>
 
                    <td>${user.user_id}</td>
 
                    <td>${h.link_to(user.username,h.url('edit_user', id=user.user_id))}</td>
 
                    <td>${user.active}</td>
 
                    <td>${user.admin}</td>
 
                    <td>
 
	                    ${h.form(url('user', id=user.user_id),method='delete')}
 
	                    	${h.submit('remove','remove',class_="submit")}
 
	                    	${h.submit('remove','delete',class_="delete_icon action_button")}
 
	                    ${h.end_form()}
 
        			</td>
 
                </tr>
 
            %endfor
 
        </table>
 
        <h3>${h.link_to(u'Add user',h.url('new_user'))}</h3>        
 
        <span class="add_icon">${h.link_to(u'add user',h.url('new_user'))}</span>        
 
    </div>
 
</%def>
pylons_app/templates/base/base.html
Show inline comments
 
@@ -92,51 +92,51 @@ def is_current(selected):
 
				<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>
 
	        </ul>
 
		%else:
 
		##Root menu
 
			<ul class="page-nav">
 
				<li ${is_current('home')}>${h.link_to(_('Home'),h.url('/'))}</li>
 
				<li ${is_current('admin')}>${h.link_to(_('Admin'),h.url('admin_home'))}</li>
 
				<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(u'repos',h.url('repos'))}</li>
 
        <li ${is_current('users')}>${h.link_to(u'users',h.url('users'))}</li>
 
        <li ${is_current('repos')}>${h.link_to(u'repos',h.url('repos'),class_='repos')}</li>
 
        <li ${is_current('users')}>${h.link_to(u'users',h.url('users'),class_='users')}</li>
 
        <li ${is_current('permissions')}>${h.link_to(u'permissions',h.url('permissions'),class_='permissions')}</li>
 
    </ul>
 
    <br/>
 
    </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>
 
</%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>
 
\ No newline at end of file
pylons_app/templates/summary/summary.html
Show inline comments
 
<%inherit file="/base/base.html"/>
 
<%!
 
from pylons_app.lib import filters
 
%>
 
<%def name="title()">
 
    ${_('Repository managment')}
 
</%def>
 
<%def name="breadcrumbs()">
 
    ${h.link_to(u'Home',h.url('/'))}
 
    / 
 
    ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
 
    /
 
    ${_('summary')}
 
</%def>
 
<%def name="page_nav()">
 
	${self.menu('summary')}    
 
</%def>
 

	
 
<%def name="js()">
 
<script type="text/javascript" src="/js/yui/utilities/utilities.js"></script>
 
<script type="text/javascript">
 
var E = YAHOO.util.Event;
 
var D = YAHOO.util.Dom;
 

	
 
E.onDOMReady(function(e){
 
    id = 'clone_url';
 
	E.addListener(id,'click',function(e){
 
	    D.get('clone_url').select();
 
	})
 
})
 
</script>
 
</%def>
 

	
 
<%def name="main()">
 
    <h2 class="no-link no-border">${_('Mercurial Repository Overview')}</h2>
 
    <dl class="overview">
 
        <dt>${_('name')}</dt>
 
        <dd>${c.repo_info.name}</dd>
 
        <dt>${_('description')}</dt>
 
        <dd>${c.repo_info.description}</dd>
 
        <dt>${_('contact')}</dt>
 
        <dd>${c.repo_info.contact}</dd>
 
        <dt>${_('last change')}</dt>
 
        <dd>${c.repo_info.last_change|n,filters.rfc822date} - ${c.repo_info.last_change|n,filters.age}</dd>
 
        <dt>${_('url')}</dt>
 
        <dd><pre style="margin:0">hg clone <a href="${c.clone_repo_url}">${c.clone_repo_url}</a></pre></dd>
 
        <dt>${_('clone url')}</dt>
 
        <dd><input type="text" id="clone_url"  readonly="readonly" value="hg clone ${c.clone_repo_url}" size="40"/></dd>
 
        <dt>${_('download')}</dt>
 
        <dd>
 
       	%for cnt,archive in enumerate(c.repo_info._get_archives()):
 
       		 %if cnt >=1:
 
       		 |
 
       		 %endif
 
       		 ${h.link_to(c.repo_info.name+'.'+archive['type'],
 
       			h.url('files_archive_home',repo_name=c.repo_info.name,
 
       			revision='tip',fileformat=archive['extension']),class_="archive_logo")}
 
		%endfor
 
        </dd>
 
    </dl>
 

	
 
    <h2>${h.link_to(_('Changes'),h.url('changelog_home',repo_name=c.repo_name))}</h2>
 
    <table>
 
	<%def name="message_slug(msg)">
 
		<%
 
		limit = 60
 
		if len(msg) > limit:
 
			return msg[:limit]+'...'
 
		else:
 
			return msg
 
		%>
 
	</%def>    
0 comments (0 inline, 0 general)