EXAM ATTENDANCE MASTSER:Velz
This commit is contained in:
parent
cb1055d944
commit
809ed1a387
@ -158,7 +158,8 @@
|
|||||||
"MAIN": "HALL TICKET",
|
"MAIN": "HALL TICKET",
|
||||||
"COURSESEMESTERMAPPING": "COURSE SEMESTER MAPPING",
|
"COURSESEMESTERMAPPING": "COURSE SEMESTER MAPPING",
|
||||||
"BATCHSCHEDULE": "BATCH SCHEDULE",
|
"BATCHSCHEDULE": "BATCH SCHEDULE",
|
||||||
"GENERATEHALLTICKET": "GENERATE HALLTICKET"
|
"GENERATEHALLTICKET": "GENERATE HALLTICKET",
|
||||||
|
"EXAMATTENDANCE" : "EXAMINATION ATTENDANCE"
|
||||||
},
|
},
|
||||||
"reregistration":{
|
"reregistration":{
|
||||||
"MAIN":"RE REGISTRATION",
|
"MAIN":"RE REGISTRATION",
|
||||||
|
|||||||
@ -175,6 +175,8 @@ app.constant('JS_REQUIRES', {
|
|||||||
'generateHallTicketCtrl':'assets/js/controllers/generateHallTicketCtrl.js',
|
'generateHallTicketCtrl':'assets/js/controllers/generateHallTicketCtrl.js',
|
||||||
// generate hall ticket
|
// generate hall ticket
|
||||||
'semcoursemapCtrl':'assets/js/controllers/semcoursemapCtrl.js',
|
'semcoursemapCtrl':'assets/js/controllers/semcoursemapCtrl.js',
|
||||||
|
// exam attendance
|
||||||
|
'examAttendanceCtrl':'assets/js/controllers/examAttendanceCtrl.js',
|
||||||
|
|
||||||
// batchshedule for hall ticket
|
// batchshedule for hall ticket
|
||||||
'schCtrl':'assets/js/controllers/schCtrl.js',
|
'schCtrl':'assets/js/controllers/schCtrl.js',
|
||||||
|
|||||||
@ -666,6 +666,14 @@ app.config(['$stateProvider', '$urlRouterProvider', '$controllerProvider', '$com
|
|||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
label: 'Generate HallTicket'
|
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', {
|
}).state('app.reregistration', {
|
||||||
url: '/Reregistration',
|
url: '/Reregistration',
|
||||||
template: '<div ui-view class="fade-in-up"> <div style="margin: auto; width: 50%;padding: 10px;"> REREGISTRATION</div> </div>',
|
template: '<div ui-view class="fade-in-up"> <div style="margin: auto; width: 50%;padding: 10px;"> REREGISTRATION</div> </div>',
|
||||||
|
|||||||
958
Apollo/assets/js/controllers/examAttendanceCtrl.js
Normal file
958
Apollo/assets/js/controllers/examAttendanceCtrl.js
Normal file
@ -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<len;i++)
|
||||||
|
{
|
||||||
|
if($scope.selectedStudentsID.indexOf($scope.studentInfo[i]) === -1)
|
||||||
|
{
|
||||||
|
$scope.selectedStudentsID.push($scope.studentInfo[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$scope.selectedStudentsID = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.generateHallTicket = function()
|
||||||
|
{
|
||||||
|
if($scope.studentInfo.length == 0)
|
||||||
|
|
||||||
|
{
|
||||||
|
swal('No Students Found','','warning');return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($scope.myModel.centerName == "" || $scope.myModel.centerName == undefined || $scope.myModel.centerName == null)
|
||||||
|
{
|
||||||
|
swal('Select Center Name','','warning');return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($scope.selectedStudentsID.length == 0)
|
||||||
|
{
|
||||||
|
swal('Select Student(s)','','warning');return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var university = $scope.myModel.universityName;
|
||||||
|
var course = $scope.myModel.courseName;
|
||||||
|
var batch = $scope.myModel.batchName;
|
||||||
|
|
||||||
|
var dataForHallTicket = {
|
||||||
|
method: 'POST',
|
||||||
|
url: apiPoint.url + 'getHallTicket/',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
universityID : university,
|
||||||
|
courseID :course,
|
||||||
|
batchName:batch,
|
||||||
|
StudentIDs:$scope.selectedStudentsID,
|
||||||
|
centerName:$scope.myModel.centerName,
|
||||||
|
branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID,
|
||||||
|
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID
|
||||||
|
}
|
||||||
|
};
|
||||||
|
$http(dataForHallTicket).then(function (response) {
|
||||||
|
if (response.data.status==200 && response.data.hallTicketStatus) {
|
||||||
|
|
||||||
|
$scope.pdfModel.universityDetails = response.data.hallTicketData.UniversityDetails;
|
||||||
|
$scope.pdfModel.studentDetails = response.data.hallTicketData.studentDetails;
|
||||||
|
|
||||||
|
$scope.pdfModel.batchDetails = $scope.selectedBatchName;
|
||||||
|
$scope.pdfModel.courseDetails = $scope.selectedCourseName;
|
||||||
|
$scope.pdfModel.centerDetails = $scope.myModel.centerName;
|
||||||
|
$scope.pdfModel.semDataType =response.data.semDataType;
|
||||||
|
|
||||||
|
$scope.open($scope.pdfModel);
|
||||||
|
}
|
||||||
|
},function(error){ swal('No Records Found','',error); });
|
||||||
|
}
|
||||||
|
|
||||||
|
//Below Functions defined for Hall Ticket generation
|
||||||
|
|
||||||
|
|
||||||
|
$scope.FeesName="" ;
|
||||||
|
$scope.open = function (PDFdata) {
|
||||||
|
|
||||||
|
|
||||||
|
var modalInstance = $modal.open({
|
||||||
|
templateUrl: 'assets/views/hallticket/hallTicketPDF.html',
|
||||||
|
controller: 'HallTicketPDFCtrl',
|
||||||
|
// size: size,
|
||||||
|
resolve: {
|
||||||
|
pdfitems: function () {
|
||||||
|
//return $scope.FeesName;
|
||||||
|
return PDFdata;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
modalInstance.result.then(function (selectedItem) {
|
||||||
|
$scope.selected = selectedItem;
|
||||||
|
}, function () {
|
||||||
|
$log.info('Modal dismissed at: ' + new Date());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// }
|
||||||
|
// generate pdf for student view
|
||||||
|
|
||||||
|
|
||||||
|
$scope.captureCourseName = function()
|
||||||
|
{
|
||||||
|
|
||||||
|
$scope.selectedCourseName = course.options[course.selectedIndex].text;
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.captureBatchName = function()
|
||||||
|
{
|
||||||
|
|
||||||
|
$scope.selectedBatchName = batch.options[batch.selectedIndex].text;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}]);
|
||||||
|
|
||||||
|
|
||||||
|
// Controller for Hallticket Modal PDF
|
||||||
|
app.controller('examAttendancePDFCtrl', ["$scope", "$modalInstance", "pdfitems", function ($scope, $modalInstance, pdfitems) {
|
||||||
|
|
||||||
|
console.log('child');
|
||||||
|
$scope.localPdfUniverityDetails = pdfitems.universityDetails;
|
||||||
|
$scope.universityNamePDF = $scope.localPdfUniverityDetails[0].UniversityName;
|
||||||
|
$scope.universityAddressPDF = $scope.localPdfUniverityDetails[0].Address;
|
||||||
|
$scope.universityEmailPDF = $scope.localPdfUniverityDetails[0].EmailID;
|
||||||
|
$scope.universityLogoPDF = $scope.localPdfUniverityDetails[0].ProfilePicPath;
|
||||||
|
$scope.batchNamePDF = pdfitems.batchDetails;//.BatchName;
|
||||||
|
$scope.courseNamePDF = pdfitems.courseDetails;//.CourseName;
|
||||||
|
$scope.centerNamePDF = pdfitems.centerDetails.CenterName+''+ pdfitems.centerDetails.CenterAddress;
|
||||||
|
$scope.semDataTypePDF = pdfitems.semDataType;
|
||||||
|
|
||||||
|
$scope.localPdfStudentDetails = pdfitems.studentDetails;
|
||||||
|
|
||||||
|
$scope.printStudentDetails = function(hallticket_type) {
|
||||||
|
|
||||||
|
|
||||||
|
angular.forEach($scope.localPdfStudentDetails,function(value,key){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(value.StudentID)
|
||||||
|
{
|
||||||
|
|
||||||
|
if(hallticket_type == 'REG' || hallticket_type == 'LAT'){
|
||||||
|
console.log('REGLAT');
|
||||||
|
var semlength = value.FeeDetails.length;
|
||||||
|
if(hallticket_type == 'REG' || hallticket_type == 'LAT')
|
||||||
|
{
|
||||||
|
semlength = 7;
|
||||||
|
}
|
||||||
|
var i = 0;
|
||||||
|
for(i = 0; i <= semlength;i=i+2)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var fileName = "DEFAULT.pdf";
|
||||||
|
var margins = {
|
||||||
|
top: 70,
|
||||||
|
bottom: 40,
|
||||||
|
left: 30,
|
||||||
|
width: 550
|
||||||
|
};
|
||||||
|
var doc = new jsPDF('p', 'pt');
|
||||||
|
//convert img to base 64
|
||||||
|
var img = document.getElementById("logo")
|
||||||
|
var canvas = document.createElement("canvas");
|
||||||
|
canvas.width = 100;
|
||||||
|
canvas.height = 100;
|
||||||
|
var ctx = canvas.getContext("2d");
|
||||||
|
ctx.drawImage(img, 0, 0,100,100);
|
||||||
|
var dataURL = canvas.toDataURL("image/png");
|
||||||
|
|
||||||
|
//console.log('***'+dataURL);
|
||||||
|
//convert img to base 64
|
||||||
|
|
||||||
|
|
||||||
|
//convert img to base 64
|
||||||
|
var profile = document.getElementById("sprofile")
|
||||||
|
var canvas2 = document.createElement("canvas");
|
||||||
|
canvas2.width = 100;
|
||||||
|
canvas2.height = 100;
|
||||||
|
var ctx2 = canvas2.getContext("2d");
|
||||||
|
ctx2.drawImage(profile, 0, 0,100,100);
|
||||||
|
var profiledataURL = canvas2.toDataURL("image/png",1.0);
|
||||||
|
//convert img to base 64
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var sem1 = "";
|
||||||
|
var sem2 = "";
|
||||||
|
|
||||||
|
var tableid = value.StudentID;
|
||||||
|
|
||||||
|
doc.autoTableSetDefaults({
|
||||||
|
styles: {cellPadding: 3.0, fontSize: 8},
|
||||||
|
headerStyles: {fillColor: [245, 245, 240], textColor: 0}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var firstTableID = tableid+i;
|
||||||
|
var SecTableID = (tableid+(i+1));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(document.getElementById(firstTableID))
|
||||||
|
{
|
||||||
|
|
||||||
|
var sem1 = doc.autoTableHtmlToJson(document.getElementById(firstTableID));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(document.getElementById(SecTableID))
|
||||||
|
{
|
||||||
|
|
||||||
|
var sem2 = doc.autoTableHtmlToJson(document.getElementById(SecTableID));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var header = function(data) {
|
||||||
|
var examName = 'ADMIT CARD : '+$scope.courseNamePDF+' EXAMINATION ' +$scope.batchNamePDF;
|
||||||
|
var rollNo = 'Reg No : '+value.EnrollmentID;
|
||||||
|
var stuName = 'Name : '+value.Firstname+' '+value.Lastname;
|
||||||
|
var centerName = 'Centre : '+$scope.centerNamePDF;
|
||||||
|
if(hallticket_type == 'SEM' || hallticket_type == 'REG')
|
||||||
|
{
|
||||||
|
var semName = 'SEM'+(i+1)+'&'+(i+2);
|
||||||
|
}
|
||||||
|
else if(hallticket_type == 'LAT')
|
||||||
|
{
|
||||||
|
var semName = 'SEM'+(i+3)+'&'+(i+4);
|
||||||
|
}
|
||||||
|
fileName = value.EnrollmentID+'-'+value.Firstname+value.Lastname+$scope.courseNamePDF+semName+'.pdf';
|
||||||
|
doc.setDrawColor(0);
|
||||||
|
doc.setFillColor(245, 245, 240);
|
||||||
|
doc.rect(150, 30, 395, 60,'FD');
|
||||||
|
doc.setFontSize(12);
|
||||||
|
doc.setTextColor(40);
|
||||||
|
doc.setFontStyle('normal');
|
||||||
|
|
||||||
|
doc.addImage(dataURL, 'jpeg', 75, 35, 50, 50);//university logo location
|
||||||
|
doc.addImage(profiledataURL, 'jpeg', 470, 100, 60, 60);//student profile location
|
||||||
|
|
||||||
|
doc.setFontSize(22);
|
||||||
|
doc.text(160,50,$scope.universityNamePDF);
|
||||||
|
doc.setFontSize(10);
|
||||||
|
doc.text(160,65,$scope.universityAddressPDF);
|
||||||
|
doc.setFontSize(10);
|
||||||
|
doc.text(160,88,$scope.universityEmailPDF);
|
||||||
|
|
||||||
|
doc.rect(45, 100, 400, 60);
|
||||||
|
doc.rect(445, 100, 100, 60);
|
||||||
|
doc.line(45, 125, 445, 125);
|
||||||
|
doc.setFontSize(10);
|
||||||
|
doc.setFontType("bold");
|
||||||
|
doc.text(80,115,examName);
|
||||||
|
|
||||||
|
doc.setFontType("normal");
|
||||||
|
doc.text(50,140,rollNo);
|
||||||
|
doc.text(230,140,stuName);
|
||||||
|
doc.text(50,155,centerName);
|
||||||
|
|
||||||
|
//footer content
|
||||||
|
var footerNote1 ="Note : 1. Without Identification Card Candidates shallnot Allowed to write for examination.";
|
||||||
|
var footerNote2 ="2. For further instructions refer to the facing sheet of the Answer book before writting examination.";
|
||||||
|
var footerNote3 ="3. Carrying Mobile phone to the examination hall is strictly prohibited.";
|
||||||
|
var footerNote4 ="4. Attend the examintaion as per mentioned above.";
|
||||||
|
var footerNote_student_sign ="Signature of the Student";
|
||||||
|
var footerNote_controller_sign ="Controller of Examination";
|
||||||
|
doc.setFontSize(8);
|
||||||
|
doc.text(40,doc.internal.pageSize.height - 150,footerNote1);
|
||||||
|
doc.text(70,doc.internal.pageSize.height - 140,footerNote2);
|
||||||
|
doc.text(70,doc.internal.pageSize.height - 130,footerNote3);
|
||||||
|
doc.text(70,doc.internal.pageSize.height - 120,footerNote4);
|
||||||
|
doc.text(40,doc.internal.pageSize.height - 50,footerNote_student_sign);
|
||||||
|
doc.text(450,doc.internal.pageSize.height - 50,footerNote_controller_sign);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var autoTableEndPosYvalue = 0;
|
||||||
|
|
||||||
|
if(sem1 == "")
|
||||||
|
{
|
||||||
|
autoTableEndPosYvalue = 200;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
autoTableEndPosYvalue = 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
var options2 = {
|
||||||
|
addPageContent: header,
|
||||||
|
|
||||||
|
margin: {
|
||||||
|
top: 100
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
startY: doc.autoTableEndPosY() + autoTableEndPosYvalue,
|
||||||
|
|
||||||
|
theme :'grid'
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
var options1 = {
|
||||||
|
addPageContent: header,
|
||||||
|
|
||||||
|
margin: {
|
||||||
|
top: 200
|
||||||
|
},
|
||||||
|
theme :'grid'
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
if(sem1 != "")
|
||||||
|
{
|
||||||
|
doc.autoTable(sem1.columns, sem1.data, options1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(sem2 != "")
|
||||||
|
{
|
||||||
|
doc.autoTable(sem2.columns, sem2.data, options2);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(sem2 != "" || sem1 != "")
|
||||||
|
{
|
||||||
|
doc.save(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}//End of semlength for loop
|
||||||
|
|
||||||
|
}//END OF SEM HALL TICKET TYPE
|
||||||
|
|
||||||
|
else if(hallticket_type == 'YEAR')
|
||||||
|
{
|
||||||
|
console.log('YEAR');
|
||||||
|
var semlength = value.FeeDetails.length;
|
||||||
|
var i = 0;
|
||||||
|
for(i = 0; i <= semlength;i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
// console.log('FOR'+i);
|
||||||
|
var fileName = "DEFAULT.pdf";
|
||||||
|
var semName = 'DEFAULT_SEM';
|
||||||
|
var margins = {
|
||||||
|
top: 70,
|
||||||
|
bottom: 40,
|
||||||
|
left: 30,
|
||||||
|
width: 550
|
||||||
|
};
|
||||||
|
var doc = new jsPDF('p', 'pt');
|
||||||
|
//convert img to base 64
|
||||||
|
var img = document.getElementById("logo")
|
||||||
|
var canvas = document.createElement("canvas");
|
||||||
|
canvas.width = 100;
|
||||||
|
canvas.height = 100;
|
||||||
|
var ctx = canvas.getContext("2d");
|
||||||
|
ctx.drawImage(img, 0, 0,100,100);
|
||||||
|
var dataURL = canvas.toDataURL("image/png");
|
||||||
|
|
||||||
|
//console.log('***'+dataURL);
|
||||||
|
//convert img to base 64
|
||||||
|
|
||||||
|
|
||||||
|
//convert img to base 64
|
||||||
|
var profile = document.getElementById("sprofile")
|
||||||
|
var canvas2 = document.createElement("canvas");
|
||||||
|
canvas2.width = 100;
|
||||||
|
canvas2.height = 100;
|
||||||
|
var ctx2 = canvas2.getContext("2d");
|
||||||
|
ctx2.drawImage(profile, 0, 0,100,100);
|
||||||
|
var profiledataURL = canvas2.toDataURL("image/png",1.0);
|
||||||
|
//convert img to base 64
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var sem1 = "";
|
||||||
|
// var sem2 = "";
|
||||||
|
|
||||||
|
var tableid = value.StudentID;
|
||||||
|
|
||||||
|
doc.autoTableSetDefaults({
|
||||||
|
styles: {cellPadding: 3.0, fontSize: 8},
|
||||||
|
headerStyles: {fillColor: [245, 245, 240], textColor: 0},
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
var firstTableID = "0";
|
||||||
|
//var SecTableID = "1";
|
||||||
|
switch(i)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
var firstTableID = tableid+'year10';
|
||||||
|
//var SecTableID = tableid+'year11';
|
||||||
|
semName = 'YEAR1';
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1:
|
||||||
|
var firstTableID = tableid+'year20';
|
||||||
|
//var SecTableID = tableid+'year21';
|
||||||
|
semName = 'YEAR2';
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
var firstTableID = tableid+'year30';
|
||||||
|
//var SecTableID = tableid+'year31';
|
||||||
|
semName = 'YEAR3';
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
var firstTableID = tableid+'year40';
|
||||||
|
//var SecTableID = tableid+'year41';
|
||||||
|
semName = 'YEAR4';
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(document.getElementById(firstTableID))
|
||||||
|
{
|
||||||
|
|
||||||
|
var sem1 = doc.autoTableHtmlToJson(document.getElementById(firstTableID));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// if(document.getElementById(SecTableID))
|
||||||
|
// {
|
||||||
|
|
||||||
|
// var sem2 = doc.autoTableHtmlToJson(document.getElementById(SecTableID));
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var header = function(data) {
|
||||||
|
var examName = 'ADMIT CARD : '+$scope.courseNamePDF+' EXAMINATION ' +$scope.batchNamePDF;
|
||||||
|
var rollNo = 'Reg No : '+value.EnrollmentID;
|
||||||
|
var stuName = 'Name : '+value.Firstname+' '+value.Lastname;
|
||||||
|
var centerName = 'Centre : '+$scope.centerNamePDF;
|
||||||
|
|
||||||
|
fileName = value.EnrollmentID+'-'+value.Firstname+value.Lastname+$scope.courseNamePDF+semName+'.pdf';
|
||||||
|
doc.setDrawColor(0);
|
||||||
|
doc.setFillColor(245, 245, 240);
|
||||||
|
doc.rect(150, 30, 395, 60,'FD');
|
||||||
|
doc.setFontSize(12);
|
||||||
|
doc.setTextColor(40);
|
||||||
|
doc.setFontStyle('normal');
|
||||||
|
|
||||||
|
doc.addImage(dataURL, 'jpeg', 75, 35, 50, 50);//university logo location
|
||||||
|
doc.addImage(profiledataURL, 'jpeg', 470, 100, 60, 60);//student profile location
|
||||||
|
|
||||||
|
doc.setFontSize(22);
|
||||||
|
doc.text(160,50,$scope.universityNamePDF);
|
||||||
|
doc.setFontSize(10);
|
||||||
|
doc.text(160,65,$scope.universityAddressPDF);
|
||||||
|
doc.setFontSize(10);
|
||||||
|
doc.text(160,88,$scope.universityEmailPDF);
|
||||||
|
|
||||||
|
doc.rect(45, 100, 400, 60);
|
||||||
|
doc.rect(445, 100, 100, 60);
|
||||||
|
doc.line(45, 125, 445, 125);
|
||||||
|
doc.setFontSize(10);
|
||||||
|
doc.setFontType("bold");
|
||||||
|
doc.text(80,115,examName);
|
||||||
|
|
||||||
|
doc.setFontType("normal");
|
||||||
|
doc.text(50,140,rollNo);
|
||||||
|
doc.text(230,140,stuName);
|
||||||
|
doc.text(50,155,centerName);
|
||||||
|
|
||||||
|
//footer content
|
||||||
|
var footerNote1 ="Note : 1. Without Identification Card Candidates shallnot Allowed to write for examination.";
|
||||||
|
var footerNote2 ="2. For further instructions refer to the facing sheet of the Answer book before writting examination.";
|
||||||
|
var footerNote3 ="3. Carrying Mobile phone to the examination hall is strictly prohibited.";
|
||||||
|
var footerNote4 ="4. Attend the examintaion as per mentioned above.";
|
||||||
|
var footerNote_student_sign ="Signature of the Student";
|
||||||
|
var footerNote_controller_sign ="Controller of Examination";
|
||||||
|
doc.setFontSize(8);
|
||||||
|
doc.text(40,doc.internal.pageSize.height - 150,footerNote1);
|
||||||
|
doc.text(70,doc.internal.pageSize.height - 140,footerNote2);
|
||||||
|
doc.text(70,doc.internal.pageSize.height - 130,footerNote3);
|
||||||
|
doc.text(70,doc.internal.pageSize.height - 120,footerNote4);
|
||||||
|
doc.text(40,doc.internal.pageSize.height - 50,footerNote_student_sign);
|
||||||
|
doc.text(450,doc.internal.pageSize.height - 50,footerNote_controller_sign);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
addPageContent: header,
|
||||||
|
|
||||||
|
margin: {
|
||||||
|
top: 170
|
||||||
|
},
|
||||||
|
//startY: doc.autoTableEndPosY() + 20,
|
||||||
|
theme :'grid'
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
if(sem1 != "")
|
||||||
|
{
|
||||||
|
doc.autoTable(sem1.columns, sem1.data, options);
|
||||||
|
}
|
||||||
|
|
||||||
|
// if(sem2 != "")
|
||||||
|
// {
|
||||||
|
// doc.autoTable(sem2.columns, sem2.data, options);
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
if(sem1 != "")
|
||||||
|
{
|
||||||
|
doc.save(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}//End of semlength for loop
|
||||||
|
|
||||||
|
}//END OF YEAR HALL TICKET TYPE
|
||||||
|
|
||||||
|
|
||||||
|
else if(hallticket_type == 'SEM' ){
|
||||||
|
console.log('SEM');
|
||||||
|
var semlength = value.FeeDetails.length;
|
||||||
|
|
||||||
|
var i = 0;
|
||||||
|
for(i = 0; i < semlength;i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var fileName = "DEFAULT.pdf";
|
||||||
|
var margins = {
|
||||||
|
top: 70,
|
||||||
|
bottom: 40,
|
||||||
|
left: 30,
|
||||||
|
width: 550
|
||||||
|
};
|
||||||
|
var doc = new jsPDF('p', 'pt');
|
||||||
|
//convert img to base 64
|
||||||
|
var img = document.getElementById("logo")
|
||||||
|
var canvas = document.createElement("canvas");
|
||||||
|
canvas.width = 100;
|
||||||
|
canvas.height = 100;
|
||||||
|
var ctx = canvas.getContext("2d");
|
||||||
|
ctx.drawImage(img, 0, 0,100,100);
|
||||||
|
var dataURL = canvas.toDataURL("image/png");
|
||||||
|
|
||||||
|
//console.log('***'+dataURL);
|
||||||
|
//convert img to base 64
|
||||||
|
|
||||||
|
|
||||||
|
//convert img to base 64
|
||||||
|
var profile = document.getElementById("sprofile")
|
||||||
|
var canvas2 = document.createElement("canvas");
|
||||||
|
canvas2.width = 100;
|
||||||
|
canvas2.height = 100;
|
||||||
|
var ctx2 = canvas2.getContext("2d");
|
||||||
|
ctx2.drawImage(profile, 0, 0,100,100);
|
||||||
|
var profiledataURL = canvas2.toDataURL("image/png",1.0);
|
||||||
|
//convert img to base 64
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var sem1 = "";
|
||||||
|
//var sem2 = "";
|
||||||
|
|
||||||
|
var tableid = value.StudentID;
|
||||||
|
|
||||||
|
doc.autoTableSetDefaults({
|
||||||
|
styles: {cellPadding: 3.0, fontSize: 8},
|
||||||
|
headerStyles: {fillColor: [245, 245, 240], textColor: 0}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var firstTableID = tableid+i;
|
||||||
|
// var SecTableID = (tableid+(i+1));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(document.getElementById(firstTableID))
|
||||||
|
{
|
||||||
|
|
||||||
|
var sem1 = doc.autoTableHtmlToJson(document.getElementById(firstTableID));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// if(document.getElementById(SecTableID))
|
||||||
|
// {
|
||||||
|
|
||||||
|
// var sem2 = doc.autoTableHtmlToJson(document.getElementById(SecTableID));
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var header = function(data) {
|
||||||
|
var examName = 'ADMIT CARD : '+$scope.courseNamePDF+' EXAMINATION ' +$scope.batchNamePDF;
|
||||||
|
var rollNo = 'Reg No : '+value.EnrollmentID;
|
||||||
|
var stuName = 'Name : '+value.Firstname+' '+value.Lastname;
|
||||||
|
var centerName = 'Centre : '+$scope.centerNamePDF;
|
||||||
|
// if(hallticket_type == 'SEM' || hallticket_type == 'REG')
|
||||||
|
// {
|
||||||
|
// var semName = 'SEM'+(i+1)+'&'+(i+2);
|
||||||
|
// }
|
||||||
|
// else if(hallticket_type == 'LAT')
|
||||||
|
// {
|
||||||
|
// var semName = 'SEM'+(i+3)+'&'+(i+4);
|
||||||
|
// }
|
||||||
|
|
||||||
|
var semName = 'SEM'+(i+1);
|
||||||
|
fileName = value.EnrollmentID+'-'+value.Firstname+value.Lastname+$scope.courseNamePDF+semName+'.pdf';
|
||||||
|
doc.setDrawColor(0);
|
||||||
|
doc.setFillColor(245, 245, 240);
|
||||||
|
doc.rect(150, 30, 395, 60,'FD');
|
||||||
|
doc.setFontSize(12);
|
||||||
|
doc.setTextColor(40);
|
||||||
|
doc.setFontStyle('normal');
|
||||||
|
|
||||||
|
doc.addImage(dataURL, 'jpeg', 75, 35, 50, 50);//university logo location
|
||||||
|
doc.addImage(profiledataURL, 'jpeg', 470, 100, 60, 60);//student profile location
|
||||||
|
|
||||||
|
doc.setFontSize(22);
|
||||||
|
doc.text(160,50,$scope.universityNamePDF);
|
||||||
|
doc.setFontSize(10);
|
||||||
|
doc.text(160,65,$scope.universityAddressPDF);
|
||||||
|
doc.setFontSize(10);
|
||||||
|
doc.text(160,88,$scope.universityEmailPDF);
|
||||||
|
|
||||||
|
doc.rect(45, 100, 400, 60);
|
||||||
|
doc.rect(445, 100, 100, 60);
|
||||||
|
doc.line(45, 125, 445, 125);
|
||||||
|
doc.setFontSize(10);
|
||||||
|
doc.setFontType("bold");
|
||||||
|
doc.text(80,115,examName);
|
||||||
|
|
||||||
|
doc.setFontType("normal");
|
||||||
|
doc.text(50,140,rollNo);
|
||||||
|
doc.text(230,140,stuName);
|
||||||
|
doc.text(50,155,centerName);
|
||||||
|
|
||||||
|
//footer content
|
||||||
|
var footerNote1 ="Note : 1. Without Identification Card Candidates shallnot Allowed to write for examination.";
|
||||||
|
var footerNote2 ="2. For further instructions refer to the facing sheet of the Answer book before writting examination.";
|
||||||
|
var footerNote3 ="3. Carrying Mobile phone to the examination hall is strictly prohibited.";
|
||||||
|
var footerNote4 ="4. Attend the examintaion as per mentioned above.";
|
||||||
|
var footerNote_student_sign ="Signature of the Student";
|
||||||
|
var footerNote_controller_sign ="Controller of Examination";
|
||||||
|
doc.setFontSize(8);
|
||||||
|
doc.text(40,doc.internal.pageSize.height - 150,footerNote1);
|
||||||
|
doc.text(70,doc.internal.pageSize.height - 140,footerNote2);
|
||||||
|
doc.text(70,doc.internal.pageSize.height - 130,footerNote3);
|
||||||
|
doc.text(70,doc.internal.pageSize.height - 120,footerNote4);
|
||||||
|
doc.text(40,doc.internal.pageSize.height - 50,footerNote_student_sign);
|
||||||
|
doc.text(450,doc.internal.pageSize.height - 50,footerNote_controller_sign);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// var autoTableEndPosYvalue = 0;
|
||||||
|
|
||||||
|
// if(sem1 == "")
|
||||||
|
// {
|
||||||
|
// autoTableEndPosYvalue = 200;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// autoTableEndPosYvalue = 300;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// var options2 = {
|
||||||
|
// addPageContent: header,
|
||||||
|
|
||||||
|
// margin: {
|
||||||
|
// top: 100
|
||||||
|
// },
|
||||||
|
|
||||||
|
|
||||||
|
// startY: doc.autoTableEndPosY() + autoTableEndPosYvalue,
|
||||||
|
|
||||||
|
// theme :'grid'
|
||||||
|
|
||||||
|
// };
|
||||||
|
|
||||||
|
var options1 = {
|
||||||
|
addPageContent: header,
|
||||||
|
|
||||||
|
margin: {
|
||||||
|
top: 200
|
||||||
|
},
|
||||||
|
|
||||||
|
theme :'grid'
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
if(sem1 != "")
|
||||||
|
{
|
||||||
|
doc.autoTable(sem1.columns, sem1.data, options1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// if(sem2 != "")
|
||||||
|
// {
|
||||||
|
// doc.autoTable(sem2.columns, sem2.data, options2);
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
if(sem2 != "" || sem1 != "")
|
||||||
|
{
|
||||||
|
doc.save(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}//End of semlength for loop
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}// END of studentID Check
|
||||||
|
|
||||||
|
|
||||||
|
});//END of For Each
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$scope.ok = function () {
|
||||||
|
$modalInstance.close($scope.selected.item);
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.cancel = function () {
|
||||||
|
$modalInstance.dismiss('cancel');
|
||||||
|
};
|
||||||
|
|
||||||
|
}]);
|
||||||
183
Apollo/assets/views/hallticket/examAttendance.html
Normal file
183
Apollo/assets/views/hallticket/examAttendance.html
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
<style>
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<!-- start: PAGE TITLE -->
|
||||||
|
<section id="page-title">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-8">
|
||||||
|
|
||||||
|
<h1 class="mainTitle" translate="Examination Attendance">{{ mainTitle }}</h1>
|
||||||
|
|
||||||
|
<span class="mainDescription">Examination Attendance </span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div ncy-breadcrumb></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- end: PAGE TITLE -->
|
||||||
|
<!-- start: LIST GROUP -->
|
||||||
|
|
||||||
|
<div class="container-fluid container-fullw bg-white" ng-controller="examAttendanceCtrl" data-ng-init="init()">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<form name="Form" id="form" novalidate method="post">
|
||||||
|
<fieldset>
|
||||||
|
<legend>Search</legend>
|
||||||
|
<div class="col-md-12 ">
|
||||||
|
|
||||||
|
<div class="col-md-3 form-group">
|
||||||
|
<label>
|
||||||
|
University
|
||||||
|
</label>
|
||||||
|
<select class="form-control" name="university" tabindex="1" id="university"
|
||||||
|
ng-model="myModel.universityName"
|
||||||
|
ng-options="i.universityName for i in university" ng-change="">
|
||||||
|
<option value=""> Select University</option>
|
||||||
|
</select>
|
||||||
|
<!-- <pre>{{myModel.universityName | json}}</pre>-->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3 form-group">
|
||||||
|
<label>
|
||||||
|
Course
|
||||||
|
</label>
|
||||||
|
<select ui-select2 class="form-control" name="course" tabindex="4" id="course"
|
||||||
|
ng-model="myModel.courseName" ng-change="captureCourseName();">
|
||||||
|
<option value=""> Select Course</option>
|
||||||
|
<option ng-repeat="courseDetails in myModel.universityName.courseDetails" value="{{courseDetails.CourseID}}"><span ng-show="courseDetails.CourseCode != ''"><strong>{{courseDetails.CourseName}}</strong></span></option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- <pre>{{myModel.courseName|json}}</pre> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-2 form-group">
|
||||||
|
|
||||||
|
<label>
|
||||||
|
Batch Name
|
||||||
|
</label>
|
||||||
|
<select ui-select2 class="form-control" name="batch" tabindex="4" id="batch"
|
||||||
|
ng-model="myModel.batchName" ng-change="captureBatchName()"
|
||||||
|
>
|
||||||
|
<option value=""> Select Batch</option>
|
||||||
|
<option ng-repeat="batchDetails in myModel.universityName.batchDetails" value="{{batchDetails.BatchCode}}"><span ng-show="batchDetails.BatchCode != ''"><strong>{{batchDetails.BatchName}}</strong></span></option>
|
||||||
|
</select>
|
||||||
|
<!-- <pre>{{myModel.batchName | json}}</pre> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-2 form-group">
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<button type="button" ladda="ldloading1.zoom_in" tabindex="5" class="btn btn-wide btn-info" data-style="zoom-in" ng-click="getStudentDetails(Form,myModel);">GET STUDENTS</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<div class="col-md-5 form-group">
|
||||||
|
|
||||||
|
<label>
|
||||||
|
Center Name
|
||||||
|
</label>
|
||||||
|
<select class="form-control" name="center" tabindex="4" id="center"
|
||||||
|
ng-model="myModel.centerName"
|
||||||
|
ng-options="centerDetails.CenterName for centerDetails in centers" ng-change="">
|
||||||
|
<option value=""> Center Name</option>
|
||||||
|
</select>
|
||||||
|
<!-- <pre>{{myModel.centerName | json}}</pre> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-3 form-group">
|
||||||
|
<!-- <div class="pull-right"> -->
|
||||||
|
<br>
|
||||||
|
<button type="button" ladda="ldloading1.zoom_in" tabindex="6" class="btn btn-wide btn-success" data-style="zoom-in" ng-click="generateHallTicket();">GENERATE</button>
|
||||||
|
<!-- </div> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12" ng-if="isLoaderShow">
|
||||||
|
<center> <h1>{{isLoaderTxt}}</h1> </center>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12" ng-if="isTblShow">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th><input type="checkbox" ng-model="myModel.all" id="all" name="all" ng-click="isCheckAll($event);" class="form-control"></th>
|
||||||
|
<th ng-click="sort('Firstname')">Student Name
|
||||||
|
<span class="glyphicon sort-icon" ng-show="sortKey=='Firstname'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
|
||||||
|
</th>
|
||||||
|
<!-- <th ng-click="sort('UniversityShortName')">University Short Name -->
|
||||||
|
<!-- <span class="glyphicon sort-icon" ng-show="sortKey=='UniversityShortName'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span> -->
|
||||||
|
<!-- </th> -->
|
||||||
|
<th ng-click="sort('MobileNumber')">Mobile No
|
||||||
|
<span class="glyphicon sort-icon" ng-show="sortKey=='MobileNumber'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
|
||||||
|
</th>
|
||||||
|
<th ng-click="sort('EmailID')">EmailID
|
||||||
|
<span class="glyphicon sort-icon" ng-show="sortKey=='EmailID'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
|
||||||
|
</th>
|
||||||
|
<!-- <th>Status</th> -->
|
||||||
|
<!-- <th style="text-align: center;"> Action -->
|
||||||
|
<!-- </th> -->
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody dir-paginate="p in studentInfo|orderBy:sortKey:reverse|filter:search:strict|itemsPerPage:10">
|
||||||
|
<tr>
|
||||||
|
<td><input type="checkbox" ng-checked="myModel.all" id="{{p.StudentID}}" name="{{p.StudentID}}" class="form-control" ng-click="isClick($event);"></td>
|
||||||
|
<td>{{p.Firstname}}{{p.Lastname}}</td>
|
||||||
|
<!-- <td>{{p.UniversityShortName}}</td> -->
|
||||||
|
<td>{{p.MobileNumber}}</td>
|
||||||
|
<td>{{p.EmailID}}</td>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
<dir-pagination-controls max-size="10" direction-links="true" boundary-links="true">
|
||||||
|
</dir-pagination-controls>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- end: LIST GROUP -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -339,6 +339,11 @@
|
|||||||
<span class="title" translate="sidebar.nav.hallTicket.GENERATEHALLTICKET">GENERATE HALLTICKET</span>
|
<span class="title" translate="sidebar.nav.hallTicket.GENERATEHALLTICKET">GENERATE HALLTICKET</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li ui-sref-active="active">
|
||||||
|
<a ui-sref="app.hallTicket.examAttendance" ng-click="checkSuperAdmin()">
|
||||||
|
<span class="title" translate="sidebar.nav.hallTicket.EXAMATTENDANCE">EXAMATTENDANCE</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@ -752,6 +757,11 @@
|
|||||||
<span class="title" translate="sidebar.nav.hallTicket.GENERATEHALLTICKET">GENERATE HALLTICKET</span>
|
<span class="title" translate="sidebar.nav.hallTicket.GENERATEHALLTICKET">GENERATE HALLTICKET</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li ui-sref-active="active">
|
||||||
|
<a ui-sref="app.hallTicket.examAttendance" ng-click="checkAdmin()">
|
||||||
|
<span class="title" translate="sidebar.nav.hallTicket.EXAMATTENDANCE">EXAMATTENDANCE</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
@ -1056,6 +1066,7 @@
|
|||||||
<span class="title" translate="sidebar.nav.hallTicket.GENERATEHALLTICKET">GENERATE HALLTICKET</span>
|
<span class="title" translate="sidebar.nav.hallTicket.GENERATEHALLTICKET">GENERATE HALLTICKET</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
@ -1279,6 +1290,11 @@
|
|||||||
<span class="title" translate="sidebar.nav.hallTicket.GENERATEHALLTICKET">GENERATE HALLTICKET</span>
|
<span class="title" translate="sidebar.nav.hallTicket.GENERATEHALLTICKET">GENERATE HALLTICKET</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li ui-sref-active="active">
|
||||||
|
<a ui-sref="app.hallTicket.examAttendance" ng-click="checkStaff()">
|
||||||
|
<span class="title" translate="sidebar.nav.hallTicket.EXAMATTENDANCE">EXAMATTENDANCE</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user