overleaf/services/web/frontend/js/directives/fineUpload.js
Alasdair Smith 8f5270899f Merge pull request #2707 from overleaf/as-transform-esm
Transform frontend module format from AMD to ESM

GitOrigin-RevId: 9adbcdc95e819a54114010c6fd3521d8f58ef2fe
2020-05-20 03:21:38 +00:00

92 lines
2.5 KiB
JavaScript

/* eslint-disable
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
import App from '../base'
import qq from 'fineuploader'
export default App.directive('fineUpload', $timeout => ({
scope: {
multiple: '=',
endpoint: '@',
templateId: '@',
sizeLimit: '@',
allowedExtensions: '=',
onCompleteCallback: '=',
onUploadCallback: '=',
onValidateBatch: '=',
onErrorCallback: '=',
onSubmitCallback: '=',
onCancelCallback: '=',
autoUpload: '=',
params: '=',
control: '='
},
link(scope, element, attrs) {
let autoUpload, validation
const multiple = scope.multiple || false
const { endpoint } = scope
const { templateId } = scope
if (scope.allowedExtensions != null) {
validation = { allowedExtensions: scope.allowedExtensions }
} else {
validation = {}
}
if (scope.sizeLimit) {
validation.sizeLimit = scope.sizeLimit
}
const maxConnections = scope.maxConnections || 1
const onComplete = scope.onCompleteCallback || function() {}
const onUpload = scope.onUploadCallback || function() {}
const onError = scope.onErrorCallback || function() {}
const onValidateBatch = scope.onValidateBatch || function() {}
const onSubmit = scope.onSubmitCallback || function() {}
const onCancel = scope.onCancelCallback || function() {}
if (scope.autoUpload == null) {
autoUpload = true
} else {
;({ autoUpload } = scope)
}
const params = scope.params || {}
params._csrf = window.csrfToken
const q = new qq.FineUploader({
element: element[0],
multiple,
autoUpload,
disabledCancelForFormUploads: true,
validation,
maxConnections,
request: {
endpoint,
forceMultipart: true,
params,
paramsInBody: false
},
callbacks: {
onComplete,
onUpload,
onValidateBatch,
onError,
onSubmit,
onCancel
},
template: templateId,
failedUploadTextDisplay: {
mode: 'custom',
responseProperty: 'error'
}
})
window.q = q
if (scope.control != null) {
scope.control.q = q
}
return q
}
}))