contacts/js/components/contactList/contactList_controller.js

61 lines
1.5 KiB
JavaScript
Raw Normal View History

app.controller('contactlistCtrl', ['$scope', '$filter', '$route', '$routeParams', 'ContactService', function($scope, $filter, $route, $routeParams, ContactService) {
2015-10-27 17:52:09 +00:00
var ctrl = this;
2015-12-08 11:31:43 +00:00
ctrl.routeParams = $routeParams;
2016-02-24 19:54:35 +00:00
ctrl.t = {
2016-02-29 12:43:05 +00:00
addContact : t('contacts', 'Add contact')
2016-02-24 19:54:35 +00:00
};
2016-02-17 21:34:36 +00:00
ctrl.contactList = [];
2016-02-11 14:30:52 +00:00
ContactService.registerObserverCallback(function(contacts) {
$scope.$apply(function() {
ctrl.contacts = contacts;
});
});
ContactService.getAll().then(function(contacts) {
$scope.$apply(function(){
ctrl.contacts = contacts;
});
});
$scope.$watch('ctrl.routeParams.uid', function(newValue) {
if(newValue === undefined) {
// we might have to wait until ng-repeat filled the contactList
if(ctrl.contactList.length > 0) {
$route.updateParams({
gid: $routeParams.gid,
uid: ctrl.contactList[0].uid()
});
} else {
// watch for next contactList update
var unbindWatch = $scope.$watch('ctrl.contactList', function(newValue) {
$route.updateParams({
gid: $routeParams.gid,
uid: ctrl.contactList[0].uid()
});
unbindWatch(); // unbind as we only want one update
});
}
}
});
ctrl.createContact = function() {
2016-02-11 14:30:52 +00:00
ContactService.create();
2016-01-14 10:40:45 +00:00
};
2016-02-18 16:46:06 +00:00
2016-02-18 21:07:10 +00:00
ctrl.hasContacts = function () {
if (!ctrl.contacts) {
return false;
}
return ctrl.contacts.length > 0;
};
2016-02-18 16:58:00 +00:00
$scope.selectedContactId = $routeParams.uid;
2016-02-18 16:46:06 +00:00
$scope.setSelected = function (selectedContactId) {
$scope.selectedContactId = selectedContactId;
};
2015-12-08 11:31:43 +00:00
}]);