apollodec/Apollo/assets/js/controllers/semcoursemapCtrl.js
venbatechnologies@gmail.com 6c9b31762d trainee screen access
2018-08-18 14:59:48 +05:30

703 lines
22 KiB
JavaScript
Executable File

'use strict';
/**
* controllers for ng-table
* Simple table with sorting and filtering on AngularJS
*/
app.controller('semcoursemapCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state) {
$scope.myModel = {
"studentName": "",
"mobileNumber": "",
"universityName":"",
"semsterName":""
};
$scope.viewPage = {
"SubjectDetails":[]
};
$scope.editUniversityId = '';//for View Page
$scope.editCourseId = '';//for View Page
$scope.viewPageSemDropDownShowLoading = true;//for View Page
$scope.viewPageSemDropDownShow = false;//for View Page
$scope.viewPageSemDropDownShowLoadingTxt = 'Loading...';//for View Page
$scope.updateButtonTxt = 'UPDATE';//for View Page
$scope.overAllMappedSubjects = [];//for View Page
$scope.semDropDownShow = false;
$scope.semDropDownShowLoading = false;
$scope.saveButtonDisabled = false;
$scope.saveButtonTxt = "SAVE";
$rootScope.userType = JSON.parse(localStorage.getItem('localObj')).localType;
$scope.semDetailsLoadingStatus = false;
$scope.semDetailsLoadingTxt = "";
$scope.label1 = "";
$scope.label2 = "";
$scope.label3 = "";
$scope.label4 = "";
$scope.viewLabel1 = "";//FOr View Page
$scope.viewLlabel2 = "";//FOr View Page
$scope.viewLlabel3 = "";//FOr View Page
$scope.viewLlabel4 = "";//FOr View Page
$scope.selectedCourseName = [];
$scope.selectedUniversityCourseName = '';
$scope.selectedSemSubjetcsSem1 = [];
$scope.selectedSemSubjetcsSem2 = [];
$scope.selectedSemSubjetcsSem3 = [];
$scope.selectedSemSubjetcsSem4 = [];
$scope.selectedSemSubjetcsSem5 = [];
$scope.selectedSemSubjetcsSem6 = [];
$scope.selectedSemSubjetcsSem7 = [];
$scope.selectedSemSubjetcsSem8 = [];
$scope.overallSelectedSubjetcs = [];
// 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 () {
var logcheck = JSON.parse(localStorage.getItem('localObj'));
const LOCALTYPE = logcheck.localType;
if (logcheck != null && (LOCALTYPE == 'R003' || LOCALTYPE == 'R004' || LOCALTYPE == 'R002' || LOCALTYPE == 'R005' )) {
console.log("if");
}else {
if(logcheck != null && LOCALTYPE !='R001') {
console.log("else if");
$state.go('app.dashboard');
} else {
console.log("else else");
//ipCookie.remove('cookiechk');
window.localStorage.clear();
$state.go('login.signin');
}
}
$scope.semDetailsLoadingStatus = true;
$scope.semDetailsLoadingTxt = "Loading...";
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;
//console.log(response.data.universityStatus);
} else {
$scope.university="";
}
});
$scope.selectedCourseNameC = {
list: $scope.selectedCourseName,
}
//For Get All Semesters and Subjetcs Info for View and Edit
var getAllSemSubjects = {
method: 'GET',
url: apiPoint.url + 'getAllSemSubjects/',
headers: {
'Content-Type': 'application/json'
},
data: {
BranchID: JSON.parse(localStorage.getItem('localObj')).localUserID,
}
};
$http(getAllSemSubjects).then(function (response) {
//console.log(response.data.semsubstatus);
if (response.data.status==200 && response.data.semsubstatus) {
$scope.semDetailsLoadingStatus = false;
$scope.existSemesterSubjectMapDetails = response.data.semsubjects;
//console.log($scope.existSemesterSubjectMapDetails);
//$scope.processDataforViewPage();
}
},function(error) {
$scope.semDetailsLoadingStatus = true;
$scope.semDetailsLoadingTxt = "No Records Found";
});
}
//Assign Courses to Course array for Multiple select
$scope.testFun = function(){
$scope.selectedUniversityCourseName = $scope.myModel.universityName.courseDetails;
//console.log($scope.selectedUniversityCourseName);
if($scope.selectedUniversityCourseName.length == 0){ swal('No Courses Available','','info'); }
$scope.selectedCourseNameC = {
list: $scope.selectedCourseName,
}
}
/*
* get course semester,subjects details
* created by velz
* */
$scope.getSemSubDetails = function(UID,COURSES){
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
{
//alert($scope.prevoiusSelectedCouseType);
if(UID == undefined || UID == '')
{
swal("Select University");
return false;
}
if(COURSES.list == '')
{
swal("Select Course");
return false;
}
if($scope.prevoiusSelectedCouseType.toUpperCase() == 'EAR')
{
$scope.label1 = "Year 1";
$scope.label2 = "Year 2";
$scope.label3 = "Year 3";
$scope.label4 = "Year 4";
$scope.courseMode = 1;
}
else
{
$scope.label1 = "Semester 1";
$scope.label2 = "Semester 3";
$scope.label3 = "Semester 5";
$scope.label4 = "Semester 7";
$scope.courseMode = 0;
}
$scope.semDropDownShowLoading = false;
$scope.semDropDownShow = false;
$scope.semDropDownShowLoading = true;
var getsubject = {
method: 'POST',
url: apiPoint.url + 'getSemesterSubjectDetails/',
headers: {
'Content-Type': 'application/json'
},
data: {
universityID : UID,
courseID : COURSES,
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID
}
};
$http(getsubject).then(function (response) {
if(response.data.status == 200)
{
$scope.semDropDownShowLoading = false;
$scope.semDropDownShow = true;
$scope.subjects = [];// For Main Dropdown
$scope.subjectsFromDBtoComapare = [];
//$scope.semesters = response.data.semesterDetails;
$scope.subjectsFromDB = response.data.subjectDetails; //Store Response Data to subjectsFromDB
angular.forEach($scope.subjectsFromDB,function(value,key){
$scope.subjects.push(value);// For Main Dropdown
});
$scope.selectedSubjetcsSem1C = {list: $scope.selectedSemSubjetcsSem1};
$scope.selectedSubjetcsSem2C = {list: $scope.selectedSemSubjetcsSem2};
$scope.selectedSubjetcsSem3C = {list: $scope.selectedSemSubjetcsSem3};
$scope.selectedSubjetcsSem4C = {list: $scope.selectedSemSubjetcsSem4};
$scope.selectedSubjetcsSem5C = {list: $scope.selectedSemSubjetcsSem5};
$scope.selectedSubjetcsSem6C = {list: $scope.selectedSemSubjetcsSem6};
$scope.selectedSubjetcsSem7C = {list: $scope.selectedSemSubjetcsSem7};
$scope.selectedSubjetcsSem8C = {list: $scope.selectedSemSubjetcsSem8};
}
},function(error){
$scope.semDropDownShowLoading = false;
swal('No Subjetcs Found','','error');
} );
}
}
/*
* Remove Subjects from Master Subjects Arry
* after selecting subjects for each semester
* created by velz
* */
$scope.removeSelectedSubjetcs = function(newsublist){
//Every time copy all subjetcs from subjectsFromDB to ompare
angular.forEach($scope.subjectsFromDB,function(value,key){
$scope.subjectsFromDBtoComapare.push(value);
});
//For Compare Single Semesters Array and Master Subjetcs Array and remove selected subjects from Master Subjetcs Array
angular.forEach(newsublist,function(value,key){
angular.forEach($scope.subjects,function(value2,key2){
if(value.SubjectID == value2.SubjectID)
{
$scope.subjects.splice(key2,1);
}
});
});
//For Concat all subjetcs from all semsters.
$scope.overallSelectedSubjetcs=[].concat($scope.selectedSubjetcsSem1C.list,$scope.selectedSubjetcsSem2C.list,$scope.selectedSubjetcsSem3C.list,$scope.selectedSubjetcsSem4C.list,$scope.selectedSubjetcsSem5C.list,$scope.selectedSubjetcsSem6C.list,$scope.selectedSubjetcsSem7C.list,$scope.selectedSubjetcsSem8C.list);
//For Compare Over all selected subjects And Master Subjetcs to avoid duplicate.
angular.forEach($scope.overallSelectedSubjetcs,function(value,key){
angular.forEach($scope.subjectsFromDBtoComapare,function(value2,key2){
if(value.SubjectID != value2.SubjectID)
{
if ($scope.overallSelectedSubjetcs.indexOf(value2) == -1 && $scope.subjects.indexOf(value2) == -1)
{
$scope.subjects.push(value2);
$scope.subjectsFromDBtoComapare.splice(key2,1);
}
}
});
});
$scope.subjectsFromDBtoComapare = [];
}
$scope.saveAll = function()
{
//swal('SAVEALL',$scope.myModel.universityName.universityID,'warning');
var universityID = $scope.myModel.universityName.universityID;
var courseIDs = $scope.selectedCourseNameC.list;
var sem1 = $scope.selectedSubjetcsSem1C.list;
var sem2 = $scope.selectedSubjetcsSem2C.list;
var sem3 = $scope.selectedSubjetcsSem3C.list;
var sem4 = $scope.selectedSubjetcsSem4C.list;
var sem5 = $scope.selectedSubjetcsSem5C.list;
var sem6 = $scope.selectedSubjetcsSem6C.list;
var sem7 = $scope.selectedSubjetcsSem7C.list;
var sem8 = $scope.selectedSubjetcsSem8C.list;
var semestersArray = [];
for(var i = 1; i<= 8 ;i++)
{
var s = 'sem'+i;
semestersArray.push(eval(s));
}
if(universityID == null|| universityID == undefined){ swal("Select University"); return false; }
if(courseIDs == '' || courseIDs.length == 0){ swal("Select Course"); return false; }
if(sem1.length == 0 && sem2.length == 0 && sem3.length == 0 && sem4.length == 0 && sem5.length == 0 && sem6.length == 0 && sem7.length == 0 && sem8.length == 0){
swal("Select Subjetcs"); return false;
}
$scope.saveButtonDisabled = true;
$scope.saveButtonTxt = "SAVEING...";
swal('This one takes a while..!',' Wait until confirming message.','info');
//console.log(semestersArray);
//return false;
var saveAllInfo = {
method: 'POST',
url: apiPoint.url + 'saveAllSemSubMapping/',
headers: {
'Content-Type': 'application/json'
},
data: {
universityID : universityID,
courseID : courseIDs,
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID,
Semesters:semestersArray
}
};
$http(saveAllInfo).then(function(response) {
if(response.data.status == 200 && response.data.txtStatus == 1)
{
//console.log(response);
$scope.saveButtonTxt = "SAVED";
swal('Saved!','Good Job','success')
$state.go($state.current, {}, {reload: true});
}
else if(response.data.status == 200 && response.data.txtStatus == 2){
//console.log(response);
$scope.saveButtonTxt = "EXIST";
swal('Record Exists!','Try Edit','warning')
$state.go($state.current, {}, {reload: true});
}
},function(error){
swal('Some Thing Went Wrong!','Try Later','error')
$state.go($state.current, {}, {reload: true});
});
}
$scope.processDataforViewPage = function()
{
//console.log('PROCESS FUNCTION');
var tArry = [];
angular.forEach($scope.existSubjectDetails,function(value,key){
//concat all mapped subjects into one single arry for future comparisan purpose.
$scope.overAllMappedSubjects.push({'SubjectID':value.SubjectID,'SubjectCode':value.SubjectCode,'SubjectName':value.SubjectName});
if(tArry.indexOf(value.SemesterID) == -1)
{
tArry.push(value.SemesterID);
if(value.SubjectID != null){
$scope.viewPage.SubjectDetails[value.SemesterID]=new Array({'SubjectID':value.SubjectID,'SubjectCode':value.SubjectCode,'SubjectName':value.SubjectName});
}
}
else
{
if(value.SubjectID != null){
$scope.viewPage.SubjectDetails[value.SemesterID].push({'SubjectID':value.SubjectID,'SubjectCode':value.SubjectCode,'SubjectName':value.SubjectName});
}
}
});
// console.log($scope.viewPage.SubjectDetails);
//console.log($scope.overAllMappedSubjects);
// return false;
$scope.selectedSubjetcsSem1ViewPage = {list: $scope.viewPage.SubjectDetails[1]};
$scope.selectedSubjetcsSem2ViewPage = {list: $scope.viewPage.SubjectDetails[2]};
$scope.selectedSubjetcsSem3ViewPage = {list: $scope.viewPage.SubjectDetails[3]};
$scope.selectedSubjetcsSem4ViewPage = {list: $scope.viewPage.SubjectDetails[4]};
$scope.selectedSubjetcsSem5ViewPage = {list: $scope.viewPage.SubjectDetails[5]};
$scope.selectedSubjetcsSem6ViewPage = {list: $scope.viewPage.SubjectDetails[6]};
$scope.selectedSubjetcsSem7ViewPage = {list: $scope.viewPage.SubjectDetails[7]};
$scope.selectedSubjetcsSem8ViewPage = {list: $scope.viewPage.SubjectDetails[8]};
$scope.viewPageSemDropDownShowLoading = false;
$scope.viewPageSemDropDownShow = true;
angular.forEach($scope.overAllMappedSubjects,function(value,key){
angular.forEach($scope.overAllSubjects,function(value2,key2){
if(value.SubjectID == value2.SubjectID)
{
$scope.overAllSubjects.splice(key2,1);
}
});
});
}
$scope.setEditId = function (uid,cid,PT,FT,SY)
{
//alert(uid+'-'+cid+'-'+PT+'-'+FT+'-'+SY);
var courseModewithoutnum = "";
if(PT == 'Y001' && FT == 'F002')
{
var courseMode = (SY.toUpperCase()).substr(-4);
courseModewithoutnum = courseMode.substr(0,3);
//alert(courseModewithoutnum);
if((courseModewithoutnum.toUpperCase()) == 'EAR')
{
$scope.viewLabel1 = 'Year 1';
$scope.viewLabel2 = 'Year 2';
$scope.viewLabel3 = 'Year 3';
$scope.viewLabel4 = 'Year 4';
$scope.viewPageCourseMode = 1;
}
else
{
$scope.viewLabel1 = 'Semester 1';
$scope.viewLabel2 = 'Semester 3';
$scope.viewLabel3 = 'Semester 5';
$scope.viewLabel4 = 'Semester 7';
$scope.viewPageCourseMode = 0;
}
}
$scope.editUniversityId = uid;
$scope.editCourseId = cid;
$scope.getIndividualCourseSemMappingDetails(uid,cid);
}
$scope.cancel = function()
{
$scope.editUniversityId = '';
$scope.editCourseId = '';
$scope.viewPageSemDropDownShow = false;
$scope.viewPageSemDropDownShowLoading = true;
$scope.viewPage.SubjectDetails[1] = "";
$scope.viewPage.SubjectDetails[2] = "";
$scope.viewPage.SubjectDetails[3] = "";
$scope.viewPage.SubjectDetails[4] = "";
$scope.viewPage.SubjectDetails[5] = "";
$scope.viewPage.SubjectDetails[6] = "";
$scope.viewPage.SubjectDetails[7] = "";
$scope.viewPage.SubjectDetails[8] = "";
}
//Get Individual Course Sem Mapping Details for edit page
$scope.getIndividualCourseSemMappingDetails = function(uid,cid)
{
var getIndCourseSemDetails = {
method: 'POST',
url: apiPoint.url + 'getIndividualCourseSemMappingDetails/',
headers: {
'Content-Type': 'application/json'
},
data: {
universityID : uid,
courseID : cid,
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID
}
};
$http(getIndCourseSemDetails).then(function(response) {
if(response.data.status == 200 && response.data.subjectStatus)
{
//console.log(response.data);
$scope.existSubjectDetails = response.data.subjects;
$scope.overAllSubjectsFromDB= response.data.overAllSubjects;
$scope.overAllSubjects = [];
//$scope.overAllSubjectsFromDBtoCompare = []; //Just Empty array for $scope.modifySelectedSubjetcs funciton comparison use
angular.forEach($scope.overAllSubjectsFromDB,function(value,key){
$scope.overAllSubjects.push(value);
});
$scope.processDataforViewPage();
}
else {
// $scope.saveButtonTxt = "EXIST";
swal('Record Not Found!','','error')
$state.go($state.current, {}, {reload: true});
}
});
}
/*
* Remove Subjects from Master Subjects Arry for view Page
* after selecting/removing subjects for each semester
* created by velz
* */
$scope.modifySelectedSubjetcs = function(newsublist){
angular.forEach(newsublist,function(value,key){
angular.forEach($scope.overAllSubjects,function(value2,key2){
if(value.SubjectID == value2.SubjectID)
{
$scope.overAllSubjects.splice(key2,1);
}
});
});
}
/*
* After Remove Subject from Individual Semester
* get removed item and push it to overAllSubjects array for other semster
* created by velz
* */
$scope.itemRemove = function(item)
{
$scope.overAllSubjects.push(item);
}
/*
* Update semster and Subjects Info
* created by velz
* */
$scope.updateAll = function(UniversityID,CourseID)
{
var universityID = UniversityID;
var courseID = CourseID;
var sem1 = $scope.selectedSubjetcsSem1ViewPage.list;
var sem2 = $scope.selectedSubjetcsSem2ViewPage.list;
var sem3 = $scope.selectedSubjetcsSem3ViewPage.list;
var sem4 = $scope.selectedSubjetcsSem4ViewPage.list;
var sem5 = $scope.selectedSubjetcsSem5ViewPage.list;
var sem6 = $scope.selectedSubjetcsSem6ViewPage.list;
var sem7 = $scope.selectedSubjetcsSem7ViewPage.list;
var sem8 = $scope.selectedSubjetcsSem8ViewPage.list;
var semestersArray = [];
for(var i = 1; i<= 8 ;i++)
{
var s = 'sem'+i;
semestersArray.push(eval(s));
}
if(universityID == null|| universityID == undefined){ swal("Select University"); return false; }
if(courseID == ''){ swal("Select Course"); return false; }
if(sem1.length == 0 && sem2.length == 0 && sem3.length == 0 && sem4.length == 0 && sem5.length == 0 && sem6.length == 0 && sem7.length == 0 && sem8.length == 0){
swal("Select Subjetcs"); return false;
}
//$scope.updateButtonDisabled = true;
$scope.updateButtonTxt = "UPDATING...";
swal('This one takes a while..!',' Wait until confirming message.','info');
//console.log(semestersArray);
//return false;
var updateAllInfo = {
method: 'POST',
url: apiPoint.url + 'updateAllSemSubMapping/',
headers: {
'Content-Type': 'application/json'
},
data: {
universityID : universityID,
courseID : courseID,
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID,
Semesters:semestersArray
}
};
$http(updateAllInfo).then(function(response) {
console.log(response);
if(response.data.status == 200 && response.data.txtStatus)
{
$scope.updateButtonTxt = "SAVED";
swal('Saved!','Good Job','success')
$state.go($state.current, {}, {reload: true});
}
},function(error){
swal('Some Thing Went Wrong!','Try Later','error')
$state.go($state.current, {}, {reload: true});
});
}
$scope.prevoiusSelectedCouseType = "";
$scope.checkCourseMode = function(item)
{
if(item['ProgramType'] == "Y001" && item['FeesType'] == "F002")
{
var tempString = item['Sem_Year'];
var courseMode = (tempString.toUpperCase()).substr(-4);
var courseModewithoutnum = courseMode.substr(0,3);
if($scope.prevoiusSelectedCouseType != "" && $scope.prevoiusSelectedCouseType != courseModewithoutnum)
{
swal('Semester and Year Mode Combination Not Accepted','Please Select Either Year Mode OR Semester Mode Courses','info');
$scope.selectedCourseNameC.list = "";
$scope.prevoiusSelectedCouseType = "";
$scope.semDropDownShow = false;
return false;
}
$scope.prevoiusSelectedCouseType = courseModewithoutnum;
}
}
}]);