[20846] update preferences

Sigurd Nes <[email protected]>
Newsgroups gmane.comp.web.phpgroupware.cvs
Message-ID <[email protected]>
Revision: 20846
          http://svn.sv.gnu.org/viewvc/?view=rev&root=phpgroupware&revision=20846
Author:   sigurdne
Date:     2009-11-20 10:28:38 +0000 (Fri, 20 Nov 2009)
Log Message:
-----------
update preferences

Modified Paths:
--------------
    people/sigurdne/modules/preferences/trunk/changepassword.php
    people/sigurdne/modules/preferences/trunk/inc/class.boadmin_acl.inc.php
    people/sigurdne/modules/preferences/trunk/inc/class.bocategories.inc.php
    people/sigurdne/modules/preferences/trunk/inc/class.menu.inc.php
    people/sigurdne/modules/preferences/trunk/inc/class.uiaclprefs.inc.php
    people/sigurdne/modules/preferences/trunk/inc/class.uiadmin_acl.inc.php
    people/sigurdne/modules/preferences/trunk/inc/class.uicategories.inc.php
    people/sigurdne/modules/preferences/trunk/inc/class.uimapping.inc.php
    people/sigurdne/modules/preferences/trunk/inc/hook_deleteaccount.inc.php
    people/sigurdne/modules/preferences/trunk/index.php
    people/sigurdne/modules/preferences/trunk/preferences.php
    people/sigurdne/modules/preferences/trunk/setup/phpgw_it.lang
    people/sigurdne/modules/preferences/trunk/setup/phpgw_sk.lang
    people/sigurdne/modules/preferences/trunk/setup/phpgw_sv.lang
    people/sigurdne/modules/preferences/trunk/templates/base/admin_acl.xsl
    people/sigurdne/modules/preferences/trunk/templates/base/preferences.tpl

Modified: people/sigurdne/modules/preferences/trunk/changepassword.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/changepassword.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/changepassword.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -23,7 +23,7 @@
 	$n_passwd   = isset($_POST['n_passwd']) && $_POST['n_passwd'] ? $_POST['n_passwd'] : '';
 	$n_passwd_2 = isset($_POST['n_passwd_2']) && $_POST['n_passwd_2'] ? $_POST['n_passwd_2'] : '';
 
