Files @ f282c81ff532
Branch filter:

Location: kallithea/rhodecode/templates/admin/repos/repo_edit.html - annotation

Marcin Kuzminski
implemented #689 Deleting Repositories with Forks Should Be Easier
- optionally detach or delete forks associated to repo
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
a1ec653f5f95
1e757ac98988
1e757ac98988
1e757ac98988
6cdf2cd9d9d8
f91d3f9b7230
6cdf2cd9d9d8
1e757ac98988
6cdf2cd9d9d8
1e757ac98988
1e757ac98988
1e757ac98988
6cdf2cd9d9d8
1e757ac98988
1e757ac98988
1e757ac98988
52da7cba88a6
1e757ac98988
1e757ac98988
f91d3f9b7230
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
9c1ed03ef5db
52da7cba88a6
1e757ac98988
6d0a7284949d
b4f401524060
b4f401524060
b4f401524060
b4f401524060
b4f401524060
b4f401524060
e82c04f52b9f
b4f401524060
b4f401524060
b4f401524060
b4f401524060
b4f401524060
b4f401524060
b4f401524060
b4f401524060
e82c04f52b9f
b4f401524060
b4f401524060
758f64f3fbda
758f64f3fbda
758f64f3fbda
758f64f3fbda
758f64f3fbda
52da7cba88a6
758f64f3fbda
f91d3f9b7230
1e757ac98988
9492ab68331f
7297ffb60900
9492ab68331f
9492ab68331f
7297ffb60900
9492ab68331f
9492ab68331f
015a42e970a6
9492ab68331f
1e757ac98988
7297ffb60900
1e757ac98988
1e757ac98988
7297ffb60900
e82c04f52b9f
1e757ac98988
1e757ac98988
f91d3f9b7230
1e757ac98988
1e757ac98988
7297ffb60900
1e757ac98988
1e757ac98988
7297ffb60900
e82c04f52b9f
1e757ac98988
1e757ac98988
bd57d1cb9dc3
bd57d1cb9dc3
7297ffb60900
bd57d1cb9dc3
bd57d1cb9dc3
7297ffb60900
e82c04f52b9f
bd57d1cb9dc3
f91d3f9b7230
72f008ed9b18
72f008ed9b18
7297ffb60900
72f008ed9b18
72f008ed9b18
7297ffb60900
e82c04f52b9f
72f008ed9b18
f91d3f9b7230
1e757ac98988
aa17c7a1b8a5
7297ffb60900
aa17c7a1b8a5
aa17c7a1b8a5
7297ffb60900
aa17c7a1b8a5
aa17c7a1b8a5
acc05c33cc0c
aa17c7a1b8a5
136ad719d9e2
1e757ac98988
1e757ac98988
e82c04f52b9f
1e757ac98988
1e757ac98988
e82c04f52b9f
1e757ac98988
1e757ac98988
1e757ac98988
f91d3f9b7230
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
1e757ac98988
65129c332d37
65129c332d37
f91d3f9b7230
f48bce87475b
7ae36df760ce
7ae36df760ce
f48bce87475b
f91d3f9b7230
1e757ac98988
f91d3f9b7230
1e757ac98988
1e757ac98988
52da7cba88a6
52da7cba88a6
52da7cba88a6
f91d3f9b7230
52da7cba88a6
f91d3f9b7230
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
1088ded6e602
1088ded6e602
b9bbc0d6e9f3
b9bbc0d6e9f3
518f87919375
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
f91d3f9b7230
b9bbc0d6e9f3
f91d3f9b7230
4de3fa6290a7
4de3fa6290a7
4de3fa6290a7
4de3fa6290a7
4de3fa6290a7
1088ded6e602
4de3fa6290a7
4de3fa6290a7
4de3fa6290a7
f91d3f9b7230
f91d3f9b7230
4de3fa6290a7
f91d3f9b7230
4de3fa6290a7
4de3fa6290a7
f91d3f9b7230
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
b9bbc0d6e9f3
1088ded6e602
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
acc05c33cc0c
070d2eacd48b
070d2eacd48b
00498b3e4c88
00498b3e4c88
00498b3e4c88
00498b3e4c88
00498b3e4c88
00498b3e4c88
070d2eacd48b
00498b3e4c88
685ebc84c2e9
00498b3e4c88
00498b3e4c88
00498b3e4c88
070d2eacd48b
00498b3e4c88
acc05c33cc0c
b9bbc0d6e9f3
f91d3f9b7230
b9bbc0d6e9f3
f91d3f9b7230
3fe3285868d1
3fe3285868d1
3fe3285868d1
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
070d2eacd48b
3fe3285868d1
3fe3285868d1
f91d3f9b7230
aa17c7a1b8a5
aa17c7a1b8a5
b9bbc0d6e9f3
b9bbc0d6e9f3
aa17c7a1b8a5
aa17c7a1b8a5
aa17c7a1b8a5
aa17c7a1b8a5
aa17c7a1b8a5
aa17c7a1b8a5
aa17c7a1b8a5
b9bbc0d6e9f3
1088ded6e602
1088ded6e602
aa17c7a1b8a5
1088ded6e602
1088ded6e602
acc05c33cc0c
f91d3f9b7230
1088ded6e602
1088ded6e602
9492ab68331f
1088ded6e602
1088ded6e602
1088ded6e602
1088ded6e602
1088ded6e602
1088ded6e602
1088ded6e602
1088ded6e602
9492ab68331f
1088ded6e602
f91d3f9b7230
acc05c33cc0c
b9bbc0d6e9f3
acc05c33cc0c
aa17c7a1b8a5
aa17c7a1b8a5
aa17c7a1b8a5
aa17c7a1b8a5
aa17c7a1b8a5
f282c81ff532
f282c81ff532
f282c81ff532
f282c81ff532
f282c81ff532
aa17c7a1b8a5
aa17c7a1b8a5
aa17c7a1b8a5
81397bd3e77f
aa17c7a1b8a5
aa17c7a1b8a5
aa17c7a1b8a5
acc05c33cc0c
52da7cba88a6
52da7cba88a6
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
fc08484c5bf3
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
fc08484c5bf3
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
72a91632b731
f91d3f9b7230
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>

