grocy/public/viewjs/components/userfieldsform.js
2020-08-30 12:18:16 +02:00

94 lines
1.6 KiB
JavaScript

Grocy.Components.UserfieldsForm = {};
Grocy.Components.UserfieldsForm.Save = function(success, error)
{
if (!$("#userfields-form").length)
{
if (success)
{
success();
}
return;
}
var jsonData = {};
$("#userfields-form .userfield-input").not("div").each(function()
{
var input = $(this);
var fieldName = input.attr("data-userfield-name");
var fieldValue = input.val();
if (input.attr("type") == "checkbox")
{
jsonData[fieldName] = "0";
if (input.is(":checked"))
{
jsonData[fieldName] = "1";
}
}
else if ($(this).hasAttr("multiple"))
{
jsonData[fieldName] = $(this).val().join(",");
}
else
{
jsonData[fieldName] = fieldValue;
}
});
Grocy.Api.Put('userfields/' + $("#userfields-form").data("entity") + '/' + Grocy.EditObjectId, jsonData,
function(result)
{
if (success)
{
success();
}
},
function(xhr)
{
if (error)
{
error();
}
}
);
}
Grocy.Components.UserfieldsForm.Load = function()
{
if (!$("#userfields-form").length)
{
return;
}
Grocy.Api.Get('userfields/' + $("#userfields-form").data("entity") + '/' + Grocy.EditObjectId,
function(result)
{
$.each(result, function(key, value)
{
var input = $(".userfield-input[data-userfield-name='" + key + "']");
if (input.attr("type") == "checkbox" && value == 1)
{
input.prop("checked", true);
}
else if (input.hasAttr("multiple"))
{
input.val(value.split(","));
$(".selectpicker").selectpicker("render");
}
else
{
input.val(value);
}
});
},
function(xhr)
{
console.error(xhr);
}
);
}