|
|
## -*- coding: utf-8 -*-
|
|
|
<%inherit file="/base/base.html"/>
|
|
|
|
|
|
<%def name="title()">
|
|
|
${_('My account')} ${c.rhodecode_user.username} - ${c.rhodecode_name}
|
|
|
</%def>
|
|
|
|
|
|
<%def name="breadcrumbs_links()">
|
|
|
${_('My Account')}
|
|
|
</%def>
|
|
|
|
|
|
<%def name="page_nav()">
|
|
|
${self.menu('admin')}
|
|
|
</%def>
|
|
|
|
|
|
<%def name="main()">
|
|
|
|
|
|
<div class="box box-left">
|
|
|
<!-- box / title -->
|
|
|
<div class="title">
|
|
|
${self.breadcrumbs()}
|
|
|
</div>
|
|
|
<!-- end box / title -->
|
|
|
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom">
|
|
|
${h.form(url('admin_settings_my_account_update'),method='put')}
|
|
|
<div class="form">
|
|
|
|
|
|
<div class="field">
|
|
|
<div class="gravatar_box">
|
|
|
<div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(c.user.email)}"/></div>
|
|
|
<p>
|
|
|
<strong>Change your avatar at <a href="http://gravatar.com">gravatar.com</a></strong><br/>
|
|
|
${_('Using')} ${c.user.email}
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="fields">
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="username">${_('Username')}:</label>
|
|
|
</div>
|
|
|
<div class="input">
|
|
|
${h.text('username',class_="medium")}
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="new_password">${_('New password')}:</label>
|
|
|
</div>
|
|
|
<div class="input">
|
|
|
${h.password('new_password',class_="medium")}
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="name">${_('First Name')}:</label>
|
|
|
</div>
|
|
|
<div class="input">
|
|
|
${h.text('name',class_="medium")}
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="lastname">${_('Last Name')}:</label>
|
|
|
</div>
|
|
|
<div class="input">
|
|
|
${h.text('lastname',class_="medium")}
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="email">${_('Email')}:</label>
|
|
|
</div>
|
|
|
<div class="input">
|
|
|
${h.text('email',class_="medium")}
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="buttons">
|
|
|
${h.submit('save','Save',class_="ui-button ui-widget ui-state-default ui-corner-all")}
|
|
|
${h.reset('reset','Reset',class_="ui-button ui-widget ui-state-default ui-corner-all")}
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
${h.end_form()}
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="box box-right">
|
|
|
<!-- box / title -->
|
|
|
<div class="title">
|
|
|
<h5>${_('My repositories')}
|
|
|
<input class="top-right-rounded-corner top-left-rounded-corner bottom-left-rounded-corner bottom-right-rounded-corner" id="q_filter" size="15" type="text" name="filter" value="${_('quick filter...')}"/>
|
|
|
</h5>
|
|
|
</div>
|
|
|
<!-- end box / title -->
|
|
|
<div class="table">
|
|
|
<table>
|
|
|
<thead>
|
|
|
<tr>
|
|
|
<th class="left">${_('Name')}</th>
|
|
|
<th class="left">${_('revision')}</th>
|
|
|
<th colspan="2" class="left">${_('action')}</th>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
%if c.user_repos:
|
|
|
%for repo in c.user_repos:
|
|
|
<tr>
|
|
|
<td>
|
|
|
%if repo['repo'].dbrepo.repo_type =='hg':
|
|
|
<img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="/images/icons/hgicon.png"/>
|
|
|
%elif repo['repo'].dbrepo.repo_type =='git':
|
|
|
<img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="/images/icons/giticon.png"/>
|
|
|
%else:
|
|
|
|
|
|
%endif
|
|
|
%if repo['repo'].dbrepo.private:
|
|
|
<img class="icon" alt="${_('private')}" src="/images/icons/lock.png"/>
|
|
|
%else:
|
|
|
<img class="icon" alt="${_('public')}" src="/images/icons/lock_open.png"/>
|
|
|
%endif
|
|
|
|
|
|
${h.link_to(repo['repo'].name, h.url('summary_home',repo_name=repo['repo'].name),class_="repo_name")}
|
|
|
%if repo['repo'].dbrepo.fork:
|
|
|
<a href="${h.url('summary_home',repo_name=repo['repo'].dbrepo.fork.repo_name)}">
|
|
|
<img class="icon" alt="${_('public')}"
|
|
|
title="${_('Fork of')} ${repo['repo'].dbrepo.fork.repo_name}"
|
|
|
src="/images/icons/arrow_divide.png"/></a>
|
|
|
%endif
|
|
|
</td>
|
|
|
<td><span class="tooltip" tooltip_title="${repo['repo'].last_change}">${("r%s:%s") % (h.get_changeset_safe(repo['repo'],'tip').revision,h.short_id(h.get_changeset_safe(repo['repo'],'tip').raw_id))}</span></td>
|
|
|
<td><a href="${h.url('repo_settings_home',repo_name=repo['repo'].name)}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="/images/icons/application_form_edit.png"/></a></td>
|
|
|
<td>
|
|
|
${h.form(url('repo_settings_delete', repo_name=repo['repo'].name),method='delete')}
|
|
|
${h.submit('remove_%s' % repo['repo'].name,'',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")}
|
|
|
${h.end_form()}
|
|
|
</td>
|
|
|
</tr>
|
|
|
%endfor
|
|
|
%else:
|
|
|
${_('No repositories yet')}
|
|
|
%if h.HasPermissionAny('hg.admin','hg.create.repository')():
|
|
|
${h.link_to(_('create one now'),h.url('admin_settings_create_repository'))}
|
|
|
%endif
|
|
|
%endif
|
|
|
</tbody>
|
|
|
</table>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
<script type="text/javascript">
|
|
|
var D = YAHOO.util.Dom;
|
|
|
var E = YAHOO.util.Event;
|
|
|
var S = YAHOO.util.Selector;
|
|
|
|
|
|
var q_filter = D.get('q_filter');
|
|
|
var F = YAHOO.namespace('q_filter');
|
|
|
|
|
|
E.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('div.table tr td a.repo_name');
|
|
|
var req = D.get('q_filter').value;
|
|
|
for (n in nodes){
|
|
|
D.setStyle(nodes[n].parentNode.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){
|
|
|
D.setStyle(obsolete[n].parentNode.parentNode,'display','none');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
E.on(q_filter,'keyup',function(e){
|
|
|
clearTimeout(F.filterTimeout);
|
|
|
setTimeout(F.updateFilter,600);
|
|
|
});
|
|
|
|
|
|
</script>
|
|
|
</%def>
|