if (!('eRegistratorLib' in window)) {window['eRegistratorLib'] = {};}
window.eRegistratorLib.scrBankrotLogger = {
messages: {
wnd: `
`,
notFileSize: `Размер файла не должен быть более 10 Мегабайт`,
notFileSelect: `Файл не указан`,
serviceNotAnswer: `ОШИБКА!
При запросе к серверу произошла ошибка. Проверьте формат файла и его размер, которые должны соответствовать требованиям. При повторении ошибки обратитесь к специалисту службы поддержки.
#error#`,
},
key: '1',
url: 'https://www.srv4you.ru/api/v1/bankrot_logger/ajax/ajax.php',
url1: 'https://www.srv4you.ru/api/v1/bankrot_logger/ajax/ajax.php',
openBlockFromChange: function(){
let that = window.eRegistratorLib.scrBankrotLogger;
},
getLogs: function (formData, callbackSuccess, callbackError){
let that = window.eRegistratorLib.scrBankrotLogger;
that.go(formData, (result) => {
console.log(result);
if (
('code' in result)
&& (result.code == '200')
){
if (callbackSuccess) {
callbackSuccess(result);
}
} else {
if (callbackError) {
callbackError(result);
}
}
},
(error) => {
if (
(error)
&& ('ERRORS' in error)
&& ('length' in error.ERRORS)
&& (error.ERRORS.length > 0)
) {
showWrapWin.show({
content: that.messages.serviceNotAnswer,
error: '' + error.ERRORS.join('') + '',
}, 'middle');
}
});
},
setData: function (formData, callbackSuccess, callbackError){
let that = window.eRegistratorLib.scrBankrotLogger;
that.go(formData, (result) => {
console.log(result);
if (
('code' in result)
&& (result.code == '200')
){
if (callbackSuccess) {
callbackSuccess(result);
}
} else {
if (callbackError) {
callbackError(result);
}
}
},
(error) => {
if (
(error)
&& ('ERRORS' in error)
&& ('length' in error.ERRORS)
&& (error.ERRORS.length > 0)
) {
showWrapWin.show({
content: that.messages.serviceNotAnswer,
error: '' + error.ERRORS.join('') + '',
}, 'middle');
}
});
},
/**
*
* @param param = {
* fileName: string - не обязательное
* text: string - не обязательное, любой HTML, помещается внутрь формы
* accept: - не обязательное, массив mime-типов
* }
* @param callbackSuccess
* @param callbackError
*/
setFile: function(param, callbackSuccess, callbackError){
let that = window.eRegistratorLib.scrBankrotLogger;
if (
(!('sid' in param))
||(param.sid.length < 1)
||(param.sid.replace(/[^0-9]/gim, '') != param.sid)
||(!('uid' in param))
||(param.uid.length < 1)
||(param.uid.replace(/[^0-9]/gim, '') != param.uid)
||(!('bid' in param))
||(param.bid.length < 1)
||(param.bid.replace(/[^0-9]/gim, '') != param.bid)
) {
console.error('Error param');
return false;
}
let key = (new Date()).getTime();
let flname = 'file' + key;
if (
('fileName' in param)
&& (param.fileName.length > 3)
){
if (param.fileName.replace(/[^0-9a-zA-Z_.-]/gim, '') == param.fileName) {
flname = param.fileName;
} else {
console.error('Error param.fileName');
return false;
}
}
let rtext = ((('text' in param) && (param.text.length > 0)) ? param.text : '');
let raccept = ((('accept' in param) && (param.accept.length > 0)) ?
param.accept.join(',') :
'application/pdf'
);
let html = that.messages.wnd
.replace(/#key#/gim, key)
.replace(/#flname#/gim, flname)
.replace(/#text#/gim, rtext)
.replace(/#accept#/gim, raccept)
;
showWrapWin.show({content: html}, 'little', true);
let form = document.getElementById('fileForm' + key);
let errorFileNameDom = form.querySelector('[id="errorFileName"]');
if (form && errorFileNameDom) {
if (form.fl){
form.fl.addEventListener('change', (ev)=>{
if (form.fl.files.length > 0){
errorFileNameDom.innerHTML = '';
if (form.fl.files[0].size > 10000000) {
errorFileNameDom.innerHTML = that.messages.notFileSize;
return false;
}
} else {
errorFileNameDom.innerHTML = that.messages.notFileSelect;
}
});
}
let buttonSave = form.querySelector('button[data-type="buttonFileSave"]');
if (buttonSave) {
buttonSave.addEventListener('click', (ev)=>{
let formData = new FormData(form);
formData.append('action', 'setFile');
formData.append('sid', param.sid);
formData.append('uid', param.uid);
formData.append('bid', param.bid);
errorFileNameDom.innerHTML = '';
if (form.fl && form.fl.files.length > 0) {
if (fl.files[0].size > 10000000) {
errorFileNameDom.innerHTML = that.messages.notFileSize;
return false;
}
that.go(formData, (result) => {
console.log(result);
if (
('code' in result)
&& (result.code == '200')
){
if (callbackSuccess) {
callbackSuccess(result);
}
} else {
if (callbackError) {
callbackError(result);
}
}
},
(error) => {
if (
(error)
&& ('ERRORS' in error)
&& ('length' in error.ERRORS)
&& (error.ERRORS.length > 0)
) {
showWrapWin.show({
content: that.messages.serviceNotAnswer,
error: '' + error.ERRORS.join('') + '',
}, 'middle');
}
});
} else {
errorFileNameDom.innerHTML = that.messages.notFileSelect;
}
});
}
}
},
/**
* Меняет статус банкрота и создает событие
* @param param
* @param callbackSuccess
* @param callbackError
*/
changeBankrotStatus: function(param, callbackSuccess, callbackError){
let that = window.eRegistratorLib.scrBankrotLogger;
let error = [];
if (!('sid' in param)) error.push('sid');
if (!('uid' in param)) error.push('uid');
if (!('bid' in param)) error.push('bid');
if (!('status' in param)) error.push('status');
if (error.length > 0){
console.log(error);
} else {
let formData = new FormData();
formData.append('action', 'changeStatus');
formData.append('key', that.key);
formData.append('sid', param.sid);
formData.append('uid', param.uid);
formData.append('bid', param.bid);
formData.append('status', param.status);
that.go(formData, (result) => {
if (
('code' in result)
&& (result.code == '200')
) {
if (result.isChangeStatus) {
let e = new CustomEvent('checkMode', {
bubbles: true,
cancelable: true,
composed: true,
detail: {
'event': {},
'type': 'statusChange',
'statusNew': result.statusNew,
'statusOld': result.statusOld,
'isChangeStatus': result.isChangeStatus,
},
});
document.dispatchEvent(e);
}
if (callbackSuccess) {
callbackSuccess(result);
}
} else {
if (callbackError) {
callbackError(result);
}
}
},
(error) => {
if (
(error)
&& ('ERRORS' in error)
&& ('length' in error.ERRORS)
&& (error.ERRORS.length > 0)
) {
showWrapWin.show({
content: that.messages.serviceNotAnswer,
error: '' + error.ERRORS.join('') + '',
}, 'middle');
}
},
that.url1
);
}
},
go: async function(formData, callback, callbackError, urlMy){
let url = this.url;
if (urlMy) url = urlMy;
formData.append('key', this.key);
try {
const res = await fetch(url,
{
method: 'POST',
body: formData,
cache: 'no-cache',
}
);
const contentType = res.headers.get('content-type');
if (!contentType || !contentType.includes('application/json')) {
throw new TypeError("Ошибка JSON!");
}
if (!res.ok) {
throw new TypeError("Запрос завершился с ошибкой!");
}
let data = await res.json();
if ((callback) && (typeof callback == 'function')){
callback(data);
}
} catch (error) {
console.log('Ошибка:' + error);
if ((callbackError) && (typeof callbackError == 'function')){
callbackError({
"ERRORS": [error],
"STATUS": 400
});
}
}
},
};