overleaf/services/web/frontend/js/directives/fineUpload.js
Alf Eaton 1be43911b4 Merge pull request #3942 from overleaf/prettier-trailing-comma
Set Prettier's "trailingComma" setting to "es5"

GitOrigin-RevId: 9f14150511929a855b27467ad17be6ab262fe5d5
2021-04-28 02:10:01 +00:00

90 lines
2.4 KiB
JavaScript

// 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
},
}))