Spaces:
No application file
No application file
| //AssetBundle | |
| Mautic.assetOnLoad = function (container) { | |
| if (typeof mauticAssetUploadEndpoint !== 'undefined' && typeof Mautic.assetDropzone == 'undefined' && mQuery('div#dropzone').length) { | |
| Mautic.initializeDropzone(); | |
| } | |
| }; | |
| Mautic.assetOnUnload = function(id) { | |
| if (id === '#app-content') { | |
| delete Mautic.assetDropzone; | |
| } | |
| }; | |
| Mautic.updateRemoteBrowser = function(provider, path) { | |
| path = typeof path !== 'undefined' ? path : ''; | |
| var spinner = mQuery('<i class="fa fa-fw fa-spinner fa-spin"></i>'); | |
| spinner.appendTo('#tab' + provider + ' a'); | |
| mQuery.ajax({ | |
| url: mauticAjaxUrl, | |
| type: "POST", | |
| data: "action=asset:fetchRemoteFiles&provider=" + provider + "&path=" + path, | |
| dataType: "json", | |
| success: function (response) { | |
| if (response.success) { | |
| mQuery('div#remoteFileBrowser').html(response.output); | |
| mQuery('.remote-file-search').quicksearch('#remoteFileBrowser .remote-file-list a'); | |
| } else { | |
| // TODO - Add error handler | |
| } | |
| }, | |
| error: function (request, textStatus, errorThrown) { | |
| Mautic.processAjaxError(request, textStatus, errorThrown); | |
| }, | |
| complete: function() { | |
| spinner.remove(); | |
| } | |
| }) | |
| }; | |
| Mautic.selectRemoteFile = function(url) { | |
| mQuery('#asset_remotePath').val(url); | |
| mQuery('#RemoteFileModal').modal('hide'); | |
| }; | |
| Mautic.changeAssetStorageLocation = function() { | |
| if (mQuery('#asset_storageLocation_0').prop('checked')) { | |
| mQuery('#storage-local').removeClass('hide'); | |
| mQuery('#storage-remote').addClass('hide'); | |
| mQuery('#remote-button').addClass('hide'); | |
| } else { | |
| mQuery('#storage-local').addClass('hide'); | |
| mQuery('#storage-remote').removeClass('hide'); | |
| mQuery('#remote-button').removeClass('hide'); | |
| } | |
| }; | |
| Mautic.initializeDropzone = function() { | |
| var options = { | |
| url: mauticAssetUploadEndpoint, | |
| uploadMultiple: false, | |
| filesizeBase: 1024, | |
| init: function() { | |
| this.on("addedfile", function() { | |
| if (this.files[1] != null) { | |
| this.removeFile(this.files[0]); | |
| } | |
| }); | |
| } | |
| }; | |
| if (typeof mauticAssetUploadMaxSize !== 'undefined') { | |
| options.maxFilesize = mauticAssetUploadMaxSize; | |
| } | |
| if (typeof mauticAssetUploadMaxSizeError !== 'undefined') { | |
| options.dictFileTooBig = mauticAssetUploadMaxSizeError; | |
| } | |
| if (typeof mauticAssetUploadExtensions !== 'undefined') { | |
| options.acceptedFiles = mauticAssetUploadExtensions; | |
| } | |
| if (typeof mauticAssetUploadExtensionError !== 'undefined') { | |
| options.dictInvalidFileType = mauticAssetUploadExtensionError; | |
| } | |
| Mautic.assetDropzone = new Dropzone("div#dropzone", options); | |
| var preview = mQuery('.preview div.text-center'); | |
| Mautic.assetDropzone.on("sending", function (file, request, formData) { | |
| request.setRequestHeader('X-CSRF-Token', mauticAjaxCsrf); | |
| formData.append('tempId', mQuery('#asset_tempId').val()); | |
| }).on("addedfile", function (file) { | |
| preview.fadeOut('fast'); | |
| }).on("success", function (file, response, progress) { | |
| if (response.tmpFileName) { | |
| mQuery('#asset_tempName').val(response.tmpFileName); | |
| } | |
| var messageArea = mQuery('.mdropzone-error'); | |
| if (response.error || !response.tmpFileName) { | |
| if (!response.error) { | |
| var errorText = ''; | |
| } else { | |
| var errorText = (typeof response.error == 'object') ? response.error.text : response.error; | |
| } | |
| messageArea.text(errorText); | |
| messageArea.closest('.form-group').addClass('has-error').removeClass('is-success'); | |
| // invoke the error | |
| var node, _i, _len, _ref, _results; | |
| file.previewElement.classList.add('dz-error'); | |
| _ref = file.previewElement.querySelectorAll('data-dz-errormessage'); | |
| _results = []; | |
| for (_i = 0, _len = _ref.length; _i < _len; _i++) { | |
| node = _ref[_i]; | |
| _results.push(node.textContent = errorText); | |
| } | |
| return _results; | |
| } else { | |
| messageArea.text(''); | |
| messageArea.closest('.form-group').removeClass('has-error').addClass('is-success'); | |
| } | |
| var titleInput = mQuery('#asset_title'); | |
| if (file.name && !titleInput.val()) { | |
| titleInput.val(file.name); | |
| } | |
| if (file.name) { | |
| mQuery('#asset_originalFileName').val(file.name); | |
| } | |
| }).on("error", function (file, response) { | |
| preview.fadeIn('fast'); | |
| var messageArea = mQuery('.mdropzone-error'); | |
| // Dropzone error is just a text in the response var | |
| if (typeof response == "string") { | |
| response = {'error': response}; | |
| } | |
| if (response.error) { | |
| if (!response.error) { | |
| var errorText = ''; | |
| } else { | |
| var errorText = (typeof response.error == 'object') ? response.error.text : response.error; | |
| } | |
| messageArea.text(errorText); | |
| messageArea.closest('.form-group').addClass('has-error').removeClass('is-success'); | |
| // invoke the error | |
| var node, _i, _len, _ref, _results; | |
| file.previewElement.classList.add('dz-error'); | |
| _ref = file.previewElement.querySelectorAll('[data-dz-errormessage]'); | |
| _results = []; | |
| for (_i = 0, _len = _ref.length; _i < _len; _i++) { | |
| node = _ref[_i]; | |
| _results.push(node.textContent = errorText); | |
| } | |
| return _results; | |
| } | |
| }).on("thumbnail", function (file, url) { | |
| if (file.accepted === true) { | |
| var extension = file.name.substr((file.name.lastIndexOf('.') +1)).toLowerCase(); | |
| var previewContent = ''; | |
| if (mQuery.inArray(extension, ['jpg', 'jpeg', 'gif', 'png']) !== -1) { | |
| previewContent = mQuery('<img />').addClass('img-thumbnail').attr('src', url); | |
| } else if (extension === 'pdf') { | |
| previewContent = mQuery('<iframe />').attr('src', url); | |
| } | |
| preview.empty().html(previewContent); | |
| preview.fadeIn('fast'); | |
| } | |
| }); | |
| } |