Files
Saxonite/SaxoniteCoreWebAdmin/wwwroot/js/sax-org-upl.js
T
2024-02-27 15:45:47 +00:00

77 lines
3.1 KiB
JavaScript

/*
* 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 */