uploads.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. (function (global, factory) {
  2. if (typeof define === "function" && define.amd) {
  3. define("/forms/uploads", ["jquery", "Site"], factory);
  4. } else if (typeof exports !== "undefined") {
  5. factory(require("jquery"), require("Site"));
  6. } else {
  7. var mod = {
  8. exports: {}
  9. };
  10. factory(global.jQuery, global.Site);
  11. global.formsUploads = mod.exports;
  12. }
  13. })(this, function (_jquery, _Site) {
  14. "use strict";
  15. _jquery = babelHelpers.interopRequireDefault(_jquery);
  16. (0, _jquery.default)(document).ready(function ($$$1) {
  17. (0, _Site.run)();
  18. }); // Example File Upload
  19. // -------------------
  20. (0, _jquery.default)('#exampleUploadForm').fileupload({
  21. url: '../../server/fileupload/',
  22. dropzone: (0, _jquery.default)('#exampleUploadForm'),
  23. filesContainer: (0, _jquery.default)('.file-list'),
  24. uploadTemplateId: false,
  25. downloadTemplateId: false,
  26. uploadTemplate: tmpl('{% for (var i=0, file; file=o.files[i]; i++) { %}' + '<div class="file-item-wrap template-upload col-lg-2 col-md-4 col-sm-6 {%=file.type.search("image") !== -1? "image" : "other-file"%}">' + '<div class="file-item">' + '<div class="preview vertical-align">' + '<div class="file-action-wrap">' + '<div class="file-action">' + '{% if (!i && !o.options.autoUpload) { %}' + '<i class="icon wb-upload start" data-toggle="tooltip" data-original-title="Upload file" aria-hidden="true"></i>' + '{% } %}' + '{% if (!i) { %}' + '<i class="icon wb-close cancel" data-toggle="tooltip" data-original-title="Stop upload file" aria-hidden="true"></i>' + '{% } %}' + '</div>' + '</div>' + '</div>' + '<div class="info-wrap">' + '<div class="title">{%=file.name%}</div>' + '</div>' + '<div class="progress progress-striped active" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" role="progressbar">' + '<div class="progress-bar progress-bar-success" style="width:0%;"></div>' + '</div>' + '</div>' + '</div>' + '{% } %}'),
  27. downloadTemplate: tmpl('{% for (var i=0, file; file=o.files[i]; i++) { %}' + '<div class="file-item-wrap template-download col-lg-2 col-md-4 col-sm-6 {%=file.type.search("image") !== -1? "image" : "other-file"%}">' + '<div class="file-item">' + '<div class="preview vertical-align">' + '<div class="file-action-wrap">' + '<div class="file-action">' + '<i class="icon wb-trash delete" data-toggle="tooltip" data-original-title="Delete files" aria-hidden="true"></i>' + '</div>' + '</div>' + '<img src="{%=file.url%}"/>' + '</div>' + '<div class="info-wrap">' + '<div class="title">{%=file.name%}</div>' + '</div>' + '</div>' + '</div>' + '{% } %}'),
  28. forceResize: true,
  29. previewCanvas: false,
  30. previewMaxWidth: false,
  31. previewMaxHeight: false,
  32. previewThumbnail: false
  33. }).on('fileuploadprocessalways', function (e, data) {
  34. var length = data.files.length;
  35. for (var i = 0; i < length; i++) {
  36. if (!data.files[i].type.match(/^image\/(gif|jpeg|png|svg\+xml)$/)) {
  37. data.files[i].filetype = 'other-file';
  38. } else {
  39. data.files[i].filetype = 'image';
  40. }
  41. }
  42. }).on('fileuploadadded', function (e) {
  43. var $this = (0, _jquery.default)(e.target);
  44. if ($this.find('.file-item-wrap').length > 0) {
  45. $this.addClass('has-file');
  46. } else {
  47. $this.removeClass('has-file');
  48. }
  49. }).on('fileuploadfinished', function (e) {
  50. var $this = (0, _jquery.default)(e.target);
  51. if ($this.find('.file-item-wrap').length > 0) {
  52. $this.addClass('has-file');
  53. } else {
  54. $this.removeClass('has-file');
  55. }
  56. }).on('fileuploaddestroyed', function (e) {
  57. var $this = (0, _jquery.default)(e.target);
  58. if ($this.find('.file-item-wrap').length > 0) {
  59. $this.addClass('has-file');
  60. } else {
  61. $this.removeClass('has-file');
  62. }
  63. }).on('click', function (e) {
  64. if ((0, _jquery.default)(e.target).parents('.file-item-wrap').length === 0) (0, _jquery.default)('#inputUpload').trigger('click');
  65. });
  66. (0, _jquery.default)(document).bind('dragover', function (e) {
  67. var dropZone = (0, _jquery.default)('#exampleUploadForm'),
  68. timeout = window.dropZoneTimeout;
  69. if (!timeout) {
  70. dropZone.addClass('show');
  71. } else {
  72. clearTimeout(timeout);
  73. }
  74. var found = false,
  75. node = e.target;
  76. do {
  77. if (node === dropZone[0]) {
  78. found = true;
  79. break;
  80. }
  81. node = node.parentNode;
  82. } while (node !== null);
  83. if (found) {
  84. dropZone.addClass('hover');
  85. } else {
  86. dropZone.removeClass('hover');
  87. }
  88. window.dropZoneTimeout = setTimeout(function () {
  89. window.dropZoneTimeout = null;
  90. dropZone.removeClass('show hover');
  91. }, 100);
  92. });
  93. (0, _jquery.default)('#inputUpload').on('click', function (e) {
  94. e.stopPropagation();
  95. });
  96. (0, _jquery.default)('#uploadlink').on('click', function (e) {
  97. e.stopPropagation();
  98. });
  99. });