create: fixed case for repo groups that didn't pre-fill the repo group from GET param.
- also added similar to repo selector for personal repo group.
This commit is contained in:
parent
0d418610b8
commit
1b07afc2cd
4 changed files with 32 additions and 7 deletions
|
|
@ -69,6 +69,7 @@ class AdminRepoGroupsView(BaseAppView, DataGridAppView):
|
|||
c.repo_groups = RepoGroup.groups_choices(
|
||||
groups=groups_with_admin_rights,
|
||||
show_empty_group=allow_empty_group)
|
||||
c.personal_repo_group = self._rhodecode_user.personal_repo_group
|
||||
|
||||
def _can_create_repo_group(self, parent_group_id=None):
|
||||
is_admin = HasPermissionAny('hg.admin')('group create controller')
|
||||
|
|
@ -261,15 +262,28 @@ class AdminRepoGroupsView(BaseAppView, DataGridAppView):
|
|||
|
||||
# perm check for admin, create_group perm or admin of parent_group
|
||||
parent_group_id = safe_int(self.request.GET.get('parent_group'))
|
||||
_gr = RepoGroup.get(parent_group_id)
|
||||
if not self._can_create_repo_group(parent_group_id):
|
||||
raise HTTPForbidden()
|
||||
|
||||
self._load_form_data(c)
|
||||
|
||||
defaults = {} # Future proof for default of repo group
|
||||
|
||||
parent_group_choice = '-1'
|
||||
if not self._rhodecode_user.is_admin and self._rhodecode_user.personal_repo_group:
|
||||
parent_group_choice = self._rhodecode_user.personal_repo_group
|
||||
|
||||
if parent_group_id and _gr:
|
||||
if parent_group_id in [x[0] for x in c.repo_groups]:
|
||||
parent_group_choice = safe_unicode(parent_group_id)
|
||||
|
||||
defaults.update({'group_parent_id': parent_group_choice})
|
||||
|
||||
data = render(
|
||||
'rhodecode:templates/admin/repo_groups/repo_group_add.mako',
|
||||
self._get_template_context(c), self.request)
|
||||
|
||||
html = formencode.htmlfill.render(
|
||||
data,
|
||||
defaults=defaults,
|
||||
|
|
|
|||
|
|
@ -169,8 +169,8 @@ class AdminReposView(BaseAppView, DataGridAppView):
|
|||
c = self.load_default_context()
|
||||
|
||||
new_repo = self.request.GET.get('repo', '')
|
||||
parent_group = safe_int(self.request.GET.get('parent_group'))
|
||||
_gr = RepoGroup.get(parent_group)
|
||||
parent_group_id = safe_int(self.request.GET.get('parent_group'))
|
||||
_gr = RepoGroup.get(parent_group_id)
|
||||
|
||||
if not HasPermissionAny('hg.admin', 'hg.create.repository')():
|
||||
# you're not super admin nor have global create permissions,
|
||||
|
|
@ -196,9 +196,9 @@ class AdminReposView(BaseAppView, DataGridAppView):
|
|||
if not self._rhodecode_user.is_admin and self._rhodecode_user.personal_repo_group:
|
||||
parent_group_choice = self._rhodecode_user.personal_repo_group
|
||||
|
||||
if parent_group and _gr:
|
||||
if parent_group in [x[0] for x in c.repo_groups]:
|
||||
parent_group_choice = safe_unicode(parent_group)
|
||||
if parent_group_id and _gr:
|
||||
if parent_group_id in [x[0] for x in c.repo_groups]:
|
||||
parent_group_choice = safe_unicode(parent_group_id)
|
||||
|
||||
defaults.update({'repo_group': parent_group_choice})
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,12 @@
|
|||
<label for="group_parent_id">${_('Repository group')}:</label>
|
||||
</div>
|
||||
<div class="select">
|
||||
${h.select('group_parent_id',request.GET.get('parent_group'),c.repo_groups,class_="medium")}
|
||||
${h.select('group_parent_id', request.GET.get('parent_group'),c.repo_groups,class_="medium")}
|
||||
% if c.personal_repo_group:
|
||||
<a class="btn" href="#" id="select_my_group" data-personal-group-id="${c.personal_repo_group.group_id}">
|
||||
${_('Select my personal group ({})').format(c.personal_repo_group.group_name)}
|
||||
</a>
|
||||
% endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -106,6 +111,12 @@
|
|||
setCopyPermsOption(e.val)
|
||||
});
|
||||
$('#group_name').focus();
|
||||
|
||||
$('#select_my_group').on('click', function(e){
|
||||
e.preventDefault();
|
||||
$("#group_parent_id").val($(this).data('personalGroupId')).trigger("change");
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</%def>
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ ${h.secure_form(h.route_path('repo_create'), request=request)}
|
|||
${h.select('repo_group',request.GET.get('parent_group'),c.repo_groups,class_="medium")}
|
||||
% if c.personal_repo_group:
|
||||
<a class="btn" href="#" id="select_my_group" data-personal-group-id="${c.personal_repo_group.group_id}">
|
||||
${_('Select my personal group (%(repo_group_name)s)') % {'repo_group_name': c.personal_repo_group.group_name}}
|
||||
${_('Select my personal group ({})').format(c.personal_repo_group.group_name)}
|
||||
</a>
|
||||
% endif
|
||||
<span class="help-block">${_('Optionally select a group to put this repository into.')}</span>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue