uawdijnntqw1x1x1
IP : 3.144.235.50
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
axolotl.ru
/
..
/
b24.axolotl.ru
/
public_html
/
bitrix
/
js
/
crm
/
import_csv.js
/
/
BX.EncodingHandler = (function() { var EncodingHandler = function(){}; EncodingHandler.prototype.handleEncodings = function(parameters) { var formId = parameters.formId; var file = parameters.file; var resultEncodingElementId = parameters.resultEncodingElementId; if (!file || file.name.substring(file.name.lastIndexOf('.') + 1).toLowerCase() !== 'csv') { BX.submit(BX(formId), 'next'); return; } var reader = new FileReader; reader.readAsBinaryString(file); reader.onload = BX.delegate(function(event) { var content = event.target.result; if (this.checkStringOnUtf8(content)) { BX(resultEncodingElementId).value = 'UTF-8'; BX.submit(BX(formId), 'next'); } else { this.getPopupWithEncodings(parameters, file); } }, this); }; EncodingHandler.prototype.checkStringOnUtf8 = function(string) { var bytes = this.unpackBinaryString(string); var prevBits8and7 = 0; var utfCoefficient = 0; bytes.forEach(function(byte) { var hiBits8and7 = byte & 0xC0; if (hiBits8and7 === 0x80) { if (prevBits8and7 === 0xC0) utfCoefficient++; else if ((prevBits8and7 & 0x80) === 0x00) utfCoefficient--; } else if (prevBits8and7 === 0xC0) { utfCoefficient--; } prevBits8and7 = hiBits8and7; }); return (utfCoefficient > 0); }; EncodingHandler.prototype.unpackBinaryString = function(str) { var bytes = []; for (var i = 0; i < str.length; i++) { var char = str.charCodeAt(i); bytes.push(char & 0xFF); } return bytes; }; EncodingHandler.prototype.getPopupWithEncodings = function(parameters, file) { var charsets = parameters.charsets; var formId = parameters.formId; var resultEncodingElementId = parameters.resultEncodingElementId; this._readers = {}; charsets.forEach(BX.delegate(function(charset) { this._readers[charset] = new FileReader(); this._readers[charset].readAsText(file, charset); this._readers[charset].onload = BX.delegate(function () { var results = this.getEncodedResults(); if (results) EncodingHandler.prototype.createPopup(results, formId, resultEncodingElementId); }, this); }, this)); }; EncodingHandler.prototype.getEncodedResults = function() { var finished = true; Object.keys(this._readers).forEach(BX.delegate(function(charset) { if (this._readers[charset].readyState !== 2) finished = false; }, this)); if (finished) { var results = {}; Object.keys(this._readers).forEach(BX.delegate(function(charset) { results[charset] = this._readers[charset].result; }, this)); return results; } return finished; }; EncodingHandler.prototype.createPopup = function(results, formId, resultEncodingElementId) { var tableContent = []; var maxTextWidth = 50; Object.keys(results).forEach(function(charset) { var encodedText = results[charset].substring(0, maxTextWidth); var label = BX.create('label', { props: { className: 'popup-window-label' }, text: charset }); var button = BX.create('button', { props: { className: 'popup-window-custom-button' }, text: encodedText, events: { click: function() { popupWindow.close(); BX(resultEncodingElementId).value = charset; BX.submit(BX(formId), 'next'); } } }); var tr = BX.create('tr', { children: [ BX.create('td', { props: { className: 'popup-window-table-col-left' }, children: [label] }), BX.create('td', {children: [button]}) ] }); tableContent.push(tr); }); var popupWindow = new BX.PopupWindow( "popup_window", null, { content: BX.create('table', {children: tableContent}), closeByEsc: true, closeIcon: false, autoHide: true, titleBar: { content: BX.create("label", { props: {className: 'popup-window-custom-title'}, html: BX.message('CRM_IMPORT_CSV_POPUP_WINDOW_TITLE') }) }, overlay: {backgroundColor: '#000', opacity: 50}, draggable: false, events: { onPopupClose: function() { this.destroy(); } } }); popupWindow.show(); }; return EncodingHandler; })();
/var/www/axolotl/data/www/axolotl.ru/../b24.axolotl.ru/public_html/bitrix/js/crm/import_csv.js