summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-03-14 11:51:26 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-03-17 07:39:16 +0100
commit58df72fac1252e09ca6043ac8d78548882c062be (patch)
tree38b4a65b4153874577818248e19d28b889b5ce93
parentbcd5806960f3f74e27bc8e7c8a6fab3a044c181a (diff)
downloadgitlab-ce-58df72fac1252e09ca6043ac8d78548882c062be.tar.gz
Make it possible to exclude project in projects select
-rw-r--r--app/assets/javascripts/project_select.js.coffee27
-rw-r--r--app/views/shared/issuable/_form.html.haml6
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