From 6494d641dae46c5a8dd4078a358fd7d7a954528f Mon Sep 17 00:00:00 2001 From: ceb Date: Wed, 21 May 2003 23:02:25 +0000 Subject: [PATCH] update --- phpgwapi/inc/class.accounts_ldap.inc.php | 10 +- phpgwapi/inc/class.accounts_shared.inc.php | 333 ++++++++++++++++++++- phpgwapi/inc/class.accounts_sql.inc.php | 49 +-- phpgwapi/inc/class.categories.inc.php | 7 +- phpgwapi/inc/class.common.inc.php | 11 +- phpgwapi/inc/class.contacts_shared.inc.php | 49 ++- 6 files changed, 394 insertions(+), 65 deletions(-) diff --git a/phpgwapi/inc/class.accounts_ldap.inc.php b/phpgwapi/inc/class.accounts_ldap.inc.php index a5df21a532..57a4ed1be9 100644 --- a/phpgwapi/inc/class.accounts_ldap.inc.php +++ b/phpgwapi/inc/class.accounts_ldap.inc.php @@ -1,13 +1,15 @@ * - * and Lars Kneschke * + * Written by Joseph Engo * + * and Lars Kneschke * + * and Bettina Gille * * View and manipulate account records using LDAP * - * Copyright (C) 2000 - 2002 Joseph Engo * + * Copyright (C) 2000 - 2002 Joseph Engo, Lars Kneschke * + * Copyright (C) 2003 Lars Kneschke, Bettina Gille * * ------------------------------------------------------------------------ * * This library is part of the phpGroupWare API * - * http://www.phpgroupware.org/api * + * http://www.phpgroupware.org * * ------------------------------------------------------------------------ * * This library is free software; you can redistribute it and/or modify it * * under the terms of the GNU Lesser General Public License as published by * diff --git a/phpgwapi/inc/class.accounts_shared.inc.php b/phpgwapi/inc/class.accounts_shared.inc.php index df7e2378c2..b1e31f1aa0 100644 --- a/phpgwapi/inc/class.accounts_shared.inc.php +++ b/phpgwapi/inc/class.accounts_shared.inc.php @@ -1,12 +1,14 @@ * + * Written by Joseph Engo * + * and Bettina Gille [ceb@phpgroupware.org] * * shared functions for other account repository managers * - * Copyright (C) 2000, 2001 Joseph Engo * + * Copyright (C) 2000 - 2002 Joseph Engo * + * Copyright (C) 2003 Joseph Engo, Bettina Gille * * -------------------------------------------------------------------------* * This library is part of the phpGroupWare API * - * http://www.phpgroupware.org/api * + * http://www.phpgroupware.org * * ------------------------------------------------------------------------ * * This library is free software; you can redistribute it and/or modify it * * under the terms of the GNU Lesser General Public License as published by * @@ -20,7 +22,6 @@ * along with this library; if not, write to the Free Software Foundation, * * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * \**************************************************************************/ - /* $Id$ */ /* @@ -233,6 +234,330 @@ /* echo '
using'.$nextid;exit; */ return $nextid; } + + function accounts_popup($app) + { + $group_id = get_var('group_id',array('GET','POST')); + + /*if(isset($_GET['group_id'])) + { + $group_id = $_GET['group_id']; + }*/ + + if(isset($_POST['query'])) + { + $GLOBALS['query'] = $_POST['query']; + } + + if(isset($_POST['start'])) + { + $start = intval($_POST['start']); + } + else + { + $start = 0; + } + + if(isset($_GET['order'])) + { + $order = $_GET['order']; + } + else + { + $order = 'account_lid'; + } + + if(isset($_GET['sort'])) + { + $sort = $_GET['sort']; + } + else + { + $sort = 'ASC'; + } + + $this->nextmatchs = CreateObject('phpgwapi.nextmatchs'); + + $GLOBALS['phpgw']->template->set_root($GLOBALS['phpgw']->common->get_tpl_dir('phpgwapi')); + + $GLOBALS['phpgw']->template->set_file(array('accounts_list_t' => 'accounts_popup.tpl')); + $GLOBALS['phpgw']->template->set_block('accounts_list_t','group_cal','cal'); + $GLOBALS['phpgw']->template->set_block('accounts_list_t','group_other','other'); + $GLOBALS['phpgw']->template->set_block('accounts_list_t','group_all','all'); + + $GLOBALS['phpgw']->template->set_block('accounts_list_t','bla_intro','ibla'); + $GLOBALS['phpgw']->template->set_block('accounts_list_t','other_intro','iother'); + $GLOBALS['phpgw']->template->set_block('accounts_list_t','all_intro','iall'); + + + $GLOBALS['phpgw']->template->set_block('accounts_list_t','accounts_list','list'); + + + $GLOBALS['phpgw']->template->set_var('title',$GLOBALS['phpgw_info']['site_title']); + $GLOBALS['phpgw']->template->set_var('charset',$GLOBALS['phpgw']->translation->translate('charset')); + $GLOBALS['phpgw']->template->set_var('font',$GLOBALS['phpgw_info']['theme']['font']); + $GLOBALS['phpgw']->template->set_var('lang_search',lang('search')); + $GLOBALS['phpgw']->template->set_var('lang_groups',lang('user groups')); + $GLOBALS['phpgw']->template->set_var('lang_accounts',lang('user accounts')); + $GLOBALS['phpgw']->template->set_var('lang_perm',lang('Groups with permission for %1',$app)); + $GLOBALS['phpgw']->template->set_var('lang_nonperm',lang('Groups without permission for %1',$app)); + + $GLOBALS['phpgw']->template->set_var('img',$GLOBALS['phpgw']->common->image('phpgwapi','select')); + $GLOBALS['phpgw']->template->set_var('lang_select_user',lang('Select user')); + $GLOBALS['phpgw']->template->set_var('lang_select_group',lang('Select group')); + $GLOBALS['phpgw']->template->set_var('css_file',$GLOBALS['phpgw_info']['server']['webserver_url'] . SEP . 'phpgwapi' . SEP . 'templates' + . SEP . 'idots' . SEP . 'css' . SEP . 'idots.css'); + + switch($app) + { + case 'calendar': + $action = 'calendar.uicalendar.accounts_popup'; + $GLOBALS['phpgw']->template->set_var('select_name',"participants[]'][0]"); + $GLOBALS['phpgw']->template->set_var('js_function','ExchangeAccountSelect'); + $GLOBALS['phpgw']->template->fp('ibla','bla_intro',True); + $GLOBALS['phpgw']->template->fp('iall','all_intro',True); + break; + case 'admin': + $action = 'admin.uiaccounts.accounts_popup'; + $GLOBALS['phpgw']->template->set_var('select_name',"account_user[]']"); + $GLOBALS['phpgw']->template->set_var('js_function','ExchangeAccountSelect'); + $GLOBALS['phpgw']->template->set_var('lang_perm',lang('group name')); + $GLOBALS['phpgw']->template->fp('iother','other_intro',True); + break; + case 'projects': + $action = 'projects.uiprojects.accounts_popup'; + $GLOBALS['phpgw']->template->set_var('select_name',"values[coordinator]']"); + $GLOBALS['phpgw']->template->set_var('js_function','ExchangeAccountText'); + $GLOBALS['phpgw']->template->fp('iother','other_intro',True); + $GLOBALS['phpgw']->template->fp('iall','all_intro',True); + break; + } + + $link_data = array + ( + 'menuaction' => $action, + 'group_id' => $group_id + ); + + $app_groups = array(); + + if ($app != 'admin') + { + $user_groups = $this->membership($this->account); + + $app_user = $GLOBALS['phpgw']->acl->get_ids_for_location('run',1,$app); + for ($i = 0;$iget_type($app_user[$i]); + if($type == 'g') + { + $app_groups[] = $app_user[$i]; + $members[] = $GLOBALS['phpgw']->acl->get_ids_for_location($app_user[$i],1,'phpgw_group'); + } + } + + $i = count($app_user); + while(is_array($members) && list(,$mem) = each($members)) + { + for($j=0;$jget_list('groups'); + $all_user = $this->get_list('accounts'); + + while(is_array($all_groups) && list(,$agroup) = each($all_groups)) + { + $user_groups[] = array + ( + 'account_id' => $agroup['account_id'], + 'account_name' => $agroup['account_firstname'] + ); + } + + for($j=0;$jtemplate->set_var('tr_color',$this->nextmatchs->alternate_row_color($tr_color)); + //$link_data['group_id'] = $group['account_id']; + $GLOBALS['phpgw']->template->set_var('link_user_group',$GLOBALS['phpgw']->link('/index.php','menuaction=' . $action . '&group_id=' . $group['account_id'])); + $GLOBALS['phpgw']->template->set_var('name_user_group',$group['account_name']); + $GLOBALS['phpgw']->template->set_var('account_display',$GLOBALS['phpgw']->common->grab_owner_name($group['account_id'])); + $GLOBALS['phpgw']->template->set_var('accountid',$group['account_id']); + switch($app) + { + case 'calendar': $GLOBALS['phpgw']->template->fp('cal','group_cal',True); break; + default: $GLOBALS['phpgw']->template->fp('other','group_other',True); break; + } + } + else + { + if ($app != 'admin') + { + $GLOBALS['phpgw']->template->set_var('link_all_group',$GLOBALS['phpgw']->link('/index.php','menuaction=' . $action . '&group_id=' . $group['account_id'])); + $GLOBALS['phpgw']->template->set_var('name_all_group',$group['account_name']); + $GLOBALS['phpgw']->template->set_var('accountid',$group['account_id']); + $GLOBALS['phpgw']->template->fp('all','group_all',True); + } + } + } + + if (!$GLOBALS['query']) + { + if (isset($group_id) && !empty($group_id)) + { + //echo 'GROUP_ID: ' . $group_id; + $users = $GLOBALS['phpgw']->acl->get_ids_for_location($group_id,1,'phpgw_group'); + + for ($i=0;$iaccounts->account_id = $users[$i]; + $GLOBALS['phpgw']->accounts->read_repository(); + + switch ($order) + { + case 'account_firstname': + $id = $GLOBALS['phpgw']->accounts->data['firstname']; + break; + case 'account_lastname': + $id = $GLOBALS['phpgw']->accounts->data['lastname']; + break; + case 'account_lid': + default: + $id = $GLOBALS['phpgw']->accounts->data['account_lid']; + break; + } + $id .= $GLOBALS['phpgw']->accounts->data['lastname']; // default sort-order + $id .= $GLOBALS['phpgw']->accounts->data['firstname']; + $id .= $GLOBALS['phpgw']->accounts->data['account_id']; // make our index unique + + $val_users[$id] = array + ( + 'account_id' => $GLOBALS['phpgw']->accounts->data['account_id'], + 'account_lid' => $GLOBALS['phpgw']->accounts->data['account_lid'], + 'account_firstname' => $GLOBALS['phpgw']->accounts->data['firstname'], + 'account_lastname' => $GLOBALS['phpgw']->accounts->data['lastname'] + ); + } + } + + if (is_array($val_users)) + { + if ($sort != 'DESC') + { + ksort($val_users); + } + else + { + krsort($val_users); + } + } + $val_users = array_values($val_users); // get a numeric index + } + $total = count($val_users); + } + else + { + switch($app) + { + case 'calendar': $select = 'both'; break; + default: $select = 'accounts'; break; + } + $entries = $this->get_list($select,$start,$sort,$order,$GLOBALS['query']); + $total = $this->total; + for ($i=0;$i $entries[$i]['account_id'], + 'account_lid' => $entries[$i]['account_lid'], + 'account_firstname' => $entries[$i]['account_firstname'], + 'account_lastname' => $entries[$i]['account_lastname'] + ); + } + } + } + +// --------------------------------- nextmatch --------------------------- + + $left = $this->nextmatchs->left('/index.php',$start,$total,$link_data); + $right = $this->nextmatchs->right('/index.php',$start,$total,$link_data); + $GLOBALS['phpgw']->template->set_var('left',$left); + $GLOBALS['phpgw']->template->set_var('right',$right); + + $GLOBALS['phpgw']->template->set_var('lang_showing',$this->nextmatchs->show_hits($total,$start)); + +// -------------------------- end nextmatch ------------------------------------ + + $GLOBALS['phpgw']->template->set_var('search_action',$GLOBALS['phpgw']->link('/index.php',$link_data)); + $GLOBALS['phpgw']->template->set_var('search_list',$this->nextmatchs->search(array('query' => $GLOBALS['query'], 'search_obj' => 1))); + +// ---------------- list header variable template-declarations -------------------------- + +// -------------- list header variable template-declaration ------------------------ + $GLOBALS['phpgw']->template->set_var('th_bg',$GLOBALS['phpgw_info']['theme']['th_bg']); + $GLOBALS['phpgw']->template->set_var('sort_lid',$this->nextmatchs->show_sort_order($sort,'account_lid',$order,'/index.php',lang('LoginID'),$link_data)); + $GLOBALS['phpgw']->template->set_var('sort_firstname',$this->nextmatchs->show_sort_order($sort,'account_firstname',$order,'/index.php',lang('Firstname'),$link_data)); + $GLOBALS['phpgw']->template->set_var('sort_lastname',$this->nextmatchs->show_sort_order($sort,'account_lastname',$order,'/index.php',lang('Lastname'),$link_data)); + +// ------------------------- end header declaration -------------------------------- + $stop = $start + $this->nextmatchs->maxmatches; + for ($i=$start;$itemplate->set_var('tr_color',$this->nextmatchs->alternate_row_color($tr_color)); + $firstname = $val_users[$i]['account_firstname']; + if (!$firstname) { $firstname = ' '; } + $lastname = $val_users[$i]['account_lastname']; + if (!$lastname) { $lastname = ' '; } + +// ---------------- template declaration for list records -------------------------- + + $GLOBALS['phpgw']->template->set_var(array + ( + 'lid' => $val_users[$i]['account_lid'], + 'firstname' => $firstname, + 'lastname' => $lastname, + 'accountid' => $val_users[$i]['account_id'], + 'account_display' => $GLOBALS['phpgw']->common->grab_owner_name($val_users[$i]['account_id']) + )); + + $GLOBALS['phpgw']->template->fp('list','accounts_list',True); + } + + $GLOBALS['phpgw']->template->set_var('start',$start); + $GLOBALS['phpgw']->template->set_var('sort',$sort); + $GLOBALS['phpgw']->template->set_var('order',$order); + $GLOBALS['phpgw']->template->set_var('query',$GLOBALS['query']); + $GLOBALS['phpgw']->template->set_var('group_id',$group_id); + + $GLOBALS['phpgw']->template->set_var('lang_done',lang('done')); + $GLOBALS['phpgw']->template->pfp('out','accounts_list_t',True); + $GLOBALS['phpgw']->common->phpgw_exit(); + } } /*! @class_end accounts diff --git a/phpgwapi/inc/class.accounts_sql.inc.php b/phpgwapi/inc/class.accounts_sql.inc.php index 61c0cb7f4c..8d7d5db239 100644 --- a/phpgwapi/inc/class.accounts_sql.inc.php +++ b/phpgwapi/inc/class.accounts_sql.inc.php @@ -1,28 +1,29 @@ * - * and Dan Kuykendall * - * View and manipulate account records using SQL * - * Copyright (C) 2000, 2001 Joseph Engo * - * -------------------------------------------------------------------------* - * This library is part of the phpGroupWare API * - * http://www.phpgroupware.org/api * - * ------------------------------------------------------------------------ * - * This library is free software; you can redistribute it and/or modify it * - * under the terms of the GNU Lesser General Public License as published by * - * the Free Software Foundation; either version 2.1 of the License, * - * or any later version. * - * This library 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 Lesser General Public License for more details. * - * You should have received a copy of the GNU Lesser General Public License * - * along with this library; if not, write to the Free Software Foundation, * - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - \**************************************************************************/ - - /* $Id$ */ + /**************************************************************************\ + * phpGroupWare API - Accounts manager for SQL * + * Written by Joseph Engo * + * and Dan Kuykendall * + * and Bettina Gille [ceb@phpgroupware.org] * + * View and manipulate account records using SQL * + * Copyright (C) 2000 - 2002 Joseph Engo * + * Copyright (C) 2003 Joseph Engo, Bettina Gille * + * ------------------------------------------------------------------------ * + * This library is part of the phpGroupWare API * + * http://www.phpgroupware.org * + * ------------------------------------------------------------------------ * + * This library is free software; you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as published by * + * the Free Software Foundation; either version 2.1 of the License, * + * or any later version. * + * This library 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 Lesser General Public License for more details. * + * You should have received a copy of the GNU Lesser General Public License * + * along with this library; if not, write to the Free Software Foundation, * + * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * + \**************************************************************************/ + /* $Id$ */ /*! @class_start accounts diff --git a/phpgwapi/inc/class.categories.inc.php b/phpgwapi/inc/class.categories.inc.php index b34512d2eb..4b2b91076e 100644 --- a/phpgwapi/inc/class.categories.inc.php +++ b/phpgwapi/inc/class.categories.inc.php @@ -1,13 +1,14 @@ * + * Written by Joseph Engo * * and Bettina Gille [ceb@phpgroupware.org] * * Category manager * - * Copyright (C) 2000 - 2003 Joseph Engo * + * Copyright (C) 2000, 2001 Joseph Engo, Bettina Gille * + * Copyright (C) 2002, 2003 Bettina Gille * * ------------------------------------------------------------------------ * * This library is part of the phpGroupWare API * - * http://www.phpgroupware.org/api * + * http://www.phpgroupware.org * * ------------------------------------------------------------------------ * * This library is free software; you can redistribute it and/or modify it * * under the terms of the GNU Lesser General Public License as published by * diff --git a/phpgwapi/inc/class.common.inc.php b/phpgwapi/inc/class.common.inc.php index 39d17bb34e..5b5f7267b0 100644 --- a/phpgwapi/inc/class.common.inc.php +++ b/phpgwapi/inc/class.common.inc.php @@ -2,14 +2,15 @@ /**************************************************************************\ * phpGroupWare API - Commononly used functions * * Written by Dan Kuykendall * - * and Joseph Engo * - * and Mark Peters * - * and Bettina Gille [ceb@phpgroupware.org] * + * and Joseph Engo * + * and Mark Peters * + * and Bettina Gille [ceb@phpgroupware.org] * * Commononly used functions by phpGroupWare developers * - * Copyright (C) 2000 - 2003 Dan Kuykendall * + * Copyright (C) 2000, 2001 Dan Kuykendall * + * Copyright (C) 2002, 2003 Dan Kuykendall, Bettina Gille * * ------------------------------------------------------------------------ * * This library is part of the phpGroupWare API * - * http://www.phpgroupware.org/api * + * http://www.phpgroupware.org * * ------------------------------------------------------------------------ * * This library is free software; you can redistribute it and/or modify it * * under the terms of the GNU Lesser General Public License as published by * diff --git a/phpgwapi/inc/class.contacts_shared.inc.php b/phpgwapi/inc/class.contacts_shared.inc.php index 7d53ce3a6d..4b0d59ff03 100644 --- a/phpgwapi/inc/class.contacts_shared.inc.php +++ b/phpgwapi/inc/class.contacts_shared.inc.php @@ -1,29 +1,28 @@ * - * and Miles Lott * - * and Bettina Gille * - * View and manipulate contact records * - * Copyright (C) 2001 Joseph Engo * - * -------------------------------------------------------------------------* - * This library is part of the phpGroupWare API * - * http://www.phpgroupware.org/api * - * ------------------------------------------------------------------------ * - * This library is free software; you can redistribute it and/or modify it * - * under the terms of the GNU Lesser General Public License as published by * - * the Free Software Foundation; either version 2.1 of the License, * - * or any later version. * - * This library 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 Lesser General Public License for more details. * - * You should have received a copy of the GNU Lesser General Public License * - * along with this library; if not, write to the Free Software Foundation, * - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - \**************************************************************************/ - - /* $Id$ */ + /**************************************************************************\ + * phpGroupWare API - Contact Management Shared Routines * + * Written by Joseph Engo * + * and Miles Lott * + * and Bettina Gille * + * View and manipulate contact records * + * Copyright (C) 2001, 2002 Joseph Engo, Miles Lott, Bettina Gille * + * -------------------------------------------------------------------------* + * This library is part of the phpGroupWare API * + * http://www.phpgroupware.org * + * ------------------------------------------------------------------------ * + * This library is free software; you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as published by * + * the Free Software Foundation; either version 2.1 of the License, * + * or any later version. * + * This library 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 Lesser General Public License for more details. * + * You should have received a copy of the GNU Lesser General Public License * + * along with this library; if not, write to the Free Software Foundation, * + * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * + \**************************************************************************/ + /* $Id$ */ class contacts extends contacts_ {