355 lines
12 KiB
JavaScript
Executable File
355 lines
12 KiB
JavaScript
Executable File
'use strict';
|
|
/**
|
|
* controllers for ng-table
|
|
* Simple table with sorting and filtering on AngularJS
|
|
*/
|
|
|
|
app.controller('sessionScheduleCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state) {
|
|
$scope.timings = '';
|
|
$scope.myModel = {
|
|
session:"",
|
|
periodStart: [],
|
|
periodEnd: [],
|
|
periodTimings: [],
|
|
date:"",
|
|
timingCounts:1,
|
|
switchsetting:true
|
|
};
|
|
/*
|
|
* edit session details
|
|
* created by kms
|
|
* */
|
|
$scope.editId = -1;
|
|
$scope.setEditId = function (p) {
|
|
$scope.editId = p.SCID;
|
|
$scope.getStart= [];
|
|
$scope.getEnd= [];
|
|
$scope.getEcheduleID= [];
|
|
angular.forEach(p.ScheduleDetails, function (values, keys) {
|
|
$scope.getStart.push(values.StartTime);
|
|
$scope.getEnd.push(values.EndTime);
|
|
$scope.getEcheduleID.push(values.ScheduleID);
|
|
});
|
|
|
|
$scope.editmyModel = {
|
|
periodStartEdit: $scope.getStart,
|
|
periodEndEdit: $scope.getEnd,
|
|
scheduleID:$scope.getEcheduleID
|
|
}
|
|
|
|
$scope.getattendancerangesEdit($scope.getEnd.length);
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
/*
|
|
* cancel edit div
|
|
* created by kms
|
|
* */
|
|
$scope.cancel = function () {
|
|
$rootScope.init();
|
|
$scope.editId = -1;
|
|
|
|
};
|
|
|
|
// 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
|
|
}
|
|
/*
|
|
* Submit, reset session details
|
|
* @params myModel
|
|
* created by kms
|
|
* */
|
|
$scope.sessionForm = {
|
|
|
|
submit: function (form, myModel,loading) {
|
|
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.myModel.periodTimings = [];
|
|
for (var i = 0; i < myModel.timingCounts; i++) {
|
|
var start = document.getElementById('periodStart' + i).value;
|
|
var end = document.getElementById('periodEnd' + i).value;
|
|
start = start.split('"');
|
|
end = end.split('"');
|
|
if(start[1]==undefined){
|
|
start=start;
|
|
var startTime = new Date(start);
|
|
}
|
|
else{
|
|
start = start[1];
|
|
var startTime = new Date(start[1]);
|
|
}
|
|
|
|
if(end[1]==undefined){
|
|
end=end;
|
|
var endTime = new Date(end);
|
|
}
|
|
else{
|
|
end = end[1];
|
|
var endTime = new Date(end[1]);
|
|
}
|
|
|
|
$scope.periods = {
|
|
start: startTime.getHours() + ':' + startTime.getMinutes(),
|
|
end: endTime.getHours() + ':' + endTime.getMinutes(),
|
|
// sTime:$filter('date')(start[1], 'hh:mm a'),
|
|
//eTime:$filter('date')(end[1], 'hh:mm a'),
|
|
startTime: start.toString(),
|
|
endTime: end.toString()
|
|
};
|
|
$scope.myModel.periodTimings.push($scope.periods);
|
|
}
|
|
$scope.ldloading1 = {};
|
|
|
|
$scope.ldloading1[loading.replace('-', '_')] = true;
|
|
|
|
|
|
var addSession = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'addSessionScheduleDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
sessionID: myModel.session,
|
|
date: $filter('date')(myModel.date, 'dd-MM-yyyy'),
|
|
status: myModel.switchsetting,
|
|
timings: $scope.myModel.periodTimings,
|
|
createdBy: JSON.parse(localStorage.getItem('localObj')).localUserID
|
|
}
|
|
};
|
|
$http(addSession).then(function (response) {
|
|
if (response.data.status==200 && response.data.sessionStatus) {
|
|
$scope.ldloading1[loading.replace('-', '_')] = false;
|
|
swal("", response.data.message, "success");
|
|
$state.go($state.current, {}, {reload: true});
|
|
} else {
|
|
$scope.ldloading1[loading.replace('-', '_')] = false;
|
|
swal("", response.data.message, "error");
|
|
}
|
|
});
|
|
|
|
|
|
}
|
|
},
|
|
reset: function (form) {
|
|
$scope.myModel="";
|
|
form.$setPristine(true);
|
|
}
|
|
};
|
|
|
|
/*edit model
|
|
* */
|
|
$scope.editmyModel = {
|
|
periodTimings: [],
|
|
timingCounts:1,
|
|
};
|
|
|
|
/*
|
|
* update session schedule details
|
|
* created by kms
|
|
* */
|
|
$scope.updateSession = function (p,myModel,form,loading) {
|
|
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].$stop_name;
|
|
}
|
|
|
|
if (form[field].$pristine) {
|
|
form[field].$dirty = true;
|
|
}
|
|
}
|
|
}
|
|
angular.element('.ng-invalid[name=' + firstError + ']').focus();
|
|
} else {
|
|
$scope.editmyModel.periodTimings = [];
|
|
for (var i = 0; i < myModel.edittimingCounts; i++) {
|
|
var start = document.getElementById('periodStartEdit' + i).value;
|
|
var end = document.getElementById('periodEndEdit' + i).value;
|
|
var schedule = document.getElementById('scheduleID' + i).value;
|
|
if(schedule=='' || schedule==null || schedule==undefined){
|
|
schedule="";
|
|
}
|
|
start = start.split('"');
|
|
end = end.split('"');
|
|
|
|
if(start[1]==undefined){
|
|
start=start;
|
|
var startTime = new Date(start);
|
|
}
|
|
else{
|
|
start = start[1];
|
|
var startTime = new Date(start[1]);
|
|
}
|
|
|
|
if(end[1]==undefined){
|
|
end=end;
|
|
var endTime = new Date(end);
|
|
}
|
|
else{
|
|
end = end[1];
|
|
var endTime = new Date(end[1]);
|
|
}
|
|
|
|
|
|
|
|
$scope.periods = {
|
|
start: startTime.getHours() + ':' + startTime.getMinutes(),
|
|
end: endTime.getHours() + ':' + endTime.getMinutes(),
|
|
// sTime:$filter('date')(start[1], 'hh:mm a'),
|
|
//eTime:$filter('date')(end[1], 'hh:mm a'),
|
|
startTime: start.toString(),
|
|
endTime: end.toString(),
|
|
scheduleID:schedule
|
|
};
|
|
$scope.editmyModel.periodTimings.push($scope.periods);
|
|
}
|
|
$scope.ldloading3 = {};
|
|
|
|
$scope.ldloading3[loading.replace('-', '_')] = true;
|
|
|
|
|
|
var update = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'updateSessionScheduleDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
scheduleID:p.SCID,
|
|
sessionID: p.SessionID,
|
|
date: $filter('date')(p.SCDate, 'dd-MM-yyyy'),
|
|
status: p.IsActive,
|
|
timings: $scope.editmyModel.periodTimings,
|
|
updatedBy: JSON.parse(localStorage.getItem('localObj')).localUserID
|
|
}
|
|
};
|
|
$http(update).then(function (response) {
|
|
if (response.data.status==200 && response.data.sessionStatus) {
|
|
$scope.ldloading3[loading.replace('-', '_')] = false;
|
|
$scope.editId = -1;
|
|
$rootScope.init();
|
|
swal("", response.data.message, "success");
|
|
|
|
|
|
} else {
|
|
$scope.ldloading3[loading.replace('-', '_')] = false;
|
|
swal("", response.data.message, "error");
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
|
|
/*
|
|
*get session schedule details when page loading
|
|
* created by kms
|
|
**/
|
|
$scope.loader='';
|
|
|
|
$scope.emptyData='';
|
|
|
|
$rootScope.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.getattendanceranges($scope.myModel.timingCounts);
|
|
var getSession = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'getSessionScheduleDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID
|
|
}
|
|
};
|
|
|
|
$http(getSession).then(function (response) {
|
|
if (response.data.status==200 && response.data.sessionStatus) {
|
|
|
|
$scope.emptyData=true;
|
|
$scope.loader=true;
|
|
|
|
$scope.data = response.data.details;
|
|
|
|
} else {
|
|
$scope.emptyData=false;
|
|
$scope.loader=true;
|
|
|
|
}
|
|
|
|
$scope.sessionMasterList = response.data.sessionMaster;
|
|
});
|
|
};
|
|
|
|
|
|
$scope.startTime = '';
|
|
$scope.endTime = '';
|
|
$scope.attendanceranges = '';
|
|
$scope.getattendanceranges = function (counts) {
|
|
$scope.myModel.timingCounts=counts;
|
|
var range = [];
|
|
for (var i = 0; i < counts; i++) {
|
|
range.push(i);
|
|
}
|
|
$scope.attendanceranges = range;
|
|
}
|
|
|
|
/*edit timing counts
|
|
* */
|
|
$scope.getattendancerangesEdit = function (counts) {
|
|
$scope.editmyModel.edittimingCounts = counts;
|
|
var range = [];
|
|
for (var i = 0; i < counts; i++) {
|
|
range.push(i);
|
|
}
|
|
$scope.editattendanceranges = range;
|
|
}
|
|
|
|
}]);
|