forked from extern/egroupware
76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
/**
|
|
* Javascript for Admin / Global categories
|
|
*/
|
|
|
|
// Record original value
|
|
var cat_original_owner;
|
|
var permission_prompt;
|
|
|
|
/**
|
|
* Check to see if admin has taken away access to a category
|
|
*/
|
|
function check_owner(element_id) {
|
|
var checkboxes = $j(':checkbox', document.getElementById(element_id));
|
|
var all_users = $j(document.getElementById(element_id + '[0]'));
|
|
|
|
// If they checked all users, uncheck the others
|
|
if(all_users.length > 0 && all_users.attr("checked")) {
|
|
checkboxes.attr("checked",false);
|
|
all_users.attr("checked", true);
|
|
checkboxes = $j(':checkbox', document.getElementById(element_id)).filter(':checked');
|
|
return true;
|
|
}
|
|
|
|
// Find out what changed
|
|
var seen = [], diff = [], labels = [];
|
|
for ( var i = 0; i < cat_original_owner.length; i++) {
|
|
var checkbox = checkboxes.filter('[value="'+cat_original_owner[i]+'"]');
|
|
if(checkbox.filter(':checked').length == 0 && checkbox.get(0) != undefined) {
|
|
diff.push(cat_original_owner[i]);
|
|
labels.push($j(checkbox.get(0).nextSibling).text());
|
|
}
|
|
}
|
|
|
|
// Single selection?
|
|
if(checkboxes.length == 0) {
|
|
var new_group = $j('input#'+element_id);
|
|
if(new_group.length > 0 && new_group.attr('value') != 0 && cat_original_owner.length > 0) {
|
|
diff.push(cat_original_owner[0]);
|
|
var selector = 'option[value="'+cat_original_owner[0]+'"]';
|
|
labels.push("\n"+$j(selector, new_group).text());
|
|
}
|
|
}
|
|
|
|
// Somebody will lose permission, give warning.
|
|
if(diff.length > 0) {
|
|
var msg = permission_prompt;
|
|
for( var i = 0; i < labels.length; i++) {
|
|
msg += labels[i];
|
|
}
|
|
return confirm(msg);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Show icon based on icon-selectbox, hide placeholder (broken image), if no icon selected
|
|
*/
|
|
function change_icon(_icon)
|
|
{
|
|
var img = document.getElementById('exec[icon_url]') || document.getElementById('icon_url');
|
|
|
|
if (typeof _icon == 'undefined')
|
|
{
|
|
_icon = document.getElementById('exec[data][icon]') || document.getElementById('data[icon]');
|
|
}
|
|
if (_icon && _icon.value)
|
|
{
|
|
img.src = img.src.replace(/\/[^\/]*$/,'\/'+_icon.value);
|
|
img.style.display = 'block';
|
|
}
|
|
else if (img)
|
|
{
|
|
img.style.display = 'none';
|
|
}
|
|
}
|