diff options
author | James Lopez <james@jameslopez.es> | 2016-08-08 16:05:58 +0300 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2016-09-20 11:14:39 +0300 |
commit | 0c65112da79e177da3574458c3bb5befc349fd30 (patch) | |
tree | f3715fa7342143d1fd7bd53278c3ecf279e87c49 /app/helpers | |
parent | 95b9421ad3b2678da6e0af0131eafd52cdd0b2a5 (diff) |
modify github import JS and controller so we can now specify a namespace and/or name for a project.
- Fixed and added specs.
- Added different namespace options depending on user privilages
- Updated docs.
Diffstat (limited to 'app/helpers')
-rw-r--r-- | app/helpers/namespaces_helper.rb | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/app/helpers/namespaces_helper.rb b/app/helpers/namespaces_helper.rb index 94c6b548ecd..af06833ef91 100644 --- a/app/helpers/namespaces_helper.rb +++ b/app/helpers/namespaces_helper.rb @@ -1,6 +1,9 @@ module NamespacesHelper - def namespaces_options(selected = :current_user, display_path: false) + def namespaces_options(selected = :current_user, extra_groups = [], display_path: false) groups = current_user.owned_groups + current_user.masters_groups + + groups += process_extra_groups(extra_groups) if extra_groups.any? + users = [current_user.namespace] data_attr_group = { 'data-options-parent' => 'groups' } @@ -25,6 +28,15 @@ module NamespacesHelper grouped_options_for_select(options, selected) end + def process_extra_groups(extra_groups) + # Remove duplicate groups - we either keep the ones that exist for the user + # (already in groups) or ignore those that do not belong to the user. + duplicated_groups = extra_groups.map { |name| Namespace.where(name: name).map(&:name) } + extra_groups = extra_groups - duplicated_groups.flatten + + extra_groups.map { |name| Group.new(name: name) } + end + def namespace_icon(namespace, size = 40) if namespace.kind_of?(Group) group_icon(namespace) |