'use strict'; angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope', '$http', 'Upload', '$timeout', 'TimeCounter', 'Auth', 'FormFields', function ($rootScope, $http, Upload, $timeout, TimeCounter, Auth, FormFields) { return { templateUrl: './modules/forms/views/directiveViews/form/edit-submissions-form.client.view.html', restrict: 'E', scope: { myform:'=', user:'=' }, controller: function($scope){ $scope.table = { masterChecker: false, rows: [] }; /* ** Table Functions */ $scope.isAtLeastOneChecked = function(){ // console.log('isAtLeastOneChecked'); for(var i=0; i<$scope.table.rows.length; i++){ if($scope.table.rows[i].selected) return true; } return false; }; $scope.toggleAllCheckers = function(){ // console.log('toggleAllCheckers'); for(var i=0; i<$scope.table.rows.length; i++){ $scope.table.rows[i].selected = $scope.table.masterChecker; } }; $scope.toggleObjSelection = function($event, description) { $event.stopPropagation(); }; $scope.rowClicked = function(row_index) { $scope.table.rows[row_index].selected = !$scope.table.rows[row_index].selected; }; /* * Form Submission Methods */ //Delete selected submissions of Form $scope.deleteSelectedSubmissions = function(){ // console.log('deleteSelectedSubmissions'); var delete_ids = _.chain($scope.table.rows).filter(function(row){ return !!row.selected; }).pluck('_id').value(); $http({ url: '/forms/'+$scope.myform._id+'/submissions', method: 'DELETE', data: {deleted_submissions: delete_ids}, headers: {'Content-Type': 'application/json;charset=utf-8'} }).success(function(data, status, headers){ //Remove deleted ids from table var tmpArray = []; for(var i=0; i<$scope.table.rows.length; i++){ if(!$scope.table.rows[i].selected){ tmpArray.push($scope.table.rows[i]); } } console.log(tmpArray); $scope.table.rows = tmpArray; }) .error(function(err){ console.log('Could not delete form submissions.\nError: '); console.log(err); console.error = err; }); }; //Export selected submissions of Form $scope.exportSubmissions = function(type){ var fileMIMETypeMap = { 'xls': 'vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'json': 'json', 'csv': 'csv', }; var blob = new Blob([document.getElementById('table-submission-data').innerHTM], { type: 'application/'+fileMIMETypeMap[type]+';charset=utf-8' }); saveAs(blob, $scope.myform.title+'_sumbissions_export_'+Date.now()+'.'+type); }; //Fetch and display submissions of Form $scope.showSubmissions = function(){ $http.get('/forms/'+$scope.myform._id+'/submissions') .success(function(data, status, headers){ var _data = [], _currentSubmission, _tmpSubFormFields, defaultFormFields = JSON.parse(JSON.stringify($scope.myform.form_fields)); //Iterate through form's submissions for(var i=0; i