46 lines
1012 B
JavaScript
46 lines
1012 B
JavaScript
(function() { 'use strict';
|
|
|
|
if (typeof angular !== 'undefined') {
|
|
|
|
var root = this;
|
|
var $ = root.jQuery;
|
|
var controllers = {};
|
|
var app = root.app;
|
|
|
|
// Services.
|
|
app.factory('TeamStorage', function($http, $q) {
|
|
return {
|
|
searchUsers: function(query) {
|
|
var promise = $http({
|
|
method: 'GET',
|
|
url: '/api/public/user/?format=json&limit=100&username__contains=' + query
|
|
});
|
|
return promise;
|
|
}
|
|
};
|
|
});
|
|
|
|
// Controllers.
|
|
controllers.TeamController = function($scope, $timeout, TeamStorage) {
|
|
$scope.users = [];
|
|
$scope.search = '';
|
|
$scope.$watch('search', function(val) {
|
|
$timeout.cancel($scope.timeout);
|
|
|
|
if (!val) return $scope.users = [];
|
|
|
|
$scope.timeout = $timeout(function() {
|
|
TeamStorage.searchUsers(val).then(function(response) {
|
|
$scope.users = response.data.objects;
|
|
});
|
|
}, 350);
|
|
});
|
|
};
|
|
|
|
// Assign the controllers.
|
|
app.controller(controllers);
|
|
|
|
}
|
|
|
|
}).call(this);
|