'use strict'; /** * controllers for ng-table * Simple table with sorting and filtering on AngularJS */ app.controller('sessionScheduleCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$sessionStorage", "$http", "$state", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $sessionStorage, $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(sessionStorage.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(sessionStorage.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(sessionStorage.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.sessionStorage.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(sessionStorage.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; } }]);