1
0
mirror of synced 2024-11-30 07:06:02 +03:00
mg-transport-telegram/static/script.js
2018-09-28 17:06:50 +03:00

215 lines
6.2 KiB
JavaScript

$(document).on("change", "select", function(e) {
send(
"/set-lang/",
{
token: $(this).attr("data-token"),
lang: $(this).find(":selected").text()
},
function () {
return 0;
}
)
});
$('#save-crm').on("submit", function(e) {
e.preventDefault();
let formData = formDataToObj($(this).serializeArray());
disableForm($(this));
send(
$(this).attr('action'),
formData,
function (data) {
sessionStorage.setItem("createdMsg", data.message);
document.location.replace(
location.protocol.concat("//").concat(window.location.host) + data.url
);
}
)
});
$("#save").on("submit", function(e) {
e.preventDefault();
let formData = formDataToObj($(this).serializeArray());
disableForm($(this));
send(
$(this).attr('action'),
formData,
function (data) {
M.toast({
html: data.message,
displayLength: 1000,
completeCallback: function(){
enableForm();
}
});
}
)
});
$("#add-bot").on("submit", function(e) {
e.preventDefault();
disableForm($(this));
send(
$(this).attr('action'),
{
connectionId: parseInt($(this).find('input[name=connectionId]').val()),
token: $(this).find('input[name=token]').val(),
},
function (data) {
let bots = $("#bots");
if (bots.hasClass("hide")) {
bots.removeClass("hide")
}
$("#bots tbody").append(getBotTemplate(data));
$("#token").val("");
$('select').formSelect();
enableForm();
}
)
});
$(document).on("click", ".delete-bot", function(e) {
e.preventDefault();
var but = $(this);
var confirmText = JSON.parse(sessionStorage.getItem("confirmText"));
but.addClass('disabled');
$.confirm({
title: false,
content: confirmText["text"],
useBootstrap: false,
boxWidth: '30%',
type: 'blue',
backgroundDismiss: false,
backgroundDismissAnimation: 'shake',
buttons: {
confirm: {
text: confirmText["confirm"],
action: function () {
send("/delete-bot/",
{
token: but.attr("data-token"),
connectionId: parseInt($('input[name=connectionId]').val()),
},
function () {
but.parents("tr").remove();
if ($("#bots tbody tr").length === 0) {
$("#bots").addClass("hide");
}
}
)
},
},
cancel: {
text: confirmText["cancel"],
action: function () {
but.removeClass('disabled');
},
},
}
});
});
function send(url, data, callback) {
$.ajax({
url: url,
data: JSON.stringify(data),
type: "POST",
success: callback,
error: function (res){
if (res.status >= 400) {
M.toast({
html: res.responseJSON.error,
displayLength: 1000,
completeCallback: function(){
enableForm()
}
})
}
}
});
}
function getBotTemplate(data) {
tmpl =
`<tr>
<td>${data.name}</td>
<td>${data.token}</td>
<td>
<div class="col s3 sel-lang">
<select data-token="${data.token}">
<option value="en" selected>en</option>
<option value="ru">ru</option>
<option value="es">es</option>
</select>
</div>
</td>
<td>
<button class="delete-bot btn btn-small waves-effect waves-light light-blue darken-1" type="submit" name="action"
data-token="${data.token}">
<i class="material-icons">delete</i>
</button>
</td>
</tr>`;
return tmpl;
}
function formDataToObj(formArray) {
let obj = {};
for (let i = 0; i < formArray.length; i++){
obj[formArray[i]['name']] = formArray[i]['value'];
}
return obj;
}
$( document ).ready(function() {
$('select').formSelect();
M.Tabs.init(document.getElementById("tab"));
if ($("table tbody").children().length === 0) {
$("#bots").addClass("hide");
}
if (!sessionStorage.getItem("confirmText")) {
let confirmText = {};
switch (navigator.language.split('-')[0]) {
case "ru":
confirmText["text"] = "Вы уверены, что хотите удалить?";
confirmText["confirm"] = "да";
confirmText["cancel"] = "нет";
break;
case "es":
confirmText["text"] = "¿Estás seguro que quieres borrar?";
confirmText["confirm"] = "sí";
confirmText["cancel"] = "no";
break;
default:
confirmText["text"] = "Are you sure you want to delete?";
confirmText["confirm"] = "yes";
confirmText["cancel"] = "no";
}
sessionStorage.setItem("confirmText", JSON.stringify(confirmText));
}
let createdMsg = sessionStorage.getItem("createdMsg");
if (createdMsg) {
setTimeout(function() {
M.toast({html: createdMsg});
sessionStorage.removeItem("createdMsg");
}, 1000);
}
});
function disableForm(elem) {
$(document).find('button.btn').addClass('disabled');
elem.find(".material-icons").addClass('animate');
$("form :input").prop("disabled", true);
}
function enableForm() {
$(document).find('button.btn').removeClass('disabled');
$(document).find(".material-icons").removeClass('animate');
$("form :input").prop("disabled", false);
}