From e152ff82779651cdad13cdc30c3e48e2e62daa57 Mon Sep 17 00:00:00 2001 From: hickert Date: Mon, 1 Mar 2010 14:08:32 +0000 Subject: [PATCH] Readded edit buttons git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@15800 594d385d-05f5-0310-b6e9-bd551577e9d8 --- gosa-core/plugins/personal/myaccount/main.inc | 117 +++++++++++++++--- 1 file changed, 99 insertions(+), 18 deletions(-) diff --git a/gosa-core/plugins/personal/myaccount/main.inc b/gosa-core/plugins/personal/myaccount/main.inc index a9a151012..f8169995e 100644 --- a/gosa-core/plugins/personal/myaccount/main.inc +++ b/gosa-core/plugins/personal/myaccount/main.inc @@ -3,7 +3,7 @@ * This code is part of GOsa (http://www.gosa-project.org) * Copyright (C) 2003-2008 GONICUS GmbH * - * ID: $$Id: main.inc 14740 2009-11-04 09:41:16Z hickert $$ + * ID: $$Id: main.inc 15315 2010-01-26 13:00:52Z hickert $$ * * 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 @@ -20,36 +20,117 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + /* Remove locks created by this plugin */ -if ($remove_lock){ - if(session::is_set('MyAccountTabs')){ - $macl = session::get('MyAccountTabs'); - $macl->remove_lock(); +$lock_msg=""; +if ($remove_lock || isset($_POST['edit_cancel'])){ + if(session::is_set('MyAccountTabs') && session::is_set('edit')){ + del_lock($ui->dn); } } +/* Reset requested? */ +if (isset($_POST['edit_cancel']) || $cleanup){ + session::un_set ('edit'); + session::un_set ('MyAccountTabs'); +} + /* Remove this plugin from session -*/ -if ( $cleanup ){ - session::un_set('MyAccountTabs'); -}else{ + */ +if (! $cleanup ){ - /* Create groupmanagement object on demand */ - if (!session::is_set('MyAccountTabs')){ - $MyAccountTabs= new MyAccountTabs($config,$config->data['TABS']['MYACCOUNTTABS'], $ui->dn, "users", true, true); + /* Create MyAccountTabs object on demand */ + if (!session::is_set('MyAccountTabs') || (isset($_GET['reset']) && $_GET['reset'] == 1)){ + $MyAccountTabs= new MyAccountTabs($config,$config->data['TABS']['MYACCOUNTTABS'], $ui->dn, "users", true, true); + $MyAccountTabs->setReadOnly(TRUE); session::set('MyAccountTabs',$MyAccountTabs); } $MyAccountTabs = session::get('MyAccountTabs'); - $display= $MyAccountTabs->execute(); + + /* Enter edit mode? */ + if ((isset($_POST['edit'])) && (!session::is_set('edit'))){ + $MyAccountTabs->setReadOnly(FALSE); + + /* Check locking */ + if (($username= get_lock($ui->dn)) != ""){ + session::set('back_plugin',$plug); + session::set('LOCK_VARS_TO_USE',array("/^edit$/","/^plug$/")); + $lock_msg = gen_locked_message ($username, $ui->dn); + + }else{ - /* Reset requested? */ - if (isset($_GET['reset']) && $_GET['reset'] == 1){ - session::un_set ('MyAccountTabs'); + /* Lock the current entry */ + add_lock ($ui->dn, $ui->dn); + session::set('edit',TRUE); + } } - /* Show and save dialog */ - session::set('MyAccountTabs',$MyAccountTabs); + /* save changes to LDAP and disable edit mode */ + $info= ""; + if (isset($_POST['edit_finish'])){ + + /* Perform checks */ + $message= $MyAccountTabs->check (); + + /* No errors, save object */ + if (count ($message) == 0){ + $MyAccountTabs->save (); + del_lock ($ui->dn); + session::un_set ('edit'); + + /* Remove from session */ + session::un_set ('MyAccountTabs'); + } else { + /* Errors found, show message */ + msg_dialog::displayChecks($message); + } + } + + /* Execute formular */ + if($lock_msg){ + $display = $lock_msg; + }else{ + $display.= $MyAccountTabs->execute (); + } + + /* Store changes in session */ + if (session::is_set('edit')){ + session::set('MyAccountTabs',$MyAccountTabs); + } + + /* Show page footer depending on the mode */ + if (!$MyAccountTabs->is_modal_dialog() && empty($lock_msg)){ + + $display.= "
"; + + /* Are we in edit mode? */ + if (session::is_set('edit')){ + $display.= "\n"; + $display.= " "; + $display.= "\n"; + $info= " ".$ui->dn." "; + } else { + $info= " ".$ui->dn." "; + + /* Only display edit button if there is at least one attribute editable */ + if(preg_match("/r/",$ui->get_permissions($ui->dn,"users/MyAccountTabs"))){ + $info.= " ". + msgPool::clickEditToChange(); + + $display.= "\n"; + } + $display.= "\n"; + } + $display.= "
\n"; + } + + /* Page header*/ + $display= print_header(get_template_path('plugins/posix/images/plugin.png'), + _("POSIX settings"), $info).$display; + } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: -- 2.30.2