diff --git a/Apollo/assets/i18n/en.json b/Apollo/assets/i18n/en.json
index 57d37362..35f88782 100755
--- a/Apollo/assets/i18n/en.json
+++ b/Apollo/assets/i18n/en.json
@@ -158,7 +158,8 @@
"MAIN": "HALL TICKET",
"COURSESEMESTERMAPPING": "COURSE SEMESTER MAPPING",
"BATCHSCHEDULE": "BATCH SCHEDULE",
- "GENERATEHALLTICKET": "GENERATE HALLTICKET"
+ "GENERATEHALLTICKET": "GENERATE HALLTICKET",
+ "EXAMATTENDANCE" : "EXAMINATION ATTENDANCE"
},
"reregistration":{
"MAIN":"RE REGISTRATION",
diff --git a/Apollo/assets/js/config.constant.js b/Apollo/assets/js/config.constant.js
index aa1b619e..13c8a568 100755
--- a/Apollo/assets/js/config.constant.js
+++ b/Apollo/assets/js/config.constant.js
@@ -175,6 +175,8 @@ app.constant('JS_REQUIRES', {
'generateHallTicketCtrl':'assets/js/controllers/generateHallTicketCtrl.js',
// generate hall ticket
'semcoursemapCtrl':'assets/js/controllers/semcoursemapCtrl.js',
+ // exam attendance
+ 'examAttendanceCtrl':'assets/js/controllers/examAttendanceCtrl.js',
// batchshedule for hall ticket
'schCtrl':'assets/js/controllers/schCtrl.js',
diff --git a/Apollo/assets/js/config.router.js b/Apollo/assets/js/config.router.js
index fc9fff63..bbcf3cb5 100755
--- a/Apollo/assets/js/config.router.js
+++ b/Apollo/assets/js/config.router.js
@@ -666,6 +666,14 @@ app.config(['$stateProvider', '$urlRouterProvider', '$controllerProvider', '$com
ncyBreadcrumb: {
label: 'Generate HallTicket'
}
+ }).state('app.hallTicket.examAttendance', {
+ url: '/examAttendance',
+ templateUrl: "assets/views/hallticket/examAttendance.html",
+ title: 'Exam Attendance',
+ resolve: loadSequence('ladda', 'angular-ladda', 'examAttendanceCtrl','ngTable','ui.select','spin', 'ui.mask'),
+ ncyBreadcrumb: {
+ label: 'Exam Attendance'
+ }
}).state('app.reregistration', {
url: '/Reregistration',
template: '
',
diff --git a/Apollo/assets/js/controllers/examAttendanceCtrl.js b/Apollo/assets/js/controllers/examAttendanceCtrl.js
new file mode 100644
index 00000000..c3e5a741
--- /dev/null
+++ b/Apollo/assets/js/controllers/examAttendanceCtrl.js
@@ -0,0 +1,958 @@
+'use strict';
+/**
+ * controllers for ng-table
+ * Simple table with sorting and filtering on AngularJS
+ */
+app.controller('examAttendanceCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state","$modal","$log", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state,$modal,$log) {
+ $scope.myModel = {
+ "universityName":"",
+ "courseName":"",
+ "batchName":""
+ };
+
+ $scope.pdfModel = {
+ "universityDetails":"",
+ "studentDetails":"",
+ "batchDetails":"",
+ "courseDetails":"",
+ "centerDetails":"",
+ "semDataType":""
+ };
+
+ $rootScope.userType = JSON.parse(localStorage.getItem('localObj')).localType;
+
+
+$scope.isTblShow = false;
+$scope.isLoader = false;
+$scope.isLoaderShow = false;
+$scope.isLoaderTxt = "Loading...";
+
+ // 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
+ }
+
+ /*
+ * init function
+ * created by kms
+ * */
+ $scope.init = function () {
+ alert('Exam ATTENDANCE')
+ var getUniv = {
+ method: 'POST',
+ url: apiPoint.url + 'getUniversityCourseDetails/',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ data: {
+ requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
+ branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID
+ }
+ };
+ $http(getUniv).then(function (response) {
+ if (response.data.status==200 && response.data.universityStatus) {
+ $scope.university = response.data.univerSityDetails;
+ $scope.centers = response.data.centerDetails;
+ //console.log( $scope.university);
+
+ } else {
+ $scope.university = "";
+
+ }
+ });
+ }
+
+ /*
+ * get student details
+ * created by kms
+ * */
+ $scope.studentInfo="";
+ $scope.getStudentDetails = function (form,myModel) {
+
+ if(myModel.universityName == null || myModel.universityName == '' || myModel.universityName == undefined){
+ swal('Select University','','warning');
+ return false;
+ }
+
+ if(myModel.courseName == '' || myModel.courseName == null || myModel.courseName == undefined){
+ swal('Select Course','','warning');
+ return false;
+ }
+
+ if(myModel.batchName == null || myModel.batchName == '' || myModel.batchName == undefined){
+ swal('Select Batch','','warning');
+ return false;
+ }
+
+
+ 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.selectedStudentsID = [];
+ $scope.isLoaderShow = true;
+ $scope.myModel.all = false;
+ $scope.isTblShow = false;
+ var university = myModel.universityName;
+ var course = myModel.courseName;
+ var batch = myModel.batchName;
+ var getStudents = {
+ method: 'POST',
+ url: apiPoint.url + 'getStudentListForHallTicket/',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ data: {
+ university: university,
+ course:course,
+ batch:batch,
+ requestedtBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
+ branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID,
+ requestedDept: JSON.parse(localStorage.getItem('localObj')).localType,
+ }
+ };
+ $http(getStudents).then(function (response) {
+ if (response.data.status == 200 && response.data.studentStatus) {
+ $scope.studentInfo = response.data.studentDetails;
+ $scope.isLoaderShow = false;
+ $scope.isTblShow = true;
+
+
+ }
+ else
+ {
+ $scope.studentInfo="";
+ $scope.isLoaderShow = true;
+ $scope.isTblShow = false;
+ $scope.isLoaderTxt = "No Records Found";
+ }
+ },function(error){
+ $scope.isLoaderShow = true;
+ $scope.isTblShow = false;
+ $scope.isLoaderTxt = "No Records Found";
+
+ });
+
+ }
+ }
+
+
+
+ $scope.selectedStudentsID = [];
+ $scope.isClick = function(e)
+ {
+
+
+ var ide = e.target;
+ var val = (ide.checked ? true : false);
+ var sid = e.target.id;
+ angular.forEach($scope.studentInfo,function(value,key){
+ if(sid == value.StudentID)
+ {
+ sid = value;
+ }
+ });
+
+ var pos = $scope.selectedStudentsID.indexOf(sid);
+
+ if(val)
+ {
+ if( pos == -1)
+ {
+
+ $scope.selectedStudentsID.push(sid);
+ }
+
+ }
+ else
+ {
+
+ $scope.selectedStudentsID.splice(pos,1);
+ }
+
+
+
+ }
+
+
+ $scope.isCheckAll = function(e)
+ {
+ var val = (e.target.checked ? true : false);
+
+ if(val)
+ {
+ var len = $scope.studentInfo.length;
+ var i = 0;
+ for(i=0;i
+ b.fa {
+ display: inline-block;
+ border-radius: 60px;
+ box-shadow: 0px 0px 2px #FF6600;
+ padding: 0.5em 0.6em;
+
+
+ }
+ b.fa1 {
+ display: inline-block;
+ border-radius: 60px;
+ box-shadow: 0px 0px 2px green;
+ padding: 0.5em 0.6em;
+
+
+ }
+ a {
+ color: #007AFF;
+ }
+
+
+
+
+
+
+
+
{{ mainTitle }}
+
+ Examination Attendance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Apollo/assets/views/partials/nav.html b/Apollo/assets/views/partials/nav.html
index 8f6ac476..7b812ad9 100755
--- a/Apollo/assets/views/partials/nav.html
+++ b/Apollo/assets/views/partials/nav.html
@@ -339,6 +339,11 @@
GENERATE HALLTICKET
+
+
+ EXAMATTENDANCE
+
+
@@ -752,6 +757,11 @@
GENERATE HALLTICKET
+
+
+ EXAMATTENDANCE
+
+
@@ -1056,6 +1066,7 @@
GENERATE HALLTICKET
+
@@ -1279,6 +1290,11 @@
GENERATE HALLTICKET
+
+
+ EXAMATTENDANCE
+
+