From fac168caf9f63690fc67838ee98e923d57278b08 Mon Sep 17 00:00:00 2001 From: gandhimathi Date: Tue, 13 Feb 2018 14:03:19 +0530 Subject: [PATCH] session schedule changes done --- .../js/controllers/sessionScheduleCtrl.js | 330 ++++++++++++++++++ 1 file changed, 330 insertions(+) create mode 100644 Apollo/assets/js/controllers/sessionScheduleCtrl.js diff --git a/Apollo/assets/js/controllers/sessionScheduleCtrl.js b/Apollo/assets/js/controllers/sessionScheduleCtrl.js new file mode 100644 index 00000000..399f4f81 --- /dev/null +++ b/Apollo/assets/js/controllers/sessionScheduleCtrl.js @@ -0,0 +1,330 @@ +'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) { + console.log(values); + $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.ldloading[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 () { + $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; + } + +}]);