177 lines
5.1 KiB
JavaScript
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;
|
|
})();
|