Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- app.controller('AssessmentController', function ($scope, $rootScope, $interval, DataFactory, $state, $stateParams, $mdDialog) {
- $scope.intruders = false;
- $scope.LoadedAssessment = false;
- $scope.rightArrowEnable = true; //enable left arrow
- $scope.leftArrowEnable = true; // enable right arrow
- /*$scope.updateIconThing = function(){
- return $scope.idleTime;
- }*/
- DataFactory.selectAllTeams().success(function(response){
- var teams = response;
- $scope.choices = [];
- for (var key in teams) {
- $scope.choices.push({"value" : teams[key]["team_id"], "description" : teams[key]["name"]});
- }
- console.log($scope.choices);
- }).error(function(error){
- });
- $scope.addChoices = function(question){
- if(question.question_name == "Team"){
- question.question_parameters.options = $scope.choices;
- }
- }
- $scope.checkIndex = function(section, questionGroup){
- var index = section.indexOf(questionGroup);
- return index;
- }
- $scope.deleteIndex = function(section, questionGroup){
- var title = "You are deleting an answer.";
- var textContent = "Are you sure you want to delete this answer?";
- var confirm = ShowConfirmDialog(title, textContent);
- $mdDialog.show(confirm).then(function() {
- var index = section.indexOf(questionGroup);
- if(section.length > 1){
- if(!$scope.assessmentData.questionnaire.deletedTeams){
- $scope.assessmentData.questionnaire.deletedTeams = [];
- }
- $scope.assessmentData.questionnaire.deletedTeams.push(questionGroup[0].team_id);
- section.splice(index, 1);
- $scope.ShowCustomToast("", 'successful', 'assessment');
- }else{
- $scope.ShowCustomToast("", 'successful', 'assessment');
- }
- });
- }
- if($scope.$parent.userDetails == null){
- $scope.intruders = true;
- }else{
- $scope.$parent.ChangeState("assessment");
- }
- $scope.$parent.ChangeLoadBarState(true);
- sessionStorage.setItem("user", localStorage.getItem("user"));
- $scope.localUserDetails = JSON.parse(sessionStorage.getItem("user"));
- DataFactory.selectActiveAssessmentDetails($scope.localUserDetails.selectedAccountId).success(function(response){
- console.log(response);
- for(var i = 0; i < response.length; i++){
- response[i]['shortened_name'] = trim(response[i]['assessment_name']);
- }
- $scope.assessmentList = response;
- $scope.divCount = parseInt($scope.assessmentList.length / 4);
- if($scope.assessmentList.length % 4 > 0){
- $scope.divCount = $scope.divCount + 1;
- }
- loadAssessmentDetails();
- }).error(function(error){
- //console.log(error);
- });
- function trim(name){
- return name.replace(/[^A-Z0-9]+/ig, "");
- }
- function loadAssessmentDetails() {
- $scope.$parent.ChangeLoadBarState(false);
- assessmentID = parseInt($stateParams.data);
- $scope.selectedAssessmentIndex = assessmentID.toString();
- // Load Assessments
- if(assessmentID > 0){
- $scope.LoadedAssessment = true;
- // select selected assessment
- var index = _.findIndex($scope.assessmentList, function(list) {
- return parseInt(list.assessment_id) == parseInt(assessmentID);
- });
- $scope.selectedAssessment = $scope.assessmentList[index];
- // generate questionnaire
- $scope.$parent.ChangeLoadBarState(true);
- DataFactory.generateAssessmentTemplate(assessmentID, $scope.localUserDetails.selectedAccountId, "assessment").then(function (response) {
- $scope.assessmentData = response.data;
- $scope.assessmentData.questionnaire.response_status = determineIfFinalOrDraft($scope.assessmentData.questionnaire.response_status);
- $scope.$parent.ChangeLoadBarState(false);
- });
- }
- }
- // check index comparing assessmentID
- function checkIndex (assessmentList, assessmentID){
- //console.log("CHECK INDEX" + JSON.stringify(assessmentList) + " ASSESSMENT ID" + assessmentID);
- index = _.findIndex(assessmentList, function(list) {
- return parseInt(list.assessment_id) == parseInt(assessmentID);
- });
- return index;
- }
- // Change Assessment from Dropdown
- $scope.ChangeAssessment = function(assessment){
- var index = checkIndex($scope.assessmentList, assessment);
- $scope.selectedAssessment = $scope.assessmentList[index];
- console.log($scope.selectedAssessment);
- $state.go('assessment', {'shortened_name': $scope.selectedAssessment.shortened_name, 'data': $scope.selectedAssessment.assessment_id});
- }
- // Load Next Assessment
- $scope.NextAssessment = function(){
- var index = checkIndex($scope.assessmentList, assessmentID);
- if($scope.assessmentList[index + 1] == undefined){
- $scope.rightArrowEnable = false;
- }
- else{
- $scope.selectedAssessment = $scope.assessmentList[index + 1];
- $scope.rightArrowEnable = true;
- }
- console.log($scope.selectedAssessment);
- $state.go('assessment', {'shortened_name': $scope.selectedAssessment.shortened_name, 'data': $scope.selectedAssessment.assessment_id});
- }
- // Load Previous Assessment
- $scope.PreviousAssessment = function(){
- var index = checkIndex($scope.assessmentList, assessmentID);
- $scope.selectedAssessment = $scope.assessmentList[index - 1];
- $state.go('assessment', {'shortened_name': $scope.selectedAssessment.shortened_name, 'data': $scope.selectedAssessment.assessment_id});
- }
- $scope.toDateFunction = function(question) {
- if(question["response_response"] != ""){
- question["response_response"] = new Date(question["response_response"]);
- }
- return true;
- };
- $scope.DetermineInputClass = function(type){
- if(type === 'paragraph'){
- return 'textarea-height';
- }
- else if(type === 'number' || type ===' text'){
- return 'textbox-height';
- }
- else if(type === 'radio'){
- return 'radioarea-height';
- }
- }
- determineIfFinalOrDraft = function($data){
- return ($data == "response") ? "final" : "draft";
- }
- //account_id, segment_id, user_email, response
- $scope.insertResponse = function(table){
- /*
- table = ""
- */
- //console.log(JSON.stringify($scope.assessmentData));
- $scope.$parent.ChangeLoadBarState(true);
- DataFactory.insertResponse($scope.localUserDetails.selectedAccountId, $scope.localUserDetails.email, $scope.assessmentData, table).then(function (response) {
- $scope.assessmentData.questionnaire.response_status = determineIfFinalOrDraft(response.data.table);
- $scope.assessmentData.questionnaire.response_created = response.data.created;
- $scope.ShowCustomToast($scope.assessmentData, 'saved', 'assessment');
- $scope.$parent.ChangeLoadBarState(false);
- });
- }
- $scope.addResponseGroup = function(section) {
- $newResponseGroup = angular.copy(section.question[section.question.length-1]);
- $newResponseGroupID = parseInt($newResponseGroup[0].response_group) + 1;
- angular.forEach($newResponseGroup, function(group) {
- group.team_id = null;
- group.newResponse = true;
- group.response_response = null;
- group.response_group = $newResponseGroupID;
- });
- section.question.push($newResponseGroup);
- }
- ShowCustomToast = function(parameters, action, page) {
- $mdToast.show({
- hideDelay : 5000,
- position : 'top right',
- controller : 'NotificationController',
- templateUrl : 'public/angular/Templates/Modals/toast.html',
- locals :
- {
- param:parameters,
- action: action,
- page: page
- }
- });
- };
- ShowConfirmDialog = function(title, textContent, ev) {
- var confirm = $mdDialog.confirm()
- .title(title)
- .textContent(textContent)
- .targetEvent(ev)
- .clickOutsideToClose(true)
- .ok('Please do it!')
- .cancel("I've changed my mind");
- return confirm;
- }
- $scope.isOpen = false;
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement