diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-03-14 11:51:26 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-03-17 07:39:16 +0100 |
commit | 58df72fac1252e09ca6043ac8d78548882c062be (patch) | |
tree | 38b4a65b4153874577818248e19d28b889b5ce93 /app | |
parent | bcd5806960f3f74e27bc8e7c8a6fab3a044c181a (diff) | |
download | gitlab-ce-58df72fac1252e09ca6043ac8d78548882c062be.tar.gz |
Make it possible to exclude project in projects select
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/project_select.js.coffee | 27 | ||||
-rw-r--r-- | app/views/shared/issuable/_form.html.haml | 6 |
2 files changed, 24 insertions, 9 deletions
diff --git a/app/assets/javascripts/project_select.js.coffee b/app/assets/javascripts/project_select.js.coffee index c794d7ef397..4df61eb6ed6 100644 --- a/app/assets/javascripts/project_select.js.coffee +++ b/app/assets/javascripts/project_select.js.coffee @@ -6,6 +6,7 @@ class @ProjectSelect @orderBy = $(select).data('order-by') || 'id' @selectId = $(select).data('select-id') || 'web_url' @accessLevel = $(select).data('access-level') + @withoutId = $(select).data('without-id') placeholder = "Search for project" placeholder += " or group" if @includeGroups @@ -31,9 +32,11 @@ class @ProjectSelect finalCallback = (projects) -> options.callback({ results: projects }) - @accessLevelCallbackDecorator( - @groupsCallbackDecorator( - finalCallback + @withoutIdCallbackDecorator( + @accessLevelCallbackDecorator( + @groupsCallbackDecorator( + finalCallback + ) ) ) @@ -52,10 +55,22 @@ class @ProjectSelect # Requires ECMAScript >= 5 # (projects) => - data = projects.filter (i) => - max = Math.max(i.permissions.group_access?.access_level ? 0, - i.permissions.project_access?.access_level ? 0) + data = projects.filter (p) => + max = Math.max(p.permissions.group_access?.access_level ? 0, + p.permissions.project_access?.access_level ? 0) max >= @accessLevel callback(data) + + withoutIdCallbackDecorator: (callback) => + return callback unless @withoutId + + ## + # Requires ECMAScript >= 5 + # + (projects) => + data = projects.filter (p) => + p.id != @withoutId + + callback(data) diff --git a/app/views/shared/issuable/_form.html.haml b/app/views/shared/issuable/_form.html.haml index 3d64738095f..f9160a46093 100644 --- a/app/views/shared/issuable/_form.html.haml +++ b/app/views/shared/issuable/_form.html.haml @@ -72,9 +72,9 @@ .form-group = f.label :move_to_project_id, 'Move', class: 'control-label' .col-sm-10 - = project_select_tag("#{issuable.class.model_name.param_key}[move_to_project_id]", - placeholder: 'Select project', class: 'custom-form-control', - data: { 'select-id' => 'id', 'access-level' => Gitlab::Access::REPORTER }) + = project_select_tag(:move_to_project_id, placeholder: 'Select project', + class: 'custom-form-control', data: { 'select-id' => 'id', + 'access-level' => Gitlab::Access::REPORTER, 'without-id' => issuable.project.id }) - if issuable.is_a?(MergeRequest) %hr |