kreta/KretaWeb/Scripts/KendoHelper/KretaFileUpload.js
2024-03-13 00:33:46 +01:00

177 lines
5.1 KiB
JavaScript

var KretaFileUpload = (function () {
var kretaFileUpload = function () {};
kretaFileUpload.GetUploadControl = function (uploadInputName) {
return getUploadControl(uploadInputName);
};
kretaFileUpload.ResetUploadControl = function (uploadInputContainerId) {
$('#' + uploadInputContainerId)
.find('.k-delete')
.click();
return 0;
};
kretaFileUpload.DisplayValidationInfo = function (uploadInputContainerId) {
var uploadInputContainer = $('#' + uploadInputContainerId).find(
'.k-widget.k-upload'
);
uploadInputContainer.append(
"<div id='FileUploadValidationInfo' style='display:inline;'></div>"
);
return 0;
};
kretaFileUpload.DisplayValidationInfo = function (
uploadInputContainerId,
fileUploadValidationContainerId
) {
var uploadInputContainer = $('#' + uploadInputContainerId).find(
'.k-widget.k-upload'
);
uploadInputContainer.append(
"<div id='" +
fileUploadValidationContainerId +
"' style='display:inline;'></div>"
);
return 0;
};
var stopAnimation = false;
var animationTimeOut;
kretaFileUpload.StopAnimation = function () {
stopAnimation = true;
$('#FileUploadValidationInfo').html('');
clearTimeout(animationTimeOut);
};
kretaFileUpload.StopAnimation = function (fileUploadValidationContainerId) {
stopAnimation = true;
$('#' + fileUploadValidationContainerId).html('');
clearTimeout(animationTimeOut);
};
kretaFileUpload.StartAnimation = function () {
stopAnimation = false;
};
kretaFileUpload.VaidationInfoExtensionContainerAnimation = function (
allowedFileExtensionArray,
start
) {
if (stopAnimation) {
kretaFileUpload.StopAnimation();
return 0;
}
var extensionContainer = $('#FileUploadValidationInfo');
extensionContainer.append(
(start < 3 ? ' ' : ', ') + allowedFileExtensionArray[start]
);
if (start < allowedFileExtensionArray.length - 1) {
animationTimeOut = setTimeout(function () {
kretaFileUpload.VaidationInfoExtensionContainerAnimation(
allowedFileExtensionArray,
start + 1
);
}, 20);
}
return 0;
};
kretaFileUpload.VaidationInfoExtensionContainerAnimation = function (
fileUploadValidationContainerId,
allowedFileExtensionArray,
start
) {
if (stopAnimation) {
kretaFileUpload.StopAnimation();
return 0;
}
var extensionContainer = $('#' + fileUploadValidationContainerId);
extensionContainer.append(
(start < 3 ? ' ' : ', ') + allowedFileExtensionArray[start]
);
if (start < allowedFileExtensionArray.length - 1) {
animationTimeOut = setTimeout(function () {
kretaFileUpload.VaidationInfoExtensionContainerAnimation(
fileUploadValidationContainerId,
allowedFileExtensionArray,
start + 1
);
}, 20);
}
return 0;
};
kretaFileUpload.EnableUpload = function (uploadInputName) {
getUploadControl(uploadInputName).enable();
};
kretaFileUpload.DisableUpload = function (uploadInputName) {
getUploadControl(uploadInputName).disable();
};
kretaFileUpload.ToggleEnabled = function (uploadInputName) {
getUploadControl(uploadInputName).toggle();
};
function getUploadControl(inputName) {
return $('#' + inputName).data('kendoUpload');
}
kretaFileUpload.SendAttachmentsAsBase64EncodedString = function (
inputName,
sendRequest
) {
function addCsatolmanyWithBase64EncodedConvertedFile(
file,
callbackAddCsatolmany,
callbackSendRequest,
csatolmanyArray,
fileName
) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onloadend = function () {
callbackAddCsatolmany(
callbackSendRequest,
csatolmanyArray,
fileName,
reader.result
);
};
}
function addCsatolmany(
callbackSendRequest,
csatolmanyArray,
name,
base64EncodedString
) {
csatolmanyArray.push({
Name: name,
ContentAsBase64EncodedString: base64EncodedString
});
if (typeof callbackSendRequest !== 'undefined')
callbackSendRequest(csatolmanyArray);
}
var csatolmanyArray = [];
var csatolmanyInputFileArray =
getUploadControl(inputName).wrapper.find("input[type='file']");
var csatolmanyokSzama = csatolmanyInputFileArray.length - 1;
for (var i = 0; i < csatolmanyokSzama; i++) {
var bouquetCsatolmanyArray = csatolmanyInputFileArray[i].files;
var bouquetCsatolmanyokSzama = bouquetCsatolmanyArray.length;
for (var j = 0; j < bouquetCsatolmanyokSzama; j++) {
addCsatolmanyWithBase64EncodedConvertedFile(
bouquetCsatolmanyArray[j],
addCsatolmany,
i == csatolmanyokSzama - 1 && j == bouquetCsatolmanyokSzama - 1
? sendRequest
: undefined,
csatolmanyArray,
bouquetCsatolmanyArray[j].name
);
}
}
if (csatolmanyokSzama < 1) sendRequest(csatolmanyArray);
};
return kretaFileUpload;
})();