EngineGP/template/js/help.js
Sergei Solovev b59003e559 Reformat code
This update contains code reformatting to meet PHP standards.
2023-11-12 21:12:42 +03:00

462 lines
13 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$('#create').ajaxForm({
dataType: 'json',
success: function (data) {
$.each(data, function (i, val) {
if (i == 'e')
bootbox.dialog('<h3 class="red">Ошибка</h3>' + val,
[{
"label": "OK",
"class": "btn-small btn-primary",
}]
);
if (i == 's')
location.href = home + 'help/section/dialog/id/' + val;
});
loading(0);
return false;
}
});
$('#reply').ajaxForm({
dataType: 'json',
success: function (data) {
$.each(data, function (i, val) {
if (i == 'e')
bootbox.dialog('<h3 class="red">Ошибка</h3>' + val,
[{
"label": "OK",
"class": "btn-small btn-primary",
}]
);
if (i == 'с') {
bootbox.dialog('<h3 class="blue">Внимание</h3>' + val,
[{
"label": "OK",
"class": "btn-small btn-primary",
}]
);
location.reload();
}
if (i == 'i') {
bootbox.dialog('<h3 class="blue">Внимание</h3>' + val,
[{
"label": "OK",
"class": "btn-small btn-primary",
}]
);
dialog_update(false);
}
if (i == 's') {
$('#text').val('');
$('#text').html('');
document.getElementById("text").removeAttribute("style");
$('#img-input').html('');
$('#uploaded-files').html('');
$('#uploaded-files').css('display', 'none');
$('#frm').html($('#frm').html());
dialog_update(false);
}
});
loading(0);
return false;
}
});
function help_open(id) {
loading(1);
$.getJSON(home + 'help/section/close/action/open/id/' + id,
function (data) {
$.each(data, function (i, val) {
if (i == 'e')
bootbox.dialog('<h3 class="red">Ошибка</h3>' + val,
[{
"label": "OK",
"class": "btn-small btn-primary",
}]
);
if (i == 's')
location.href = home + 'help/section/dialog/id/' + id;
loading(0)
});
});
}
function help_msg_del(id, msg) {
loading(1);
$.getJSON(home + 'help/section/dialog/action/remove/id/' + id + '/msg/' + msg,
function (data) {
$.each(data, function (i, val) {
if (i == 'e')
bootbox.dialog('<h3 class="red">Ошибка</h3>' + val,
[{
"label": "OK",
"class": "btn-small btn-primary",
}]
);
if (i == 's')
dialog_update(false);
loading(0)
});
});
return false;
}
function help_close(id) {
loading(1);
$.getJSON(home + 'help/section/open/action/close/id/' + id,
function (data) {
$.each(data, function (i, val) {
if (i == 'e')
bootbox.dialog('<h3 class="red">Ошибка</h3>' + val,
[{
"label": "OK",
"class": "btn-small btn-primary",
}]
);
if (i == 's')
location.reload();
loading(0)
});
});
}
function help_readers() {
$.get(home + 'help/section/dialog/action/read/id/' + help,
function (readers) {
$('#help_readers').html(readers);
setTimeout(function () {
help_readers()
}, 9000);
});
}
function help_writers(now) {
write = '';
if ($('#text').val() != '')
write = '/write/1';
$.get(home + 'help/section/dialog/action/write/id/' + help + write,
function (writers) {
$('#help_writers').html(writers);
if (!now)
setTimeout(function () {
help_writers(false)
}, 9000);
});
}
function dialog_update(go) {
if (go) {
spoilers = $('.spoiler_main');
update = true;
for (var i = 0; i < spoilers.length; i++) {
if (spoilers[i].style.display == 'block') {
setTimeout(function () {
dialog_update(true)
}, 15000);
return false;
}
}
}
loading(1);
$.getJSON(home + 'help/section/dialog/id/' + help + '/ajax',
function (data) {
$.each(data, function (i, val) {
if (i == 'dialog') {
$('#dialog').html(val);
$('.spoiler').click(function () {
$(this).parent().children('div.spoiler_main').toggle(0);
});
$('pre code').each(function (i, block) {
hljs.highlightBlock(block);
});
}
if (i == 'status')
$('#status').html(val);
});
loading(0);
if (go)
setTimeout(function () {
dialog_update(true)
}, 15000);
});
}
// Переустановка сервера (подтверждение)
function help_delete(id) {
bootbox.dialog('<h3 class="red">Внимание</h3> Вы уверены, что хотите удалить этот вопрос?',
[{
"label": "Подтвердить",
"class": "btn-small btn-primary",
callback: function () {
help_delete_go(id)
}
}, {
"label": "Отмена",
"class": "btn-small btn-primary",
}]
);
}
function help_delete_go(id) {
loading(1);
$.getJSON(home + 'help/section/open/action/delete/id/' + id,
function (data) {
$.each(data, function (i, val) {
if (i == 'e')
bootbox.dialog('<h3 class="red">Ошибка</h3>' + val,
[{
"label": "OK",
"class": "btn-small btn-primary",
}]
);
if (i == 's')
location.reload();
loading(0)
});
});
}
function clearFileUpload(id) {
fileField = document.getElementById(id);
parentNod = fileField.parentNode;
tmpForm = document.createElement("form");
parentNod.replaceChild(tmpForm, fileField);
tmpForm.appendChild(fileField);
tmpForm.reset();
parentNod.replaceChild(fileField, tmpForm);
}
function bbcode(bbbegin, bbend) {
form = document.getElementById('text');
begin = form.value.substr(0, form.selectionStart);
end = form.value.substr(form.selectionEnd);
sel = form.value.substr(form.selectionStart, form.selectionEnd - form.selectionStart);
var text = form.firstChild;
form.value = begin + bbbegin + sel + bbend + end;
selPos = bbbegin.length + begin.length + sel.length + bbend.length;
form.setSelectionRange(begin.length, selPos);
return false;
}
jQuery.event.props.push('dataTransfer');
var maxFiles = 8;
var dataArray = [];
$('#uploaded-files').hide();
$('#drop-files').on('drop', function (e) {
var files = e.dataTransfer.files;
if (files.length <= maxFiles) {
for (i = 0; i < files.length; i++) {
if (files[i].size < (1024 * 1024 * 1))
loadInView(files[i]);
else
alert('Слишком большой файл. Максимально 1024Kb.');
}
} else {
alert('Нельзя загружать больше ' + maxFiles + ' изображений.');
files.length = 0;
}
return false;
});
$('#img').on('change', function () {
var files = $(this)[0].files;
if (files.length <= maxFiles) {
for (i = 0; i < files.length; i++) {
if (files[i].size < (1024 * 1024 * 1))
loadInView(files[i]);
else
alert('Слишком большой файл. Максимально 1024Kb.');
}
} else {
alert('Нельзя загружать больше ' + maxFiles + ' изображений.');
files.length = 0;
}
clearFileUpload('img');
});
var upload = 0;
var files = 0;
function loadInView(file) {
if (files < 0)
files = 0;
$('#uploaded-holder').css('display', 'inline-block');
if (!file.type.match('image.*')) {
$('#drop-files p').html('Файл не является изображением.');
return false;
}
files = files + 1;
if (files <= maxFiles)
$('#upload-button').css({'display': 'block'});
else {
alert('Нельзя загружать больше ' + maxFiles + ' изображений.');
files = files - 1;
return false;
}
var fileReader = new FileReader();
fileReader.onload = (function (file) {
return function (e) {
dataArray.push({name: file.name, value: this.result, check: null, sel: null});
addImage((dataArray.length - 1));
};
})(file);
fileReader.readAsDataURL(file);
return false;
}
function delImage(id) {
$(this).empty();
dataArray.splice(id, 1);
$('#dropped-files > .img-block').remove();
addImage(-1);
return false;
}
function addImage(ind) {
if (ind < 0) {
start = 0;
end = dataArray.length;
files = files - 1;
} else {
start = ind;
end = ind + 1;
}
if (dataArray.length == 0) {
$('#upload-button').hide();
$('#uploaded-holder').hide();
}
for (i = start; i < end; i++)
if ($('#dropped-files > .img-block').length <= maxFiles)
$('#dropped-files').append('<div class="img-block" id="img-' + i + '"><div class="image" style="background: url(' + dataArray[i].value + '); background-size: contain;"></div><a href="#" onclick="return delImage(\'' + i + '\')" class="drop-button">Удалить</a></div>');
return false;
}
function restartFiles(go) {
$('#loading-bar .loading-color').css({'width': '0%'});
$('#loading').css({'display': 'none'});
$('#loading-content').html(' ');
$('#upload-button').hide();
$('#dropped-files > .img-block').remove();
$('#uploaded-holder').hide();
dataArray.length = 0;
if (go != 1)
files = upload;
return false;
}
$('#dropped-files #upload-button .delete').click(restartFiles);
$('#upload-button .upload').click(function () {
$("#loading").show();
var totalPercent = 100 / dataArray.length;
var x = 0;
$('#loading-content').html('Загружен ' + dataArray[0].name);
$.each(dataArray, function (index, file) {
upload = upload + 1;
$.post(home + 'help/section/upload', dataArray[index], function (data) {
var fileName = dataArray[index].name;
++x;
$('#loading-bar .loading-color').css({'width': totalPercent * (x) + '%'});
if (totalPercent * (x) == 100) {
$('#loading-content').html('Загрузка завершена.');
setTimeout(restartFiles(1), 1000);
} else if (totalPercent * (x) < 100)
$('#loading-content').html('Загружается ' + fileName);
var dataSplit = data.split(':');
if (dataSplit[1] == 'ok') {
$('#uploaded-files').append('<div class="img-block"><div class="image" style="background: url(' + home + 'upload/' + dataSplit[0] + '); background-size: contain;"></div><a target="_blank" href="' + home + 'upload/' + dataSplit[0] + '" class="success-button">Загружено</a></div>');
$('#img-input').append('<input name="img[]" value="' + dataSplit[0] + '" type="hidden"></div>');
} else
$('#uploaded-files').append(data);
});
if (upload == maxFiles)
$('#upload_block').hide();
});
$('#uploaded-files').show();
return false;
});
$('#drop-files').on('dragenter', function () {
$(this).css({'border-color': '#74b084'});
return false;
});
$('#drop-files').on('drop', function () {
$(this).css({'border-color': '#dcdcdc'});
files = files - 1;
return false;
});