2016-02-29 00:47:22 +00:00
|
|
|
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
|
|
|
|
2016-02-18 14:19:57 +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
|
|
|
|
2016-02-29 00:47:22 +00:00
|
|
|
ctrl.contactList = [];
|
|
|
|
|
2016-02-11 14:30:52 +00:00
|
|
|
ContactService.registerObserverCallback(function(contacts) {
|
|
|
|
$scope.$apply(function() {
|
|
|
|
ctrl.contacts = contacts;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2015-12-16 22:43:33 +00:00
|
|
|
ContactService.getAll().then(function(contacts) {
|
|
|
|
$scope.$apply(function(){
|
|
|
|
ctrl.contacts = contacts;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2016-02-29 00:47:22 +00:00
|
|
|
$scope.$watch('ctrl.routeParams.uid', function(newValue) {
|
|
|
|
if(newValue === undefined) {
|
|
|
|
// we might have to wait until ng-repeat filled the contactList
|
2016-02-29 09:10:39 +00:00
|
|
|
if(ctrl.contactList && ctrl.contactList.length > 0) {
|
2016-02-29 00:47:22 +00:00
|
|
|
$route.updateParams({
|
|
|
|
gid: $routeParams.gid,
|
|
|
|
uid: ctrl.contactList[0].uid()
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
// watch for next contactList update
|
2016-02-29 09:10:39 +00:00
|
|
|
var unbindWatch = $scope.$watch('ctrl.contactList', function() {
|
|
|
|
if(ctrl.contactList && ctrl.contactList.length > 0) {
|
|
|
|
$route.updateParams({
|
|
|
|
gid: $routeParams.gid,
|
|
|
|
uid: ctrl.contactList[0].uid()
|
|
|
|
});
|
|
|
|
unbindWatch(); // unbind as we only want one update
|
|
|
|
}
|
2016-02-29 00:47:22 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2016-02-29 09:10:39 +00:00
|
|
|
$scope.$watch('ctrl.routeParams.gid', function() {
|
|
|
|
// we might have to wait until ng-repeat filled the contactList
|
|
|
|
ctrl.contactList = [];
|
|
|
|
// watch for next contactList update
|
|
|
|
var unbindWatch = $scope.$watch('ctrl.contactList', function() {
|
|
|
|
if(ctrl.contactList && ctrl.contactList.length > 0) {
|
|
|
|
$route.updateParams({
|
|
|
|
gid: $routeParams.gid,
|
|
|
|
uid: ctrl.contactList[0].uid()
|
|
|
|
});
|
|
|
|
unbindWatch(); // unbind as we only want one update
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2015-12-16 22:43:33 +00:00
|
|
|
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
|
|
|
}]);
|