function openAddAction(){ resetFormHandlerAction() pageselect('handler-add-action-page'); } function resetFormHandlerAction() { $("#selectDevHandler").val(''); $("#selectActHandler").val(''); $("#descriptionHandler").val(''); $("#descriptionHandler").parent().hide(); } function changeAction() { let selectAct = document.getElementById("selectActHandler").value; $("#descriptionHandler").parent().hide(); if (selectAct == 'NOTIFICATION') { $("#descriptionHandler").parent().show(); } } function addHandlerAction() { let selectDev = document.getElementById("selectDevHandler").value; let selectAct = document.getElementById("selectActHandler").value; let description = document.getElementById("descriptionHandler").value; if (selectAct !== 'NOTIFICATION') description = null ; HandlerActionTable.row.add({ "id": null, "controller": selectDev, "type": selectAct, "typeLocalized": getTypeLocalized(selectDev, selectAct), "allowedControllers": getAllowedControllers(), "allowedTypes": mapControllers[$('#selectDevHandler').val()], "description": description }).draw(); resetFormHandlerAction(); customHistory.back(); } function fillFieldByFunction(func) { $.ajax({ type: "GET", url: '/api/refs/handler/controllers?' + 'group=' + $('#groupHandler').val(), contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { func(data); }, error: function(errMsg) { console.log(errMsg); } }); } function fillActionField(data) { let selectedController = $('#selectDevHandler').val(); let options = ""; for (let i = 0; i < data.length; i++) { let controller = data[i].controller; if (controller === selectedController) { let types = data[i].allowedTypes; for (let j = 0; j < types.length; j++) { options = options + ``; } } } $('#selectActHandler').empty().append(options); } function fillControllerField(data) { let options = ""; for (let i = 0; i < data.length; i++) { let optionVal = data[i].controller; options = options + ``; } $('#selectDevHandler').empty().append(options); } function getAllowedControllers() { let devices = []; let index = 0; for (let device in mapControllers) { devices[index++] = device; } return devices; } function getTypeLocalized(controllerName, actionName) { for (let device in mapControllers) { if (device === controllerName) { let arr = mapControllers[device]; for (let i = 0; i < arr.length; i++) { if (arr[i].type === actionName) { return arr[i].typeLocalized; } } } } return actionName; }