'use strict'; angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope', '$http', function ($rootScope, $http) { return { templateUrl: 'modules/forms/admin/views/directiveViews/form/edit-submissions-form.client.view.html', restrict: 'E', scope: { myform:'=', user:'=' }, controller: function($scope){ $scope.table = { masterChecker: false, rows: [] }; (function initController(){ var defaultFormFields = _.cloneDeep($scope.myform.form_fields); //Iterate through form's submissions var submissions = _.cloneDeep($scope.myform.submissions); for(var i = 0; i < submissions.length; i++){ for(var x = 0; x < submissions[i].form_fields; x++){ var oldValue = submissions[i].form_fields[x].fieldValue || ''; submissions[i].form_fields[x] = _.merge(defaultFormFields, submissions[i].form_fields); submissions[i].form_fields[x].fieldValue = oldValue; } submissions[i].selected = false; } // console.log('after textField2: '+data[0].form_fields[1].fieldValue); $scope.table.rows = submissions; // console.log('form submissions successfully fetched'); // console.log( JSON.parse(JSON.stringify($scope.submissions)) ) ; // console.log( JSON.parse(JSON.stringify($scope.myform.form_fields)) ); })(); /* ** Analytics Functions */ $scope.AverageTimeElapsed = (function(){ var totalTime = 0; var numSubmissions = $scope.table.rows.length; for(var i=0; i<$scope.table.rows.length; i++){ totalTime += $scope.table.rows[i].timeElapsed; } console.log(totalTime/numSubmissions); return totalTime/numSubmissions; })(); $scope.DeviceStatistics = (function(){ var newStatItem = function(){ return { visits: 0, responses: 0, completion: 0, average_time: 0, total_time: 0 }; }; var stats = { desktop: newStatItem(), tablet: newStatItem(), phone: newStatItem(), other: newStatItem() }; var visitors = $scope.myform.analytics.visitors; for(var i=0; i