<%def name="title()">
    ${_('Edit repository')} ${c.repo_info.repo_name} - ${c.rhodecode_name}
</%def>

<%def name="breadcrumbs_links()">
    ${h.link_to(_(u'Home'),h.url('/'))}
    &raquo;
    ${h.link_to(c.repo_name,h.url('summary_home',repo_name=c.repo_name))}
    &raquo;
    ${_('edit')}
</%def>

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

<%def name="main()">
<div class="box box-left">
    <!-- box / title -->
    <div class="title">
        ${self.breadcrumbs()}
    </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>
                <div class="input">
                    ${h.text('repo_name',class_="medium")}
                </div>
           </div>
           <div class="field">
               <div class="label">
                   <label for="clone_uri">${_('Clone uri')}:</label>
               </div>
               <div class="input">
                   ${h.text('clone_uri',class_="medium")}
                 <span class="help-block">${_('Optional http[s] url from which repository should be cloned.')}</span>
               </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")}
                    <span class="help-block">${_('Optional select a group to put this repository into.')}</span>
                </div>
            </div>
            <div class="field">
                <div class="label">
                    <label for="repo_type">${_('Type')}:</label>
                </div>
                <div class="input">
                    ${h.select('repo_type','hg',c.backends,class_="medium")}
                </div>
            </div>
            <div class="field">
                <div class="label">
                    <label for="repo_landing_rev">${_('Landing revision')}:</label>
                </div>
                <div class="input">
                    ${h.select('repo_landing_rev','',c.landing_revs,class_="medium")}
                    <span class="help-block">${_('Default revision for files page, downloads, whoosh and readme')}</span>
                </div>
            </div>
            <div class="field">
                <div class="label label-textarea">
                    <label for="repo_description">${_('Description')}:</label>
                </div>
                <div class="textarea text-area editor">
                    ${h.textarea('repo_description')}
                    <span class="help-block">${_('Keep it short and to the point. Use a README file for longer descriptions.')}</span>
                </div>
            </div>

            <div class="field">
                <div class="label label-checkbox">
                    <label for="repo_private">${_('Private repository')}:</label>
                </div>
                <div class="checkboxes">
                    ${h.checkbox('repo_private',value="True")}
                    <span class="help-block">${_('Private repositories are only visible to people explicitly added as collaborators.')}</span>
                </div>
            </div>
            <div class="field">
                <div class="label label-checkbox">
                    <label for="repo_enable_statistics">${_('Enable statistics')}:</label>
                </div>
                <div class="checkboxes">
                    ${h.checkbox('repo_enable_statistics',value="True")}
                    <span class="help-block">${_('Enable statistics window on summary page.')}</span>
                </div>
            </div>
            <div class="field">
                <div class="label label-checkbox">
                    <label for="repo_enable_downloads">${_('Enable downloads')}:</label>
                </div>
                <div class="checkboxes">
                    ${h.checkbox('repo_enable_downloads',value="True")}
                    <span class="help-block">${_('Enable download menu on summary page.')}</span>
                </div>
            </div>
            <div class="field">
                <div class="label label-checkbox">
                    <label for="repo_enable_locking">${_('Enable locking')}:</label>
                </div>
                <div class="checkboxes">
                    ${h.checkbox('repo_enable_locking',value="True")}
                    <span class="help-block">${_('Enable lock-by-pulling on repository.')}</span>
                </div>
            </div>
            <div class="field">
                <div class="label">
                    <label for="user">${_('Owner')}:</label>
                </div>
                <div class="input input-medium ac">
                    <div class="perm_ac">
                       ${h.text('user',class_='yui-ac-input')}
                       <span class="help-block">${_('Change owner of this repository.')}</span>
                       <div id="owner_container"></div>
                    </div>
                </div>
             </div>
            %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
            <div class="field">
                <div class="label">
                    <label for="input">${_('Permissions')}:</label>
                </div>
                <div class="input">
                    <%include file="repo_edit_perms.html"/>
                </div>

                <div class="buttons">
                  ${h.submit('save',_('Save'),class_="ui-btn large")}
                  ${h.reset('reset',_('Reset'),class_="ui-btn large")}
                </div>
            </div>
    </div>
    </div>
    ${h.end_form()}
</div>

<div class="box box-right">
    <div class="title">
        <h5>${_('Administration')}</h5>
    </div>

        <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')+"');")}
               <div class="field" style="border:none;color:#888">
               <ul>
                    <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>
               </ul>
               </div>
           </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()}

        <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()}

        <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>
               <div class="field" style="border:none;color:#888">
               <ul>
                    <li>${_('''Manually set this repository as a fork of another from the list''')}</li>
               </ul>
               </div>
        </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">
               ${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               
           </div>
           <div class="field" style="border:none;color:#888">
           <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>
        ${h.end_form()}
</div>

##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'))}
                </div>
             </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'))}
                </div>
             </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
</%def>