diff --git a/Apollo/api/application/config/routes.php b/Apollo/api/application/config/routes.php index a70e8479..adee3a34 100644 --- a/Apollo/api/application/config/routes.php +++ b/Apollo/api/application/config/routes.php @@ -124,6 +124,7 @@ $route['updateAnnouncementDetails'] = 'Announcement_Controller/updateAnnouncemen $route['getDashboardCallTrack'] = 'Call_Tracking_Controller/getDashboardCallTrack'; $route['getTotalStudent'] = 'Dashboard_Controller/getTotalStudent'; $route['getTotalEmployee'] = 'Dashboard_Controller/getTotalEmployee'; +$route['getTotalUsers'] = 'Dashboard_Controller/getTotalUsers'; diff --git a/Apollo/api/application/controllers/Dashboard_Controller.php b/Apollo/api/application/controllers/Dashboard_Controller.php index fdd7a12d..30cd7d1f 100644 --- a/Apollo/api/application/controllers/Dashboard_Controller.php +++ b/Apollo/api/application/controllers/Dashboard_Controller.php @@ -36,6 +36,24 @@ class Dashboard_Controller extends REST_Controller { $this->load->model('Dashboard_model', 'dashboard_model'); } + public function getTotalUsers_post() { + $data = $this->post('data'); + $totalUsers = $this->dashboard_model->get_total_users( $data );// Check if the employee exist + if ($totalUsers) { + $totalUsers['status'] = REST_Controller::HTTP_OK; + // Set the response and exit + $this->response($totalUsers, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code + } + else + { + // Set the response and exit + $this->response([ + 'message' => 'No users were found', + 'status' => REST_Controller::HTTP_NOT_FOUND + ], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code + } + } + public function getTotalStudent_post() { $data = $this->post('data'); $totalStudents = $this->dashboard_model->get_total_students( $data );// Check if the employee exist diff --git a/Apollo/api/application/models/Dashboard_model.php b/Apollo/api/application/models/Dashboard_model.php index a6ba70be..94b5af7d 100644 --- a/Apollo/api/application/models/Dashboard_model.php +++ b/Apollo/api/application/models/Dashboard_model.php @@ -14,6 +14,27 @@ class Dashboard_model extends CI_Model /* * get Dashboard Details */ + + // get total number of users + public function get_total_users( $data ) { + $sql1 = "SELECT * from ".STUDENTS.""; + $count1 = $this->db->query($sql1); + $sql2 = "SELECT * from ".STAFF.""; + $count2 = $this->db->query($sql2); + + if( $count2->num_rows() > 0) { + $result['status'] = true; + $result['total_student'] = $count1->num_rows(); + $result['total_staff'] = $count2->num_rows(); + $result['message'] = "Total Number of Users"; + } else { + $result['status'] = true; + $result['total_student'] = $count1->num_rows(); + $result['total_staff'] = $count2->num_rows(); + $result['message'] = "No student Users"; + } + return $result; + } // get total number of students public function get_total_students($data) { diff --git a/Apollo/assets/js/controllers/dashboardCtrl.js b/Apollo/assets/js/controllers/dashboardCtrl.js index cf9663eb..1acfe976 100644 --- a/Apollo/assets/js/controllers/dashboardCtrl.js +++ b/Apollo/assets/js/controllers/dashboardCtrl.js @@ -4,7 +4,7 @@ * 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) { +app.controller('dashboardCtrl', ["$scope", "toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", function ($scope, toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state) { /* * used to get dash board call track details * this method called from view ng-init directive @@ -12,7 +12,6 @@ app.controller('dashboardCtrl', ["$scope","$rootScope","toaster", "$filter", "ng * */ $scope.initCallTracking = function () { - $rootScope.pendingFolloupDetails = []; var getCallTrack = { method: 'POST', url: apiPoint.url + 'getDashboardCallTrack/', @@ -24,39 +23,31 @@ app.controller('dashboardCtrl', ["$scope","$rootScope","toaster", "$filter", "ng } }; $http(getCallTrack).then(function (response) { - if (response.data.status==200) { - if(response.data.todayStatus){ + if (response.data.status == 200) { + if (response.data.todayStatus) { - $scope.todayFolloupDetails=response.data.todayFolloupDetails.trackingDetails; - $scope.emptyDataToday=false; + $scope.todayFolloupDetails = response.data.todayFolloupDetails.trackingDetails; + $scope.emptyDataToday = false; } - else{ - $scope.todayFolloupDetails=""; - $scope.emptyDataToday=true; + 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.fetchFolloupDetails=response.data.PendingFolloupDetails.trackingDetails; - angular.forEach($scope.fetchFolloupDetails, function(value, key){ - if(($scope.currentDate) < (value.FollowupOn)){ - $rootScope.pendingFolloupDetails.push(value); - } - - }); - $scope.emptyDataPending=false; + if (response.data.todayPendingStatus) { + $scope.pendingFolloupDetails = response.data.PendingFolloupDetails.trackingDetails; + $scope.emptyDataPending = false; } - else{ - $scope.pendingFolloupDetails=""; - $scope.emptyDataPending=true; + else { + $scope.pendingFolloupDetails = ""; + $scope.emptyDataPending = true; } - if(response.data.todayLeadStatus){ - $scope.leadDetails=response.data.todayLeadDetails.trackingDetails; - $scope.emptyDataLead=false; + if (response.data.todayLeadStatus) { + $scope.leadDetails = response.data.todayLeadDetails.trackingDetails; + $scope.emptyDataLead = false; } - else{ - $scope.leadDetails=""; - $scope.emptyDataLead=true; + else { + $scope.leadDetails = ""; + $scope.emptyDataLead = true; } @@ -64,8 +55,8 @@ app.controller('dashboardCtrl', ["$scope","$rootScope","toaster", "$filter", "ng } else { - $scope.emptyDataToday=true; - $scope.emptyDataPending=true; + $scope.emptyDataToday = true; + $scope.emptyDataPending = true; } }); @@ -73,3 +64,113 @@ app.controller('dashboardCtrl', ["$scope","$rootScope","toaster", "$filter", "ng }]); +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(); + + } + + // 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: '' + + }; + +}]); + diff --git a/Apollo/assets/views/dashboard.html b/Apollo/assets/views/dashboard.html index 22cc4afe..12ed8460 100644 --- a/Apollo/assets/views/dashboard.html +++ b/Apollo/assets/views/dashboard.html @@ -149,7 +149,7 @@ - +