Advertisement
Guest User

plupload directive code

a guest
Jun 20th, 2013
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. .directive('pluploader', ($log,dialogsSvc) ->
  2. d = {
  3. restrict: 'E'
  4. scope: {
  5. uploaderName: '@'
  6. browseButtonId: '@'
  7. onFileAdded: '&'
  8. upload: '&'
  9. removeAttachment: '&'
  10. }
  11. templateUrl: 'assets/utility/pluploader_directive.html'
  12.  
  13. controller: ($scope, $element, $attrs) ->
  14. $scope.attachments = []
  15.  
  16. $scope.uploadError = (up, args) =>
  17. $log.log('[uploadError]: ' + JSON.stringify(args))
  18. switch args.code
  19. when plupload.FILE_SIZE_ERROR
  20. dialogsSvc.alert("La dimensione del file " + args.file.name + " รจ superiore al massimo consentito!")
  21. $scope.$apply($scope.removeAttachment(args.file))
  22.  
  23. $scope.uploadProgress = (up, file) =>
  24. #$log.log('[uploadProgress]: ' + JSON.stringify(file))
  25. $scope.$apply()
  26.  
  27. $scope.uploadComplete = (up, files) =>
  28. #$log.log('[uploadComplete]: ' + JSON.stringify(files))
  29. $scope.$apply()
  30.  
  31. $scope.fileAdded = (up, files) =>
  32. $scope.$apply(
  33. if !$scope.onFileAdded?
  34. $scope.onFileAdded({file: files[0]})
  35. $scope.attachments.push {id: f.id, name: f.name, size: plupload.formatSize(f.size)} for f in files
  36. )
  37.  
  38. $scope.removeAttachment = (file) ->
  39. $log.log('[removeAttachment]: ' + JSON.stringify(file))
  40. $scope.uploader.removeFile(file)
  41. $scope.attachments = []
  42. $scope.attachments.push f for f in $scope.uploader.files
  43.  
  44. $scope.upload = ->
  45. $scope.uploader.start()
  46.  
  47. $attrs.$observe('uploaderName', (value) =>
  48. return if !value?
  49. $scope.uploader = new plupload.Uploader({
  50. runtimes: "html5",
  51. url: "api/v1/media/upload.json",
  52. container: $attrs.uploaderName,
  53. browse_button: $attrs.browseButtonId,
  54. max_file_size: $attrs.maxFileSize,
  55. chunk_size: $attrs.chunkSize,
  56. multipart: true,
  57. multipart_params: {
  58. authenticity_token: $("meta[name='csrf-token']").attr('content')
  59. }
  60. init: {
  61. Error: $scope.uploadError
  62. UploadProgress: $scope.uploadProgress
  63. UploadComplete: $scope.uploadComplete
  64. }
  65. })
  66.  
  67. $scope.uploader.bind('FilesAdded', $scope.fileAdded)
  68. $scope.uploader.init()
  69. )
  70. }
  71. return d
  72. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement