(function (module) { mifosX.controllers = _.extend(module, { ClientController: function (scope, resourceFactory, location) { scope.clients = []; scope.actualClients = []; scope.searchText = ""; scope.searchResults = []; scope.showClosed = false; scope.routeTo = function (id) { location.path('/viewclient/' + id); }; scope.clientsPerPage = 15; scope.getResultsPage = function (pageNumber) { if(scope.searchText){ var startPosition = (pageNumber - 1) * scope.clientsPerPage; scope.clients = scope.actualClients.slice(startPosition, startPosition + scope.clientsPerPage); return; } var items = resourceFactory.clientResource.getAllClients({ offset: ((pageNumber - 1) * scope.clientsPerPage), limit: scope.clientsPerPage }, function (data) { scope.clients = data.pageItems; }); } scope.initPage = function () { var items = resourceFactory.clientResource.getAllClients({ offset: 0, limit: scope.clientsPerPage }, function (data) { scope.totalClients = data.totalFilteredRecords; scope.clients = data.pageItems; }); } scope.initPage(); scope.search = function () { scope.actualClients = []; scope.searchResults = []; scope.filterText = ""; var searchString = scope.searchText; searchString = searchString.replace(/(^"|"$)/g, ''); var exactMatch=false; var n = searchString.localeCompare(scope.searchText); if(n!=0) { exactMatch=true; } if(!scope.searchText){ scope.initPage(); } else { resourceFactory.globalSearch.search({query: searchString , resource: "clients,clientIdentifiers",exactMatch: exactMatch}, function (data) { var arrayLength = data.length; for (var i = 0; i < arrayLength; i++) { var result = data[i]; var client = {}; client.status = {}; client.subStatus = {}; client.status.value = result.entityStatus.value; client.status.code = result.entityStatus.code; if(result.entityType == 'CLIENT'){ client.displayName = result.entityName; client.accountNo = result.entityAccountNo; client.id = result.entityId; client.externalId = result.entityExternalId; client.officeName = result.parentName; }else if (result.entityType == 'CLIENTIDENTIFIER'){ numberOfClients = numberOfClients + 1; client.displayName = result.parentName; client.id = result.parentId; client.externalId = result.parentExternalId; } scope.actualClients.push(client); } var numberOfClients = scope.actualClients.length; scope.totalClients = numberOfClients; scope.clients = scope.actualClients.slice(0, scope.clientsPerPage); }); } } } }); mifosX.ng.application.controller('ClientController', ['$scope', 'ResourceFactory', '$location', mifosX.controllers.ClientController]).run(function ($log) { $log.info("ClientController initialized"); }); }(mifosX.controllers || {}));