/* * Admin - Organisation Upload scripts. */ (function (win, doc, undef) { "use strict"; let ou = sax.mdl.orgUpload = { data: {}, ajax: {} }; let $pnl = ou.$pnl = {}, $frm = ou.$frm = {}, $ctrl = ou.$ctrl = {}, $dlg = ou.$dlg = {}; ou.classFileDrag = 'sax-file-drag'; //-------------------------------------------------------------- sax.uploadOrganisationData = function () { //sax.debug('uploadOrganisationData'); let frm = $frm.orgUpl; if (!frm.length) return; $ctrl.file.val(''); sax.clearControlErrors(frm); sax.openDialog($dlg.orgUpl, 640, 480); } ou.onDropOrgDataFile = function (evt) { //sax.debug('onDropOrgDataFile'); let files = evt.originalEvent.dataTransfer.files; if (files.length < 1) return; if (files.length > 1) return sax.doAlert(sax.dlg.title.uploadOrganisation, sax.msg.uploadImageSingle); let file = files[0]; if (file.size > sax.maxProfileImageSize) return sax.doAlert(sax.dlg.title.uploadOrganisation, sax.msg.uploadFileSizeMax.format(sax.formatFileSize(sax.maxProfileOrgData))); if ((sax.data.orgUploadContentTypes || []).indexOf(file.type) < 0) return sax.doAlert(sax.dlg.title.imageUpload, sax.msg.uploadFileTypeInvalid.format(sax.getFileType(file))); if ($ctrl.file.length) $ctrl.file[0].files = files; sax.clearControlError($ctrl.file); } //-------------------------------------------------------------- ou.uploadOrgData = function () { ou.ajax.upload = ou.ajax.upload || { url: sax.url.base + 'Organisation/Ajax/Upload', callbackFn: ou.onUploadOrgData }; ou.ajax.upload.formData = new FormData($frm.orgUpl[0]); sax.doAjaxRequest(ou.ajax.upload, 50); } ou.onUploadOrgData = function (response) { //sax.debug('onUploadOrgData', response); sax.refreshControlValues(response.controlValues, $frm.org); if (!response.success) return; $dlg.orgUpl.dialog('close'); } //-------------------------------------------------------------- $(function () { // Organisation Upload dialog and form. var opt = sax.dlgOpts(); opt.buttons[sax.lbl.upload] = function () { ou.uploadOrgData(); }; opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); }; $dlg.orgUpl = $('#dlgOrgUpload').dialog(opt); $frm.orgUpl = $('#frmOrgUpload', $dlg.orgUpl); $ctrl.file = $('input.OrganisationDataFile[type="file"]', $frm.orgUpl); $frm.orgUpl.on('input', '.sax-input, .sax-textarea', function () { sax.clearControlError(this); }).on('change', '.sax-select', function () { sax.clearControlError(this); }); // Organisation data file drop area. $pnl.orgLogoImgDrop = $('.sax-panel-drop.OrgDataFileDrop', $dlg.orgUpl) .on('dragenter', function (evt) { sax.haltEvent(evt); }) .on('dragover', function (evt) { sax.haltEvent(evt); if (!$pnl.orgLogoImgDrop.hasClass(ou.classFileDrag)) $pnl.orgLogoImgDrop.addClass(ou.classFileDrag); }) .on('dragleave', function (evt) { sax.haltEvent(evt); $pnl.orgLogoImgDrop.removeClass(ou.classFileDrag); }) .on('drop', function (evt) { sax.haltEvent(evt); $pnl.orgLogoImgDrop.removeClass(ou.classFileDrag); ou.onDropOrgDataFile(evt); }); }); //-------------------------------------------------------------- }(window, window.document)); /* The End */