Skip to content

Commit

Permalink
Originzations user manager now has a select2 ckan json api username d…
Browse files Browse the repository at this point in the history
…ropdown
  • Loading branch information
johnmartin committed Sep 13, 2012
1 parent 3bf4062 commit a9bbcde
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 6 deletions.
23 changes: 23 additions & 0 deletions ckan/public/base/javascript/modules/autocomplete.js
Expand Up @@ -18,6 +18,7 @@ this.ckan.module('autocomplete', function (jQuery, _) {
tags: false,
items: 10,
source: null,
completions: null,
interval: 1000,
dropdownClass: '',
containerClass: '',
Expand Down Expand Up @@ -98,6 +99,9 @@ this.ckan.module('autocomplete', function (jQuery, _) {
var source = parts.join('?') + encodeURIComponent(string) + end;
var client = this.sandbox.client;
var options = {format: client.parseCompletionsForPlugin};
if (this.options.completions) {
options.format = this[this.options.completions];
}

return client.getCompletions(source, options, fn);
},
Expand Down Expand Up @@ -223,6 +227,25 @@ this.ckan.module('autocomplete', function (jQuery, _) {
return formatted;
},

/* Callback for completions for when querying users
*
* Returns results object
*/
parseCompletionsForUsers: function (data) {
var users = [];
jQuery.each(data, function() {
if (typeof this.name != 'undefined') {
users.push({
id: this.name,
text: this.name
});
} else {
users.push(this);
}
});
return { results: users };
},

/* Callback triggered when the select2 plugin needs to make a request.
*
* Returns nothing.
Expand Down
14 changes: 8 additions & 6 deletions ckan/templates/organization/users_form.html
Expand Up @@ -47,12 +47,14 @@
</tbody>
</table>

<legend>{{ _('Add user') }}</legend>
<div class="control-group organization-adduser">
<label for="users__{{data.users|length}}__name" class="control-label">{{ _('Username') }}</label>
<div class="controls">
<input id="users__{{data.users|length}}__name" name="users__{{data.users|length}}__name" type="text">
<input id="users__{{data.users|length}}__capacity" name="users__{{data.users|length}}__capacity" value="editor" type="hidden">
<div class="organization-adduser">
<legend>{{ _('Add user') }}</legend>
<div class="control-group">
<label for="users__{{data.users|length}}__name" class="control-label">{{ _('Username') }}</label>
<div class="controls">
<input id="users__{{data.users|length}}__name" name="users__{{data.users|length}}__name" type="text" data-module="autocomplete" data-module-source="/api/2/util/user/autocomplete?q=?" data-module-completions="parseCompletionsForUsers">
<input id="users__{{data.users|length}}__capacity" name="users__{{data.users|length}}__capacity" value="editor" type="hidden">
</div>
</div>
</div>

Expand Down

0 comments on commit a9bbcde

Please sign in to comment.