function onload () { state.hasChanged = Array (); // quickbar initialesieren cbInit(); updateQuickbar (); showMessages (state.messages); top.setStatus (state.statusbar.value); } function onresize () { if (obj = document.getElementById ("scroll")) { obj.className = "content_hidden"; obj.style.width = obj.parentNode.offsetWidth; obj.style.height = obj.parentNode.offsetHeight; obj.className = "content"; } if (top.scrollpos) { document.getElementById ("scroll").scrollTop = top.scrollpos; top.scrollpos = 0; } } function focus () { top.focus (); } function setValue (name, value, noHasChanged) { new Form ().set ("value["+name+"]", value, true); if (!noHasChanged) { hasChanged (name); } } function getValue (name) { return new Form ().get ("value["+name+"]"); } function hasChanged (name) { var value = getValue (name); if ((value == state.values[name]) == (state.hasChanged[name] == true)) { if (typeof state.values[name] == "undefined") { state.values[name] = ""; } state.hasChanged[name] = !state.hasChanged[name]; var changed = false; for (var i in state.hasChanged) { changed |= state.hasChanged[i]; } state.quickbar.disabledButtons.save = !changed; state.quickbar.disabledButtons.undo = !changed; updateQuickbar (); } } var disableButtonsList = Array (); function updateQuickbar () { for (var name in disableButtonsList) { document.getElementById (name).setEnabled (true); } disableButtonsList = Array (); for (var name in state.quickbar.disabledButtons) { if (state.quickbar.disabledButtons[name]) { document.getElementById (name).setEnabled (false); disableButtonsList[name] = true; } } } function update () { updateQuickbar (); top.setStatus (state.statusbar.value); } function save (onCompletion) { // Alle zu speichernde Werte zusammen suchen var values = ""; for (var name in state.hasChanged) { if (state.hasChanged[name]) { state.values[name] = getValue(name); values += "&value["+name+"]="+encodeURIComponent (state.values[name]); } } top.scrollpos = document.getElementById ("scroll").scrollTop; if (values) { if (onCompletion) { state.hasChanged = Array (); } top.setProgress (true); var path = window.location.pathname.replace (/(.*\/).*/, "$1"); // ist für Save beim direkten öffnen einer neuen Seite var request = new Ajax (path+"tpl_user_management_action.php", "action=save&"+values); request.onCompletion = onCompletion ? onCompletion : function (response) { if (response) { showMessages ({0:{type : "error", text : response}}); top.setProgress (false); } else { reloadSelf (); } } request.run (); return true; } else { return false; } } function undo () { // zuerst Änderungen speichern if (save (undo)) { return; } // Undo durchführen top.setProgress (true); var request = new Ajax ("tpl_user_management_action.php", "action=undo"); request.onCompletion = function (response) { eval (response); state.hasChanged = Array (); for (var name in state.values) { setValue (name, state.values[name], true); } update (); focus (); } request.run (); } function redo () { top.setProgress (true); var request = new Ajax ("tpl_user_management_action.php", "action=redo"); request.onCompletion = function (response) { eval (response); state.hasChanged = Array (); for (var name in state.values) { setValue (name, state.values[name], true); } update (); focus (); } request.run (); } function select (id) { // zuerst Änderungen speichern if (id && save (function () {select (id);})) { return; } // User auswählen top.setProgress (true); var request = new Ajax ("tpl_user_management_action.php", "action=select&id="+id); request.onCompletion = function (response) { reloadSelf (); } request.run (); } function addGroup () { var form = new Form (); var value = form.get ("value[groups]"); value += (value) ? "," : ""; value += form.get ("groups"); form.set ("value[groups]", value); hasChanged ('groups'); } function add () { // zuerst Änderungen speichern if (save (add)) { return; } // User auswählen top.setProgress (true); var request = new Ajax ("tpl_user_management_action.php", "action=add"); request.onCompletion = function (response) { reloadSelf (); } request.run (); } function del () { // User auswählen top.setProgress (true); var request = new Ajax ("tpl_user_management_action.php", "action=del"); request.onCompletion = function (response) { top.scrollpos = document.getElementById ("scroll").scrollTop; reloadSelf (); } request.run (); } function getPassword () { var form = new Form (); var pool = "qwertzupasdfghkyxcvbnmWERTZUPLKJHGFDSAYXCVBNM23456789"; var password = ""; for (var i=0; i<10; i++) { password += pool.substr (Math.floor (Math.random ()*(pool.length-1)), 1); } form.getElement ("value[password]").setAttribute ("type", "text"); form.set ("value[password]", password); } function reloadSelf () { setTimeout (function () { window.location.reload (); }, 100); } function help () { top.setProgress (true); var request = new Ajax ("tpl_user_management_action.php", "action=message&text=help text"); request.onCompletion = function (response) { showMessages ({0:{type : "info", text : response}}); top.setProgress (false); } request.run (); }