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: '
REREGISTRATION
', 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 + +
+
+
+
+ + + +
+ + +
+
+
+ Search +
+ +
+ + + + +
+
+ + + + +
+ +
+ + + + +
+ +
+ +
+ +
+ + +
+
+ +
+ + + + +
+ +
+ +
+ + +
+ +
+ + + + +
+ +
+
+

{{isLoaderTxt}}

+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Student Name + + Mobile No + + EmailID + +
{{p.Firstname}}{{p.Lastname}}{{p.MobileNumber}}{{p.EmailID}}
+ + + +
+
+
+
+
+
+ + + + + + + + + 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 + +