-	if (! $GLOBALS['phpgw']->acl->check('changepassword', 1) || (isset($_POST['cancel']) && $_POST['cancel']))
+	if (! $GLOBALS['phpgw']->acl->check('changepassword', 1, 'preferences') || (isset($_POST['cancel']) && $_POST['cancel']))
 	{
 		$GLOBALS['phpgw']->redirect_link('/preferences/index.php');
 		$GLOBALS['phpgw']->common->phpgw_exit();
@@ -52,12 +52,26 @@
 		{
 			$errors[] = lang('The two passwords are not the same');
 		}
+		else
+		{
+			$account	= new phpgwapi_user();
+			try
+			{
+				$account->validate_password($n_passwd);
+			}
+			catch(Exception $e)
+			{
+				$errors[] = $e->getMessage();
+			//	trigger_error($e->getMessage(), E_USER_WARNING);
+			}
+		}
 
 		if (! $n_passwd)
 		{
 			$errors[] = lang('You must enter a password');
 		}
 
+
 		if (count($errors))
 		{
 			$GLOBALS['phpgw']->common->phpgw_header();

Modified: people/sigurdne/modules/preferences/trunk/inc/class.boadmin_acl.inc.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/inc/class.boadmin_acl.inc.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/inc/class.boadmin_acl.inc.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -4,7 +4,7 @@
 	*
 	* @author Sigurd Nes <[email protected]>
 	* @copyright Copyright (C) 2003-2008 Free Software Foundation, Inc. http://www.fsf.org/
-	* @license http://www.gnu.org/licenses/gpl.html GNU General Public License v3 or later
+	* @license http://www.gnu.org/licenses/gpl.html GNU General Public License v2 or later
 	* @internal Development of this application was funded by http://www.bergen.kommune.no/bbb_/ekstern/
 	* @package hrm
 	* @subpackage admin
@@ -34,8 +34,6 @@
 		function boadmin_acl($session='')
 		{
 			$this->currentapp	= $GLOBALS['phpgw_info']['flags']['currentapp'];
-			$this->so 		= CreateObject('preferences.soadmin_acl');
-	//		$this->catbo = createobject('phpgwapi.categories');
 
 			$this->acl 		= $GLOBALS['phpgw']->acl;
 			$this->right		= array(1,2,4,8,16);
@@ -97,20 +95,6 @@
 			}
 			if(isset($module))
 			{
-				//XXX JAN09 Caeies : Try to convert it ... that not good : lazy WA.
-				if(is_numeric($module))
-				{
-					$module_n = $GLOBALS['phpgw']->locations->get_name((int)$module);
-					if(isset($module_n['name']))
-					{
-						$this->location_id = (int)$module;
-						$module = $module_n['name'];
-					}
-				}
-				else
-				{
-					$this->location_id = $GLOBALS['phpgw']->locations->get_id($this->acl_app, $module);
-				}
 				$this->location = $module;
 			}
 			if(isset($granting_group))
@@ -127,10 +111,6 @@
 		function read_sessiondata()
 		{
 			$data = $GLOBALS['phpgw']->session->appsession('session_data','fm_admin');
-			if(!is_array($data))
-			{
-				return;
-			}
 
 			$this->start		= $data['start'];
 			$this->query		= $data['query'];
@@ -139,7 +119,6 @@
 			$this->order		= $data['order'];
 			$this->cat_id		= $data['cat_id'];
 			$this->location		= $data['location'];
-			$this->location_id	= $data['location_id'];
 			$this->granting_group	= $data['granting_group'];
 			$this->allrows	= $data['allrows'];
 		}
@@ -154,6 +133,7 @@
 
 		function select_location($format = 'filter', $selected='', $grant = false, $allow_c_attrib = false)
 		{
+
 			switch($format)
 			{
 				case 'select':
@@ -166,7 +146,7 @@
 
 			$location_list = array();
 
-			$locations = $this->so->select_location($grant, $this->acl_app, $allow_c_attrib);
+			$locations = $GLOBALS['phpgw']->locations->get_locations($grant, $this->acl_app, $allow_c_attrib);
 
 			$i = 0;
 			foreach ( $locations as $loc_id => $loc_descr )
@@ -234,7 +214,7 @@
 			return $category_list;
 		}
 
-		function set_permission2($values,$r_processed, $grantor = 0, $type = 0)
+		function set_permission2($values,$r_processed, $grantor = -1, $type = 0)
 		{
 			if ( !is_array($values) )
 			{
@@ -259,7 +239,7 @@
 			{
 				$user_checked[] = $user_id;
 
-				$this->acl->set_account_id($user_id);
+				$this->acl->set_account_id($user_id, true);
 				$this->acl->delete($this->acl_app, $this->location, $grantor, $type);
 				$this->acl->add($this->acl_app, $this->location, $rights, $grantor, $type);
 				$this->acl->save_repository($this->acl_app, $this->location);
@@ -278,11 +258,11 @@
 			
 			if(is_array($user_delete) && count($user_delete)>0)
 			{
-				while(list(,$user_id) = each($user_delete))
+				foreach ($user_delete as $user_id)
 				{
 					if(isset($users_at_location[$user_id]) && $users_at_location[$user_id])
 					{
-						$this->acl->set_account_id($user_id);
+						$this->acl->set_account_id($user_id, true, $this->acl_app, $this->location, 'accounts'); 
 						$this->acl->delete($this->acl_app, $this->location, $grantor, $type);
 						$this->acl->save_repository($this->acl_app, $this->location);
 					}
@@ -292,6 +272,7 @@
 
 		function set_permission($values,$r_processed,$set_grant = false)
 		{
+			$this->acl->enable_inheritance = phpgw::get_var('enable_inheritance', 'bool', 'POST');
 
 			$process = explode('_', $r_processed);
 
@@ -305,7 +286,7 @@
 				$values['mask'] = array();
 			}
 
-			$grantor = 0;
+			$grantor = -1;
 			if($set_grant)
 			{
 				if($this->granting_group)
@@ -329,6 +310,8 @@
 				$receipt['message'][] = array('msg' => lang('%1 userlists cleared from cache',$cleared));
 			}
 
+			phpgwapi_cache::user_clear('phpgwapi', 'menu', -1);
+
 			return $receipt;
 		}
 
@@ -338,13 +321,15 @@
 			if($type == 'groups')
 			{
 				$check_account_type = array('accounts');
+				$acl_account_type = 'accounts';
 			}
 			else
 			{
 				$check_account_type = array('groups','accounts');
+				$acl_account_type = 'both';
 			}
 
-			$grantor = 0;
+			$grantor = -1;
 			if($get_grants)
 			{
 				if($this->granting_group)
@@ -378,14 +363,14 @@
 					$user_list[$j]['account_firstname'] 	= $account->firstname;
 					$user_list[$j]['account_lastname'] 	= $account->lastname;
 
-					$this->acl->set_account_id($account->id);
+					$this->acl->set_account_id($account->id, true, $this->acl_app, $this->location, $acl_account_type);
 
 					$count_right=count($right);
 					for ( $i = 0; $i < $count_right; ++$i )
 					{
 						if($this->acl->check_rights($this->location, $right[$i],$this->acl_app,$grantor,0,$check_account_type))
 						{
-							if($this->acl->type == 'g')
+							if($this->acl->account_type == 'g')
 							{
 								$user_list[$j]['right'][$right[$i]] = 'from_group';
 							}
@@ -397,7 +382,7 @@
 						}
 						if($this->acl->check_rights($this->location, $right[$i],$this->acl_app,$grantor,1,$check_account_type))
 						{
-							if($this->acl->type == 'g')
+							if($this->acl->account_type == 'g')
 							{
 								$user_list[$j]['mask'][$right[$i]] = 'from_group';
 							}
@@ -430,10 +415,10 @@
 					break;
 			}
 
-			$accounts 	= CreateObject('phpgwapi.accounts');
-			$groups = $accounts->get_list('groups', $start, $sort, $order, $query,$offset);
+			$groups = $GLOBALS['phpgw']->accounts->get_list('groups', $start, $sort, $order, $query,$offset);
+
 			unset($accounts);
-			if (isSet($groups) AND is_array($groups))
+			if (isset($groups) AND is_array($groups))
 			{
 				foreach($groups as $group)
 				{
@@ -442,7 +427,7 @@
 						$group_list[] = array
 						(
 							'id'	=> $group->id,
-							'name'		=> (string)$group,
+							'name'		=> $group->firstname,
 							'selected'	=> 'selected'
 						);
 					}
@@ -451,7 +436,7 @@
 						$group_list[] = array
 						(
 							'id'	=> $group->id,
-							'name'		=> (string)$group,
+							'name'		=> $group->firstname,
 						);
 					}
 				}

Modified: people/sigurdne/modules/preferences/trunk/inc/class.bocategories.inc.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/inc/class.bocategories.inc.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/inc/class.bocategories.inc.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -99,10 +99,6 @@
 		{
 			$column = $cats_app . '_cats';
 			$data = $GLOBALS['phpgw']->session->appsession('session_data',$column);
-			if(!is_array($data))
-			{
-				return;
-			}
 
 			$this->start  = $data['start'];
 			$this->query  = $data['query'];

Modified: people/sigurdne/modules/preferences/trunk/inc/class.menu.inc.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/inc/class.menu.inc.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/inc/class.menu.inc.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -3,16 +3,16 @@
 	 * preferences - Menus
 	 *
 	 * @author Dave Hall <[email protected]>
-	 * @copyright Copyright (C) 2007 Free Software Foundation, Inc. http://www.fsf.org/
+	 * @copyright Copyright (C) 2007-2008 Free Software Foundation, Inc. http://www.fsf.org/
 	 * @license http://www.gnu.org/licenses/gpl.html GNU General Public License
 	 * @package preferences 
-	 * @version $Id: class.menu.inc.php 727 2008-02-08 04:13:28Z dave $
+	 * @version $Id: class.menu.inc.php 1781 2008-11-02 19:51:19Z sigurd $
 	 */
 
 	/*
 	   This program is free software: you can redistribute it and/or modify
 	   it under the terms of the GNU General Public License as published by
-	   the Free Software Foundation, either version 3 of the License, or
+	   the Free Software Foundation, either version 2 of the License, or
 	   (at your option) any later version.
 
 	   This program is distributed in the hope that it will be useful,

Modified: people/sigurdne/modules/preferences/trunk/inc/class.uiaclprefs.inc.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/inc/class.uiaclprefs.inc.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/inc/class.uiaclprefs.inc.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -2,19 +2,37 @@
 	/**
 	* Preferences - User interface for ACL preferences
 	*
-	* @copyright Copyright (C) 2000-2005 Free Software Foundation, Inc. http://www.fsf.org/
+	 * @author Dave Hall <[email protected]>
+	 * @author Others <unknown>
+	 * @copyright Copyright (C) 200-2008 Free Software Foundation, Inc. http://www.fsf.org/
 	* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
-	* @package preferences
-	* @version $Id$
+	 * @package phpgroupware
+	 * @subpackage preferences
+	 * @version $Id$
 	*/
 
+	/*
+	   This program is free software: you can redistribute it and/or modify
+	   it under the terms of the GNU General Public License as published by
+	   the Free Software Foundation, either version 2 of the License, or
+	   (at your option) any later version.
 
+	   This program is distributed in the hope that it will be useful,
+	   but WITHOUT ANY WARRANTY; without even the implied warranty of
+	   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	   GNU General Public License for more details.
+
+	   You should have received a copy of the GNU General Public License
+	   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+	 */
+
 	/**
 	 * User interface for ACL preferences
 	 * 
-	 * @package preferences
+	 * @package phpgroupware
+	 * @subpackage preferences
 	 */
-	class uiaclprefs
+	class preferences_uiaclprefs
 	{
 		/**
 		 * 
@@ -32,33 +50,36 @@
 		 * 
 		 * @var array
 		 */
-		var $public_functions = array('index' => True);
+		var $public_functions = array('index' => true);
 
 		/**
 		 * Constructor
 		 */
-		function uiaclprefs()
+		public function __construct()
 		{
 			$GLOBALS['phpgw']->nextmatchs = CreateObject('phpgwapi.nextmatchs');
+			$this->template =& $GLOBALS['phpgw']->template;
 		}
 
 		/**
+		 * Render index form for ACLs
 		 * 
+		 * @return null
 		 */
 		function index()
 		{
-			$acl_app	= phpgw::get_var('acl_app');
+			$acl_app	= phpgw::get_var('acl_app', 'string');
 			$start		= phpgw::get_var('start', 'int');
-			$query		= phpgw::get_var('query');
-			$s_groups	= phpgw::get_var('s_groups');
-			$s_users	= phpgw::get_var('s_users');
+			$query		= phpgw::get_var('query', 'string');
+			$s_groups	= phpgw::get_var('s_groups', 'int');
+			$s_users	= phpgw::get_var('s_users', 'int');
 			$owner		= phpgw::get_var('owner', 'int');
 			
 			$acl_app_not_passed = false;
 			if (! $acl_app)
 			{
 				$acl_app            = 'preferences';
-				$acl_app_not_passed = True;
+				$acl_app_not_passed = true;
 			}
 			else
 			{
@@ -69,7 +90,7 @@
 
 			if ($acl_app_not_passed)
 			{
-				if(is_object($GLOBALS['phpgw']->log))
+				if ( is_object($GLOBALS['phpgw']->log) )
 				{
 					$GLOBALS['phpgw']->log->message(array(
 						'text' => 'F-BadmenuactionVariable, failed to pass acl_app.',
@@ -80,162 +101,116 @@
 				}
 			}
 
-			if (isset($GLOBALS['phpgw_info']['server']['deny_user_grants_access']) && $GLOBALS['phpgw_info']['server']['deny_user_grants_access'] && !isset($GLOBALS['phpgw_info']['user']['apps']['admin']))
+			if ( ( isset($GLOBALS['phpgw_info']['server']['deny_user_grants_access'])
+					&& $GLOBALS['phpgw_info']['server']['deny_user_grants_access'] )
+				&& !isset($GLOBALS['phpgw_info']['user']['apps']['admin']) )
 			{
 				echo '<center><b>' . lang('Access not permitted') . '</b></center>';
-				$GLOBALS['phpgw']->common->phpgw_exit(True);
+				$GLOBALS['phpgw']->common->phpgw_exit(true);
 			}
 
-			/*
-			if(isset($save_my_owner) && $GLOBALS['phpgw_info']['user']['apps']['admin'])
+			if ( !isset($GLOBALS['phpgw_info']['user']['apps']['admin'])
+				|| !$owner )
 			{
-				$owner = $save_my_owner;
-				unset($save_my_owner);
-			}
-			elseif(@isset($save_my_owner))
-			{
-				echo '<center>'.lang('You do not have permission to set ACL\'s in this mode!').'</center>';
-				$GLOBALS['phpgw']->common->phpgw_footer();
-			}
-			*/
-
-			if((!isset($owner) || empty($owner)) || !$GLOBALS['phpgw_info']['user']['apps']['admin'])
-			{
 				$owner = $GLOBALS['phpgw_info']['user']['account_id'];
 			}
 
-			$acct			= CreateObject('phpgwapi.accounts',$owner);
+			$acct			= createObject('phpgwapi.accounts', $owner);
 			$groups			= $acct->get_list('groups');
 			$users			= $acct->get_list('accounts');
 			$owner_name		= $acct->id2name($owner);		// get owner name for title
-			if($is_group	= $acct->get_type($owner) == 'g')
+			$is_group		= $acct->get_type($owner);
+
+			if ( $is_group == 'g' )
 			{
-				$owner_name = lang('Group').' ('.$owner_name.')';
+				$owner_name = lang('Group (%1)', $owner_name);
 			}
 			unset($acct);
-			$this->acl = CreateObject('phpgwapi.acl',intval($owner));
-			$this->acl->read();
 
-			if (phpgw::get_var('submit', 'bool', 'POST'))
+			$this->acl = createObject('phpgwapi.acl', (int) $owner);
+
+			$errors = '';
+
+			if ( phpgw::get_var('submit', 'bool', 'POST') )
 			{
-				$processed = phpgw::get_var('processed', 'string', 'POST', '');
-				$to_remove = unserialize(urldecode($processed));
+				$processed = $_POST['processed'];
+				$to_remove = unserialize($processed);
 
-				for($i=0; $i < count($to_remove); ++$i)
+				foreach ( $to_remove as $entry )
 				{
-					$this->acl->delete($GLOBALS['phpgw_info']['flags']['currentapp'],$to_remove[$i]);
+					$this->acl->delete($acl_app, (int) $entry);
 				}
 
 				/* Group records */
-				$group_variable = phpgw::get_var('g_'.$GLOBALS['phpgw_info']['flags']['currentapp'], 'array', 'POST', array());
+				$group_variable = phpgw::get_var("g_{$acl_app}", 'string', 'POST');
 
-				reset($group_variable);
-				$totalacl = array();
-				while(list($rowinfo,$perm) = each($group_variable))
+				if ( !$group_variable )
 				{
-					list($group_id,$rights) = split('_',$rowinfo);
-					if(isset($totalacl[$group_id]))
-					{
-						$totalacl[$group_id] += $rights;
+					$group_variable = array();
 					}
-					else
-					{
-						$totalacl += array( $group_id => $rights );
-					}
-				}
-				reset($totalacl);
-				while(list($group_id,$rights) = each($totalacl))
-				{
-					if($is_group)
-					{
-						/* Don't allow group-grants to grant private */
-						$rights &= ~PHPGW_ACL_PRIVATE;
-					}
 
-					$this->acl->add($GLOBALS['phpgw_info']['flags']['currentapp'],$group_id,$rights);
+				$totalacl = array();
+				foreach ( $group_variable as $rowinfo )
+				{
+					list($group_id, $rights) = explode('_', $rowinfo, 2);
+					$totalacl[(int) $group_id] += (int) $rights;
 				}
 
 				/* User records */
-				$user_variable = phpgw::get_var('u_'.$GLOBALS['phpgw_info']['flags']['currentapp'], 'array', 'POST', array());
+				$user_variable = phpgw::get_var("u_{$acl_app}", 'string', 'POST');
 
-				reset($user_variable);
-				$totalacl = array();
-				while(list($rowinfo,$perm) = each($user_variable))
-				{
-					list($user_id,$rights) = split('_',$rowinfo);
-					if(isset($totalacl[$user_id]))
+				if (!$user_variable)
 					{
-						$totalacl[$user_id] += $rights;
+					$user_variable = array();
 					}
-					else
+
+				foreach ( $user_variable as $rowinfo )
 					{
-						$totalacl += array( $user_id => $rights );
-					}
+					list($user_id, $rights) = explode('_', $rowinfo, 2);
+					$totalacl[(int) $user_id] += (int) $rights;
 				}
-				reset($totalacl);
-				while(list($user_id,$rights) = each($totalacl))
+
+				// Update all the ACLs at once
+				foreach ( $totalacl as $id => $rights )
 				{
-					if($is_group)
+					if ( $is_group )
 					{
 						/* Don't allow group-grants to grant private */
-						$rights &= ~ PHPGW_ACL_PRIVATE;
+						$rights &= ~ phpgwapi_acl::PRIV;
 					}
 
-					$this->acl->add($GLOBALS['phpgw_info']['flags']['currentapp'],$user_id,$rights);
-				}
-				$this->acl->save_repository();
+					$this->acl->add($acl_app, $id, $rights);
 			}
-
-			$processed = Array();
-
-			$total = 0;
-
-			if(!isset($start))
+				if ( $this->acl->save_repository('preferences') )
 			{
-				$start = 0;
+					$errors = lang('Grants have been updated');
 			}
-
-			if(!$start)
+				else
 			{
-				$s_groups = 0;
-				$s_users = 0;
+					$errors = lang('ERROR: Grants have not been updated');
 			}
-
-			if(!isset($s_groups))
-			{
-				$s_groups = 0;
 			}
 
-			if(!isset($s_users))
-			{
-				$s_users = 0;
-			}
+			$processed = Array();
 
-			if(!isset($query))
-			{
-				$query = "";
-			}
+			$total = 0;
 
-			if(!isset($maxm))
-			{
 				$maxm = $GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'];
-			}
 
-			if(!isset($totalentries))
-			{
 				$totalentries = count($groups) + count($users);
-				if($totalentries < $maxm)
+			if ( $totalentries < $maxm )
 				{
 					$maxm = $totalentries;
 				}
-			}
 
-			$GLOBALS['phpgw_info']['flags']['app_header'] = lang('%1 - Preferences',$GLOBALS['phpgw_info']['apps'][$acl_app]['title']).' - '.lang('acl').': '.$owner_name;
+			$GLOBALS['phpgw_info']['flags']['app_header'] = lang('%1 - Preferences', lang($acl_app))
+														. ' - ' . lang('acl') . ": {$owner_name}";
 			$GLOBALS['phpgw']->common->phpgw_header();
 			echo parse_navbar();
 
-			$this->template = CreateObject('phpgwapi.Template',$GLOBALS['phpgw']->common->get_tpl_dir($acl_app));
-			$templates = Array (
+			$this->template->set_root($GLOBALS['phpgw']->common->get_tpl_dir($acl_app));
+			$templates = array
+			(
 				'preferences' => 'preference_acl.tpl',
 				'row_colspan' => 'preference_colspan.tpl',
 				'acl_row'     => 'preference_acl_row.tpl'
@@ -243,76 +218,78 @@
 
 			$this->template->set_file($templates);
 
-			if (phpgw::get_var('submit', 'bool', 'POST'))
-			{
-				$this->template->set_var('errors',lang('ACL grants have been updated'));
-			}
+			$common_hidden_vars = <<<HTML
+				<input type="hidden" name="s_groups" value="{$s_groups}">
+				<input type="hidden" name="s_users" value="{$s_users}">
+				<input type="hidden" name="maxm" value="{$maxm}">
+				<input type="hidden" name="totalentries" value="{$totalentries}">
+				<input type="hidden" name="start" value="{$start}">
+				<input type="hidden" name="query" value="{$query}">
+				<input type="hidden" name="owner" value="{$owner}">
+				<input type="hidden" name="acl_app" value="{$acl_app}">
 
-			$common_hidden_vars =
-				'     <input type="hidden" name="s_groups" value="' . $s_groups . '" />' . "\n"
-				. '     <input type="hidden" name="s_users" value="' . $s_users . '" />' . "\n"
-				. '     <input type="hidden" name="maxm" value="' . $maxm . '" />' . "\n"
-				. '     <input type="hidden" name="totalentries" value="' . $totalentries.  '" />' . "\n"
-				. '     <input type="hidden" name="start" value="' . $start . '" />' . "\n"
-				. '     <input type="hidden" name="query" value="' . $query . '" />' . "\n"
-				. '     <input type="hidden" name="owner" value="' . $owner . '" />' . "\n"
-				. '     <input type="hidden" name="acl_app" value="' . $acl_app . '" />' . "\n";
+HTML;
 
-			$var = Array(
-				'errors'      => '',
-				'title'       => '<br />',
-				'action_url'  => $GLOBALS['phpgw']->link('/index.php', array('menuaction' => 'preferences.uiaclprefs.index', 'acl_app' => $acl_app)),
-				//'bg_color'    => $GLOBALS['phpgw_info']['theme']['th_bg'],
+			$var = array
+			(
+				'errors'					=> $errors,
+				'title'						=> '<br>',
+				'action_url'				=> $GLOBALS['phpgw']->link('/index.php', array
+												(
+													'menuaction'	=> 'preferences.uiaclprefs.index',
+													'acl_app'		=> $acl_app
+												)),
 				'submit_lang' => lang('Save'),
-				'common_hidden_vars_form' => $common_hidden_vars
+				'common_hidden_vars_form'	=> $common_hidden_vars,
+				'common_hidden_vars'		=> $common_hidden_vars
 			);
 
 			$this->template->set_var($var);
 
-			if(isset($query_result) && $query_result)
+			/* This is never set so code will never execute - skwashd may08
+			if ( isset($query_result)
+				&& $query_result )
 			{
-				$common_hidden_vars .= '<input type="hidden" name="query_result" value="' . $query_result. '" />' . "\n";
+				$common_hidden_vars .= "<input type=\"hidden\" name=\"query_result\" value=\"{$query_result}\">\n";
 			}
+			*/
 
-			$this->template->set_var('common_hidden_vars',$common_hidden_vars);
-
 			$vars = $this->template->get_undefined('row_colspan');
-			while (list(,$var) = each($vars))
+			foreach ( $vars as $var )
 			{
-				if (ereg('lang_',$var))
+				if ( preg_match('/lang_/', $var))
 				{
-					$value = ereg_replace('lang_','',$var);
-					$value = ereg_replace('_',' ',$value);
+					$value = preg_replace('/lang_/', '', $var);
+					$value = preg_replace('/_/', ' ', $value);
 
-					$this->template->set_var($var,lang($value));
+					$this->template->set_var($var, lang($value));
 				}
 			}
-			$tr_color = 'row_on';
-			if (intval($s_groups) != count($groups))
+
+			$query = preg_quote($query);
+			$row_class = 'row_off';
+			$g_count = count($groups);
+			if ( $g_count && (int) $s_groups != $g_count )
 			{
-				$this->template->set_var('string',lang('Groups'));
-				$this->template->parse('row','row_colspan',True);
+				$this->template->set_var('string', lang('Groups'));
+				$this->template->parse('row', 'row_colspan', true);
 
 				reset($groups);
-				for($k=$start; $k < count($groups); ++$k)
+				foreach ( $groups as $group )
 				{
-					$group = $groups[$k];
-					$go = True;
-
-					if($query)
+					$name = $group->lid;
+					if ( $query )
 					{
-						if(!strpos(' '.$group['account_lid'].' ',$query))
+						if ( !preg_match("/{$query}/", $name) )
 						{
-							$go = False;
+							continue;
 						}
 					}
 
-					if($go)
-					{
-						$tr_color = $GLOBALS['phpgw']->nextmatchs->alternate_row_class($tr_color);
-						$this->display_row($tr_color,'g_',$group['account_id'],$group['account_lid'],$is_group);
+					$row_class = $GLOBALS['phpgw']->nextmatchs->alternate_row_class($row_class);
+					$this->display_row($row_class, 'g_', $group->id, (string) $group, true);
 						++$s_groups;
-						$processed[] = $group['account_id'];
+					$processed[] = $group->id;
 						++$total;
 						if($total == $maxm)
 						{
@@ -320,77 +297,70 @@
 						}
 					}
 				}
-			}
 
-			if($total != $maxm)
+			if ( $total != $maxm && is_array($users) )
 			{
-				if($users)
+				$this->template->set_var('string', lang('Users'));
+				$this->template->parse('row', 'row_colspan', true);
+				$row_class = $GLOBALS['phpgw']->nextmatchs->alternate_row_class($row_class);
+				$u_count = count($users);
+				foreach ( $users as $user )
 				{
-					$this->template->set_var('string',ucfirst(lang('Users')));
-					$this->template->parse('row','row_colspan',True);
-					$tr_color = $GLOBALS['phpgw']->nextmatchs->alternate_row_class($tr_color);
-					for($k=$s_users; ($k < $totalentries) || ($k == count($users)); ++$k)
+					$name = (string) $user;
+					if($query)
 					{
-						if(!isset($users[$k]))
+						if ( !preg_match("/{$query}/", $name) )
 						{
 							continue;
 						}
-						$user = $users[$k];
-						//echo '<br />acctid: '.$user['account_id'];
-						if ($user['account_id'])
-						{
-							$go = True;
 						}
-						else
-						{
-							$go = False;
-						}
-						if($query)
-						{
-							$name = ' '.$user['account_firstname'].' '.$user['account_lastname'].' '.$user['account_lid'].' ';
-							if(!strpos($name,$query))
+
+					// Need to be $owner not $GLOBALS['phpgw_info']['user']['account_id']
+					// or the admin can't get special grants from a group
+					if ( $user->id != $owner )
 							{
-								$go = False;
-							}
+						continue;
 						}
 
-						if($go && $user['account_id'] != $owner)	// Need to be $owner not $GLOBALS['phpgw_info']['user']['account_id']
-						{
-							// or the admin can't get special grants from a group
-							$tr_color = $GLOBALS['phpgw']->nextmatchs->alternate_row_class($tr_color);
-							$this->display_row($tr_color,'u_',$user['account_id'],$GLOBALS['phpgw']->common->display_fullname($user['account_lid'],$user['account_firstname'],$user['account_lastname']),$is_group);
+					$row_class = $GLOBALS['phpgw']->nextmatchs->alternate_row_class($row_class);
+					$this->display_row($row_class, 'u_', $user->id, $name, false);
 							++$s_users;
-							$processed[] = $user['account_id'];
+					$processed[] = $user->id;
 							++$total;
 							if($total == $maxm)
 							{
 								break;
 							}
-						}
-					}
+
 				}
 			}
 
-			$extra_parms = 'menuaction=preferences.uiaclprefs.index'
-				. '&acl_app=' .$acl_app
-				. '&s_users=' . $s_users
-				. '&s_groups='. $s_groups
-				. '&maxm='. $maxm
-			        . '&totalentries='. $totalentries
-				. '&total=' . ($start + $total) 
-				. '&owner=' . $owner;
+			$extra_parms = array
+			(
+				'menuaction'	=> 'preferences.uiaclprefs.index',
+				'acl_app'		=> $acl_app,
+				's_users'		=> $s_users,
+				's_groups'		=> $s_groups,
+				'maxm'			=> $maxm,
+				'totalentries'	=> $totalentries,
+				'total'			=> ($start + $total),
+				'owner'			=> $owner
+			);
 
-			$var = Array(
-				'nml'          => $GLOBALS['phpgw']->nextmatchs->left('/index.php',$start,$totalentries,$extra_parms),
-				'nmr'          => $GLOBALS['phpgw']->nextmatchs->right('/index.php',$start,$totalentries,$extra_parms),
-				'search_value' => (isset($query) && $query?$query:''),
+			$var = array
+			(
+				'nml'          => $GLOBALS['phpgw']->nextmatchs->left('/index.php',
+									$start, $totalentries, $extra_parms),
+				'nmr'          => $GLOBALS['phpgw']->nextmatchs->right('/index.php',
+									$start, $totalentries, $extra_parms),
+				'search_value' => $query,
 				'search'       => lang('search'),
-				'processed'    => urlencode(serialize($processed))
+				'processed'    => htmlspecialchars(serialize($processed), ENT_QUOTES, 'utf-8')
 			);
 
 			$this->template->set_var($var);
 
-			$this->template->pfp('out','preferences');
+			$this->template->pfp('out', 'preferences');
 		}
 
 		/**
@@ -403,7 +373,7 @@
 		 * @param $right
 		 * @param boolean $is_group
 		 */
-		function check_acl($label,$id,$acl,$rights,$right,$is_group=False)
+		function check_acl($label, $id, $acl, $rights, $right, $is_group = false)
 		{
 			$this->template->set_var($acl,$label.$GLOBALS['phpgw_info']['flags']['currentapp'].'['.$id.'_'.$right.']');
 			$rights_set = (($rights & $right)?' checked':'');
@@ -412,7 +382,7 @@
 				// This is so you can't select it in the GUI
 				$rights_set .= ' disabled';
 			}
-			$this->template->set_var($acl.'_selected',$rights_set);
+			$this->template->set_var($acl.'_selected', $rights_set);
 		}
 
 		/**
@@ -424,31 +394,34 @@
 		 * @param $name
 		 * @param boolean $is_group
 		 */
-		function display_row($bg_color,$label,$id,$name,$is_group)
+		function display_row($row_class, $label, $id, $name, $is_group)
 		{
-			$this->template->set_var('row_color',$bg_color);
-			$this->template->set_var('user',$name);
-			$rights = $this->acl->get_rights($id,$GLOBALS['phpgw_info']['flags']['currentapp']);
-			// vv This is new
-			$grantors = $this->acl->get_ids_for_location($id,$rights,$GLOBALS['phpgw_info']['flags']['currentapp']);
-			$is_group_set = False;
-			while(@$grantors && list($key,$grantor) = each($grantors))
+			$this->template->set_var('row_class', $row_class);
+			$this->template->set_var('user', $name);
+			$rights = $this->acl->get_rights($id, $GLOBALS['phpgw_info']['flags']['currentapp']);
+			$grantors = $this->acl->get_ids_for_location($id, $rights, $GLOBALS['phpgw_info']['flags']['currentapp']);
+			$is_group_set = false;
+
+			if ( $grantors )
 			{
-				if($GLOBALS['phpgw']->accounts->get_type($grantor) == 'g')
+				foreach ( $grantors as $grantor )
 				{
-					$is_group_set = True;
+					if ( $GLOBALS['phpgw']->accounts->get_type($grantor) == phpgwapi_account::TYPE_GROUP )
+					{
+						$is_group_set = true;
+					}
 				}
 			}
 
-			$this->check_acl($label,$id,'read',$rights,PHPGW_ACL_READ,($is_group_set && ($rights & PHPGW_ACL_READ) && !$is_group?$is_group_set:False));
-			$this->check_acl($label,$id,'add',$rights,PHPGW_ACL_ADD,($is_group_set && ($rights & PHPGW_ACL_ADD && !$is_group)?$is_group_set:False));
-			$this->check_acl($label,$id,'edit',$rights,PHPGW_ACL_EDIT,($is_group_set && ($rights & PHPGW_ACL_EDIT && !$is_group)?$is_group_set:False));
-			$this->check_acl($label,$id,'delete',$rights,PHPGW_ACL_DELETE,($is_group_set && ($rights & PHPGW_ACL_DELETE && !$is_group)?$is_group_set:False));
-			$this->check_acl($label,$id,'private',$rights,PHPGW_ACL_PRIVATE,$is_group);
+			$this->check_acl($label, $id, 'read', $rights, phpgwapi_acl::READ , ($is_group_set && ($rights & phpgwapi_acl::READ) && !$is_group?$is_group_set:false));
+			$this->check_acl($label, $id, 'add', $rights, phpgwapi_acl::ADD , ($is_group_set && ($rights & phpgwapi_acl::ADD && !$is_group)?$is_group_set:false));
+			$this->check_acl($label, $id, 'edit', $rights, phpgwapi_acl::EDIT , ($is_group_set && ($rights & phpgwapi_acl::EDIT && !$is_group)?$is_group_set:false));
+			$this->check_acl($label, $id, 'delete', $rights, phpgwapi_acl::DELETE , ($is_group_set && ($rights & phpgwapi_acl::DELETE && !$is_group)?$is_group_set:false));
+			$this->check_acl($label, $id, 'private', $rights, phpgwapi_acl::PRIV , $is_group);
 
-			$this->check_acl($label,$id,'custom_1',$rights,PHPGW_ACL_CUSTOM_1,($is_group_set && ($rights & PHPGW_ACL_CUSTOM_1) && !$is_group?$is_group_set:False));
-			$this->check_acl($label,$id,'custom_2',$rights,PHPGW_ACL_CUSTOM_2,($is_group_set && ($rights & PHPGW_ACL_CUSTOM_2) && !$is_group?$is_group_set:False));
-			$this->check_acl($label,$id,'custom_3',$rights,PHPGW_ACL_CUSTOM_3,($is_group_set && ($rights & PHPGW_ACL_CUSTOM_3) && !$is_group?$is_group_set:False));
-			$this->template->parse('row','acl_row',True);
+			$this->check_acl($label, $id, 'custom_1', $rights, phpgwapi_acl::CUSTOM_1 , ($is_group_set && ($rights & phpgwapi_acl::CUSTOM_1) && !$is_group?$is_group_set:false));
+			$this->check_acl($label, $id, 'custom_2', $rights, phpgwapi_acl::CUSTOM_2 , ($is_group_set && ($rights & phpgwapi_acl::CUSTOM_2) && !$is_group?$is_group_set:false));
+			$this->check_acl($label, $id, 'custom_3', $rights, phpgwapi_acl::CUSTOM_3 , ($is_group_set && ($rights & phpgwapi_acl::CUSTOM_3) && !$is_group?$is_group_set:false));
+			$this->template->parse('row', 'acl_row', true);
 		}
 	}

Modified: people/sigurdne/modules/preferences/trunk/inc/class.uiadmin_acl.inc.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/inc/class.uiadmin_acl.inc.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/inc/class.uiadmin_acl.inc.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -58,14 +58,10 @@
 			$this->filter			= $this->bo->filter;
 			$this->cat_id			= $this->bo->cat_id;
 			$this->location			= $this->bo->location;
-			$this->location_id			= $this->bo->location_id;
 			$this->granting_group	= $this->bo->granting_group;
 			$this->allrows			= $this->bo->allrows;
 
-			// Add top location if used for first time
-			$GLOBALS['phpgw']->locations->verify(array($this->acl_app => array('top_grant' =>True)));
 			$GLOBALS['phpgw_info']['flags']['menu_selection'] = "admin::{$this->acl_app}::acl";
-
 		}
 
 		function save_sessiondata()
@@ -79,7 +75,6 @@
 				'filter'		=> $this->filter,
 				'cat_id'		=> $this->cat_id,
 				'location'		=> $this->location,
-				'location_id'		=> $this->location_id,
 				'granting_group'	=> $this->granting_group,
 				'allrows'		=> $this->allrows
 			);
@@ -92,9 +87,9 @@
 			$GLOBALS['phpgw']->xslttpl->add_file(array('admin_acl','nextmatchs',
 										'search_field'));
 
-			$values 	= phpgw::get_var('values', 'string', 'POST');
-			$r_processed	= phpgw::get_var('processed', 'string', 'POST');
-			$set_permission = phpgw::get_var('set_permission','stirng', 'POST');
+			$values 	= get_var('values',array('POST'));
+			$r_processed	= get_var('processed',array('POST'));
+			$set_permission = get_var('set_permission',array('POST'));
 
 			if($set_permission)
 			{
@@ -264,18 +259,20 @@
 				'lang_no_location'				=> lang('No location'),
 				'lang_location_statustext'		=> lang('Select submodule'),
 				'select_name_location'			=> 'module',
-				'location_list'					=> $this->bo->select_location('filter',$this->location_id,True),
+				'location_list'					=> $this->bo->select_location('filter',$this->location,True),
 
 				'is_admin'						=> $GLOBALS['phpgw_info']['user']['apps']['admin'],
 				'lang_group_statustext'			=> lang('Select the granting group. To do not use a granting group select NO GRANTING GROUP'),
 				'select_group_name'				=> 'granting_group',
 				'lang_no_group'					=> lang('No granting group'),
 				'group_list'					=> $this->bo->get_group_list('filter',$this->granting_group,$start=-1,$sort='ASC',$order='account_firstname',$query='',$offset=-1),
+				'lang_enable_inheritance'       => lang('enable inheritance'), 
+                'lang_enable_inheritance_statustext'        => lang('rights are inherited down the hierarchy')
 			);
 
 			$appname			= lang('preferences');
 			$function_msg		= lang('set grants');
-			$owner_name 		= $GLOBALS['phpgw']->accounts->id2name($GLOBALS['phpgw']->accounts->id);		// get owner name for title
+			$owner_name 		= $GLOBALS['phpgw']->accounts->id2name($this->account);		// get owner name for title
 
 			$GLOBALS['phpgw_info']['flags']['app_header'] = lang('admin') . ' - ' . $this->acl_app . ': ' . $function_msg . ': ' . $owner_name;
 			$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('list_permission' => $data));
@@ -286,10 +283,10 @@
 		{
 			$GLOBALS['phpgw']->xslttpl->add_file(array('admin_acl','nextmatchs','search_field'));
 
-			$values 		= phpgw::get_var('values', 'string', 'POST');
-			$r_processed	= phpgw::get_var('processed', 'string', 'POST');
+			$values 		= get_var('values',array('POST'));
+			$r_processed	= get_var('processed',array('POST'));
 
-			$set_permission =  phpgw::get_var('set_permission', 'string', 'POST');
+			$set_permission = get_var('set_permission',array('POST'));
 
 			if($set_permission)
 			{
@@ -511,7 +508,9 @@
 				'lang_no_location'				=> lang('No location'),
 				'lang_location_statustext'		=> lang('Select submodule'),
 				'select_name_location'			=> 'module',
-				'location_list'					=> $this->bo->select_location('filter',$this->location_id,False)
+				'location_list'					=> $this->bo->select_location('filter',$this->location,False),
+				'lang_enable_inheritance'       => lang('enable inheritance'), 
+                'lang_enable_inheritance_statustext'        => lang('rights are inherited down the hierarchy')
 			);
 
 			$appname		= lang('permission');

Modified: people/sigurdne/modules/preferences/trunk/inc/class.uicategories.inc.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/inc/class.uicategories.inc.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/inc/class.uicategories.inc.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -75,7 +75,7 @@
 		 */
 		function uicategories()
 		{
-			$cats_app			= phpgw::get_var('cats_app');
+			$cats_app			= get_var('cats_app',array('GET','POST'));
 
 			$this->bo			= CreateObject('preferences.bocategories',$cats_app);
 			$this->nextmatchs	= CreateObject('phpgwapi.nextmatchs');
@@ -149,10 +149,10 @@
 		 */
 		function index()
 		{
-			$cats_app    = phpgw::get_var('cats_app');
-			$extra       = phpgw::get_var('extra');
-			$global_cats = phpgw::get_var('global_cats');
-			$cats_level  = phpgw::get_var('cats_level');
+			$cats_app    = get_var('cats_app',array('GET','POST'));
+			$extra       = get_var('extra',array('GET','POST'));
+			$global_cats = get_var('global_cats',array('GET','POST'));
+			$cats_level  = get_var('cats_level',array('GET','POST'));
 
 			$link_data = array
 			(
@@ -171,6 +171,7 @@
 			$GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps'][$cats_app]['title'].
 				'&nbsp;'.lang('categories for').':&nbsp;'.$this->user;
 			$GLOBALS['phpgw']->common->phpgw_header(true);
+			$GLOBALS['phpgw']->template->set_root(PHPGW_APP_TPL);
 			$GLOBALS['phpgw']->template->set_file('cat_list_t', 'listcats.tpl');
 			$GLOBALS['phpgw']->template->set_block('cat_list_t','data_column','column');
 			$GLOBALS['phpgw']->template->set_block('cat_list_t','cat_list','list');
@@ -331,10 +332,10 @@
 		 */
 		function add()
 		{
-			$cats_app    = phpgw::get_var('cats_app');
-			$extra       = phpgw::get_var('extra');
-			$global_cats = phpgw::get_var('global_cats');
-			$cats_level  = phpgw::get_var('cats_level');
+			$cats_app    = get_var('cats_app',array('GET','POST'));
+			$extra       = get_var('extra',array('GET','POST'));
+			$global_cats = get_var('global_cats',array('GET','POST'));
+			$cats_level  = get_var('cats_level',array('GET','POST'));
 
 			$link_data = array
 			(
@@ -350,13 +351,14 @@
 			$GLOBALS['phpgw']->common->phpgw_header();
 			echo parse_navbar();
 
-			$new_parent      = phpgw::get_var('new_parent', 'int', 'POST', 0);
-			$cat_parent      = phpgw::get_var('cat_parent', 'int', 'POST', 0);
-			$cat_name        = phpgw::get_var('cat_name', 'string', 'POST', '');
-			$cat_description = phpgw::get_var('cat_description', 'string', 'POST', '');
-			$cat_data        = phpgw::get_var('cat_data', 'array', 'POST', array());
-			$cat_access      = phpgw::get_var('cat_access', 'string', 'POST', 'private');
+			$new_parent      = isset($_POST['new_parent']) ? $_POST['new_parent'] : 0;
+			$cat_parent      = isset($_GET['cat_parent']) ? $_GET['cat_parent'] : 0;
+			$cat_name        = isset($_POST['cat_name']) ? $_POST['cat_name'] : '';
+			$cat_description = isset($_POST['cat_description']) ? $_POST['cat_description'] : '';
+			$cat_data        = isset($_POST['cat_data']) ? $_POST['cat_data'] : array();
+			$cat_access      = isset($_POST['cat_access']) ? $_POST['cat_access'] : 'private';
 
+			$GLOBALS['phpgw']->template->set_root(PHPGW_APP_TPL);
 			$GLOBALS['phpgw']->template->set_file(array('form' => 'category_form.tpl'));
 			$GLOBALS['phpgw']->template->set_block('form','data_row','row');
 			$GLOBALS['phpgw']->template->set_block('form','add','addhandle');
@@ -374,7 +376,7 @@
 				$global_cats = False;
 			}
 
-			if (phpgw::get_var('save', 'bool', 'POST'))
+			if ( isset($_POST['save']) && $_POST['save'])
 			{
 				$data = serialize($cat_data);
 
@@ -439,11 +441,11 @@
 
 		function edit()
 		{
-			$cats_app    = phpgw::get_var('cats_app');
-			$extra       = phpgw::get_var('extra');
-			$global_cats = phpgw::get_var('global_cats');
-			$cats_level  = phpgw::get_var('cats_level');
-			$cat_id      = phpgw::get_var('cat_id','int');
+			$cats_app    = get_var('cats_app',array('GET','POST'));
+			$extra       = get_var('extra',array('GET','POST'));
+			$global_cats = get_var('global_cats',array('GET','POST'));
+			$cats_level  = get_var('cats_level',array('GET','POST'));
+			$cat_id      = get_var('cat_id',array('GET','POST'));
 
 			$link_data = array
 			(
@@ -465,14 +467,15 @@
 			$GLOBALS['phpgw']->common->phpgw_header();
 			echo parse_navbar();
 
-			$new_parent			= phpgw::get_var('new_parent', 'string', 'POST');
-			$cat_parent			= phpgw::get_var('cat_parent', 'string', 'POST');
-			$cat_name			= phpgw::get_var('cat_name', 'string', 'POST');
-			$cat_description		= phpgw::get_var('cat_description','string', 'POST');
-			$cat_data			= phpgw::get_var('cat_data','string', 'POST');
-			$cat_access			= phpgw::get_var('cat_access', 'string', 'POST');
-			$old_parent			= phpgw::get_var('old_parent', 'string', 'POST');
+			$new_parent			= $_POST['new_parent'];
+			$cat_parent			= $_POST['cat_parent'];
+			$cat_name			= $_POST['cat_name'];
+			$cat_description	= $_POST['cat_description'];
+			$cat_data			= $_POST['cat_data'];
+			$cat_access			= $_POST['cat_access'];
+			$old_parent			= $_POST['old_parent'];
 
+			$GLOBALS['phpgw']->template->set_root(PHPGW_APP_TPL);
 			$GLOBALS['phpgw']->template->set_file(array('form' => 'category_form.tpl'));
 			$GLOBALS['phpgw']->template->set_block('form','data_row','row');
 			$GLOBALS['phpgw']->template->set_block('form','add','addhandle');
@@ -491,7 +494,7 @@
 				$global_cats = False;
 			}
 			
-			if (phpgw::get_var('save','bool', 'POST'))
+			if ($_POST['save'])
 			{
 				$data = serialize($cat_data);
 
@@ -575,11 +578,11 @@
 
 		function delete()
 		{
-			$cats_app    = phpgw::get_var('cats_app');
-			$extra       = phpgw::get_var('extra');
-			$global_cats = phpgw::get_var('global_cats');
-			$cats_level  = phpgw::get_var('cats_level');
-			$cat_id      = phpgw::get_var('cat_id', 'int');
+			$cats_app    = get_var('cats_app',array('GET','POST'));
+			$extra       = get_var('extra',array('GET','POST'));
+			$global_cats = get_var('global_cats',array('GET','POST'));
+			$cats_level  = get_var('cats_level',array('GET','POST'));
+			$cat_id      = get_var('cat_id',array('GET','POST'));
 
 			$link_data = array
 			(
@@ -591,14 +594,14 @@
 				'cat_id'      => $cat_id
 			);
 
-			if (!$cat_id || phpgw::get_var('cancel','string','POST', ''))
+			if (!$cat_id || $_POST['cancel'])
 			{
 				$GLOBALS['phpgw']->redirect_link('/index.php',$link_data);
 			}
 
-			if (phpgw::get_var('confirm','bool', 'POST'))
+			if ($_POST['confirm'])
 			{
-				if (phpgw::get_var('subs','bool', 'POST'))
+				if ($_POST['subs'])
 				{
 					$this->bo->delete($cat_id,True);
 				}

Modified: people/sigurdne/modules/preferences/trunk/inc/class.uimapping.inc.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/inc/class.uimapping.inc.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/inc/class.uimapping.inc.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -109,14 +109,14 @@
 				$app_data['table_row'][] = $item;
 			}
 			
-			$app_data['msg'] = phpgw::get_var('msg', 'string', 'GET', '');
+			$app_data['msg'] = get_var('msg', 'GET', '');
 
-			$action = phpgw::get_var('action', 'string', 'GET', '');
+			$action = get_var('action', 'GET', '');
 			if ($action)
 			{
-				$ext_user = phpgw::get_var('ext_user', 'string', 'GET', '');
-				$location = phpgw::get_var('location', 'string', 'GET', '');
-				$auth_type = phpgw::get_var('auth_type', 'string', 'GET', '');
+				$ext_user = get_var('ext_user', 'GET', '');
+				$location = get_var('location', 'GET', '');
+				$auth_type = get_var('auth_type', 'GET', '');
 				
 				if(isset($_SERVER['REMOTE_USER']) && ($ext_user == $_SERVER['REMOTE_USER']) &&  ($phpgw_map_location == $location) && ($phpgw_map_authtype == $auth_type))
 				{

Modified: people/sigurdne/modules/preferences/trunk/inc/hook_deleteaccount.inc.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/inc/hook_deleteaccount.inc.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/inc/hook_deleteaccount.inc.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -1,18 +1,32 @@
 <?php
 	/**
-	* Preferences - delete account hook
+	* phpGroupWare Preferences - delete account hook
 	*
+	* @author Dave Hall <[email protected]>
 	* @author Mark Peters <[email protected]>
-	* @copyright Copyright (C) 2000-2005 Free Software Foundation, Inc. http://www.fsf.org/
-	* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
-	* @package preferences
+	* @copyright Copyright (C) 2000-2008 Free Software Foundation, Inc. http://www.fsf.org/
+	* @license http://www.gnu.org/licenses/ GNU General Public License v2 or later
+	* @package phpgroupware
+	* @subpackage addressbook
 	* @version $Id$
 	*/
 
-	// Delete all records for a user
-	$GLOBALS['phpgw']->db->lock('phpgw_preferences');
-	$GLOBALS['phpgw']->db->query('DELETE FROM phpgw_preferences WHERE preference_owner=' . phpgw::get_var('account_id', 'int', 'POST', 0),__LINE__,__FILE__);
-	$GLOBALS['phpgw']->db->unlock();
+	/*
+	   This program is free software: you can redistribute it and/or modify
+	   it under the terms of the GNU General Public License as published by
+	   the Free Software Foundation, either version 2 of the License, or
+	   (at your option) any later version.
 
+	   This program is distributed in the hope that it will be useful,
+	   but WITHOUT ANY WARRANTY; without even the implied warranty of
+	   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+	   GNU General Public License for more details.
 
-?>
+	   You should have received a copy of the GNU General Public License
+	   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+	 */
+
+	// Delete all records for a user
+	$account_id = phpgw::get_var('account_id', 'int');
+	$sql = "DELETE FROM phpgw_preferences WHERE preference_owner = {$account_id}";
+	$GLOBALS['phpgw']->db->query($sql, __LINE__, __FILE__);

Modified: people/sigurdne/modules/preferences/trunk/index.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/index.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/index.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -31,7 +31,7 @@
 	$GLOBALS['phpgw']->template->set_block('pref', 'link_row');
 	$GLOBALS['phpgw']->template->set_block('pref', 'spacer_row');
 
-	if ( !$GLOBALS['phpgw']->acl->check('run', 1, 'admin') )
+	if ( !$GLOBALS['phpgw']->acl->check('run', 1, 'preferences') )
 	{
 		die(lang('You do not have access to preferences'));
 	}
@@ -155,9 +155,12 @@
 		}
 
 	$menus = execMethod('phpgwapi.menu.get');
-	foreach ( $menus['preferences'] as $app => $menu )
+	foreach ( $GLOBALS['phpgw_info']['user']['apps'] as $app => $app_info )
 	{
-		display_section($menus['navbar'][$app], $menu);
+		if (isset($menus['preferences'][$app]))
+		{
+			display_section($menus['navbar'][$app], $menus['preferences'][$app]);
+		}
 	}
 
 	$GLOBALS['phpgw']->template->pfp('out', 'list');

Modified: people/sigurdne/modules/preferences/trunk/preferences.php
===================================================================
--- people/sigurdne/modules/preferences/trunk/preferences.php	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/preferences.php	2009-11-20 10:28:38 UTC (rev 20846)
@@ -147,10 +147,7 @@
 		$default = '';
 		if (isset($prefs[$name]) || $GLOBALS['type'] != 'user')
 		{
-			if(isset($prefs[$name]))
-			{
-				$default = $prefs[$name];
-			}
+			$default = isset($prefs[$name]) && $prefs[$name] ? $prefs[$name] : ''; 
 		}
 		
 		if ($GLOBALS['type'] == 'user')
@@ -165,7 +162,7 @@
 			}
 			$def_text = ($def_text != '') ? lang('default') . " $def_text" : '';
 		}
-		$t->set_var('row_value',"<input name=\"${GLOBALS['type']}[$name]\" value=\"" . htmlentities($default) . "\"$options />$def_text");
+		$t->set_var('row_value',"<input name=\"${GLOBALS['type']}[$name]\" value=\"" . htmlentities($default, ENT_COMPAT, 'UTF-8') . "\"$options />$def_text");
 		$t->set_var('row_name',lang($label));
 		$GLOBALS['phpgw']->nextmatchs->template_alternate_row_class($t);
 
@@ -321,16 +318,9 @@
 		$vars = $GLOBALS['phpgw']->preferences->vars;
 		if (is_array($vars2))
 		{
-			$vars += $vars2;
+			$vars = array_merge($vars, $vars2);
 		}
-		if(isset($prefs[$name]))
-		{
 			$prefs[$name] = $GLOBALS['phpgw']->preferences->lang_notify($prefs[$name],$vars);
-		}
-		else
-		{
-			$prefs[$name] = '';
-		}
 
 		$notifys[$name] = $vars;	// this gets saved in the app_session for re-translation
 
@@ -381,7 +371,7 @@
 		{
 			$default = $prefs[$name];
 		}
-		$def_text = '';
+
 		if ($GLOBALS['type'] == 'user')
 		{
 			$def_text = !isset($GLOBALS['phpgw']->preferences->user[$_appname][$name]) || !$GLOBALS['phpgw']->preferences->user[$_appname][$name] ? (isset($GLOBALS['phpgw']->preferences->data[$_appname][$name])?$GLOBALS['phpgw']->preferences->data[$_appname][$name]:'') : (isset($GLOBALS['phpgw']->preferences->default[$_appname][$name])?$GLOBALS['phpgw']->preferences->default[$_appname][$name]:'');
@@ -561,11 +551,18 @@
 	$error = '';
 	if ( phpgw::get_var('submit', 'bool', 'POST') )
 	{
+//_debug_array($_POST);die();
 		if ( !isset($session_data['notifys']) )
 		{
 			$session_data['notifys'] = array();
 		}
 		
+		$account_id = phpgw::get_var('account_id', 'int', 'POST');
+		if(is_admin() && $account_id)
+		{
+			$GLOBALS['phpgw']->preferences->set_account_id($account_id, true);
+		}		
+
 		/* Don't use a switch here, we need to check some permissions durring the ifs */
 		if ($GLOBALS['type'] == 'user' || !($GLOBALS['type']))
 		{
@@ -582,6 +579,11 @@
 			$error = process_array($GLOBALS['phpgw']->preferences->forced, $forced,$session_data['notifys']);
 		}
 
+		if(is_admin() && $account_id)
+		{
+			$GLOBALS['phpgw']->preferences->set_account_id($GLOBALS['phpgw_info']['user']['account_id'], true);
+		}		
+
 		if (!is_admin() || $error)
 		{
 			$GLOBALS['phpgw']->redirect_link('/preferences/index.php');
@@ -605,15 +607,23 @@
 		&& $GLOBALS['type'] == 'user' 
 		&& $appname == 'preferences')
 	{
-		$GLOBALS['phpgw']->redirect_link('/preferences/preferences.php', array('appname' => $appname) );
+		$GLOBALS['phpgw']->redirect_link('/preferences/preferences.php', array('appname' => $appname, 'account_id' => $account_id) );
 	}
+	if(is_admin())
+	{
+		$account_id = phpgw::get_var('account_id', 'int');
+		if($account_id)
+		{
+			$GLOBALS['phpgw']->preferences->set_account_id($account_id, true);
+		}
+	}
 
 	$GLOBALS['phpgw_info']['flags']['app_header'] = $appname == 'preferences' ?
 		lang('Preferences') : lang('%1 - Preferences', lang($appname) );
 	$GLOBALS['phpgw']->common->phpgw_header(true);
 
 	$t->set_var('messages',$error);
-	$t->set_var('action_url',$GLOBALS['phpgw']->link('/preferences/preferences.php', array('appname'=> $appname)));
+	$t->set_var('action_url',$GLOBALS['phpgw']->link('/preferences/preferences.php', array('appname'=> $appname, 'type' => $GLOBALS['type'])));
 
 	switch ($GLOBALS['type'])	// set up some globals to be used by the hooks
 	{
@@ -675,11 +685,45 @@
 
 		switch($GLOBALS['type'])
 		{
-			case 'user':    $selected = 0; break;
-			case 'default': $selected = 1; break;
-			case 'forced':  $selected = 2; break;
+			case 'user':
+				$selected = 0;
+				$account_id = phpgw::get_var('account_id', 'int', 'REQUEST', 0);
+				$accounts_at_location = $GLOBALS['phpgw']->acl->get_user_list_right(1, 'run', $appname);
+
+				$account_list = "<form method='POST' action=''>";
+				$account_list .= '<table><tr><td><select name="account_id" onChange="this.form.submit();">';
+				$account_list .= "<option value=''>" . lang('select user') . '</option>';
+				foreach ( $accounts_at_location as $var => $entry )
+				{
+					$account_list .= "<option value='{$entry['account_id']}'";
+					if ($entry['account_id'] == $account_id)
+					{
+						$account_list .= ' selected';
+					}
+					$account_list .= "> {$entry['account_lastname']} {$entry['account_firstname']}</option>";
+				}
+				$account_list .= '</select>';
+				$account_list .= '<noscript><input type="submit" name="user" value="Select"></noscript>';
+				$account_list .= '</td></tr></table></form>';
+
+				$t->set_var('select_user', $account_list);
+
+				if($account_id)
+				{
+					$t->set_var('account_id', "<input type='hidden' name='account_id' value='{$account_id}'>");
+				}
+
+			    break;
+
+			case 'default':
+				$selected = 1;
+				break;
+			case 'forced':
+				$selected = 2;
+				break;
 		}
 		$t->set_var('tabs',$GLOBALS['phpgw']->common->create_tabs($tabs,$selected));
+
 	}
 	$t->set_var('lang_submit', lang('save'));
 	$t->set_var('lang_cancel', lang('cancel'));

Modified: people/sigurdne/modules/preferences/trunk/setup/phpgw_it.lang
===================================================================
--- people/sigurdne/modules/preferences/trunk/setup/phpgw_it.lang	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/setup/phpgw_it.lang	2009-11-20 10:28:38 UTC (rev 20846)
@@ -1,3 +1,4 @@
+		it	
 %1 - preferences	preferences	it	%1 - Preferenze
 12 hour	preferences	it	12 ore
 24 hour	preferences	it	24 ore
@@ -40,3 +41,4 @@
 you must enter a password	preferences	it	Devi inserire una password
 your current theme is: %1	preferences	it	il tuo tema è: %1
 your preferences	preferences	it	Tue Preferenze
+

Modified: people/sigurdne/modules/preferences/trunk/setup/phpgw_sk.lang
===================================================================
--- people/sigurdne/modules/preferences/trunk/setup/phpgw_sk.lang	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/setup/phpgw_sk.lang	2009-11-20 10:28:38 UTC (rev 20846)
@@ -1,67 +1,67 @@
 %1 - preferences	preferences	sk	%1 - Nastavenia
 %1 hours	preferences	sk	%1 hodiny
-12 hour	preferences	sk	12 hodinové
-24 hour	preferences	sk	24 hodinové
-a template defines the layout of phpgroupware and it contains icons for each application.	preferences	sk	©ablóna urèuje vzhµad preferen a obsahuje ikony pre ka¾dú aplikáciu.
-a theme defines the colors and fonts used by the template.	preferences	sk	Téma urèuje farby a fonty pou¾ité v ¹ablóne.
-acl grants have been updated	preferences	sk	ACL oprávnenia boli aktualizované
-any listing in phpgw will show you this number of entries or lines per page.<br>to many slow down the page display, to less will cost you the overview.	preferences	sk	Ktorýkoµvek zoznam v phpGW zobrazí takýto poèet polo¾iek alebo riadkov na stránku.<br>Príli¹ veµa spôsobí spomalenie zobrazovania stránky, príli¹ málo zase zväè¹í mno¾stvo Vá¹ho úsilia pri prezeraní.
-are you sure you want to delete this category ?	preferences	sk	Urèite chcete zmaza» túto kategóriu?
-change your password	preferences	sk	Zmena Vá¹ho hesla
-change your profile	preferences	sk	Zmena Vá¹ho profilu
-change your settings	preferences	sk	Zmena Va¹ich nastavení
+12 hour	preferences	sk	12 hodinov\xE9
+24 hour	preferences	sk	24 hodinov\xE9
+a template defines the layout of phpgroupware and it contains icons for each application.	preferences	sk	\xA9abl\xF3na ur\xE8uje vzh\xB5ad preferen a obsahuje ikony pre ka\xBEd\xFA aplik\xE1ciu.
+a theme defines the colors and fonts used by the template.	preferences	sk	T\xE9ma ur\xE8uje farby a fonty pou\xBEit\xE9 v \xB9abl\xF3ne.
+acl grants have been updated	preferences	sk	ACL opr\xE1vnenia boli aktualizovan\xE9
+any listing in phpgw will show you this number of entries or lines per page.<br>to many slow down the page display, to less will cost you the overview.	preferences	sk	Ktor\xFDko\xB5vek zoznam v phpGW zobraz\xED tak\xFDto po\xE8et polo\xBEiek alebo riadkov na str\xE1nku.<br>Pr\xEDli\xB9 ve\xB5a sp\xF4sob\xED spomalenie zobrazovania str\xE1nky, pr\xEDli\xB9 m\xE1lo zase zv\xE4\xE8\xB9\xED mno\xBEstvo V\xE1\xB9ho \xFAsilia pri prezeran\xED.
+are you sure you want to delete this category ?	preferences	sk	Ur\xE8ite chcete zmaza\xBB t\xFAto kateg\xF3riu?
+change your password	preferences	sk	Zmena V\xE1\xB9ho hesla
+change your profile	preferences	sk	Zmena V\xE1\xB9ho profilu
+change your settings	preferences	sk	Zmena Va\xB9ich nastaven\xED
 country	preferences	sk	Krajina
-date format	preferences	sk	Formát dátumu
-default	preferences	sk	predvolené
-default application	preferences	sk	Predvolená aplikácia
-default preferences	preferences	sk	Predvolené nastavenia
-delete categories	preferences	sk	Zmaza» kategórie
-description can not exceed 255 characters in length !	preferences	sk	Opis nemô¾e by» dlh¹í ne¾ 255 znakov!
-do you prefer a 24 hour time format, or a 12 hour one with am/pm attached.	preferences	sk	®eláte si 24-hodinový alebo 12-hodinový am/pm èasový formát?.
-edit custom fields	preferences	sk	upravi» pou¾ívateµské polo¾ky
-enter your new password	preferences	sk	Vlo¾te Va¹e nové heslo
-error: there was a problem finding the preference file for %1 in %2	preferences	sk	Chyba: nedalo sa nájs» súbor volieb pre %1 v %2
-forced preferences	preferences	sk	Vynútené nastavenia
+date format	preferences	sk	Form\xE1t d\xE1tumu
+default	preferences	sk	predvolen\xE9
+default application	preferences	sk	Predvolen\xE1 aplik\xE1cia
+default preferences	preferences	sk	Predvolen\xE9 nastavenia
+delete categories	preferences	sk	Zmaza\xBB kateg\xF3rie
+description can not exceed 255 characters in length !	preferences	sk	Opis nem\xF4\xBEe by\xBB dlh\xB9\xED ne\xBE 255 znakov!
+do you prefer a 24 hour time format, or a 12 hour one with am/pm attached.	preferences	sk	\xAEel\xE1te si 24-hodinov\xFD alebo 12-hodinov\xFD am/pm \xE8asov\xFD form\xE1t?.
+edit custom fields	preferences	sk	upravi\xBB pou\xBE\xEDvate\xB5sk\xE9 polo\xBEky
+enter your new password	preferences	sk	Vlo\xBEte Va\xB9e nov\xE9 heslo
+error: there was a problem finding the preference file for %1 in %2	preferences	sk	Chyba: nedalo sa n\xE1js\xBB s\xFAbor volieb pre %1 v %2
+forced preferences	preferences	sk	Vyn\xFAten\xE9 nastavenia
 help off	preferences	sk	Help off
 hours	preferences	sk	hodiny
-how do you like to display accounts	preferences	sk	Ako si ¾eláte zobrazova» úèty
-how do you like to select accounts	preferences	sk	Ako si ¾eláte vybera» úèty
-how many hours are you in front or after the timezone of the server.<br>if you are in the same time zone as the server select 0 hours, else select your locale date and time.	preferences	sk	Koµko hodín ste popredu alebo pozadu oproti èasovému pásmu servera.<br>Ak ste v rovnakom èasovom pásme ako server, zvoµte 0, ináè zadajte Vá¹ lokálny dátum a èas.
-how should phpgroupware display dates for you.	preferences	sk	Ako chcete ma» zobrazený dátum a èas v phpGroupWare.
+how do you like to display accounts	preferences	sk	Ako si \xBEel\xE1te zobrazova\xBB \xFA\xE8ty
+how do you like to select accounts	preferences	sk	Ako si \xBEel\xE1te vybera\xBB \xFA\xE8ty
+how many hours are you in front or after the timezone of the server.<br>if you are in the same time zone as the server select 0 hours, else select your locale date and time.	preferences	sk	Ko\xB5ko hod\xEDn ste popredu alebo pozadu oproti \xE8asov\xE9mu p\xE1smu servera.<br>Ak ste v rovnakom \xE8asovom p\xE1sme ako server, zvo\xB5te 0, in\xE1\xE8 zadajte V\xE1\xB9 lok\xE1lny d\xE1tum a \xE8as.
+how should phpgroupware display dates for you.	preferences	sk	Ako chcete ma\xBB zobrazen\xFD d\xE1tum a \xE8as v phpGroupWare.
 icons and text	preferences	sk	Ikony a text
 icons only	preferences	sk	Iba ikony
-in which country are you. this is used to set certain defaults for you.	preferences	sk	V ktorej krajine sa nachádzate. Informácia sa vyu¾íva v nastavení niektorých Va¹ich predvolieb.
-interface/template selection	preferences	sk	Výber rozhrania/¹ablóny
+in which country are you. this is used to set certain defaults for you.	preferences	sk	V ktorej krajine sa nach\xE1dzate. Inform\xE1cia sa vyu\xBE\xEDva v nastaven\xED niektor\xFDch Va\xB9ich predvolieb.
+interface/template selection	preferences	sk	V\xFDber rozhrania/\xB9abl\xF3ny
 language	preferences	sk	Jazyk
-max matches per page	preferences	sk	Najvy¹¹í poèet nájdených na stránku
-no default	preferences	sk	Nenastavené (No default)
-note: this feature does *not* change your email password. this will need to be done manually.	preferences	sk	Upozornenie: Táto funkcia *nezmení* Va¹e E-mailové heslo. To treba urobi» manuálne.
-please, select a new theme	preferences	sk	Nech sa páèi, vyberte si novú tému
-popup with search	preferences	sk	Otvori» okno pre vyhµadávanie
-re-enter your password	preferences	sk	Znovu zadajte Va¹e heslo
-select different theme	preferences	sk	Vyberte inú tému
+max matches per page	preferences	sk	Najvy\xB9\xB9\xED po\xE8et n\xE1jden\xFDch na str\xE1nku
+no default	preferences	sk	Nenastaven\xE9 (No default)
+note: this feature does *not* change your email password. this will need to be done manually.	preferences	sk	Upozornenie: T\xE1to funkcia *nezmen\xED* Va\xB9e E-mailov\xE9 heslo. To treba urobi\xBB manu\xE1lne.
+please, select a new theme	preferences	sk	Nech sa p\xE1\xE8i, vyberte si nov\xFA t\xE9mu
+popup with search	preferences	sk	Otvori\xBB okno pre vyh\xB5ad\xE1vanie
+re-enter your password	preferences	sk	Znovu zadajte Va\xB9e heslo
+select different theme	preferences	sk	Vyberte in\xFA t\xE9mu
 select one	preferences	sk	Vyberte si
-select the language of texts and messages within phpgroupware.<br>some languages may not contain all messages, in that case you will see an english message.	preferences	sk	Vyberte jazyk pre texty a správy v rámci phpGroupWare.<br>Niektoré jazyky nemusia obsahova» v¹etky správy, v tom prípade sa zobrazí správa v angliètine.
-selectbox	preferences	sk	Výberové pole
-set this to your convenience. for security reasons, you might not want to show your loginname in public.	preferences	sk	Nastavenie pre Va¹e pohodlie. Z bezpeènostných dôvodov by ste nemali ukazova» Va¹e prihlasovacie meno na verejnosti.
-should the number of active sessions be displayed for you all the time.	preferences	sk	Má sa po celý èas zobrazova» poèet aktívnych sedení.
-should this help messages shown up always, when you enter the preferences or only on request.	preferences	sk	Majú sa tieto pomocné texty zobrazova» v¾dy keï vstúpite do Nastavení, alebo len na po¾iadanie.
-show helpmessages by default	preferences	sk	V¾dy ukáza» pomocné texty
-show navigation bar as	preferences	sk	Zobrazi» navigaèný panel ako
-show number of current users	preferences	sk	Zobrazi» poèet aktuálnych pou¾ívateµov
-show text on navigation icons	preferences	sk	Zobrazi» text na navigaèných ikonách
+select the language of texts and messages within phpgroupware.<br>some languages may not contain all messages, in that case you will see an english message.	preferences	sk	Vyberte jazyk pre texty a spr\xE1vy v r\xE1mci phpGroupWare.<br>Niektor\xE9 jazyky nemusia obsahova\xBB v\xB9etky spr\xE1vy, v tom pr\xEDpade sa zobraz\xED spr\xE1va v angli\xE8tine.
+selectbox	preferences	sk	V\xFDberov\xE9 pole
+set this to your convenience. for security reasons, you might not want to show your loginname in public.	preferences	sk	Nastavenie pre Va\xB9e pohodlie. Z bezpe\xE8nostn\xFDch d\xF4vodov by ste nemali ukazova\xBB Va\xB9e prihlasovacie meno na verejnosti.
+should the number of active sessions be displayed for you all the time.	preferences	sk	M\xE1 sa po cel\xFD \xE8as zobrazova\xBB po\xE8et akt\xEDvnych seden\xED.
+should this help messages shown up always, when you enter the preferences or only on request.	preferences	sk	Maj\xFA sa tieto pomocn\xE9 texty zobrazova\xBB v\xBEdy ke\xEF vst\xFApite do Nastaven\xED, alebo len na po\xBEiadanie.
+show helpmessages by default	preferences	sk	V\xBEdy uk\xE1za\xBB pomocn\xE9 texty
+show navigation bar as	preferences	sk	Zobrazi\xBB naviga\xE8n\xFD panel ako
+show number of current users	preferences	sk	Zobrazi\xBB po\xE8et aktu\xE1lnych pou\xBE\xEDvate\xB5ov
+show text on navigation icons	preferences	sk	Zobrazi\xBB text na naviga\xE8n\xFDch ikon\xE1ch
 text only	preferences	sk	Iba text
-the default application will be started when you enter phpgroupware or click on the homepage icon.<br>you can also have more than one application showing up on the homepage, if you don't choose a specific application here (has to be configured in the preferences of each application).	preferences	sk	Predvolená aplikácia, ktorá sa má spusti» pri Va¹om prihlásení do phpGroupWare alebo keï kliknete na ikonu domovskej stránky.<br>Taktie¾ mô¾ete ma» na domovskej stránke viacero aplikácií, ak tu nevyberiete nejakú konkrétnu (musí sa nastavi» v nastaveniach tej ktorej aplikácie).
-the selectbox shows all available users (can be very slow on big installs with many users). the popup can search users by name or group.	preferences	sk	Toto výberové pole zobrazí v¹etkých dostupných pou¾ívateµov (doká¾e by» veµmi pomalé pri veµkých in¹taláciách s mno¾stvom pou¾ívateµov). V okne sa dajú pou¾ívatelia vyhµadáva» podµa mena alebo skupiny.
-the two passwords are not the same	preferences	sk	Heslá nie sú toto¾né
-theme (colors/fonts) selection	preferences	sk	Výber témy (ikony/fonty)
-this server is located in the %1 timezone	preferences	sk	Tento server sa nachádza v èasovom pásme %1 
-time format	preferences	sk	Èasový formát
-use default	preferences	sk	Pou¾i» predvolené
-users choice	preferences	sk	Pou¾ívateµova voµba
-which currency symbol or name should be used in phpgroupware.	preferences	sk	Ktorý symbol alebo názov meny sa má pou¾íva» v phpGroupWare.
-you can show the applications as icons only, icons with app-name or both.	preferences	sk	Aplikácie mô¾ete vidie» ako ikony, ikony s názvami alebo oboje.
-you do not have permission to set acl's in this mode!	preferences	sk	V tomto re¾ime nemáte právo nastavova» ACL's!
-you must enter a password	preferences	sk	Musíte zada» heslo
-your current theme is: %1	preferences	sk	Va¹a súèasná téma je: %1
-your preferences	preferences	sk	Va¹e nastavenia
+the default application will be started when you enter phpgroupware or click on the homepage icon.<br>you can also have more than one application showing up on the homepage, if you don't choose a specific application here (has to be configured in the preferences of each application).	preferences	sk	Predvolen\xE1 aplik\xE1cia, ktor\xE1 sa m\xE1 spusti\xBB pri Va\xB9om prihl\xE1sen\xED do phpGroupWare alebo ke\xEF kliknete na ikonu domovskej str\xE1nky.<br>Taktie\xBE m\xF4\xBEete ma\xBB na domovskej str\xE1nke viacero aplik\xE1ci\xED, ak tu nevyberiete nejak\xFA konkr\xE9tnu (mus\xED sa nastavi\xBB v nastaveniach tej ktorej aplik\xE1cie).
+the selectbox shows all available users (can be very slow on big installs with many users). the popup can search users by name or group.	preferences	sk	Toto v\xFDberov\xE9 pole zobraz\xED v\xB9etk\xFDch dostupn\xFDch pou\xBE\xEDvate\xB5ov (dok\xE1\xBEe by\xBB ve\xB5mi pomal\xE9 pri ve\xB5k\xFDch in\xB9tal\xE1ci\xE1ch s mno\xBEstvom pou\xBE\xEDvate\xB5ov). V okne sa daj\xFA pou\xBE\xEDvatelia vyh\xB5ad\xE1va\xBB pod\xB5a mena alebo skupiny.
+the two passwords are not the same	preferences	sk	Hesl\xE1 nie s\xFA toto\xBEn\xE9
+theme (colors/fonts) selection	preferences	sk	V\xFDber t\xE9my (ikony/fonty)
+this server is located in the %1 timezone	preferences	sk	Tento server sa nach\xE1dza v \xE8asovom p\xE1sme %1 
+time format	preferences	sk	\xC8asov\xFD form\xE1t
+use default	preferences	sk	Pou\xBEi\xBB predvolen\xE9
+users choice	preferences	sk	Pou\xBE\xEDvate\xB5ova vo\xB5ba
+which currency symbol or name should be used in phpgroupware.	preferences	sk	Ktor\xFD symbol alebo n\xE1zov meny sa m\xE1 pou\xBE\xEDva\xBB v phpGroupWare.
+you can show the applications as icons only, icons with app-name or both.	preferences	sk	Aplik\xE1cie m\xF4\xBEete vidie\xBB ako ikony, ikony s n\xE1zvami alebo oboje.
+you do not have permission to set acl's in this mode!	preferences	sk	V tomto re\xBEime nem\xE1te pr\xE1vo nastavova\xBB ACL's!
+you must enter a password	preferences	sk	Mus\xEDte zada\xBB heslo
+your current theme is: %1	preferences	sk	Va\xB9a s\xFA\xE8asn\xE1 t\xE9ma je: %1
+your preferences	preferences	sk	Va\xB9e nastavenia

Modified: people/sigurdne/modules/preferences/trunk/setup/phpgw_sv.lang
===================================================================
--- people/sigurdne/modules/preferences/trunk/setup/phpgw_sv.lang	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/setup/phpgw_sv.lang	2009-11-20 10:28:38 UTC (rev 20846)
@@ -1,80 +1,80 @@
-%1 - preferences	preferences	sv	%1 - Inställningar
+%1 - preferences	preferences	sv	%1 - Inst\xE4llningar
 %1 hours	preferences	sv	%1 timmar
 12 hour	preferences	sv	12-timmars
 24 hour	preferences	sv	24-timmars
-a template defines the layout of phpgroupware and it contains icons for each application.	preferences	sv	En mall definierar utseendet på phpGroupWare och innehåller ikonder för varje modul.
-a theme defines the colors and fonts used by the template.	preferences	sv	Ett tema definierar de färger och fonter som används av mallen.
-acl grants have been updated	preferences	sv	ACL-rättigheter har uppdaterats
-any listing in phpgw will show you this number of entries or lines per page.<br>to many slow down the page display, to less will cost you the overview.	preferences	sv	Alla listningar i phpGW visar dig detta antal linjer med inmatningar eller linjer per sida.<br>För många saktar ner sidvisningen, för få minskar överskådligheten.
-are you sure you want to delete this category ?	preferences	sv	Är du säker på att du vill radera denna kategori ?
-change your password	preferences	sv	Ändra ditt lösenord
-change your profile	preferences	sv	Ändra din profil
-change your settings	preferences	sv	Ändra dina inställningar
+a template defines the layout of phpgroupware and it contains icons for each application.	preferences	sv	En mall definierar utseendet p\xE5 phpGroupWare och inneh\xE5ller ikonder f\xF6r varje modul.
+a theme defines the colors and fonts used by the template.	preferences	sv	Ett tema definierar de f\xE4rger och fonter som anv\xE4nds av mallen.
+acl grants have been updated	preferences	sv	ACL-r\xE4ttigheter har uppdaterats
+any listing in phpgw will show you this number of entries or lines per page.<br>to many slow down the page display, to less will cost you the overview.	preferences	sv	Alla listningar i phpGW visar dig detta antal linjer med inmatningar eller linjer per sida.<br>F\xF6r m\xE5nga saktar ner sidvisningen, f\xF6r f\xE5 minskar \xF6versk\xE5dligheten.
+are you sure you want to delete this category ?	preferences	sv	\xC4r du s\xE4ker p\xE5 att du vill radera denna kategori ?
+change your password	preferences	sv	\xC4ndra ditt l\xF6senord
+change your profile	preferences	sv	\xC4ndra din profil
+change your settings	preferences	sv	\xC4ndra dina inst\xE4llningar
 country	preferences	sv	Land
 date format	preferences	sv	Datum format
-default	preferences	sv	förvald
-default application	preferences	sv	Förvald modul
-default preferences	preferences	sv	Förvalda intsällningar
+default	preferences	sv	f\xF6rvald
+default application	preferences	sv	F\xF6rvald modul
+default preferences	preferences	sv	F\xF6rvalda ints\xE4llningar
 default sorting order	preferences	sv	Standard sorterings ordning
 delete categories	preferences	sv	Radera kategori
-description can not exceed 255 characters in length !	preferences	sv	Beskrivningen kan inte överstiga 255 tecken !
-do you prefer a 24 hour time format, or a 12 hour one with am/pm attached.	preferences	sv	Föredrar du 24-timmars format eller 12-timmars med am/pm.
-edit custom fields	preferences	sv	ändra eget fält
+description can not exceed 255 characters in length !	preferences	sv	Beskrivningen kan inte \xF6verstiga 255 tecken !
+do you prefer a 24 hour time format, or a 12 hour one with am/pm attached.	preferences	sv	F\xF6redrar du 24-timmars format eller 12-timmars med am/pm.
+edit custom fields	preferences	sv	\xE4ndra eget f\xE4lt
 email signature	preferences	sv	E-Post signatur
-enter your new password	preferences	sv	Skriv in ditt nya lösenord
-error: there was a problem finding the preference file for %1 in %2	preferences	sv	Fel: Problem med att hitta inställningsfil för %1 i %2
-forced preferences	preferences	sv	Tvingade inställningar
-help off	preferences	sv	Hjälp av
+enter your new password	preferences	sv	Skriv in ditt nya l\xF6senord
+error: there was a problem finding the preference file for %1 in %2	preferences	sv	Fel: Problem med att hitta inst\xE4llningsfil f\xF6r %1 i %2
+forced preferences	preferences	sv	Tvingade inst\xE4llningar
+help off	preferences	sv	Hj\xE4lp av
 hours	preferences	sv	timmar
 how do you like to display accounts	preferences	sv	Hur vill du att konton ska visas
-how do you like to select accounts	preferences	sv	Hur vill du välja konton
-how many hours are you in front or after the timezone of the server.<br>if you are in the same time zone as the server select 0 hours, else select your locale date and time.	preferences	sv	Hur många timmar är du före eller efter tidszonen på servern.<br>Om du är i samma tidszon som servern, välj 0 timmar annars välj din lokala tid.
+how do you like to select accounts	preferences	sv	Hur vill du v\xE4lja konton
+how many hours are you in front or after the timezone of the server.<br>if you are in the same time zone as the server select 0 hours, else select your locale date and time.	preferences	sv	Hur m\xE5nga timmar \xE4r du f\xF6re eller efter tidszonen p\xE5 servern.<br>Om du \xE4r i samma tidszon som servern, v\xE4lj 0 timmar annars v\xE4lj din lokala tid.
 how should phpgroupware display dates for you.	preferences	sv	Hur ska phpGroupWare visa datum?
 icons and text	preferences	sv	Ikoner och text
 icons only	preferences	sv	endast ikoner
-in which country are you. this is used to set certain defaults for you.	preferences	sv	I vilket land är du. Detta används för att ställa in vissa inställningar för dig.
-interface/template selection	preferences	sv	Gränssnitt/Mall val
-language	preferences	sv	Språk
+in which country are you. this is used to set certain defaults for you.	preferences	sv	I vilket land \xE4r du. Detta anv\xE4nds f\xF6r att st\xE4lla in vissa inst\xE4llningar f\xF6r dig.
+interface/template selection	preferences	sv	Gr\xE4nssnitt/Mall val
+language	preferences	sv	Spr\xE5k
 max matches per page	preferences	sv	Max resultat per sida
-max matchs per page	preferences	sv	Max träffar per sida
-no default	preferences	sv	Inget förvalt
-note: this feature does *not* change your email password. this will need to be done manually.	preferences	sv	Notera: Denna funktion ändrar *inte* ditt epost lösenord. Detta måste göras manuellt.
-please, select a new theme	preferences	sv	Välj ett nytt tema
-popup with search	preferences	sv	Popup med sökning
-re-enter your password	preferences	sv	Skriv in ditt lösenord igen
-select columns to display	preferences	sv	Välj vilka kolumner som skall visas
-select different theme	preferences	sv	Välj annat tema
-select one	preferences	sv	Välj en
-select the language of texts and messages within phpgroupware.<br>some languages may not contain all messages, in that case you will see an english message.	preferences	sv	Välj det språk i phpGroupWare.<br>Några språk kan vara ofullständigt översatta i så fall visas den engelska versionen.
+max matchs per page	preferences	sv	Max tr\xE4ffar per sida
+no default	preferences	sv	Inget f\xF6rvalt
+note: this feature does *not* change your email password. this will need to be done manually.	preferences	sv	Notera: Denna funktion \xE4ndrar *inte* ditt epost l\xF6senord. Detta m\xE5ste g\xF6ras manuellt.
+please, select a new theme	preferences	sv	V\xE4lj ett nytt tema
+popup with search	preferences	sv	Popup med s\xF6kning
+re-enter your password	preferences	sv	Skriv in ditt l\xF6senord igen
+select columns to display	preferences	sv	V\xE4lj vilka kolumner som skall visas
+select different theme	preferences	sv	V\xE4lj annat tema
+select one	preferences	sv	V\xE4lj en
+select the language of texts and messages within phpgroupware.<br>some languages may not contain all messages, in that case you will see an english message.	preferences	sv	V\xE4lj det spr\xE5k i phpGroupWare.<br>N\xE5gra spr\xE5k kan vara ofullst\xE4ndigt \xF6versatta i s\xE5 fall visas den engelska versionen.
 selectbox	preferences	sv	Valruta
-set this to your convenience. for security reasons, you might not want to show your loginname in public.	preferences	sv	Ställ in för din egen bekvämlighet. För säkerhets skull bör du kanske inte visa ditt inloggningsnamn utåt.
-should the number of active sessions be displayed for you all the time.	preferences	sv	Ska antalet aktiva sessioner visas för dig hela tiden.
-should this help messages shown up always, when you enter the preferences or only on request.	preferences	sv	Ska detta hjälpmeddelande alltid visas, när du går in i inställningar eller bara när du begär det.
-show birthday reminders on main screen	preferences	sv	Visa födelsedags påminnelse på huvudskärmen
-show current users on navigation bar	preferences	sv	Visa nuvarande användare i navigation bar
-show helpmessages by default	preferences	sv	Visa hjälpmeddelande som standard
-show high priority events on main screen	preferences	sv	Visa högprioritets händelse på huvudskärmen
+set this to your convenience. for security reasons, you might not want to show your loginname in public.	preferences	sv	St\xE4ll in f\xF6r din egen bekv\xE4mlighet. F\xF6r s\xE4kerhets skull b\xF6r du kanske inte visa ditt inloggningsnamn ut\xE5t.
+should the number of active sessions be displayed for you all the time.	preferences	sv	Ska antalet aktiva sessioner visas f\xF6r dig hela tiden.
+should this help messages shown up always, when you enter the preferences or only on request.	preferences	sv	Ska detta hj\xE4lpmeddelande alltid visas, n\xE4r du g\xE5r in i inst\xE4llningar eller bara n\xE4r du beg\xE4r det.
+show birthday reminders on main screen	preferences	sv	Visa f\xF6delsedags p\xE5minnelse p\xE5 huvudsk\xE4rmen
+show current users on navigation bar	preferences	sv	Visa nuvarande anv\xE4ndare i navigation bar
+show helpmessages by default	preferences	sv	Visa hj\xE4lpmeddelande som standard
+show high priority events on main screen	preferences	sv	Visa h\xF6gprioritets h\xE4ndelse p\xE5 huvudsk\xE4rmen
 show navigation bar as	preferences	sv	Visa navigationsrad som
-show new messages on main screen	preferences	sv	Visa nya meddelande på huvudskärmen
-show number of current users	preferences	sv	Visa antal inloggade användare
-show text on navigation icons	preferences	sv	Visa text på navigations ikoner
+show new messages on main screen	preferences	sv	Visa nya meddelande p\xE5 huvudsk\xE4rmen
+show number of current users	preferences	sv	Visa antal inloggade anv\xE4ndare
+show text on navigation icons	preferences	sv	Visa text p\xE5 navigations ikoner
 text only	preferences	sv	Endast text
-the default application will be started when you enter phpgroupware or click on the homepage icon.<br>you can also have more than one application showing up on the homepage, if you don't choose a specific application here (has to be configured in the preferences of each application).	preferences	sv	Den förvalda modulen startar när du loggar in i phpGroupWare eller klickar på hem-ikonen.<br>Du kan också ha mer än en modul som visas på startsidan, om du inte väljer någon modul här(måste det vara konfigurerat i inställningarna för varje modul).
-the selectbox shows all available users (can be very slow on big installs with many users). the popup can search users by name or group.	preferences	sv	Valrutan visar alla tillgängliga användare(kan vara långsamt på stora installationer med många användare). Popup-rutan kan söka efter användare med namn eller grupp.
-the two passwords are not the same	preferences	sv	Lösenorden är inte lika
-theme (colors/fonts) selection	preferences	sv	Tema (färger/fonter) val
-this server is located in the %1 timezone	preferences	sv	Denna server är placerad i %1 tidszon
+the default application will be started when you enter phpgroupware or click on the homepage icon.<br>you can also have more than one application showing up on the homepage, if you don't choose a specific application here (has to be configured in the preferences of each application).	preferences	sv	Den f\xF6rvalda modulen startar n\xE4r du loggar in i phpGroupWare eller klickar p\xE5 hem-ikonen.<br>Du kan ocks\xE5 ha mer \xE4n en modul som visas p\xE5 startsidan, om du inte v\xE4ljer n\xE5gon modul h\xE4r(m\xE5ste det vara konfigurerat i inst\xE4llningarna f\xF6r varje modul).
+the selectbox shows all available users (can be very slow on big installs with many users). the popup can search users by name or group.	preferences	sv	Valrutan visar alla tillg\xE4ngliga anv\xE4ndare(kan vara l\xE5ngsamt p\xE5 stora installationer med m\xE5nga anv\xE4ndare). Popup-rutan kan s\xF6ka efter anv\xE4ndare med namn eller grupp.
+the two passwords are not the same	preferences	sv	L\xF6senorden \xE4r inte lika
+theme (colors/fonts) selection	preferences	sv	Tema (f\xE4rger/fonter) val
+this server is located in the %1 timezone	preferences	sv	Denna server \xE4r placerad i %1 tidszon
 time format	preferences	sv	Tidsformat
 time zone offset	preferences	sv	Tids-Zone offset
-use default	preferences	sv	Använd förvalt
-users choice	preferences	sv	Användarens val
-weekday starts on	preferences	sv	Vecka börjar på
-which currency symbol or name should be used in phpgroupware.	preferences	sv	Vilken valutasymbol eller namn ska användas i phpGroupWare.
+use default	preferences	sv	Anv\xE4nd f\xF6rvalt
+users choice	preferences	sv	Anv\xE4ndarens val
+weekday starts on	preferences	sv	Vecka b\xF6rjar p\xE5
+which currency symbol or name should be used in phpgroupware.	preferences	sv	Vilken valutasymbol eller namn ska anv\xE4ndas i phpGroupWare.
 work day ends on	preferences	sv	Arbetsdag slutar kl:
-work day starts on	preferences	sv	Arbetsdag börjar kl:
-you can show the applications as icons only, icons with app-name or both.	preferences	sv	Du kan visa modulerna som ikoner endast, ikonder med modulnamnet eller båda.
-you do not have permission to set acl's in this mode!	preferences	sv	Du har inte behörighet att ändra ACL i denna modul
-you must enter a password	preferences	sv	Du måste ange ett lösenord
-your current theme is: %1	preferences	sv	Ditt nuvarande tema är: %1
-your preferences	preferences	sv	Dina inställningar
+work day starts on	preferences	sv	Arbetsdag b\xF6rjar kl:
+you can show the applications as icons only, icons with app-name or both.	preferences	sv	Du kan visa modulerna som ikoner endast, ikonder med modulnamnet eller b\xE5da.
+you do not have permission to set acl's in this mode!	preferences	sv	Du har inte beh\xF6righet att \xE4ndra ACL i denna modul
+you must enter a password	preferences	sv	Du m\xE5ste ange ett l\xF6senord
+your current theme is: %1	preferences	sv	Ditt nuvarande tema \xE4r: %1
+your preferences	preferences	sv	Dina inst\xE4llningar
 

Modified: people/sigurdne/modules/preferences/trunk/templates/base/admin_acl.xsl
===================================================================
--- people/sigurdne/modules/preferences/trunk/templates/base/admin_acl.xsl	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/templates/base/admin_acl.xsl	2009-11-20 10:28:38 UTC (rev 20846)
@@ -53,6 +53,13 @@
 		<table width="100%" cellpadding="2" cellspacing="2" align="center">
 		<xsl:variable name="form_action"><xsl:value-of select="form_action"/></xsl:variable>
 		<form method="post" action="{$form_action}">
+			<tr height="30">
+				<td valign="top" align="left">
+					<xsl:value-of select="lang_enable_inheritance"/>
+					<xsl:text>: </xsl:text>
+					<input type="checkbox" name="enable_inheritance" value="true" title="{lang_enable_inheritance_statustext}"></input>
+				</td>
+			</tr>
 			<tr class="th">
 				<xsl:choose>
 					<xsl:when test="values_groups!=''">
@@ -86,11 +93,9 @@
 					<input type="hidden" name="location" value="{$location}" />
 					<input type="hidden" name="processed" value="{$processed}" />
 
-					<input type="submit" name="set_permission" value="{$lang_save}" onMouseout="window.status='';return true;">
-						<xsl:attribute name="onMouseover">
-							<xsl:text>window.status='</xsl:text>
+					<input type="submit" name="set_permission" value="{$lang_save}">
+						<xsl:attribute name="title">
 								<xsl:value-of select="lang_save_statustext"/>
-							<xsl:text>'; return true;</xsl:text>
 						</xsl:attribute>
 					</input>
 
@@ -102,11 +107,9 @@
 					<xsl:variable name="done_action"><xsl:value-of select="done_action"/></xsl:variable>
 					<xsl:variable name="lang_done"><xsl:value-of select="lang_done"/></xsl:variable>
 					<form method="post" action="{$done_action}">
-						<input type="submit" name="done" value="{$lang_done}" onMouseout="window.status='';return true;">
-							<xsl:attribute name="onMouseover">
-								<xsl:text>window.status='</xsl:text>
+						<input type="submit" name="done" value="{$lang_done}">
+							<xsl:attribute name="title">
 									<xsl:value-of select="lang_done_statustext"/>
-								<xsl:text>'; return true;</xsl:text>
 							</xsl:attribute>
 						</input>
 					</form>
@@ -696,11 +699,9 @@
 			<tr height="50">
 				<td>
 					<xsl:variable name="lang_save"><xsl:value-of select="lang_save"/></xsl:variable>
-					<input type="submit" name="values[save]" value="{$lang_save}" onMouseout="window.status='';return true;">
-						<xsl:attribute name="onMouseover">
-							<xsl:text>window.status='</xsl:text>
+					<input type="submit" name="values[save]" value="{$lang_save}">
+						<xsl:attribute name="title">
 								<xsl:value-of select="lang_save_statustext"/>
-							<xsl:text>'; return true;</xsl:text>
 						</xsl:attribute>
 					</input>
 				</td>
@@ -711,11 +712,9 @@
 					<xsl:variable name="done_action"><xsl:value-of select="done_action"/></xsl:variable>
 					<xsl:variable name="lang_done"><xsl:value-of select="lang_done"/></xsl:variable>
 					<form method="post" action="{$done_action}">
-						<input type="submit" name="done" value="{$lang_done}" onMouseout="window.status='';return true;">
-							<xsl:attribute name="onMouseover">
-								<xsl:text>window.status='</xsl:text>
+						<input type="submit" name="done" value="{$lang_done}">
+							<xsl:attribute name="title">
 									<xsl:value-of select="lang_done_statustext"/>
-								<xsl:text>'; return true;</xsl:text>
 							</xsl:attribute>
 						</input>
 					</form>
@@ -754,11 +753,9 @@
 				<td>
 					<input type="hidden" name="filter" value="{value_user_id}" />
 					<input type="hidden" name="values[old_email]" value="{value_old_email}" />
-					<input type="text" size = "30" name="values[email]" value="{value_email}" onMouseout="window.status='';return true;">
-						<xsl:attribute name="onMouseover">
-							<xsl:text>window.status='</xsl:text>
+					<input type="text" size = "30" name="values[email]" value="{value_email}">
+						<xsl:attribute name="title">
 								<xsl:value-of select="lang_email_statustext"/>
-							<xsl:text>'; return true;</xsl:text>
 						</xsl:attribute>
 					</input>
 				</td>
@@ -769,11 +766,9 @@
 				</td>
 				<td>
 					<input type="hidden" name="values[old_phone]" value="{value_old_phone}" />
-					<input type="text" size = "30" name="values[phone]" value="{value_phone}" onMouseout="window.status='';return true;">
-						<xsl:attribute name="onMouseover">
-							<xsl:text>window.status='</xsl:text>
+					<input type="text" size = "30" name="values[phone]" value="{value_phone}">
+						<xsl:attribute name="title">
 								<xsl:value-of select="lang_phone_statustext"/>
-							<xsl:text>'; return true;</xsl:text>
 						</xsl:attribute>
 					</input>
 				</td>
@@ -785,7 +780,7 @@
 				<td align="left">
 					<input type="hidden" name="values[old_approval_from]" value="{value_old_approval_from}" />
 					<xsl:variable name="lang_approval_from_statustext"><xsl:value-of select="lang_approval_from_statustext"/></xsl:variable>
-					<select name="values[approval_from]" class="forms" onMouseover="window.status='{$lang_approval_from_statustext}'; return true;" onMouseout="window.status='';return true;">
+					<select name="values[approval_from]" class="forms" title="{$lang_approval_from_statustext}">
 						<option value=""><xsl:value-of select="lang_no_user"/></option>
 						<xsl:apply-templates select="approval_from"/>
 					</select>
@@ -798,7 +793,7 @@
 				<td align="left">
 					<input type="hidden" name="values[old_default_vendor_category]" value="{value_old_default_vendor_category}" />
 					<xsl:variable name="lang_default_vendor_category_statustext"><xsl:value-of select="lang_default_vendor_category_statustext"/></xsl:variable>
-					<select name="values[default_vendor_category]" class="forms" onMouseover="window.status='{$lang_default_vendor_category_statustext}'; return true;" onMouseout="window.status='';return true;">
+					<select name="values[default_vendor_category]" class="forms" title="{$lang_default_vendor_category_statustext}">
 						<option value=""><xsl:value-of select="lang_no_cat"/></option>
 						<xsl:apply-templates select="vendor_category"/>
 					</select>
@@ -807,11 +802,9 @@
 			<tr height="50">
 				<td>
 					<xsl:variable name="lang_save"><xsl:value-of select="lang_save"/></xsl:variable>
-					<input type="submit"  name="values[save]" value="{$lang_save}" onMouseout="window.status='';return true;">
-						<xsl:attribute name="onMouseover">
-							<xsl:text>window.status='</xsl:text>
+					<input type="submit"  name="values[save]" value="{$lang_save}">
+						<xsl:attribute name="title">
 								<xsl:value-of select="lang_save_statustext"/>
-							<xsl:text>'; return true;</xsl:text>
 						</xsl:attribute>
 					</input>
 				</td>
@@ -823,11 +816,9 @@
 					<xsl:variable name="done_action"><xsl:value-of select="done_action"/></xsl:variable>
 					<xsl:variable name="lang_done"><xsl:value-of select="lang_done"/></xsl:variable>
 					<form method="post" action="{$done_action}">
-						<input type="submit" name="done" value="{$lang_done}" onMouseout="window.status='';return true;">
-							<xsl:attribute name="onMouseover">
-								<xsl:text>window.status='</xsl:text>
+						<input type="submit" name="done" value="{$lang_done}">
+							<xsl:attribute name="title">
 									<xsl:value-of select="lang_done_statustext"/>
-								<xsl:text>'; return true;</xsl:text>
 							</xsl:attribute>
 						</input>
 					</form>

Modified: people/sigurdne/modules/preferences/trunk/templates/base/preferences.tpl
===================================================================
--- people/sigurdne/modules/preferences/trunk/templates/base/preferences.tpl	2009-11-20 10:28:10 UTC (rev 20845)
+++ people/sigurdne/modules/preferences/trunk/templates/base/preferences.tpl	2009-11-20 10:28:38 UTC (rev 20846)
@@ -2,9 +2,9 @@
 
 <!-- BEGIN form -->
 {tabs}
-
+{select_user}
 <form method="POST" action="{action_url}">
-
+{account_id}
 	<!-- BEGIN list -->
 	<table id="prefs_list">
 		<thead>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.