103 lines
2.3 KiB
JavaScript
103 lines
2.3 KiB
JavaScript
//------------------------------------------------------------------------------
|
|
// IPS JS: Permissions
|
|
// (c) 2008 Invision Power Services, Inc.
|
|
// http://www.invisionpower.com
|
|
// Brandon Farber - 16th December
|
|
//------------------------------------------------------------------------------
|
|
|
|
ACPPermissions = {
|
|
hasBeenLoaded: false,
|
|
|
|
/*------------------------------*/
|
|
/* Constructor */
|
|
/*------------------------------*/
|
|
init: function()
|
|
{
|
|
Debug.write("Initializing acp.permissions.js");
|
|
|
|
document.observe("dom:loaded", function(){
|
|
Event.observe(
|
|
'adminform',
|
|
'submit',
|
|
function( e )
|
|
{
|
|
var checkboxes = $('perm-matrix').getElementsByTagName( 'input' );
|
|
|
|
for( var i = 0; i < checkboxes.length; i++ )
|
|
{
|
|
if( checkboxes[i].checked )
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
if( confirm( 'You did not select any permissions, would you like to continue anyways?' ) )
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
Event.stop( e );
|
|
}
|
|
}
|
|
);
|
|
|
|
$$('.column_header').each( function(elem){
|
|
elem.observe( "click", ACPPermissions.checkColumn );
|
|
});
|
|
});
|
|
},
|
|
|
|
checkColumn: function(e)
|
|
{
|
|
// Conditional to see if checkbox or cell was clicked...
|
|
|
|
try
|
|
{
|
|
var master = Event.findElement( e, 'input' ).id;
|
|
var checked = $(master).checked ? 1 : 0;
|
|
|
|
$(master).checked = checked;
|
|
}
|
|
catch( error )
|
|
{
|
|
var master = Event.findElement( e, 'td' ).down('input').id;
|
|
var checked = $(master).checked ? 0 : 1;
|
|
$(master).checked = checked;
|
|
}
|
|
|
|
var column = master.replace( /col_/, '' );
|
|
|
|
var checkboxes = $('perm-matrix').getElementsByTagName( 'input' );
|
|
|
|
for( var i = 0; i < checkboxes.length; i++ )
|
|
{
|
|
var cbox = checkboxes[i];
|
|
|
|
if( cbox.id.match( "^perm_(.+?)_" + column ) )
|
|
{
|
|
cbox.checked = checked;
|
|
}
|
|
}
|
|
|
|
Event.stop(e);
|
|
return false;
|
|
},
|
|
|
|
checkRow: function( row, value )
|
|
{
|
|
var checkboxes = $('perm-matrix').getElementsByTagName( 'input' );
|
|
|
|
for( var i = 0; i < checkboxes.length; i++ )
|
|
{
|
|
var cbox = checkboxes[i];
|
|
|
|
if( cbox.id.match( "^perm_" + row + "_(.+?)" ) )
|
|
{
|
|
cbox.checked = value;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
ACPPermissions.init(); |