Advertisement
Guest User

rnr

a guest
Jan 23rd, 2018
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.49 KB | None | 0 0
  1. app.controller('AssessmentController', function ($scope, $rootScope, $interval, DataFactory, $state, $stateParams, $mdDialog) {
  2. $scope.intruders = false;
  3. $scope.LoadedAssessment = false;
  4. $scope.rightArrowEnable = true; //enable left arrow
  5. $scope.leftArrowEnable = true; // enable right arrow
  6.  
  7. /*$scope.updateIconThing = function(){
  8. return $scope.idleTime;
  9. }*/
  10.  
  11. DataFactory.selectAllTeams().success(function(response){
  12. var teams = response;
  13. $scope.choices = [];
  14. for (var key in teams) {
  15. $scope.choices.push({"value" : teams[key]["team_id"], "description" : teams[key]["name"]});
  16. }
  17.  
  18. console.log($scope.choices);
  19. }).error(function(error){
  20.  
  21. });
  22.  
  23. $scope.addChoices = function(question){
  24. if(question.question_name == "Team"){
  25. question.question_parameters.options = $scope.choices;
  26. }
  27. }
  28.  
  29. $scope.checkIndex = function(section, questionGroup){
  30. var index = section.indexOf(questionGroup);
  31. return index;
  32. }
  33.  
  34. $scope.deleteIndex = function(section, questionGroup){
  35. var title = "You are deleting an answer.";
  36. var textContent = "Are you sure you want to delete this answer?";
  37.  
  38. var confirm = ShowConfirmDialog(title, textContent);
  39.  
  40. $mdDialog.show(confirm).then(function() {
  41. var index = section.indexOf(questionGroup);
  42.  
  43. if(section.length > 1){
  44. if(!$scope.assessmentData.questionnaire.deletedTeams){
  45. $scope.assessmentData.questionnaire.deletedTeams = [];
  46. }
  47.  
  48. $scope.assessmentData.questionnaire.deletedTeams.push(questionGroup[0].team_id);
  49. section.splice(index, 1);
  50. $scope.ShowCustomToast("", 'successful', 'assessment');
  51. }else{
  52. $scope.ShowCustomToast("", 'successful', 'assessment');
  53. }
  54. });
  55. }
  56.  
  57. if($scope.$parent.userDetails == null){
  58. $scope.intruders = true;
  59. }else{
  60. $scope.$parent.ChangeState("assessment");
  61. }
  62.  
  63. $scope.$parent.ChangeLoadBarState(true);
  64.  
  65. sessionStorage.setItem("user", localStorage.getItem("user"));
  66. $scope.localUserDetails = JSON.parse(sessionStorage.getItem("user"));
  67.  
  68. DataFactory.selectActiveAssessmentDetails($scope.localUserDetails.selectedAccountId).success(function(response){
  69. console.log(response);
  70. for(var i = 0; i < response.length; i++){
  71. response[i]['shortened_name'] = trim(response[i]['assessment_name']);
  72. }
  73.  
  74. $scope.assessmentList = response;
  75.  
  76. $scope.divCount = parseInt($scope.assessmentList.length / 4);
  77. if($scope.assessmentList.length % 4 > 0){
  78. $scope.divCount = $scope.divCount + 1;
  79. }
  80.  
  81. loadAssessmentDetails();
  82. }).error(function(error){
  83. //console.log(error);
  84. });
  85.  
  86. function trim(name){
  87. return name.replace(/[^A-Z0-9]+/ig, "");
  88. }
  89.  
  90. function loadAssessmentDetails() {
  91. $scope.$parent.ChangeLoadBarState(false);
  92. assessmentID = parseInt($stateParams.data);
  93. $scope.selectedAssessmentIndex = assessmentID.toString();
  94.  
  95. // Load Assessments
  96. if(assessmentID > 0){
  97. $scope.LoadedAssessment = true;
  98.  
  99. // select selected assessment
  100. var index = _.findIndex($scope.assessmentList, function(list) {
  101. return parseInt(list.assessment_id) == parseInt(assessmentID);
  102. });
  103.  
  104. $scope.selectedAssessment = $scope.assessmentList[index];
  105.  
  106. // generate questionnaire
  107. $scope.$parent.ChangeLoadBarState(true);
  108. DataFactory.generateAssessmentTemplate(assessmentID, $scope.localUserDetails.selectedAccountId, "assessment").then(function (response) {
  109. $scope.assessmentData = response.data;
  110. $scope.assessmentData.questionnaire.response_status = determineIfFinalOrDraft($scope.assessmentData.questionnaire.response_status);
  111. $scope.$parent.ChangeLoadBarState(false);
  112. });
  113. }
  114. }
  115.  
  116. // check index comparing assessmentID
  117. function checkIndex (assessmentList, assessmentID){
  118. //console.log("CHECK INDEX" + JSON.stringify(assessmentList) + " ASSESSMENT ID" + assessmentID);
  119.  
  120. index = _.findIndex(assessmentList, function(list) {
  121. return parseInt(list.assessment_id) == parseInt(assessmentID);
  122. });
  123.  
  124. return index;
  125. }
  126.  
  127. // Change Assessment from Dropdown
  128. $scope.ChangeAssessment = function(assessment){
  129. var index = checkIndex($scope.assessmentList, assessment);
  130. $scope.selectedAssessment = $scope.assessmentList[index];
  131. console.log($scope.selectedAssessment);
  132. $state.go('assessment', {'shortened_name': $scope.selectedAssessment.shortened_name, 'data': $scope.selectedAssessment.assessment_id});
  133. }
  134. // Load Next Assessment
  135. $scope.NextAssessment = function(){
  136. var index = checkIndex($scope.assessmentList, assessmentID);
  137. if($scope.assessmentList[index + 1] == undefined){
  138. $scope.rightArrowEnable = false;
  139. }
  140. else{
  141. $scope.selectedAssessment = $scope.assessmentList[index + 1];
  142. $scope.rightArrowEnable = true;
  143. }
  144.  
  145. console.log($scope.selectedAssessment);
  146. $state.go('assessment', {'shortened_name': $scope.selectedAssessment.shortened_name, 'data': $scope.selectedAssessment.assessment_id});
  147. }
  148.  
  149. // Load Previous Assessment
  150. $scope.PreviousAssessment = function(){
  151. var index = checkIndex($scope.assessmentList, assessmentID);
  152.  
  153. $scope.selectedAssessment = $scope.assessmentList[index - 1];
  154. $state.go('assessment', {'shortened_name': $scope.selectedAssessment.shortened_name, 'data': $scope.selectedAssessment.assessment_id});
  155. }
  156.  
  157. $scope.toDateFunction = function(question) {
  158. if(question["response_response"] != ""){
  159. question["response_response"] = new Date(question["response_response"]);
  160. }
  161.  
  162. return true;
  163. };
  164.  
  165. $scope.DetermineInputClass = function(type){
  166. if(type === 'paragraph'){
  167. return 'textarea-height';
  168. }
  169. else if(type === 'number' || type ===' text'){
  170. return 'textbox-height';
  171. }
  172. else if(type === 'radio'){
  173. return 'radioarea-height';
  174. }
  175. }
  176.  
  177. determineIfFinalOrDraft = function($data){
  178. return ($data == "response") ? "final" : "draft";
  179. }
  180.  
  181. //account_id, segment_id, user_email, response
  182. $scope.insertResponse = function(table){
  183. /*
  184. table = ""
  185. */
  186.  
  187. //console.log(JSON.stringify($scope.assessmentData));
  188. $scope.$parent.ChangeLoadBarState(true);
  189. DataFactory.insertResponse($scope.localUserDetails.selectedAccountId, $scope.localUserDetails.email, $scope.assessmentData, table).then(function (response) {
  190. $scope.assessmentData.questionnaire.response_status = determineIfFinalOrDraft(response.data.table);
  191. $scope.assessmentData.questionnaire.response_created = response.data.created;
  192. $scope.ShowCustomToast($scope.assessmentData, 'saved', 'assessment');
  193. $scope.$parent.ChangeLoadBarState(false);
  194. });
  195. }
  196.  
  197. $scope.addResponseGroup = function(section) {
  198.  
  199. $newResponseGroup = angular.copy(section.question[section.question.length-1]);
  200. $newResponseGroupID = parseInt($newResponseGroup[0].response_group) + 1;
  201.  
  202. angular.forEach($newResponseGroup, function(group) {
  203. group.team_id = null;
  204. group.newResponse = true;
  205. group.response_response = null;
  206. group.response_group = $newResponseGroupID;
  207. });
  208.  
  209. section.question.push($newResponseGroup);
  210. }
  211.  
  212. ShowCustomToast = function(parameters, action, page) {
  213. $mdToast.show({
  214. hideDelay : 5000,
  215. position : 'top right',
  216. controller : 'NotificationController',
  217. templateUrl : 'public/angular/Templates/Modals/toast.html',
  218. locals :
  219. {
  220. param:parameters,
  221. action: action,
  222. page: page
  223. }
  224. });
  225. };
  226.  
  227. ShowConfirmDialog = function(title, textContent, ev) {
  228. var confirm = $mdDialog.confirm()
  229. .title(title)
  230. .textContent(textContent)
  231. .targetEvent(ev)
  232. .clickOutsideToClose(true)
  233. .ok('Please do it!')
  234. .cancel("I've changed my mind");
  235. return confirm;
  236. }
  237.  
  238. $scope.isOpen = false;
  239.  
  240. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement