repo_edit.html
382 lines
| 15.3 KiB
| text/html
|
HtmlLexer
r547 | ## -*- coding: utf-8 -*- | |||
|
r3600 | ## | ||
## See also repo_settings.html | ||||
## | ||||
r547 | <%inherit file="/base/base.html"/> | |||
<%def name="title()"> | ||||
r3582 | ${_('Edit repository')} ${c.repo_info.repo_name} · ${c.rhodecode_name} | |||
r547 | </%def> | |||
<%def name="breadcrumbs_links()"> | ||||
r3562 | ${h.link_to(_(u'Home'),h.url('/'))} | |||
» | ||||
${h.link_to(c.repo_info.repo_name,h.url('summary_home',repo_name=c.repo_info.repo_name))} | ||||
» | ||||
${_('Settings')} | ||||
r547 | </%def> | |||
<%def name="page_nav()"> | ||||
|
r3288 | ${self.menu('options')} | ||
r547 | </%def> | |||
<%def name="main()"> | ||||
|
r3552 | ${self.context_bar('options')} | ||
r699 | <div class="box box-left"> | |||
r547 | <!-- box / title --> | |||
<div class="title"> | ||||
r1888 | ${self.breadcrumbs()} | |||
r547 | </div> | |||
${h.form(url('repo', repo_name=c.repo_info.repo_name),method='put')} | ||||
<div class="form"> | ||||
<!-- fields --> | ||||
<div class="fields"> | ||||
<div class="field"> | ||||
<div class="label"> | ||||
<label for="repo_name">${_('Name')}:</label> | ||||
</div> | ||||
r703 | <div class="input"> | |||
r699 | ${h.text('repo_name',class_="medium")} | |||
r547 | </div> | |||
r1112 | </div> | |||
|
r3197 | <div class="field"> | ||
<div class="label"> | ||||
<label for="clone_uri">${_('Clone uri')}:</label> | ||||
</div> | ||||
<div class="input"> | ||||
${h.text('clone_uri',class_="medium")} | ||||
r2103 | <span class="help-block">${_('Optional http[s] url from which repository should be cloned.')}</span> | |||
|
r3197 | </div> | ||
</div> | ||||
<div class="field"> | ||||
<div class="label"> | ||||
<label for="repo_group">${_('Repository group')}:</label> | ||||
</div> | ||||
<div class="input"> | ||||
${h.select('repo_group','',c.repo_groups,class_="medium")} | ||||
r2103 | <span class="help-block">${_('Optional select a group to put this repository into.')}</span> | |||
|
r3197 | </div> | ||
</div> | ||||
r659 | <div class="field"> | |||
<div class="label"> | ||||
<label for="repo_type">${_('Type')}:</label> | ||||
</div> | ||||
<div class="input"> | ||||
r699 | ${h.select('repo_type','hg',c.backends,class_="medium")} | |||
r659 | </div> | |||
r1888 | </div> | |||
r547 | <div class="field"> | |||
r2459 | <div class="label"> | |||
r3064 | <label for="repo_landing_rev">${_('Landing revision')}:</label> | |||
r2459 | </div> | |||
<div class="input"> | ||||
r3064 | ${h.select('repo_landing_rev','',c.landing_revs,class_="medium")} | |||
r2459 | <span class="help-block">${_('Default revision for files page, downloads, whoosh and readme')}</span> | |||
</div> | ||||
r2461 | </div> | |||
r2459 | <div class="field"> | |||
r547 | <div class="label label-textarea"> | |||
r3064 | <label for="repo_description">${_('Description')}:</label> | |||
r547 | </div> | |||
<div class="textarea text-area editor"> | ||||
r3064 | ${h.textarea('repo_description')} | |||
r2103 | <span class="help-block">${_('Keep it short and to the point. Use a README file for longer descriptions.')}</span> | |||
r547 | </div> | |||
</div> | ||||
r1888 | ||||
r547 | <div class="field"> | |||
<div class="label label-checkbox"> | ||||
r3064 | <label for="repo_private">${_('Private repository')}:</label> | |||
r547 | </div> | |||
<div class="checkboxes"> | ||||
r3064 | ${h.checkbox('repo_private',value="True")} | |||
r2103 | <span class="help-block">${_('Private repositories are only visible to people explicitly added as collaborators.')}</span> | |||
r547 | </div> | |||
</div> | ||||
r810 | <div class="field"> | |||
<div class="label label-checkbox"> | ||||
r3064 | <label for="repo_enable_statistics">${_('Enable statistics')}:</label> | |||
r810 | </div> | |||
<div class="checkboxes"> | ||||
r3064 | ${h.checkbox('repo_enable_statistics',value="True")} | |||
r2103 | <span class="help-block">${_('Enable statistics window on summary page.')}</span> | |||
r810 | </div> | |||
r1888 | </div> | |||
r962 | <div class="field"> | |||
<div class="label label-checkbox"> | ||||
r3064 | <label for="repo_enable_downloads">${_('Enable downloads')}:</label> | |||
r962 | </div> | |||
<div class="checkboxes"> | ||||
r3064 | ${h.checkbox('repo_enable_downloads',value="True")} | |||
r2103 | <span class="help-block">${_('Enable download menu on summary page.')}</span> | |||
r962 | </div> | |||
r1888 | </div> | |||
r547 | <div class="field"> | |||
r2726 | <div class="label label-checkbox"> | |||
r3064 | <label for="repo_enable_locking">${_('Enable locking')}:</label> | |||
r2726 | </div> | |||
<div class="checkboxes"> | ||||
r3064 | ${h.checkbox('repo_enable_locking',value="True")} | |||
r2726 | <span class="help-block">${_('Enable lock-by-pulling on repository.')}</span> | |||
</div> | ||||
r2815 | </div> | |||
r2726 | <div class="field"> | |||
r581 | <div class="label"> | |||
r547 | <label for="user">${_('Owner')}:</label> | |||
</div> | ||||
r2103 | <div class="input input-medium ac"> | |||
r547 | <div class="perm_ac"> | |||
${h.text('user',class_='yui-ac-input')} | ||||
r2103 | <span class="help-block">${_('Change owner of this repository.')}</span> | |||
r547 | <div id="owner_container"></div> | |||
</div> | ||||
</div> | ||||
r1888 | </div> | |||
r3308 | %if c.visual.repository_fields: | |||
## EXTRA FIELDS | ||||
%for field in c.repo_fields: | ||||
<div class="field"> | ||||
<div class="label"> | ||||
<label for="${field.field_key_prefixed}">${field.field_label} (${field.field_key}):</label> | ||||
</div> | ||||
<div class="input input-medium"> | ||||
${h.text(field.field_key_prefixed, field.field_value, class_='medium')} | ||||
%if field.field_desc: | ||||
<span class="help-block">${field.field_desc}</span> | ||||
%endif | ||||
</div> | ||||
</div> | ||||
%endfor | ||||
%endif | ||||
r547 | <div class="field"> | |||
<div class="label"> | ||||
<label for="input">${_('Permissions')}:</label> | ||||
</div> | ||||
<div class="input"> | ||||
r1015 | <%include file="repo_edit_perms.html"/> | |||
</div> | ||||
|
r3600 | </div> | ||
r1888 | ||||
|
r3600 | <div class="buttons"> | ||
${h.submit('save',_('Save'),class_="ui-btn large")} | ||||
${h.reset('reset',_('Reset'),class_="ui-btn large")} | ||||
r1888 | </div> | |||
|
r3600 | </div> | ||
r1888 | </div> | |||
r547 | ${h.end_form()} | |||
</div> | ||||
r699 | ||||
<div class="box box-right"> | ||||
<div class="title"> | ||||
r3562 | <h5>${_('Advanced settings')}</h5> | |||
r699 | </div> | |||
r1888 | ||||
|
r3600 | <h3>${_('Statistics')}</h3> | ||
${h.form(url('repo_stats', repo_name=c.repo_info.repo_name),method='delete')} | ||||
<div class="form"> | ||||
<div class="fields"> | ||||
${h.submit('reset_stats_%s' % c.repo_info.repo_name,_('Reset current statistics'),class_="ui-btn",onclick="return confirm('"+_('Confirm to remove current statistics')+"');")} | ||||
r1755 | <div class="field" style="border:none;color:#888"> | |||
<ul> | ||||
|
r3600 | <li>${_('Fetched to rev')}: ${c.stats_revision}/${c.repo_last_rev}</li> | ||
<li>${_('Stats gathered')}: ${c.stats_percentage}%</li> | ||||
</ul> | ||||
</div> | ||||
</div> | ||||
</div> | ||||
${h.end_form()} | ||||
%if c.repo_info.clone_uri: | ||||
<h3>${_('Remote')}</h3> | ||||
${h.form(url('repo_pull', repo_name=c.repo_info.repo_name),method='put')} | ||||
<div class="form"> | ||||
<div class="fields"> | ||||
${h.submit('remote_pull_%s' % c.repo_info.repo_name,_('Pull changes from remote location'),class_="ui-btn",onclick="return confirm('"+_('Confirm to pull changes from remote side')+"');")} | ||||
<div class="field" style="border:none"> | ||||
<ul> | ||||
<li><a href="${c.repo_info.clone_uri}">${c.repo_info.clone_uri}</a></li> | ||||
r1755 | </ul> | |||
r2815 | </div> | |||
|
r3600 | </div> | ||
</div> | ||||
${h.end_form()} | ||||
%endif | ||||
<h3>${_('Cache')}</h3> | ||||
${h.form(url('repo_cache', repo_name=c.repo_info.repo_name),method='delete')} | ||||
<div class="form"> | ||||
<div class="fields"> | ||||
${h.submit('reset_cache_%s' % c.repo_info.repo_name,_('Invalidate repository cache'),class_="ui-btn",onclick="return confirm('"+_('Confirm to invalidate repository cache')+"');")} | ||||
<div class="field" style="border:none;color:#888"> | ||||
<ul> | ||||
<li>${_('Manually invalidate cache for this repository. On first access repository will be cached again')} | ||||
</li> | ||||
</ul> | ||||
</div> | ||||
<div class="field" style="border:none;"> | ||||
${_('List of cached values')} | ||||
<table> | ||||
<tr> | ||||
<th>${_('Prefix')}</th> | ||||
<th>${_('Key')}</th> | ||||
<th>${_('Active')}</th> | ||||
</tr> | ||||
%for cache in c.repo_info.cache_keys: | ||||
<tr> | ||||
<td>${cache.prefix or '-'}</td> | ||||
<td>${cache.cache_key}</td> | ||||
<td>${h.bool2icon(cache.cache_active)}</td> | ||||
</tr> | ||||
%endfor | ||||
</table> | ||||
</div> | ||||
</div> | ||||
</div> | ||||
${h.end_form()} | ||||
r1755 | ||||
|
r3600 | <h3>${_('Public journal')}</h3> | ||
${h.form(url('repo_public_journal', repo_name=c.repo_info.repo_name),method='put')} | ||||
<div class="form"> | ||||
${h.hidden('auth_token',str(h.get_token()))} | ||||
<div class="field"> | ||||
%if c.in_public_journal: | ||||
${h.submit('set_public_%s' % c.repo_info.repo_name,_('Remove from public journal'),class_="ui-btn")} | ||||
%else: | ||||
${h.submit('set_public_%s' % c.repo_info.repo_name,_('Add to public journal'),class_="ui-btn")} | ||||
%endif | ||||
</div> | ||||
<div class="field" style="border:none;color:#888"> | ||||
<ul> | ||||
<li>${_('All actions made on this repository will be accessible to everyone in public journal')} | ||||
</li> | ||||
</ul> | ||||
</div> | ||||
</div> | ||||
${h.end_form()} | ||||
r2815 | ||||
|
r3600 | <h3>${_('Locking')}</h3> | ||
${h.form(url('repo_locking', repo_name=c.repo_info.repo_name),method='put')} | ||||
<div class="form"> | ||||
<div class="fields"> | ||||
%if c.repo_info.locked[0]: | ||||
${h.submit('set_unlock' ,_('Unlock locked repo'),class_="ui-btn",onclick="return confirm('"+_('Confirm to unlock repository')+"');")} | ||||
${'Locked by %s on %s' % (h.person_by_id(c.repo_info.locked[0]),h.fmt_date(h.time_to_datetime(c.repo_info.locked[1])))} | ||||
%else: | ||||
${h.submit('set_lock',_('lock repo'),class_="ui-btn",onclick="return confirm('"+_('Confirm to lock repository')+"');")} | ||||
${_('Repository is not locked')} | ||||
%endif | ||||
</div> | ||||
<div class="field" style="border:none;color:#888"> | ||||
<ul> | ||||
<li>${_('Force locking on repository. Works only when anonymous access is disabled')} | ||||
</li> | ||||
</ul> | ||||
</div> | ||||
</div> | ||||
${h.end_form()} | ||||
<h3>${_('Set as fork of')}</h3> | ||||
${h.form(url('repo_as_fork', repo_name=c.repo_info.repo_name),method='put')} | ||||
<div class="form"> | ||||
<div class="fields"> | ||||
${h.select('id_fork_of','',c.repos_list,class_="medium")} | ||||
${h.submit('set_as_fork_%s' % c.repo_info.repo_name,_('set'),class_="ui-btn",)} | ||||
</div> | ||||
r2726 | <div class="field" style="border:none;color:#888"> | |||
<ul> | ||||
|
r3600 | <li>${_('''Manually set this repository as a fork of another from the list''')}</li> | ||
r2726 | </ul> | |||
</div> | ||||
|
r3600 | </div> | ||
${h.end_form()} | ||||
<h3>${_('Delete')}</h3> | ||||
${h.form(url('repo', repo_name=c.repo_info.repo_name),method='delete')} | ||||
<div class="form"> | ||||
<div class="fields"> | ||||
<div class="field" style="border:none;color:#888"> | ||||
## <div class="label"> | ||||
## <label for="">${_('Remove repository')}:</label> | ||||
## </div> | ||||
<div class="checkboxes"> | ||||
${h.submit('remove_%s' % c.repo_info.repo_name,_('Remove this repository'),class_="ui-btn red",onclick="return confirm('"+_('Confirm to delete this repository')+"');")} | ||||
%if c.repo_info.forks.count(): | ||||
- ${ungettext('this repository has %s fork', 'this repository has %s forks', c.repo_info.forks.count()) % c.repo_info.forks.count()} | ||||
<input type="radio" name="forks" value="detach_forks" checked="checked"/> <label for="forks">${_('Detach forks')}</label> | ||||
<input type="radio" name="forks" value="delete_forks" /> <label for="forks">${_('Delete forks')}</label> | ||||
%endif | ||||
<ul> | ||||
<li>${_('This repository will be renamed in a special way in order to be unaccesible for RhodeCode and VCS systems. If you need to fully delete it from file system please do it manually')}</li> | ||||
</ul> | ||||
</div> | ||||
</div> | ||||
r2726 | </div> | |||
|
r3600 | </div> | ||
${h.end_form()} | ||||
r699 | </div> | |||
r3308 | ##TODO: this should be controlled by the VISUAL setting | |||
%if c.visual.repository_fields: | ||||
<div class="box box-left" style="clear:left"> | ||||
<!-- box / title --> | ||||
<div class="title"> | ||||
<h5>${_('Extra fields')}</h5> | ||||
</div> | ||||
<div class="emails_wrap"> | ||||
<table class="noborder"> | ||||
%for field in c.repo_fields: | ||||
<tr> | ||||
<td>${field.field_label} (${field.field_key})</td> | ||||
<td>${field.field_type}</td> | ||||
<td> | ||||
${h.form(url('delete_repo_fields', repo_name=c.repo_info.repo_name, field_id=field.repo_field_id),method='delete')} | ||||
${h.submit('remove_%s' % field.repo_field_id, _('delete'), id="remove_field_%s" % field.repo_field_id, | ||||
class_="delete_icon action_button", onclick="return confirm('"+_('Confirm to delete this field: %s') % field.field_key+"');")} | ||||
${h.end_form()} | ||||
</td> | ||||
</tr> | ||||
%endfor | ||||
</table> | ||||
</div> | ||||
${h.form(url('create_repo_fields', repo_name=c.repo_info.repo_name),method='put')} | ||||
<div class="form"> | ||||
<!-- fields --> | ||||
<div class="fields"> | ||||
<div class="field"> | ||||
<div class="label"> | ||||
<label for="new_field_key">${_('New field key')}:</label> | ||||
</div> | ||||
<div class="input"> | ||||
${h.text('new_field_key', class_='small')} | ||||
</div> | ||||
</div> | ||||
<div class="field"> | ||||
<div class="label"> | ||||
<label for="new_field_label">${_('New field label')}:</label> | ||||
</div> | ||||
<div class="input"> | ||||
${h.text('new_field_label', class_='small', placeholder=_('Enter short label'))} | ||||
r3315 | </div> | |||
r3308 | </div> | |||
<div class="field"> | ||||
<div class="label"> | ||||
<label for="new_field_desc">${_('New field description')}:</label> | ||||
</div> | ||||
<div class="input"> | ||||
${h.text('new_field_desc', class_='small', placeholder=_('Enter description of a field'))} | ||||
r3315 | </div> | |||
r3308 | </div> | |||
<div class="buttons"> | ||||
${h.submit('save',_('Add'),class_="ui-btn large")} | ||||
${h.reset('reset',_('Reset'),class_="ui-btn large")} | ||||
</div> | ||||
</div> | ||||
</div> | ||||
${h.end_form()} | ||||
</div> | ||||
%endif | ||||
r1888 | </%def> | |||