77 lines
3.1 KiB
JavaScript
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 */ |