zoneminder/web/skins/classic/views/js/user.js

85 lines
2.6 KiB
JavaScript

function validateForm( form, newUser ) {
var errors = new Array();
if ( !form.elements['user[Username]'].value ) {
errors[errors.length] = "You must supply a username";
}
if ( form.elements['user[Password]'].value ) {
if ( !form.conf_password.value ) {
errors[errors.length] = "You must confirm the password";
} else if ( form.elements['user[Password]'].value != form.conf_password.value ) {
errors[errors.length] = "The new and confirm passwords are different";
}
} else if ( newUser ) {
errors[errors.length] = "You must supply a password";
}
if ( errors.length ) {
alert(errors.join("\n"));
return false;
}
return true;
}
function initPage() {
$j('#contentForm').submit(function(event) {
if ( validateForm(this) ) {
$j('#contentButtons').hide();
return true;
} else {
return false;
};
});
// Manage the BACK button
document.getElementById("backBtn").addEventListener("click", function onBackClick(evt) {
evt.preventDefault();
window.history.back();
});
// Disable the back button if there is nothing to go back to
$j('#backBtn').prop('disabled', !document.referrer.length);
// Manage the REFRESH Button
document.getElementById("refreshBtn").addEventListener("click", function onRefreshClick(evt) {
evt.preventDefault();
window.location.reload(true);
});
} // end function initPage
function updateEffectivePermissions() {
console.log("updateEffectivePermissions");
const form = document.getElementById('contentForm');
if (!form) {
console.error('No form found for contentForm');
return;
}
for (let monitor_i=0, monitor_len=monitors.length; monitor_i< monitor_len; monitor_i++) {
const monitor = monitors[monitor_i];
const perm = getEffectivePermission(monitor);
$j('#effective_permission'+monitor.id).html(perm);
} // end foreach monitor
} // end funtion updateEffectivePermissions()
function getEffectivePermission(monitor) {
{
const perm = $j('input[name="monitor_permission\['+monitor.id+'\]"]:checked').val();
if (perm != 'Inherit') return perm;
}
const gp_permissions = [];
for (let group_i=0, group_len=groups.length; group_i < group_len; group_i++) {
const group = groups[group_i];
if (group.monitor_ids.includes(monitor.id)) {
const perm = $j('input[name="group_permission\['+group.id+'\]"]:checked').val();
gp_permissions[perm] = perm;
}
}
if (gp_permissions['None']) return 'None';
if (gp_permissions['View']) return 'View';
if (gp_permissions['Edit']) return 'Edit';
return $j('#user\\[Monitors\\]').val();
}
window.addEventListener('DOMContentLoaded', initPage);