diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-12-30 12:32:52 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-12-30 12:46:48 +0300 |
commit | 5d2e637c17d28315185816a32b202ada15a7c77f (patch) | |
tree | 21e7c51ff191a24dffd7cb1cb8e32c08e034a63c /app/assets/javascripts/groups_select.js.coffee | |
parent | 27ee0fc57b3b3fe28f55d2a8cae424e99cf8f79e (diff) |
Group selectbox js
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/assets/javascripts/groups_select.js.coffee')
-rw-r--r-- | app/assets/javascripts/groups_select.js.coffee | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/app/assets/javascripts/groups_select.js.coffee b/app/assets/javascripts/groups_select.js.coffee new file mode 100644 index 00000000000..1084e2a17d1 --- /dev/null +++ b/app/assets/javascripts/groups_select.js.coffee @@ -0,0 +1,41 @@ +class @GroupsSelect + constructor: -> + $('.ajax-groups-select').each (i, select) => + skip_ldap = $(select).hasClass('skip_ldap') + + $(select).select2 + placeholder: "Search for a group" + multiple: $(select).hasClass('multiselect') + minimumInputLength: 0 + query: (query) -> + Api.groups query.term, skip_ldap, (groups) -> + data = { results: groups } + query.callback(data) + + initSelection: (element, callback) -> + id = $(element).val() + if id isnt "" + Api.group(id, callback) + + + formatResult: (args...) => + @formatResult(args...) + formatSelection: (args...) => + @formatSelection(args...) + dropdownCssClass: "ajax-groups-dropdown" + escapeMarkup: (m) -> # we do not want to escape markup since we are displaying html in results + m + + formatResult: (group) -> + if group.avatar_url + avatar = group.avatar_url + else + avatar = gon.default_avatar_url + + "<div class='group-result'> + <div class='group-name'>#{group.name}</div> + <div class='group-path'>#{group.path}</div> + </div>" + + formatSelection: (group) -> + group.name |