function createHandler() { let extraFieldsArray = []; let extraFieldsFromDataTable0 = HandlerActionTable.rows().data(); for (let i = 0; i < extraFieldsFromDataTable0.length; i++) { extraFieldsArray[i] = extraFieldsFromDataTable0[i]; } $.ajax({ type: "POST", url: '/api/handlers/', data: JSON.stringify({ "groupName" : document.getElementById("groupHandler").value, "typeEvent": document.getElementById("typeHandler").value, "eventName": document.getElementById('nameHandler').value, "actions" : extraFieldsArray }), contentType: "application/json; charset=utf-8", complete: function () { tableHandlers.ajax.reload(); customHistory.back(); customHistory.back(); }, error: function(errMsg) { console.log(errMsg); alert("Ошибка при создании обработчика: " + errMsg.statusText); } }); } $(".validateHandler").change(function() { let all = $(".validateHandler").map(function() { return this.id; }).get(); for (let i = 0; i < all.length; i++) { let elem = $("#" + all[i]).val(); if (elem === null || elem === "") { $("#goOnHandlerAddPage").prop('disabled', true); return; } } $("#goOnHandlerAddPage").prop('disabled', false); let typeOperation = $('#nameHandler').attr('name'); if (typeOperation === 'create') {fillHandlerActionTable();} }); function fillNameHandlers(type) { return $.ajax({ type: "GET", url: '/api/refs/handler/names/?type=' + type, contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { let selector = 'nameHandler'; $('#' + selector).empty().append(``); createSelectLocalNames(data, selector); $('#nameHandler').attr('name', 'create'); }, error: function (errMsg) { console.log(errMsg); } }); } function fillTypeHandlers() { $.ajax({ type: "GET", url: '/api/refs/handler/types', contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { let selector = 'typeHandler'; $('#' + selector).empty().append(``).prop("disabled", false);; createSelectLocalNames(data, selector); }, error: function(errMsg) { console.log(errMsg); } }); } function createSelectLocalNames(data, id) { let selector = '#' + id; for (let i = 0; i < data.length; i++) { $(selector).append(``); } } function fillGroupHandlers() { return $.ajax({ type: "GET", url: '/api/refs/device/groups/', contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { let marks = ""; for(let i=0; i'+data[i].groupLocalName+''; } $('#groupHandler').empty().append(marks).prop("disabled", false); }, error: function(errMsg) { console.log(errMsg); } }); } function newFormHandler() { fillGroupHandlers(); fillTypeHandlers(); createButtonSave(); pageselect('handler-add-page'); } function createButtonSave() { $('#btn-handler-footer').empty().append( ``); } function fillGroupHandlersUpdate(group) { return $.ajax({ type: "GET", url: '/api/refs/device/groups/', contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { let marks = ""; for(let i=0; i'+data[i].groupLocalName+''; continue; } marks += ''; } $('#groupHandler').empty().append(marks).prop("disabled", true); }, error: function(errMsg) { console.log(errMsg); } }); } function fillTypeHandlersUpdate(type) { $.ajax({ type: "GET", url: '/api/refs/handler/types', contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { let marks = ""; for(let i=0; i'+data[i].typeLocalized+''; continue; } marks += ''; } $('#typeHandler').empty().append(marks).prop("disabled", true); }, error: function(errMsg) { console.log(errMsg); } }); } function fillNameHandlersUpdate(id, name, type) { $.ajax({ type: "GET", url: '/api/refs/handler/names/?type=' + type, contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { let marks = ""; for(let i=0; i'+data[i].typeLocalized+''; continue; } marks += ''; } $('#nameHandler').empty().append(marks).attr('name', 'update'); }, error: function(errMsg) { console.log(errMsg); }, complete: function () { fillHandlerActionTable(id); } }); } function editHandler(id, type, group, name) { pageselect('handler-add-page'); fillGroupHandlersUpdate(group); fillTypeHandlersUpdate(type); fillNameHandlersUpdate(id, name, type); createButtonUpdate(id); } function createButtonUpdate(id) { $("#goOnHandlerAddPage").prop('disabled', false); $('#btn-handler-footer').empty().append( ``); } function updateHandler(id) { let extraFieldsArray = []; let extraFieldsFromDataTable0 = HandlerActionTable.rows().data(); for (let i = 0; i < extraFieldsFromDataTable0.length; i++) { extraFieldsArray[i] = extraFieldsFromDataTable0[i]; } $.ajax({ type: "PUT", url: '/api/handlers/', data: JSON.stringify({ "id": id, "groupName" : document.getElementById("groupHandler").value, "typeEvent": document.getElementById("typeHandler").value, "eventName": document.getElementById('nameHandler').value, "actions" : extraFieldsArray }), contentType: "application/json; charset=utf-8", success: function () { tableHandlers.ajax.reload(); customHistory.back(); customHistory.back(); }, error: function(errMsg) { alert("Ошибка: " + errMsg.statusText + ". Ошибка/событие уже существует, измените значение поля \"Наименование\". "); customHistory.back(); } }); }