1296 lines
44 KiB
JavaScript
Executable File
1296 lines
44 KiB
JavaScript
Executable File
'use strict';
|
|
/**
|
|
* controllers for ng-table
|
|
* Simple table with sorting and filtering on AngularJS
|
|
*/
|
|
app.controller('callTrackingCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state) {
|
|
localStorage.setItem('searchName','');
|
|
localStorage.setItem('searchMobile','');
|
|
$scope.myModel = {
|
|
"studentName": "",
|
|
"mobileNumber": "",
|
|
"universityName": "",
|
|
"courseName": "",
|
|
"date": new Date(),
|
|
"activity": "",
|
|
"assignedTo": "",
|
|
"status": "",
|
|
"referedBy": '',
|
|
"comments":'',
|
|
"enquiryStatus":'',
|
|
"alterMobileNumber":'',
|
|
"address":''
|
|
};
|
|
|
|
//get current date
|
|
$scope.hideDateSearch=true;
|
|
$scope.modifyMinDate = moment();
|
|
$scope.minDate = $filter('date')($scope.modifyMinDate, 'MM-dd-yyyy');
|
|
$scope.currentDate=$filter('date')(new Date(), 'dd-MM-yyyy');
|
|
// get 30 plus date for follwup details
|
|
$scope.modifyDate = moment();
|
|
$scope.modifyDate.add(30, 'days');
|
|
$scope.futureDate = $filter('date')($scope.modifyDate, 'dd-MM-yyyy');
|
|
$scope.myModel.date=$scope.currentDate;
|
|
$scope.myModel.search=$filter('date')(new Date(), 'yyyy-MM-dd');
|
|
$scope.myModel.searchDate=$scope.currentDate;
|
|
$scope.toMinDate = $filter('date')($scope.modifyMinDate, 'MM-dd-yyyy');
|
|
|
|
|
|
$scope.checkDate = function (value,type) {
|
|
if(value.searchDate==null || value.searchDate==undefined){
|
|
|
|
$scope.myModel.search='';
|
|
$scope.toMinDate = '';
|
|
$scope.myModel.dateTo='';
|
|
}
|
|
else{
|
|
if(type=='2'){
|
|
|
|
$scope.myModel.search = $filter('date')(value.searchDate, 'yyyy-MM-dd');
|
|
$scope.toMinDate = $filter('date')(value.searchDate, 'MM-dd-yyyy');
|
|
}
|
|
|
|
|
|
}
|
|
$scope.searchDateArray(value);
|
|
|
|
}
|
|
/*
|
|
* check to date
|
|
* */
|
|
$scope.checkToDate = function (value) {
|
|
|
|
if(value.searchDate==null || value.searchDate==undefined){
|
|
swal("Failed!", 'Please Select From Date', "error");
|
|
$scope.myModel.dateTo='';
|
|
$scope.myModel.search='';
|
|
$scope.toMinDate = '';
|
|
}
|
|
else{
|
|
$scope.filterSearch=$filter('date')(value.searchDate, 'dd-MM-yyyy');
|
|
$scope.search=$scope.filterSearch;
|
|
|
|
}
|
|
$scope.searchDateArray(value);
|
|
|
|
}
|
|
|
|
/*
|
|
* make a search date array
|
|
*/
|
|
$scope.searchDateArray=function (dateValue) {
|
|
|
|
var listDate = [];
|
|
if((dateValue.search !=null && dateValue.search !=undefined) && (dateValue.dateTo !=null && dateValue.dateTo !=undefined && dateValue.dateTo !='')){
|
|
var startDate =dateValue.search;
|
|
var endDate = $filter('date')(dateValue.dateTo, 'yyyy-MM-dd');
|
|
var dateMove = new Date(startDate);
|
|
|
|
var strDate = startDate;
|
|
if(strDate == endDate){
|
|
var startDate =dateValue.search;
|
|
// var endDate = $filter('date')(dateValue.searchDate, 'yyyy-MM-dd');
|
|
var strDate = startDate;
|
|
var arrayDate = $filter('date')(strDate, 'dd-MM-yyyy');
|
|
listDate.push(arrayDate);
|
|
}
|
|
else{
|
|
while (strDate < endDate){
|
|
var strDate = dateMove.toISOString().slice(0,10);
|
|
var arrayDate = $filter('date')(strDate, 'dd-MM-yyyy');
|
|
listDate.push(arrayDate);
|
|
dateMove.setDate(dateMove.getDate()+1);
|
|
};
|
|
}
|
|
|
|
|
|
}
|
|
else if((dateValue.search !=null && dateValue.search !=undefined) && (dateValue.dateTo ==null || dateValue.dateTo ==undefined || dateValue.dateTo =='')){
|
|
var startDate =dateValue.search;
|
|
// var endDate = $filter('date')(dateValue.searchDate, 'yyyy-MM-dd');
|
|
var strDate = startDate;
|
|
var arrayDate = $filter('date')(strDate, 'dd-MM-yyyy');
|
|
|
|
listDate.push(arrayDate);
|
|
|
|
}
|
|
|
|
|
|
$scope.init(listDate);
|
|
|
|
|
|
}
|
|
/*
|
|
* edit track details
|
|
* created by kms
|
|
* */
|
|
$scope.setEditId = function (p,search1,search2,search3,search4,search5) {
|
|
$scope.searchData = {
|
|
"searchDate": search1,
|
|
"searchName": search2,
|
|
'serachActivity': search3,
|
|
'searchAssignTo': search4,
|
|
'searchStatus': search5,
|
|
'callFrom':"details"
|
|
}
|
|
|
|
localStorage.setItem('searchObj', JSON.stringify($scope.searchData));
|
|
localStorage.setItem('trackID', p.TrackingID);
|
|
localStorage.setItem('count', 0);
|
|
$rootScope.followupDetails=p;
|
|
/* $rootScope.myModel1.status=$rootScope.followupDetails.StatusCode;
|
|
$rootScope.currentDate1=new Date().getFullYear() + '-' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '-' + ('0' + new Date().getDate()).slice(-2);
|
|
|
|
$rootScope.myModel1.date=$rootScope.followupDetails.followupDetails[0].FollowupOn;*/
|
|
|
|
/* $scope.editId = pid;*/
|
|
$state.go('app.call.trackingFollowup');
|
|
};
|
|
|
|
/*
|
|
* Submit,update and reset track details
|
|
* @params myModel
|
|
* created by kms
|
|
* */
|
|
$scope.trackForm = {
|
|
submit: function (form, myModel,loading) {
|
|
if(isNaN(myModel.date)){
|
|
$scope.nextFollowupDate = myModel.date;
|
|
|
|
}
|
|
else{
|
|
$scope.getdate=new Date(myModel.date).toDateString();
|
|
|
|
$scope.nextFollowupDate = $filter('date')(new Date($scope.getdate), 'dd-MM-yyyy');
|
|
}
|
|
|
|
var firstError = null;
|
|
if (form.$invalid) {
|
|
|
|
var field = null, firstError = null;
|
|
for (field in form) {
|
|
if (field[0] != '$') {
|
|
if (firstError === null && !form[field].$valid) {
|
|
firstError = form[field].$name;
|
|
}
|
|
if (form[field].$pristine) {
|
|
form[field].$dirty = true;
|
|
}
|
|
}
|
|
}
|
|
angular.element('.ng-invalid[name=' + firstError + ']').focus();
|
|
// swal("The form cannot be submitted because it contains validation errors!", "Errors are marked with a red, dashed border!", "error");
|
|
} else {
|
|
|
|
$scope.ldloading1 = {};
|
|
|
|
$scope.ldloading1[loading.replace('-', '_')] = true;
|
|
|
|
|
|
var addLead = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'addLeadTrackingDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
studentName: myModel.studentName,
|
|
mobileNumber: myModel.mobileNumber,
|
|
universityID: myModel.universityName,
|
|
courseName: myModel.courseName,
|
|
date: $scope.nextFollowupDate,
|
|
activity: myModel.activity.activityID,
|
|
assignedTo: myModel.assignedTo,
|
|
status: myModel.status,
|
|
referedBy: myModel.referedBy,
|
|
comments:myModel.comments,
|
|
alterMobile:myModel.alterMobileNumber,
|
|
address:myModel.address,
|
|
enquiryStatus:myModel.enquiryStatus,
|
|
createdBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
|
|
branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID
|
|
|
|
|
|
|
|
|
|
}
|
|
};
|
|
$http(addLead).then(function (response) {
|
|
if (response.data.status==200 && response.data.leadStatus) {
|
|
$scope.ldloading1[loading.replace('-', '_')] = false;
|
|
swal("Success!", response.data.message, "success");
|
|
$state.go($state.current, {}, {reload: true});
|
|
} else {
|
|
$scope.ldloading1[loading.replace('-', '_')] = false;
|
|
swal("Failed!", response.data.message, "error");
|
|
}
|
|
});
|
|
|
|
|
|
}
|
|
},
|
|
reset: function (form) {
|
|
|
|
$scope.myModel = angular.copy($scope.master);
|
|
form.$setPristine(true);
|
|
$scope.myModel = {
|
|
"studentName": "",
|
|
"mobileNumber": "",
|
|
"universityName": "",
|
|
"courseName": "",
|
|
"activity": "",
|
|
"assignedTo": "",
|
|
"status": "",
|
|
"referedBy": '',
|
|
"comments":''
|
|
};
|
|
}
|
|
};
|
|
|
|
|
|
/*
|
|
* get student exist or not for add lead details
|
|
* created by kms
|
|
* */
|
|
$scope.loading=false;
|
|
$scope.getLead = function (form,mobile) {
|
|
|
|
//call form success
|
|
if(form.mobilenumber.$valid){
|
|
$scope.loading=true;
|
|
var lead = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'getTrackingLeadDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
|
|
mobileNumber:mobile
|
|
}
|
|
};
|
|
$http(lead).then(function (response) {
|
|
if (response.data.status==200) {
|
|
$scope.myModel.courseName=response.data.existLeadDetails.CourseID;
|
|
$scope.myModel.enquiryStatus=response.data.existLeadDetails.IsNewEnquiry;
|
|
$scope.activity=response.data.activityDetails;
|
|
$scope.status=response.data.statusDetails;
|
|
$scope.staffDetails=response.data.staffDetails;
|
|
//$scope.university=response.data.universityDetails;
|
|
// $scope.myModel.status=$scope.status[0].ListCode;
|
|
$scope.myModel.studentName=response.data.existLeadDetails.LeadName;
|
|
$scope.myModel.universityName=response.data.existLeadDetails.University;
|
|
$scope.myModel.courseName=response.data.existLeadDetails.Course;
|
|
$scope.myModel.alterMobileNumber=response.data.existLeadDetails.AlternateMobile;
|
|
$scope.myModel.address=response.data.existLeadDetails.Address;
|
|
|
|
// find index for university drop down list
|
|
/* for(var i in $scope.university) {
|
|
if($scope.university[i].universityID==response.data.existLeadDetails.UniversityID){
|
|
$scope.myModel.universityName=$scope.university[i];
|
|
}
|
|
}*/
|
|
|
|
$scope.loading=false;
|
|
|
|
|
|
} else {
|
|
$scope.loading=false;
|
|
|
|
}
|
|
});
|
|
|
|
}
|
|
else{
|
|
$scope.loading=false;
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
*get tracking list
|
|
* created by kms
|
|
* */
|
|
$scope.init = function (myModel) {
|
|
$scope.data = [];
|
|
if(myModel!='' && myModel!=undefined){
|
|
$scope.finalSearchArry=myModel;
|
|
}
|
|
else{
|
|
$scope.finalSearchArry="";
|
|
}
|
|
|
|
$scope.loader = true;
|
|
|
|
var getTrackDetails = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'getTrackingDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
|
|
requestedDept: JSON.parse(localStorage.getItem('localObj')).localType,
|
|
branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID,
|
|
searchDate: $scope.finalSearchArry
|
|
}
|
|
};
|
|
$http(getTrackDetails).then(function (response) {
|
|
if(response.data.pendingTrackingDetails.trackingStatus && response.data.trackingDetails.length > 0){
|
|
$scope.loader = false;
|
|
//$scope.currentDate1=$filter('date')(new Date(), 'dd-MM-yyyy');
|
|
$scope.tillPendingDetails = response.data.pendingTrackingDetails.trackingDetails;
|
|
angular.forEach($scope.tillPendingDetails, function (value, key) {
|
|
$scope.currentDate = new Date().getFullYear() + '-' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '-' + ('0' + new Date().getDate()).slice(-2);
|
|
// $scope.currentDate = new Date().getFullYear() + '-' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '-' + ('0' + new Date().getDate()).slice(-2);
|
|
$scope.currentDate=$filter('date')(new Date(), 'dd-MM-yyyy');
|
|
if (($scope.currentDate) > (value.followupDetails) && (value.statusName!='CLOSE')) {
|
|
$scope.data.push(value);
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
angular.forEach(response.data.trackingDetails, function (value1, key1) {
|
|
|
|
$scope.data.push(value1);
|
|
});
|
|
|
|
|
|
|
|
$rootScope.trackingStatus = response.data.statusDetails;
|
|
|
|
localStorage.setItem('trackingList', JSON.stringify($scope.data));
|
|
|
|
|
|
|
|
}
|
|
|
|
else if (response.data.status == 200 && response.data.trackingStatus == true && response.data.pendingTrackingDetails.trackingStatus !=true) {
|
|
$scope.loader = false;
|
|
|
|
$rootScope.trackingStatus = response.data.statusDetails;
|
|
|
|
$scope.data = response.data.trackingDetails;
|
|
|
|
localStorage.setItem('trackingList', JSON.stringify($scope.data));
|
|
}
|
|
else if (response.data.trackingStatus != true && response.data.pendingTrackingDetails.trackingStatus) {
|
|
|
|
$scope.loader = false;
|
|
|
|
$rootScope.trackingStatus = response.data.statusDetails;
|
|
|
|
$scope.tillPendingDetails = response.data.pendingTrackingDetails.trackingDetails;
|
|
angular.forEach($scope.tillPendingDetails, function (value, key) {
|
|
$scope.currentDate = new Date().getFullYear() + '-' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '-' + ('0' + new Date().getDate()).slice(-2);
|
|
// $scope.currentDate = new Date().getFullYear() + '-' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '-' + ('0' + new Date().getDate()).slice(-2);
|
|
$scope.currentDate=$filter('date')(new Date(), 'dd-MM-yyyy');
|
|
if (($scope.currentDate) > (value.followupDetails) && (value.statusName!='CLOSE')) {
|
|
|
|
$scope.data.push(value);
|
|
}
|
|
});
|
|
localStorage.setItem('trackingList', JSON.stringify($scope.data));
|
|
}
|
|
|
|
else {
|
|
$scope.loader = false;
|
|
|
|
$scope.branchInfo = '';
|
|
$scope.data='';
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
}
|
|
// sorting function for table params
|
|
$scope.sort = function(keyname){
|
|
$scope.sortKey = keyname; //set the sortKey to the param passed
|
|
$scope.reverse = !$scope.reverse; //if true make it false and vice versa
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}]);
|
|
|
|
/*
|
|
* lead controller
|
|
* */
|
|
app.controller('callTrackingLeadCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state) {
|
|
localStorage.setItem('searchName','');
|
|
localStorage.setItem('searchMobile','');
|
|
$scope.myModel = {
|
|
"leadDate": new Date(),
|
|
};
|
|
|
|
|
|
//get current date
|
|
$scope.currentDate=$filter('date')(new Date(), 'dd-MM-yyyy');
|
|
$scope.maxDate=moment();
|
|
// get 30 plus date for follwup details
|
|
$scope.modifyDate = moment();
|
|
$scope.modifyDate.add(30, 'days');
|
|
$scope.futureDate = $filter('date')($scope.modifyDate, 'dd-MM-yyyy');
|
|
|
|
$scope.myModel.leadDate=$scope.currentDate;
|
|
|
|
/*
|
|
* edit track details
|
|
* created by kms
|
|
* */
|
|
$scope.setEditId = function (p,search1,search2,search3,search4,search5) {
|
|
$scope.searchData = {
|
|
"searchDate": search1,
|
|
"searchName": search2,
|
|
'serachActivity': search3,
|
|
'searchAssignTo': search4,
|
|
'searchStatus': search5,
|
|
'callFrom': "lead"
|
|
}
|
|
|
|
|
|
localStorage.setItem('searchObj', JSON.stringify($scope.searchData));
|
|
localStorage.setItem('trackID', p.TrackingID);
|
|
localStorage.setItem('count', 0);
|
|
$rootScope.followupDetails=p;
|
|
/* $rootScope.myModel1.status=$rootScope.followupDetails.StatusCode;
|
|
$rootScope.currentDate1=new Date().getFullYear() + '-' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '-' + ('0' + new Date().getDate()).slice(-2);
|
|
|
|
$rootScope.myModel1.date=$rootScope.followupDetails.followupDetails[0].FollowupOn;*/
|
|
|
|
/* $scope.editId = pid;*/
|
|
$state.go('app.call.trackingFollowup');
|
|
};
|
|
|
|
// sorting function for table params
|
|
$scope.sort = function(keyname){
|
|
$scope.sortKey = keyname; //set the sortKey to the param passed
|
|
$scope.reverse = !$scope.reverse; //if true make it false and vice versa
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
*get tracking list
|
|
* created by kms
|
|
* */
|
|
$scope.init = function (form,myModel) {
|
|
|
|
if(isNaN(myModel.leadDate)){
|
|
$scope.loadDate= $filter('date')(new Date(), 'yyyy-MM-dd');
|
|
|
|
}
|
|
else if(myModel.leadDate==null || myModel.leadDate==''){
|
|
$scope.loadDate="";
|
|
}
|
|
else{
|
|
$scope.getdate=new Date(myModel.leadDate).toDateString();
|
|
|
|
$scope.loadDate = $filter('date')(new Date($scope.getdate), 'yyyy-MM-dd');
|
|
}
|
|
$scope.loader = true;
|
|
|
|
var getRecentlead = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'getRecentLeadDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
loadDate:$scope.loadDate,
|
|
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
|
|
requestedDept: JSON.parse(localStorage.getItem('localObj')).localType,
|
|
branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID
|
|
}
|
|
};
|
|
$http(getRecentlead).then(function (response) {
|
|
|
|
if (response.data.status == 200 && response.data.trackingStatus == true) {
|
|
$scope.loader = false;
|
|
|
|
$rootScope.trackingStatus = response.data.statusDetails;
|
|
|
|
$scope.data = response.data.trackingDetails;
|
|
|
|
localStorage.setItem('trackingList', JSON.stringify($scope.data));
|
|
|
|
// this for search box
|
|
/* $scope.search = {searchDate: ''};
|
|
$scope.tableParams = new ngTableParams({
|
|
page: 1,
|
|
count: 10,
|
|
filter: $scope.search
|
|
}, {
|
|
total: data.length,
|
|
getData: function ($defer, params) {
|
|
var orderedData = params.sorting() ? $filter('orderBy')(data, params.orderBy()) : data;
|
|
orderedData = params.filter() ? $filter('filter')(orderedData, params.filter().followupDate) : orderedData;
|
|
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
|
|
}
|
|
});*/
|
|
|
|
|
|
} else {
|
|
$scope.loader = false;
|
|
$scope.data='';
|
|
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
}]);
|
|
/*
|
|
* close tracking controller
|
|
* */
|
|
app.controller('callTrackingCloseCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state) {
|
|
localStorage.setItem('searchName','');
|
|
localStorage.setItem('searchMobile','');
|
|
$scope.myModel = {
|
|
"closeDate": new Date(),
|
|
};
|
|
|
|
|
|
//get current date
|
|
$scope.currentDate=$filter('date')(new Date(), 'dd-MM-yyyy');
|
|
$scope.maxDate=moment();
|
|
// get 30 plus date for follwup details
|
|
$scope.modifyDate = moment();
|
|
$scope.modifyDate.add(30, 'days');
|
|
$scope.futureDate = $filter('date')($scope.modifyDate, 'dd-MM-yyyy');
|
|
|
|
$scope.myModel.closeDate=$scope.currentDate;
|
|
|
|
/*
|
|
* edit track details
|
|
* created by kms
|
|
* */
|
|
$scope.setEditId = function (p,search1,search2,search3,search4,search5) {
|
|
$scope.searchData = {
|
|
"searchDate": search1,
|
|
"searchName": search2,
|
|
'serachActivity': search3,
|
|
'searchAssignTo': search4,
|
|
'searchStatus': search5,
|
|
'callFrom': "close"
|
|
}
|
|
|
|
|
|
localStorage.setItem('searchObj', JSON.stringify($scope.searchData));
|
|
localStorage.setItem('trackID', p.TrackingID);
|
|
localStorage.setItem('count', 0);
|
|
$rootScope.followupDetails=p;
|
|
/* $rootScope.myModel1.status=$rootScope.followupDetails.StatusCode;
|
|
$rootScope.currentDate1=new Date().getFullYear() + '-' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '-' + ('0' + new Date().getDate()).slice(-2);
|
|
|
|
$rootScope.myModel1.date=$rootScope.followupDetails.followupDetails[0].FollowupOn;*/
|
|
|
|
/* $scope.editId = pid;*/
|
|
$state.go('app.call.trackingFollowup');
|
|
};
|
|
|
|
// sorting function for table params
|
|
$scope.sort = function(keyname){
|
|
$scope.sortKey = keyname; //set the sortKey to the param passed
|
|
$scope.reverse = !$scope.reverse; //if true make it false and vice versa
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
*get tracking list
|
|
* created by kms
|
|
* */
|
|
$scope.init = function (form,myModel) {
|
|
|
|
if(isNaN(myModel.closeDate)){
|
|
$scope.loadDate= $filter('date')(new Date(), 'yyyy-MM-dd');
|
|
|
|
}
|
|
else if(myModel.closeDate==null || myModel.closeDate==''){
|
|
$scope.loadDate="";
|
|
}
|
|
else{
|
|
$scope.getdate=new Date(myModel.closeDate).toDateString();
|
|
|
|
$scope.loadDate = $filter('date')(new Date($scope.getdate), 'yyyy-MM-dd');
|
|
}
|
|
$scope.loader = true;
|
|
|
|
var getRecentclose = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'getRecentCloseDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
loadDate:$scope.loadDate,
|
|
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
|
|
requestedDept: JSON.parse(localStorage.getItem('localObj')).localType,
|
|
branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID
|
|
|
|
}
|
|
};
|
|
$http(getRecentclose).then(function (response) {
|
|
|
|
if (response.data.status == 200 && response.data.trackingStatus == true) {
|
|
$scope.loader = false;
|
|
|
|
$rootScope.trackingStatus = response.data.statusDetails;
|
|
|
|
$scope.data = response.data.trackingDetails;
|
|
|
|
localStorage.setItem('trackingList', JSON.stringify($scope.data));
|
|
|
|
// this for search box
|
|
/* $scope.search = {searchDate: ''};
|
|
$scope.tableParams = new ngTableParams({
|
|
page: 1,
|
|
count: 10,
|
|
filter: $scope.search
|
|
}, {
|
|
total: data.length,
|
|
getData: function ($defer, params) {
|
|
var orderedData = params.sorting() ? $filter('orderBy')(data, params.orderBy()) : data;
|
|
orderedData = params.filter() ? $filter('filter')(orderedData, params.filter().followupDate) : orderedData;
|
|
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
|
|
}
|
|
});*/
|
|
|
|
|
|
} else {
|
|
$scope.loader = false;
|
|
$scope.data='';
|
|
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
}]);
|
|
/*
|
|
* pending tracking controller
|
|
* */
|
|
app.controller('callTrackingPendingCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state) {
|
|
localStorage.setItem('searchName','');
|
|
localStorage.setItem('searchMobile','');
|
|
$scope.myModel = {
|
|
"pendingDate": new Date(),
|
|
};
|
|
|
|
|
|
//get current date
|
|
$scope.currentDate=$filter('date')(new Date(), 'dd-MM-yyyy');
|
|
$scope.maxDate=moment();
|
|
// get 30 plus date for follwup details
|
|
$scope.modifyDate = moment();
|
|
$scope.modifyDate.add(30, 'days');
|
|
$scope.futureDate = $filter('date')($scope.modifyDate, 'dd-MM-yyyy');
|
|
|
|
$scope.myModel.pendingDate=$scope.currentDate;
|
|
|
|
/*
|
|
* edit track details
|
|
* created by kms
|
|
* */
|
|
$scope.setEditId = function (p,search1,search2,search3,search4,search5) {
|
|
$scope.searchData = {
|
|
"searchDate": search1,
|
|
"searchName": search2,
|
|
'serachActivity': search3,
|
|
'searchAssignTo': search4,
|
|
'searchStatus': search5,
|
|
'callFrom': "pending"
|
|
}
|
|
|
|
|
|
localStorage.setItem('searchObj', JSON.stringify($scope.searchData));
|
|
localStorage.setItem('trackID', p.TrackingID);
|
|
localStorage.setItem('count', 0);
|
|
$rootScope.followupDetails=p;
|
|
/* $rootScope.myModel1.status=$rootScope.followupDetails.StatusCode;
|
|
$rootScope.currentDate1=new Date().getFullYear() + '-' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '-' + ('0' + new Date().getDate()).slice(-2);
|
|
|
|
$rootScope.myModel1.date=$rootScope.followupDetails.followupDetails[0].FollowupOn;*/
|
|
|
|
/* $scope.editId = pid;*/
|
|
$state.go('app.call.trackingFollowup');
|
|
};
|
|
|
|
// sorting function for table params
|
|
$scope.sort = function(keyname){
|
|
$scope.sortKey = keyname; //set the sortKey to the param passed
|
|
$scope.reverse = !$scope.reverse; //if true make it false and vice versa
|
|
|
|
}
|
|
|
|
|
|
/*
|
|
*get tracking list
|
|
* created by kms
|
|
* */
|
|
$scope.init = function (form,myModel) {
|
|
|
|
if(isNaN(myModel.pendingDate)){
|
|
$scope.loadDate= $filter('date')(new Date(), 'yyyy-MM-dd');
|
|
|
|
}
|
|
else if(myModel.pendingDate==null || myModel.pendingDate==''){
|
|
$scope.loadDate="";
|
|
}
|
|
else{
|
|
$scope.getdate=new Date(myModel.pendingDate).toDateString();
|
|
|
|
$scope.loadDate = $filter('date')(new Date($scope.getdate), 'yyyy-MM-dd');
|
|
}
|
|
$scope.loader = true;
|
|
|
|
var getRecentclose = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'getRecentPendingDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
loadDate:$scope.loadDate,
|
|
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
|
|
requestedDept: JSON.parse(localStorage.getItem('localObj')).localType,
|
|
branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID
|
|
}
|
|
};
|
|
$http(getRecentclose).then(function (response) {
|
|
|
|
if (response.data.status == 200 && response.data.trackingStatus == true) {
|
|
$scope.loader = false;
|
|
|
|
$rootScope.trackingStatus = response.data.statusDetails;
|
|
|
|
$scope.data = response.data.trackingDetails;
|
|
|
|
localStorage.setItem('trackingList', JSON.stringify($scope.data));
|
|
|
|
// this for search box
|
|
/* $scope.search = {searchDate: ''};
|
|
$scope.tableParams = new ngTableParams({
|
|
page: 1,
|
|
count: 10,
|
|
filter: $scope.search
|
|
}, {
|
|
total: data.length,
|
|
getData: function ($defer, params) {
|
|
var orderedData = params.sorting() ? $filter('orderBy')(data, params.orderBy()) : data;
|
|
orderedData = params.filter() ? $filter('filter')(orderedData, params.filter().followupDate) : orderedData;
|
|
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
|
|
}
|
|
});*/
|
|
|
|
|
|
}
|
|
|
|
else {
|
|
$scope.loader = false;
|
|
$scope.data='';
|
|
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
}]);
|
|
|
|
app.controller('callTrackingCtrl2', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state) {
|
|
$scope.afterRefresh = function () {
|
|
|
|
$rootScope.myModel1 = {
|
|
"status":'',
|
|
"date": '',
|
|
"comments": "",
|
|
};
|
|
$rootScope.loadFollowupDetails(localStorage.getItem('trackID'));
|
|
};
|
|
|
|
/*
|
|
* used to get tracking list
|
|
* */
|
|
$rootScope.next = function(trackID){
|
|
|
|
$scope.ListOfTracks=JSON.parse(localStorage.getItem('trackingList'));
|
|
$scope.searchedData=JSON.parse(localStorage.getItem('searchObj'));
|
|
// search date in array list
|
|
|
|
$scope.searchedTrackingList=[];
|
|
|
|
if($scope.searchedData.searchDate!='' && $scope.searchedData.searchDate!=null && $scope.searchedData.searchDate!=undefined){
|
|
|
|
angular.forEach($scope.ListOfTracks,function (value,key) {
|
|
|
|
if((value.followupDetails)==$scope.searchedData.searchDate){
|
|
|
|
$scope.searchedTrackingList.push(value);
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
}
|
|
else{
|
|
angular.forEach($scope.ListOfTracks,function (value,key) {
|
|
|
|
$scope.searchedTrackingList.push(value);
|
|
});
|
|
|
|
}
|
|
|
|
// search name/mobile in array list
|
|
|
|
$scope.searchedTrackingList_Name=[];
|
|
|
|
if($scope.searchedData.searchName!='' && $scope.searchedData.searchName!=null && $scope.searchedData.searchName!=undefined){
|
|
|
|
$scope.regInteger = /^\d+$/;
|
|
if($scope.regInteger.test($scope.searchedData.searchName)){
|
|
$scope.searchText = $scope.searchedData.searchName;
|
|
angular.forEach($scope.searchedTrackingList, function(item) {
|
|
if( item.MobileNumber.indexOf($scope.searchText) >= 0 ){
|
|
$scope.searchedTrackingList_Name.push(item);
|
|
}
|
|
|
|
});
|
|
}
|
|
else{
|
|
$scope.searchText = $scope.searchedData.searchName.toLowerCase();
|
|
angular.forEach($scope.searchedTrackingList, function(item) {
|
|
if( item.LeadName.toLowerCase().indexOf($scope.searchText) >= 0 ){
|
|
$scope.searchedTrackingList_Name.push(item);
|
|
}
|
|
|
|
});
|
|
}
|
|
}
|
|
else{
|
|
angular.forEach($scope.searchedTrackingList,function (value,key) {
|
|
|
|
$scope.searchedTrackingList_Name.push(value);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
// serach activity in array list
|
|
|
|
$scope.searchedTrackingList_Activity=[];
|
|
|
|
if($scope.searchedData.serachActivity!='' && $scope.searchedData.serachActivity!=null && $scope.searchedData.serachActivity!=undefined){
|
|
|
|
$scope.searchText_activity = $scope.searchedData.serachActivity.toLowerCase();
|
|
angular.forEach($scope.searchedTrackingList_Name, function(item) {
|
|
|
|
if( item.ActivityName.toLowerCase().indexOf($scope.searchText_activity) >= 0 ){
|
|
$scope.searchedTrackingList_Activity.push(item);
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
else{
|
|
angular.forEach($scope.searchedTrackingList_Name,function (value,key) {
|
|
|
|
$scope.searchedTrackingList_Activity.push(value);
|
|
});
|
|
|
|
}
|
|
|
|
// serach assigned to in array list
|
|
$scope.searchedTrackingList_AssignedTo=[];
|
|
|
|
if($scope.searchedData.searchAssignTo!='' && $scope.searchedData.searchAssignTo!=null && $scope.searchedData.searchAssignTo!=undefined){
|
|
|
|
$scope.searchText_assignedTo = $scope.searchedData.searchAssignTo.toLowerCase();
|
|
angular.forEach($scope.searchedTrackingList_Activity, function(item) {
|
|
|
|
if(item.Firstname.toLowerCase().indexOf($scope.searchText_assignedTo) >= 0 ){
|
|
$scope.searchedTrackingList_AssignedTo.push(item);
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
}
|
|
else{
|
|
angular.forEach($scope.searchedTrackingList_Activity,function (value,key) {
|
|
|
|
$scope.searchedTrackingList_AssignedTo.push(value);
|
|
});
|
|
|
|
}
|
|
|
|
// search status in array list
|
|
|
|
$scope.searchedTrackingList_Status=[];
|
|
|
|
if($scope.searchedData.searchStatus!='' && $scope.searchedData.searchStatus!=null && $scope.searchedData.searchStatus!=undefined){
|
|
|
|
$scope.searchText_status = $scope.searchedData.searchStatus.toLowerCase();
|
|
angular.forEach($scope.searchedTrackingList_AssignedTo, function(item) {
|
|
|
|
if( item.statusName.toLowerCase().indexOf($scope.searchText_status) >= 0 ){
|
|
$scope.searchedTrackingList_Status.push(item);
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
else{
|
|
angular.forEach($scope.searchedTrackingList_AssignedTo,function (value,key) {
|
|
|
|
$scope.searchedTrackingList_Status.push(value);
|
|
});
|
|
|
|
}
|
|
|
|
/*
|
|
* used to move next track list in searched array list
|
|
* */
|
|
angular.forEach($scope.searchedTrackingList_Status,function (value,key) {
|
|
|
|
if(value.TrackingID==trackID){
|
|
$scope.nextTrack=$scope.searchedTrackingList_Status[key+1];
|
|
if($scope.nextTrack!='' && $scope.nextTrack!=undefined){
|
|
$rootScope.loadFollowupDetails($scope.nextTrack.TrackingID);
|
|
|
|
}
|
|
else{
|
|
swal("EMPTY!", "No more records to display", "info");
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
});
|
|
}
|
|
|
|
/*
|
|
* get previous track list in searched array list
|
|
* */
|
|
|
|
$rootScope.previous = function(trackID){
|
|
|
|
$scope.prevListOfTracks=JSON.parse(localStorage.getItem('trackingList'));
|
|
$scope.prevsearchedData=JSON.parse(localStorage.getItem('searchObj'));
|
|
|
|
// search date in array list
|
|
|
|
$scope.prevsearchedTrackingList=[];
|
|
|
|
if($scope.prevsearchedData.searchDate!='' && $scope.prevsearchedData.searchDate!=null && $scope.prevsearchedData.searchDate!=undefined){
|
|
|
|
angular.forEach($scope.prevListOfTracks,function (value,key) {
|
|
|
|
if((value.followupDetails)==$scope.prevsearchedData.searchDate){
|
|
|
|
$scope.prevsearchedTrackingList.push(value);
|
|
|
|
}
|
|
|
|
|
|
});
|
|
}
|
|
else{
|
|
angular.forEach($scope.prevListOfTracks,function (value,key) {
|
|
|
|
$scope.prevsearchedTrackingList.push(value);
|
|
});
|
|
|
|
}
|
|
|
|
// search name/mobile in array list
|
|
|
|
$scope.prevsearchedTrackingList_Name=[];
|
|
|
|
if($scope.prevsearchedData.searchName!='' && $scope.prevsearchedData.searchName!=null && $scope.prevsearchedData.searchName!=undefined){
|
|
|
|
$scope.prevregInteger = /^\d+$/;
|
|
if($scope.prevregInteger.test($scope.prevsearchedData.searchName)){
|
|
$scope.prevsearchText = $scope.prevsearchedData.searchName;
|
|
angular.forEach($scope.prevsearchedTrackingList, function(item) {
|
|
if( item.MobileNumber.indexOf($scope.prevsearchText) >= 0 ){
|
|
$scope.prevsearchedTrackingList_Name.push(item);
|
|
}
|
|
|
|
});
|
|
}
|
|
else{
|
|
$scope.prevsearchText = $scope.prevsearchedData.searchName.toLowerCase();
|
|
angular.forEach($scope.prevsearchedTrackingList, function(item) {
|
|
if( item.LeadName.toLowerCase().indexOf($scope.prevsearchText) >= 0 ){
|
|
$scope.prevsearchedTrackingList_Name.push(item);
|
|
}
|
|
|
|
});
|
|
}
|
|
}
|
|
else{
|
|
angular.forEach($scope.prevsearchedTrackingList,function (value,key) {
|
|
|
|
$scope.prevsearchedTrackingList_Name.push(value);
|
|
});
|
|
|
|
}
|
|
|
|
|
|
// serach activity in array list
|
|
|
|
$scope.prevsearchedTrackingList_Activity=[];
|
|
|
|
if($scope.prevsearchedData.serachActivity!='' && $scope.prevsearchedData.serachActivity!=null && $scope.prevsearchedData.serachActivity!=undefined){
|
|
|
|
$scope.prevsearchText_activity = $scope.prevsearchedData.serachActivity.toLowerCase();
|
|
angular.forEach($scope.prevsearchedTrackingList_Name, function(item) {
|
|
|
|
if( item.ActivityName.toLowerCase().indexOf($scope.prevsearchText_activity) >= 0 ){
|
|
$scope.prevsearchedTrackingList_Activity.push(item);
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
else{
|
|
angular.forEach($scope.prevsearchedTrackingList_Name,function (value,key) {
|
|
|
|
$scope.prevsearchedTrackingList_Activity.push(value);
|
|
});
|
|
|
|
}
|
|
|
|
// serach assigned to in array list
|
|
$scope.prevsearchedTrackingList_AssignedTo=[];
|
|
|
|
if($scope.prevsearchedData.searchAssignTo!='' && $scope.prevsearchedData.searchAssignTo!=null && $scope.prevsearchedData.searchAssignTo!=undefined){
|
|
|
|
$scope.prevsearchText_assignedTo = $scope.prevsearchedData.searchAssignTo.toLowerCase();
|
|
angular.forEach($scope.prevsearchedTrackingList_Activity, function(item) {
|
|
|
|
if( item.Firstname.toLowerCase().indexOf($scope.prevsearchText_assignedTo) >= 0 ){
|
|
$scope.prevsearchedTrackingList_AssignedTo.push(item);
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
else{
|
|
angular.forEach($scope.prevsearchedTrackingList_Activity,function (value,key) {
|
|
|
|
$scope.prevsearchedTrackingList_AssignedTo.push(value);
|
|
});
|
|
|
|
}
|
|
|
|
// search status in array list
|
|
|
|
$scope.prevsearchedTrackingList_Status=[];
|
|
|
|
if($scope.prevsearchedData.searchStatus!='' && $scope.prevsearchedData.searchStatus!=null && $scope.prevsearchedData.searchStatus!=undefined){
|
|
|
|
$scope.prevsearchText_status = $scope.prevsearchedData.searchStatus.toLowerCase();
|
|
angular.forEach($scope.prevsearchedTrackingList_AssignedTo, function(item) {
|
|
|
|
if( item.statusName.toLowerCase().indexOf($scope.prevsearchText_status) >= 0 ){
|
|
$scope.prevsearchedTrackingList_Status.push(item);
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
else{
|
|
angular.forEach($scope.prevsearchedTrackingList_AssignedTo,function (value,key) {
|
|
|
|
$scope.prevsearchedTrackingList_Status.push(value);
|
|
});
|
|
|
|
}
|
|
|
|
/*
|
|
* final previous
|
|
* result
|
|
* */
|
|
angular.forEach($scope.prevsearchedTrackingList_Status,function (value,key) {
|
|
|
|
if(value.TrackingID==trackID){
|
|
$scope.prevTrack=$scope.prevsearchedTrackingList_Status[key-1];
|
|
if($scope.prevTrack!='' && $scope.prevTrack!=undefined){
|
|
$rootScope.loadFollowupDetails($scope.prevTrack.TrackingID);
|
|
|
|
}
|
|
else{
|
|
swal("EMPTY!", "No more records to display", "info");
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
* update the follow up details
|
|
* created by kms
|
|
* */
|
|
$rootScope.updateFollowup = function (followupDetails,myModel1, loading) {
|
|
|
|
if(isNaN(myModel1.date)){
|
|
$scope.nextFollowupDate = myModel1.date;
|
|
|
|
}
|
|
else{
|
|
$scope.getdate=new Date(myModel1.date).toDateString();
|
|
|
|
$scope.nextFollowupDate = $filter('date')(new Date($scope.getdate), 'dd-MM-yyyy');
|
|
}
|
|
|
|
if(myModel1.status==null || myModel1.status=='' || myModel1.status==undefined){
|
|
swal("Warning!", 'Please select status', "warning");
|
|
}
|
|
else if (myModel1.comments=='') {
|
|
swal("Warning!", 'Please enter comments', "warning");
|
|
} else {
|
|
|
|
$rootScope.ldloading2 = {};
|
|
|
|
$rootScope.ldloading2[loading.replace('-', '_')] = true;
|
|
|
|
|
|
var update = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'updateFollowupDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
trackingID: followupDetails.TrackingID,
|
|
date: $scope.nextFollowupDate,
|
|
status: myModel1.status,
|
|
comments: myModel1.comments,
|
|
updatedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
|
|
branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID,
|
|
}
|
|
};
|
|
$http(update).then(function (response) {
|
|
if (response.data.status==200 && response.data.followupStatus) {
|
|
$rootScope.loadFollowupDetails(response.data.trackingID);
|
|
$scope.ldloading2[loading.replace('-', '_')] = false;
|
|
$rootScope.myModel1.comments='';
|
|
|
|
} else {
|
|
$scope.ldloading[loading.replace('-', '_')] = false;
|
|
swal("Failed!", response.data.message, "error");
|
|
}
|
|
});
|
|
}
|
|
};
|
|
$rootScope.loadFollowupDetails = function (trackID) {
|
|
|
|
var load = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'loadFollowupDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
trackingID: trackID,
|
|
updatedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
|
|
branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID
|
|
|
|
}
|
|
};
|
|
$http(load).then(function (response) {
|
|
if (response.data.status==200 && response.data.followupStatus) {
|
|
$rootScope.followupDetails=response.data.trackingDetails[0];
|
|
$rootScope.myModel1.status=$rootScope.followupDetails.StatusCode;
|
|
$rootScope.currentDate1=new Date().getFullYear() + '-' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '-' + ('0' + new Date().getDate()).slice(-2);
|
|
|
|
$rootScope.myModel1.date=$rootScope.followupDetails.followupDetails[0].FollowupOn;
|
|
// get 30 plus date for follwup details
|
|
$rootScope.modifyDate1 = moment();
|
|
$rootScope.modifyDate1.add(30, 'days');
|
|
$rootScope.futureDate1 = $filter('date')($scope.modifyDate1, 'dd-MM-yyyy');
|
|
$rootScope.myModel1.status=$rootScope.followupDetails.StatusCode;
|
|
$rootScope.trackingStatus=response.data.statusDetails;
|
|
} else {
|
|
swal("Failed!", response.data.message, "error");
|
|
}
|
|
});
|
|
|
|
|
|
}
|
|
|
|
/*
|
|
* cancel the page
|
|
* created by kms
|
|
* */
|
|
$scope.cancel = function () {
|
|
if(JSON.parse(localStorage.getItem('searchObj')).callFrom=='details'){
|
|
$state.go('app.call.tracking');
|
|
}
|
|
else if(JSON.parse(localStorage.getItem('searchObj')).callFrom=='lead'){
|
|
$state.go('app.call.lead');
|
|
}
|
|
else if(JSON.parse(localStorage.getItem('searchObj')).callFrom=='close'){
|
|
$state.go('app.call.close');
|
|
}
|
|
else if(JSON.parse(localStorage.getItem('searchObj')).callFrom=='pending'){
|
|
$state.go('app.call.pending');
|
|
}
|
|
else{
|
|
$state.go('app.call.tracking');
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
}]);
|
|
app.filter('unique', function() {
|
|
return function(collection, primaryKey, secondaryKey) { //optional secondary key
|
|
var output = [],
|
|
keys = [];
|
|
|
|
angular.forEach(collection, function(item) {
|
|
var key;
|
|
secondaryKey === undefined ? key = item[primaryKey] : key = item[primaryKey][secondaryKey];
|
|
|
|
if(keys.indexOf(key) === -1) {
|
|
keys.push(key);
|
|
output.push(item);
|
|
}
|
|
});
|
|
|
|
return output;
|
|
};
|
|
});
|
|
|
|
|
|
|
|
|