summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-12-30 11:32:24 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-12-30 11:46:47 +0200
commit27ee0fc57b3b3fe28f55d2a8cae424e99cf8f79e (patch)
tree14d0725613192d13e73b1c334c65ac454ca2707d
parent2660e83c97c46b7303a71b1110c693fbfbc9662c (diff)
downloadgitlab-ce-27ee0fc57b3b3fe28f55d2a8cae424e99cf8f79e.tar.gz
Helper for ajax group selectbox
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/assets/javascripts/api.js.coffee29
-rw-r--r--app/assets/stylesheets/generic/selects.scss12
-rw-r--r--app/helpers/selects_helper.rb9
3 files changed, 50 insertions, 0 deletions
diff --git a/app/assets/javascripts/api.js.coffee b/app/assets/javascripts/api.js.coffee
index fafa5cdfaa4..27d04e7cac6 100644
--- a/app/assets/javascripts/api.js.coffee
+++ b/app/assets/javascripts/api.js.coffee
@@ -1,4 +1,6 @@
@Api =
+ groups_path: "/api/:version/groups.json"
+ group_path: "/api/:version/groups/:id.json"
users_path: "/api/:version/users.json"
user_path: "/api/:version/users/:id.json"
notes_path: "/api/:version/projects/:id/notes.json"
@@ -51,6 +53,33 @@
).done (users) ->
callback(users)
+ group: (group_id, callback) ->
+ url = Api.buildUrl(Api.group_path)
+ url = url.replace(':id', group_id)
+
+ $.ajax(
+ url: url
+ data:
+ private_token: gon.api_token
+ dataType: "json"
+ ).done (group) ->
+ callback(group)
+
+ # Return groups list. Filtered by query
+ # Only active groups retrieved
+ groups: (query, skip_ldap, callback) ->
+ url = Api.buildUrl(Api.groups_path)
+
+ $.ajax(
+ url: url
+ data:
+ private_token: gon.api_token
+ search: query
+ per_page: 20
+ dataType: "json"
+ ).done (groups) ->
+ callback(groups)
+
# Return project users list. Filtered by query
# Only active users retrieved
projectUsers: (project_id, query, callback) ->
diff --git a/app/assets/stylesheets/generic/selects.scss b/app/assets/stylesheets/generic/selects.scss
index e0f508d2695..d85e80a512b 100644
--- a/app/assets/stylesheets/generic/selects.scss
+++ b/app/assets/stylesheets/generic/selects.scss
@@ -116,6 +116,18 @@ select {
}
}
+.group-result {
+ .group-image {
+ float: left;
+ }
+ .group-name {
+ font-weight: bold;
+ }
+ .group-path {
+ color: #999;
+ }
+}
+
.user-result {
.user-image {
float: left;
diff --git a/app/helpers/selects_helper.rb b/app/helpers/selects_helper.rb
index ab24367c455..796d805f219 100644
--- a/app/helpers/selects_helper.rb
+++ b/app/helpers/selects_helper.rb
@@ -17,4 +17,13 @@ module SelectsHelper
project_id = opts[:project_id] || @project.id
hidden_field_tag(id, value, class: css_class, 'data-placeholder' => placeholder, 'data-project-id' => project_id)
end
+
+ def groups_select_tag(id, opts = {})
+ css_class = "ajax-groups-select "
+ css_class << "multiselect " if opts[:multiple]
+ css_class << (opts[:class] || '')
+ value = opts[:selected] || ''
+
+ hidden_field_tag(id, value, class: css_class)
+ end
end