grocy/public/viewjs/userpermissions.js
2020-12-22 10:05:06 +01:00

74 lines
1.4 KiB
JavaScript

$('input.permission-cb').click(
function()
{
check_hierachy(this.checked, this.name);
}
);
function check_hierachy(checked, name)
{
var disabled = checked;
$('#permission-sub-' + name).find('input.permission-cb')
.prop('checked', disabled)
.attr('disabled', disabled);
}
$('#permission-save').click(
function()
{
var permission_list = $('input.permission-cb')
.filter(function()
{
return $(this).prop('checked') && !$(this).attr('disabled');
}).map(function()
{
return $(this).data('perm-id');
}).toArray();
Grocy.Api.Put('users/' + Grocy.EditObjectId + '/permissions', { 'permissions': permission_list },
function(result)
{
toastr.success(__t("Permissions saved"));
},
function(xhr)
{
toastr.error(JSON.parse(xhr.response).error_message);
}
);
}
);
if (Grocy.EditObjectId == Grocy.UserId)
{
$('input.permission-cb[name=ADMIN]').click(function()
{
var element = this;
if (!element.checked)
{
bootbox.confirm({
message: __t('Are you sure you want to remove full permissions for yourself?'),
closeButton: false,
buttons: {
confirm: {
label: __t('Yes'),
className: 'btn-success'
},
cancel: {
label: __t('No'),
className: 'btn-danger'
}
},
callback: function(result)
{
if (result == false)
{
element.checked = true;
check_hierachy(element.checked, element.name);
}
}
});
}
})
}