'use strict'; /** * controllers for ng-table * Simple table with sorting and filtering on AngularJS */ app.controller('dashboardCtrl', ["$scope","$rootScope", "toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", function ($scope,$rootScope, toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state) { /* * used to get dash board call track details * this method called from view ng-init directive * created by kms * */ $scope.getLoginType=JSON.parse(localStorage.getItem('localObj')).localType; $scope.initCallTracking = function () { $rootScope.pendingFolloupDetails = []; var getCallTrack = { method: 'POST', url: apiPoint.url + 'getDashboardCallTrack/', headers: { 'Content-Type': 'application/json' }, data: { requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID, branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID, requestedDept: JSON.parse(localStorage.getItem('localObj')).localType } }; $http(getCallTrack).then(function (response) { /* if(response.data.status == 200 && response.data.followupStatus){ $scope.currentDate = new Date().getFullYear() + '-' + ('0' + (new Date().getMonth() + 1)).slice(-2) + '-' + ('0' + new Date().getDate()).slice(-2); $scope.getFollowupDetails = response.data.details; angular.forEach($scope.getFollowupDetails, function (value, key) { if (($scope.currentDate) < (value[0].FollowupOn)) { $rootScope.pendingFolloupDetails.push(value[0]); console.log($rootScope.pendingFolloupDetails); } }); } else{ }*/ if (response.data.status == 200) { if (response.data.todayStatus) { $scope.todayFolloupDetails = response.data.todayFolloupDetails.trackingDetails; $scope.emptyDataToday = false; } else { $scope.todayFolloupDetails = ""; $scope.emptyDataToday = true; } if (response.data.todayPendingStatus) { // $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(), 'yyyy-MM-dd'); $scope.fetchFolloupDetails = response.data.PendingFolloupDetails.trackingDetails; angular.forEach($scope.fetchFolloupDetails, function (value, key) { var getDay = value.FollowupOn.substring(0, 2); var getMonth = value.FollowupOn.substring(3, 5); var getYear = value.FollowupOn.substring(6, 10); // var dbFollowDate = getYear+'-'+getMonth+'-'+getDay; $scope.dbFollowDate = getYear+'-'+getMonth+'-'+getDay; if (($scope.currentDate) > ($scope.dbFollowDate) && (value.statusName!='CLOSE')) { $rootScope.pendingFolloupDetails.push(value); } }); if($rootScope.pendingFolloupDetails.length==0){ $scope.emptyDataPending = true; } else{ $scope.emptyDataPending = false; } } else { $scope.pendingFolloupDetails = ""; $scope.emptyDataPending = true; } if (response.data.todayLeadStatus) { $scope.leadDetails = response.data.todayLeadDetails.trackingDetails; $scope.emptyDataLead = false; } else { $scope.leadDetails = ""; $scope.emptyDataLead = true; } } else { $scope.emptyDataToday = true; $scope.emptyDataPending = true; } }); }; }]); /*Header Fixed */ app.directive('fixedHeader', function($timeout){ return { restrict: 'A', link: link }; function link($scope, $elem, $attrs, $ctrl) { var elem = $elem[0]; // wait for data to load and then transform the table $scope.$watch(tableDataLoaded, function(isTableDataLoaded) { if (isTableDataLoaded) { transformTable(); } }); function tableDataLoaded() { // first cell in the tbody exists when data is loaded but doesn't have a width // until after the table is transformed var firstCell = elem.querySelector('tbody tr:first-child td:first-child'); return firstCell && !firstCell.style.width; } function transformTable() { // reset display styles so column widths are correct when measured below angular.element(elem.querySelectorAll('thead, tbody')).css('display', ''); // wrap in $timeout to give table a chance to finish rendering $timeout(function () { // set widths of columns angular.forEach(elem.querySelectorAll('tr:first-child th'), function (thElem, i) { var tdElems = elem.querySelector('tbody tr:first-child td:nth-child(' + (i + 1) + ')'); var tfElems = elem.querySelector('tfoot tr:first-child td:nth-child(' + (i + 1) + ')'); var columnWidth = tdElems ? tdElems.offsetWidth : thElem.offsetWidth; if (tdElems) { tdElems.style.width = columnWidth + '150px'; } if (thElem) { thElem.style.width = columnWidth + '150px'; } }); // set css styles on thead and tbody angular.element(elem.querySelectorAll('thead, tfoot')).css('display', 'block'); angular.element(elem.querySelectorAll('tbody')).css({ 'display': 'block', 'height': $attrs.tableHeight || 'inherit', 'overflow': 'auto' }); // reduce width of last column by width of scrollbar var tbody = elem.querySelector('tbody'); var scrollBarWidth = tbody.offsetWidth - tbody.clientWidth; if (scrollBarWidth > 0) { // for some reason trimming the width by 2px lines everything up better scrollBarWidth -= 2; var lastColumn = elem.querySelector('tbody tr:first-child td:last-child'); lastColumn.style.width = (lastColumn.offsetWidth - scrollBarWidth) + 'px'; } }); } } }); app.controller('OnotherCtrl', ["$scope", "toaster", "$filter", "$http", "API_POINTS", "$state", '$cookies', 'ipCookie', function ($scope, toaster, $filter, $http, apiPoint, $state, $cookies, ipCookie) { // get local cliend details var localDetail = JSON.parse(localStorage.getItem('localObj')); var localDetails = ipCookie('cookiechk'); $scope.init = function () { // $scope.this_Student = 0; // $scope.this_Staff = 0; // $scope.this_TotalUser = 0; // $scope.getTotalUsers(); $scope.getUniversityRegisteredDetails(); } // get Total Number of users in this application $scope.getTotalUsers = function () { var req = { method: 'POST', url: apiPoint.url + 'getTotalUsers/', headers: { 'Content-Type': 'application/json' }, data: { data: localDetails } }; $http(req).then(function (response) { if (response.data) { // $scope.editBranchId = id; $scope.this_Student = response.data.total_student; $scope.this_Staff = response.data.total_staff; $scope.this_TotalUser = $scope.this_Staff + $scope.this_Student; // alert($scope.this_TotalUser); $scope.data = [ { value: $scope.this_Student, color: '#46BFBD', highlight: '#5AD3D1', label: 'Student' }, { value: $scope.this_Staff, color: '#FDB45C', highlight: '#FFC870', label: 'Staff' } ]; $scope.total = $scope.this_TotalUser; } else { // $scope.this_Student = response.total_student; // $scope.this_Staff = response.total_staff; $scope.data = [ { value: $scope.this_Student, color: '#F7464A', highlight: '#5AD3D1', label: 'Student' }, { value: $scope.this_Staff, color: '#FDB45C', highlight: '#FFC870', label: 'Staff' } ]; $scope.this_TotalUser = 0; $scope.total = $scope.this_TotalUser; } }); } // Chart.js Data // Chart.js Options $scope.options = { // Sets the chart to be responsive responsive: false, //Boolean - Whether we should show a stroke on each segment segmentShowStroke: true, //String - The colour of each segment stroke segmentStrokeColor: '#fff', //Number - The width of each segment stroke segmentStrokeWidth: 2, //Number - The percentage of the chart that we cut out of the middle percentageInnerCutout: 50, // This is 0 for Pie charts //Number - Amount of animation steps animationSteps: 100, //String - Animation easing effect animationEasing: 'easeOutBounce', //Boolean - Whether we animate the rotation of the Doughnut animateRotate: true, //Boolean - Whether we animate scaling the Doughnut from the centre animateScale: false, //String - A legend template legendTemplate: '