* * -------------------------------------------- * * 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. * \**************************************************************************/ /* $Id$ */ require_once(EGW_INCLUDE_ROOT.'/addressbook/inc/class.bocontacts.inc.php'); /** * General user interface object of the adressbook * * @package adressbook * @author Cornelius Weiss * @copyright (c) 2005 by Cornelius Weiss * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License */ class uicontacts extends bocontacts { var $public_functions = array( 'search' => True, 'edit' => True, ); function uicontacts($contact_app='addressbook') { $this->bocontacts($contact_app); foreach(array( 'tmpl' => 'etemplate.etemplate', ) as $my => $app_class) { list(,$class) = explode('.',$app_class); if (!is_object($GLOBALS['egw']->$class)) { $GLOBALS['egw']->$class =& CreateObject($app_class); } $this->$my = &$GLOBALS['egw']->$class; } // our javascript // to be moved in a seperate file if rewrite is over $GLOBALS['egw_info']['flags']['java_script'] .= $this->js(); } function edit($content='') { if (is_array($content)) { if (isset($content['button']['save'])) { $this->save($content); echo "\n"; $GLOBALS['egw']->common->egw_exit(); } elseif (isset($content['button']['apply'])) { $content = $this->save($content); $GLOBALS['egw_info']['flags']['java_script'] .= ""; } elseif (isset($content['button']['delete'])) { if(!$this->delete($content)); { echo "\n"; $GLOBALS['egw']->common->egw_exit(); } } } else { $content = array(); $content_id = $_GET['contact_id'] ? $_GET['contact_id'] : 0; if ($content_id != 0) { $content = $this->read($content_id); } } //_debug_array($content); $no_button['button[delete]'] = !$this->check_perms(EGW_ACL_DELETE,$content); $no_button['button[copy]'] = true; $no_button['button[edit]'] = !$view; $preserv = array( 'id' => $content['id'], 'lid' => $content['lid'], 'tid' => $content['tid'], 'owner' => $content['owner'], 'fn' => $content['fn'], 'geo' => $content['geo'], ); for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i; $sel_options['tz'] = $tz; $content['tz'] = $content['tz'] ? $content['tz'] : 0; $this->tmpl->read('addressbook.edit'); return $this->tmpl->exec('addressbook.uicontacts.edit',$content,$sel_options,$no_button,$preserv,2); } function search($content='') { $GLOBALS['egw_info']['flags']['app_header'] = lang('Addressbook'). ' - '. lang('Advanced search'); if(!($GLOBALS['egw_info']['server']['contact_repository'] == 'sql' || !isset($GLOBALS['egw_info']['server']['contact_repository']))) { $GLOBALS['egw']->common->phpgw_header(); echo parse_navbar(); echo '

Advanced Search is not supported for ldap storage yet. Sorry!

'; $GLOBALS['egw']->common->egw_exit(); } // This is no fun yet, as we dont have a sortorder in prefs now, AND as we are not able to sort within cf. // $prefs = $GLOBALS['egw']->preferences->read_repository(); // foreach($prefs['addressbook'] as $key => $value) // { // if($value == 'addressbook_on') $content['advs']['colums_to_present'][$key] = lang($key); // } // echo 'addressbook.uicontacts.search->content:'; _debug_array($content); $content['advs']['hidebuttons'] = true; $content['advs']['input_template'] = 'addressbook.edit'; $content['advs']['search_method'] = 'addressbook.bocontacts.search'; $content['advs']['search_class_constructor'] = $contact_app; $content['advs']['colums_to_present'] = array( 'id' => 'id', 'n_given' => lang('first name'), 'n_family' => lang('last name'), 'email_home' => lang('home email'), 'email' => lang('work email'), 'tel_home' => lang('tel home'), ); $content['advs']['row_actions'] = array( 'edit' => array( 'type' => 'button', 'options' => array( 'size' => 'edit', 'onclick' => 'window.open(\''. $GLOBALS['egw']->link('/index.php?menuaction=addressbook.uicontacts.edit'). '&contact_id=$row_cont[id] \',\'\',\'dependent=yes,width=800,height=600,location=no,menubar=no,toolbar=no,scrollbars=yes,status=yes\'); return false;', )), 'delete' => array( 'type' => 'button', 'method' => 'addressbook.bocontacts.delete', 'options' => array( 'size' => 'delete', 'onclick' => 'if(!confirm(\''. lang('Do your really want to delete this contact?'). '\')) return false;', )), ); /* $content['advs']['actions']['email'] = array( 'type' => 'button', 'options' => array( 'label' => lang('email'), 'no_lang' => true, )); $content['advs']['actions']['export'] = array( 'type' => 'button', 'options' => array( 'label' => lang('export'), 'no_lang' => true, ));*/ $content['advs']['actions']['delete'] = array( 'type' => 'button', 'method' => 'addressbook.bocontacts.delete', 'options' => array( 'label' => lang('delete'), 'no_lang' => true, 'onclick' => 'if(!confirm(\''. lang('WARNING: All contacts found will be deleted!'). '\')) return false;', )); for($i = -23; $i<=23; $i++) $tz[$i] = ($i > 0 ? '+' : '').$i; $sel_options['tz'] = $tz + array('' => lang('doesn\'t matter')); $this->tmpl->read('addressbook.search'); return $this->tmpl->exec('addressbook.uicontacts.search',$content,$sel_options,$no_button,$preserv); } function js() { return ''; } }