code duplication
I've noticed some redundant code, removing it would ease third party development and make the panel more resource efficient:
The example I'm using is applicable to all edits that relates to the server id.
There is no purpose to assigning the vars server_id_value and database_charset_value, they are simply shown in a hidden form element (Which could be removed too). Which is ignored itself on form submission.
In the above, the script auto assigns a server, based on the existing record, or defaults for non admin users. Seconds later, it checks that the server id has not been changed for admin users. This is redundant.
To avoid multiple queries, perhaps simply use the $old_record var to reassign the server value in onBeforeUpdate, and do the manual check in onBeforeInsert
This is incredibly pedantic I realize, and If I've missed something just shout. I don't really know how much effort this would be to fix, and it's not exactly a huge issue :)
Thanks!