|
4 | 4 | angular.module('letsAngular') |
5 | 5 | .directive('fwUpload', fwUpload); |
6 | 6 |
|
7 | | - fwUpload.$inject = ['$timeout']; |
| 7 | + fwUpload.$inject = ['$timeout', 'appSettings']; |
8 | 8 |
|
9 | | - function fwUpload($timeout) { |
| 9 | + function fwUpload($timeout, appSettings) { |
10 | 10 | return { |
11 | 11 | restrict: 'A', |
12 | 12 | scope: true, |
13 | | - link: function ($scope, $rootScope, element) { |
| 13 | + link: function ($scope, element) { |
14 | 14 |
|
15 | | - $scope.defaultProgress = 0; |
16 | | - $scope.alreadySent = false; |
17 | | - var controll = true; |
| 15 | + $scope.f = {}; |
| 16 | + |
| 17 | + var _input = element.find('input[type="hidden"]'); |
| 18 | + |
| 19 | + var STORAGE_URL = appSettings.STORAGE_URL; |
| 20 | + if ($scope.field.customOptions.file.container != undefined) { |
| 21 | + STORAGE_URL +=$scope.field.customOptions.file.container+"/"; |
| 22 | + } |
18 | 23 |
|
19 | 24 | $scope.$on('setProgressFile', function () { |
20 | | - if ($scope.data[$scope.field.name] != undefined && $scope.data[$scope.field.name] != null && ($scope.fileName && $scope.fileName != 'fileName')) { |
21 | | - $scope.defaultProgress = 100; |
22 | | - $scope.alreadySent = true; |
| 25 | + if ($scope.data[$scope.field.name]) { |
| 26 | + $scope.f = { |
| 27 | + name:$scope.data[$scope.field.name], |
| 28 | + progress:100, |
| 29 | + alreadySent:true |
| 30 | + }; |
| 31 | + |
| 32 | + $scope.f.fileURL = STORAGE_URL+$scope.f.name; |
23 | 33 | } |
24 | 34 | }); |
25 | 35 |
|
26 | | - $scope.pushName = function () { |
27 | | - $timeout(function () { |
28 | | - if (document.getElementsByClassName('dz-filename')[0] && controll) { |
29 | | - controll = false; |
30 | | - document.getElementsByClassName('dropzone')[0].style.width = '192px'; |
31 | | - if (document.getElementsByClassName('file-preview')[0]) { |
32 | | - document.getElementsByClassName('file-preview')[0].style.display = 'none'; |
33 | | - } |
34 | | - document.getElementsByName('temp_filename')[0].value = document.getElementsByClassName('dz-filename')[0].firstElementChild.innerText; |
35 | | - var _input = element.find('input[type="hidden"]'); |
36 | | - _input.controller('ngModel').$setViewValue(document.getElementsByName('temp_filename')[0].value); |
37 | | - } |
38 | | - }); |
39 | | - }; |
40 | | - |
41 | | - $scope.remove = function () { |
42 | | - $scope.alreadySent = false; |
43 | | - var _input = element.find('input[type="hidden"]'); |
44 | | - document.getElementsByName('temp_filename')[0].value = null; |
| 36 | + $scope.removeFile = function(){ |
| 37 | + $scope.f = {}; |
45 | 38 | _input.controller('ngModel').$setViewValue(null); |
46 | | - }; |
| 39 | + } |
47 | 40 |
|
48 | 41 | $scope.upload = function (file, errFiles) { |
49 | | - $scope.f = file; |
50 | | - $scope.errFile = errFiles && errFiles[0]; |
| 42 | + |
| 43 | + if(errFiles.length > 0 ){ |
| 44 | + $scope.errFile = errFiles && errFiles[0]; |
| 45 | + errFiles.forEach(function(err){ |
| 46 | + if (err.$error=="pattern"){ |
| 47 | + $scope.field.error = "O formato do arquivo não é permitido."; |
| 48 | + } |
| 49 | + }); |
| 50 | + } |
| 51 | + |
51 | 52 | if (file) { |
52 | 53 |
|
53 | | - file.upload = $scope._upload($scope.field, file); |
54 | | - file.upload.then(function (response, err) { |
| 54 | + $scope.field.error = null; |
| 55 | + $scope.f.name = file.name |
| 56 | + $scope.f.uploading = true; |
| 57 | + |
| 58 | + $scope._upload($scope.field, file).then(function (response, err) { |
55 | 59 | $scope.$emit('upload-complete', response); |
| 60 | + |
56 | 61 | $timeout(function () { |
57 | | - file.result = response.data; |
58 | | - if (element.$$element) { |
59 | | - var _input = element.$$element.find('input[type="hidden"]'); |
60 | | - } else { |
61 | | - var _input = element.find('input[type="hidden"]'); |
62 | | - } |
63 | | - |
64 | | - file.newName = response.data.result.files.file[0].name; |
| 62 | + $scope.f.alreadySent = true; |
| 63 | + $scope.f.uploading = false; |
| 64 | + $scope.f.name = response.data.result.files.file[0].name; |
| 65 | + $scope.f.fileURL = STORAGE_URL+$scope.f.name; |
| 66 | + _input.controller('ngModel').$setViewValue($scope.f.name); |
| 67 | + }); |
65 | 68 |
|
66 | | - _input.controller('ngModel').$setViewValue(file.newName); |
67 | 69 |
|
68 | | - }); |
69 | 70 | }, function (response) { |
70 | | - |
71 | 71 | if (response.status > 0) { |
72 | 72 | $scope.errorMsg = response.status + ': ' + response.data; |
73 | 73 | } |
74 | | - $scope.$emit('upload-error', response); |
| 74 | + $scope.$emit('upload-error', response); |
75 | 75 |
|
76 | 76 | }, function (evt) { |
77 | | - file.progress = Math.min(100, parseInt(100.0 * |
78 | | - evt.loaded / evt.total)); |
| 77 | + $timeout(function(){ |
| 78 | + $scope.f.progress = Math.min(100, parseInt(100.0 *evt.loaded / evt.total)); |
| 79 | + }) |
79 | 80 | }) |
80 | 81 | } |
81 | 82 | }; |
82 | 83 |
|
| 84 | + $scope.dropFile = function($file, errFiles){ |
| 85 | + $scope.upload($file, errFiles) |
| 86 | + } |
| 87 | + |
83 | 88 | } |
84 | 89 | } |
85 | 90 | } |
|
0 commit comments