diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-03-15 14:59:38 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-03-17 07:39:16 +0100 |
commit | 414558939339bd636a3549866ce532fa25500bc5 (patch) | |
tree | d7689fc18b95548dba38eaae359dc1f9c8d9d968 | |
parent | 15d32b6a11380c257180dbc8e2691bc12e2792bc (diff) | |
download | gitlab-ce-414558939339bd636a3549866ce532fa25500bc5.tar.gz |
Revert changes in js used to create project select
This will preserve those changes in history, we may need them in future.
Currently we will use a issues helpers to create options to choose
project whem moving issue to it.
-rw-r--r-- | app/assets/javascripts/project_select.js.coffee | 70 |
1 files changed, 20 insertions, 50 deletions
diff --git a/app/assets/javascripts/project_select.js.coffee b/app/assets/javascripts/project_select.js.coffee index 9738a66ecb9..be8ab9b428d 100644 --- a/app/assets/javascripts/project_select.js.coffee +++ b/app/assets/javascripts/project_select.js.coffee @@ -1,12 +1,9 @@ class @ProjectSelect constructor: -> - $('.ajax-project-select').each (i, select) => + $('.ajax-project-select').each (i, select) -> @groupId = $(select).data('group-id') @includeGroups = $(select).data('include-groups') @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 @@ -14,57 +11,30 @@ class @ProjectSelect $(select).select2 placeholder: placeholder minimumInputLength: 0 - query: (options) => + query: (query) => + finalCallback = (projects) -> + data = { results: projects } + query.callback(data) + + if @includeGroups + projectsCallback = (projects) -> + groupsCallback = (groups) -> + data = groups.concat(projects) + finalCallback(data) + + Api.groups query.term, false, groupsCallback + else + projectsCallback = finalCallback + if @groupId - Api.groupProjects @groupId, options.term, @createCallback(options) + Api.groupProjects @groupId, query.term, projectsCallback else - Api.projects options.term, @orderBy, @createCallback(options) + Api.projects query.term, @orderBy, projectsCallback - id: (project) => - project[@selectId] + id: (project) -> + project.web_url text: (project) -> project.name_with_namespace || project.name dropdownCssClass: "ajax-project-dropdown" - - createCallback: (options) => - finalCallback = (projects) -> - options.callback({ results: projects }) - - @withoutIdCallbackDecorator( - @accessLevelCallbackDecorator( - @groupsCallbackDecorator( - finalCallback - ) - ) - ) - - groupsCallbackDecorator: (callback) => - return callback unless @includeGroups - - (projects) => - Api.groups options.term, false, (groups) => - data = groups.concat(projects) - callback(data) - - accessLevelCallbackDecorator: (callback) => - return callback unless @accessLevel - - (projects) => - 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 - - (projects) => - data = projects.filter (p) => - p.id != @withoutId - - callback(data) |