|
|
## -*- 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>
|
|
|
${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="field">
|
|
|
<div class="label">
|
|
|
<label>${_('API key')}</label> ${c.user.api_key}
|
|
|
</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",autocomplete="off")}
|
|
|
</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")}
|
|
|
${h.reset('reset','Reset',class_="ui-button")}
|
|
|
</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>
|
|
|
%if h.HasPermissionAny('hg.admin','hg.create.repository')():
|
|
|
<ul class="links">
|
|
|
<li>
|
|
|
<span>${h.link_to(_('ADD REPOSITORY'),h.url('admin_settings_create_repository'))}</span>
|
|
|
</li>
|
|
|
</ul>
|
|
|
%endif
|
|
|
</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['dbrepo']['repo_type'] =='hg':
|
|
|
<img class="icon" title="${_('Mercurial repository')}" alt="${_('Mercurial repository')}" src="${h.url("/images/icons/hgicon.png")}"/>
|
|
|
%elif repo['dbrepo']['repo_type'] =='git':
|
|
|
<img class="icon" title="${_('Git repository')}" alt="${_('Git repository')}" src="${h.url("/images/icons/giticon.png")}"/>
|
|
|
%else:
|
|
|
|
|
|
%endif
|
|
|
%if repo['dbrepo']['private']:
|
|
|
<img class="icon" alt="${_('private')}" src="${h.url("/images/icons/lock.png")}"/>
|
|
|
%else:
|
|
|
<img class="icon" alt="${_('public')}" src="${h.url("/images/icons/lock_open.png")}"/>
|
|
|
%endif
|
|
|
|
|
|
${h.link_to(repo['name'], h.url('summary_home',repo_name=repo['name']),class_="repo_name")}
|
|
|
%if repo['dbrepo_fork']:
|
|
|
<a href="${h.url('summary_home',repo_name=repo['dbrepo_fork']['repo_name'])}">
|
|
|
<img class="icon" alt="${_('public')}"
|
|
|
title="${_('Fork of')} ${repo['dbrepo_fork']['repo_name']}"
|
|
|
src="${h.url("/images/icons/arrow_divide.png")}"/></a>
|
|
|
%endif
|
|
|
</td>
|
|
|
<td><span class="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['name'])}" title="${_('edit')}"><img class="icon" alt="${_('private')}" src="${h.url("/images/icons/application_form_edit.png")}"/></a></td>
|
|
|
<td>
|
|
|
${h.form(url('repo_settings_delete', repo_name=repo['name']),method='delete')}
|
|
|
${h.submit('remove_%s' % 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 = q_filter.value.toLowerCase();
|
|
|
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>
|