merge from trunk(revision 23912:23925) to 1.4 branch

This commit is contained in:
Lars Kneschke 2007-05-23 21:39:52 +00:00
parent fa7b6e5504
commit 3ce7f3de4d
27 changed files with 323 additions and 329 deletions

View File

@ -850,13 +850,13 @@ class so_ldap
$bin = ldap_get_values_len($this->ds,ldap_first_entry($this->ds,$result),'jpegphoto');
$contact['jpegphoto'] = $bin[0];
}
if(preg_match('/cn=([^,]+),'.preg_quote($this->personalContactsDN).'$/i',$entry['dn'],$matches))
if(preg_match('/cn=([^,]+),'.preg_quote($this->personalContactsDN,'/').'$/i',$entry['dn'],$matches))
{
// personal addressbook
$contact['owner'] = $GLOBALS['egw']->accounts->name2id($matches[1],'account_lid','u');
$contact['private'] = 1;
}
elseif(preg_match('/cn=([^,]+),'.preg_quote($this->sharedContactsDN).'$/i',$entry['dn'],$matches))
elseif(preg_match('/cn=([^,]+),'.preg_quote($this->sharedContactsDN,'/').'$/i',$entry['dn'],$matches))
{
// group addressbook
$contact['owner'] = $GLOBALS['egw']->accounts->name2id($matches[1],'account_lid','g');
@ -1062,10 +1062,10 @@ class so_ldap
}
else
{
$parts = preg_split('/'. preg_quote($data['givenname'][0]) .'.*'. preg_quote($data['sn'][0]) .'/', $data['cn'][0]);
$parts = preg_split('/'. preg_quote($data['givenname'][0],'/') .'.*'. preg_quote($data['sn'][0],'/') .'/', $data['cn'][0]);
$contact['n_prefix'] = trim($parts[0]);
$contact['n_suffix'] = trim($parts[1]);
if(preg_match('/'. preg_quote($data['givenname'][0]) .' (.*) '. preg_quote($data['sn'][0]) .'/',$data['cn'][0], $matches))
if(preg_match('/'. preg_quote($data['givenname'][0],'/') .' (.*) '. preg_quote($data['sn'][0],'/') .'/',$data['cn'][0], $matches))
{
$contact['n_middle'] = $matches[1];
}

View File

@ -41,6 +41,11 @@ class uicontacts extends bocontacts
var $private_addressbook = false;
var $org_views;
/**
* Addressbook configuration (stored as phpgwapi = general server config)
*
* @var array
*/
var $config;
/**
* Name(s) of the tabs in the edit dialog
@ -345,6 +350,7 @@ class uicontacts extends bocontacts
$query = $GLOBALS['egw']->session->appsession('index','addressbook');
$query['num_rows'] = -1; // all
$query['org_view'] = $org;
$query['searchletter'] = '';
$this->get_rows($query,$checked,$readonlys,true); // true = only return the id's
if (count($checked) > 1) // use a nicely formatted org-name as title in infolog
@ -393,6 +399,7 @@ class uicontacts extends bocontacts
if ($use_all)
{
@set_time_limit(0); // switch off the execution time limit, as it's for big selections to small
$query['num_rows'] = -1; // all
$this->get_rows($query,$checked,$readonlys,true); // true = only return the id's
}
@ -424,6 +431,14 @@ class uicontacts extends bocontacts
$to_list = (int)substr($action,8);
$action = 'to_list';
}
// Security: stop non-admins to export more then the configured number of contacts
if (in_array($action,array('csv','vcard')) && (int)$this->config['contact_export_limit'] &&
!isset($GLOBALS['egw_info']['user']['apps']['admin']) && count($checked) > $this->config['contact_export_limit'])
{
$action_msg = lang('exported');
$failed = count($checked);
return false;
}
switch($action)
{
case 'csv':
@ -766,7 +781,7 @@ class uicontacts extends bocontacts
$wildcard = $query['advanced_search']['meth_select'];
unset($query['advanced_search']['meth_select']);
}
$rows = parent::search($query['advanced_search'] ? $query['advanced_search'] : $query['search'],false,
$rows = parent::search($query['advanced_search'] ? $query['advanced_search'] : $query['search'],$id_only,
$order,'',$wildcard,false,$op,array((int)$query['start'],(int) $query['num_rows']),$query['col_filter']);
// do we need the custom fields
@ -1582,7 +1597,9 @@ $readonlys['button[vcard]'] = true;
}
/**
* returns link to call the given phonenumer
* returns link to call the given phonenumber
*
* replaces '%1' with the phonenumber to call, '%u' with the user's account_lid and '%t' with his work-phone-number
*
* @param string $number phone number
* @param string &$link returns the link
@ -1592,7 +1609,14 @@ $readonlys['button[vcard]'] = true;
{
if (!$number || !$this->config['call_link']) return false;
$link = str_replace('%1',urlencode($number),$this->config['call_link']);
static $userphone;
if (is_null($userphone))
{
$user = $this->read('account_id:'.$GLOBALS['egw_info']['user']['account_id']);
$userphone = is_array($user) ? ($user['tel_work'] ? $user['tel_work'] : $user['tel_home']) : false;
}
$link = str_replace(array('%1','%u','%t'),array(urlencode($number),$GLOBALS['egw_info']['user']['account_lid'],$userphone),
$this->config['call_link']);
}
function js()

View File

@ -14,7 +14,7 @@ actions addressbook de Befehle
add %1 addressbook de %1 hinzufügen
add a contact to this organisation addressbook de Einen Kontakt zu dieser Organisation hinzufügen
add a new contact addressbook de Neuen Kontakt anlegen
add a new list addressbook de Neuen Verteiler hinzfügen
add a new list addressbook de Neuen Verteiler hinzufügen
add a single entry by passing the fields. addressbook de Hinzufügen eines einzelnen Eintrags durch Übergeben der Felder.
add custom field addressbook de Benutzerdefiniertes Feld hinzufügen
add to distribution list: addressbook de Hinzufügen zu Verteiler:
@ -167,6 +167,7 @@ home phone addressbook de Tel. privat
home state addressbook de Bundesland privat
home street addressbook de Straße privat
home zip code addressbook de PLZ privat
how many contacts should non-admins be able to export (empty = no limit) admin de Wieviele Kontakte sollen nicht-Adminstratoren exportieren können (leer = keine Begrenzung)
icon addressbook de Icon
if accounts are already in ldap admin de wenn die Benutzer bereits im LDAP sind
import addressbook de Import
@ -289,7 +290,7 @@ translation addressbook de
type addressbook de Typ
update a single entry by passing the fields. addressbook de Aktualisiert einen einzelnen Eintrag durch Übergabe seiner Felder.
upload or delete the photo addressbook de Foto hochladen oder löschen
url to link telephone numbers to (use %1 for the number) admin de URL mit denen Telefonnummern verlinkt werden sollen (%1 für die Nummber verwenden)
url to link telephone numbers to (use %1 = number to call, %u = account name, %t = account phone) admin de URL mit denen Telefonnummern verlinkt werden sollen (verwenden Sie %1 = anzurufende Nummer, %u = Benutzernamen, %t = Telefon des Benutzers)
use an extra category tab? addressbook de Separaten Reiter für Kategorien verwenden?
use country list addressbook de Länderliste benutzen
use setup for a full account-migration admin de für eine komplette Benutzer Migration setup verwenden
@ -302,7 +303,7 @@ warning!! ldap is valid only if you are not using contacts for accounts storage!
warning: all contacts found will be deleted! addressbook de WARNUNG: Alle gefundenen Kontakte werden gelöscht!
what should links to the addressbook display in other applications. empty values will be left out. you need to log in anew, if you change this setting! addressbook de Was sollen Verknüpfungen zum Adressbuch in anderen Anwendungen anzeigen. Leere Werte werden ausgelassen. Sie müssen sich neu anmelden, wenn Sie hier eine Änderung vornehmen!
which address format should the addressbook use for countries it does not know the address format. if the address format of a country is known, it uses it independent of this setting. addressbook de Welches Format soll das Adressbuch für Adressen verwenden deren landesübliches Adressformat unbekannt ist. Wenn das Adressformat eines Landes dem Adressbuch bekannt ist, wird das unabhänig von dieser Einstellung benutzt.
which addressbook should be selected when adding a contact and you have no add rights to the current addressbook. addressbook de Welches Adressbuch soll ausgewählt sein beim Hinzfügen von Kontakten, wenn Sie keine Hinzufügen Rechte zum aktuellen Adressbuch haben.
which addressbook should be selected when adding a contact and you have no add rights to the current addressbook. addressbook de Welches Adressbuch soll ausgewählt sein beim Hinzufügen von Kontakten, wenn Sie keine Hinzufügen Rechte zum aktuellen Adressbuch haben.
which charset should be used for the csv export. the system default is the charset of this egroupware installation. addressbook de Welcher Zeichensatz soll für den CSV Export verwendet werden. Die systemweite Vorgabe ist der Zeichensatz der eGroupWare Installation.
which fields should be exported. all means every field stored in the addressbook incl. the custom fields. the business or home address only contains name, company and the selected address. addressbook de Welche Felder sollen exportiert werden. Alle bedeutet jedes Feld das im Adressbuch gespeichert ist einschl. der benutzerdefinierten Felder. Die Geschäfts- oder Privatadresse enthält nur Name, Firma und die ausgewählte Adresse.
whole query addressbook de gesamte Abfrage

View File

@ -167,6 +167,7 @@ home phone addressbook en Home Phone
home state addressbook en Home State
home street addressbook en Home Street
home zip code addressbook en Home ZIP Code
how many contacts should non-admins be able to export (empty = no limit) admin en How many contacts should non-admins be able to export (empty = no limit)
icon addressbook en Icon
if accounts are already in ldap admin en if accounts are already in LDAP
import addressbook en Import
@ -289,7 +290,7 @@ translation addressbook en Translation
type addressbook en Type
update a single entry by passing the fields. addressbook en Update a single entry by passing the fields.
upload or delete the photo addressbook en Upload or delete the photo
url to link telephone numbers to (use %1 for the number) admin en URL to link telephone numbers to (use %1 for the number)
url to link telephone numbers to (use %1 = number to call, %u = account name, %t = account phone) admin en URL to link telephone numbers to (use %1 = number to call, %u = account name, %t = account phone)
use an extra category tab? addressbook en Use an extra category tab?
use country list addressbook en Use Country List
use setup for a full account-migration admin en use setup for a full account-migration

View File

@ -14,7 +14,7 @@
<td colspan="2">&nbsp;<b>{lang_Telephony_integration}</b></td>
</tr>
<tr class="row_on">
<td>&nbsp;{lang_URL_to_link_telephone_numbers_to_(use_%1_for_the_number)}:</td>
<td>&nbsp;{lang_URL_to_link_telephone_numbers_to_(use_%1_=_number_to_call,_%u_=_account_name,_%t_=_account_phone)}:</td>
<td><input name="newsettings[call_link]" value="{value_call_link}" size="40"></td>
</tr>
<tr class="row_off">
@ -46,6 +46,10 @@
</select>
</td>
</tr>
<tr class="row_off">
<td>&nbsp;<b>{lang_Security}</b>: {lang_How_many_contacts_should_non-admins_be_able_to_export_(empty_=_no_limit)}:</td>
<td><input name="newsettings[contact_export_limit]" value="{value_contact_export_limit}" size="5"></td>
</tr>
<tr class="th">
<td colspan="2">&nbsp;<b>{lang_Contact_repository}</b></td>
</tr>

View File

@ -181,8 +181,8 @@
static $chars_shortcut;
if (is_null($chars_shortcut)) $chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end
$value['M'] = lang(substr($month[$value['m']],0,3)); // check if we have a translation of the short-cut
if ($substr($value['M'],-1) == '*') // if not generate one by truncating the translation of the long name
$value['M'] = lang($m = substr($month[$value['m']],0,3)); // check if we have a translation of the short-cut
if ($value['M'] == $m || $substr($value['M'],-1) == '*') // if not generate one by truncating the translation of the long name
{
$value['M'] = $chars_shortcut > 0 ? $substr(lang($month[$value['m']]),0,$chars_shortcut) :
$substr(lang($month[$value['m']]),$chars_shortcut);

View File

@ -178,9 +178,6 @@
$extension_data['old_value'] = $value = $nm_global['col_filter'][$this->last_part($name)];
return True;
}
if (!$value['filter_onchange']) $value['filter_onchange'] = 'this.form.submit();';
if (!$value['filter2_onchange']) $value['filter2_onchange'] = 'this.form.submit();';
// presetting the selectboxes with their default values, to NOT loop, because post-process thinks they changed
if (!isset($value['cat_id'])) $value['cat_id'] = '';
if (!isset($value['search'])) $value['search'] = '';
@ -192,6 +189,12 @@
if (!is_string($value[$f])) $value[$f] = (string) $value[$f];
}
}
// save values in persistent extension_data to be able use it in post_process
$extension_data += $value;
if (!$value['filter_onchange']) $value['filter_onchange'] = 'this.form.submit();';
if (!$value['filter2_onchange']) $value['filter2_onchange'] = 'this.form.submit();';
list($app,$class,$method) = explode('.',$value['get_rows']);
if ($app && $class)
{
@ -401,9 +404,6 @@
$cell['type'] = 'template';
$cell['label'] = $cell['help'] = '';
// save values in persistent extension_data to be able use it in post_process
$extension_data += $value;
foreach(array('sort','order','col_filter') as $n) // save them for the sortheader
{
$nm_global[$n] = $value[$n];

View File

@ -1,16 +1,14 @@
<?php
/**************************************************************************\
* eGroupWare - InfoLog: CSV - Import *
* http://www.egroupware.org *
* Written by Ralf Becker <RalfBecker@outdoor-training.de> *
* -------------------------------------------- *
* 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$ */
/**
* InfoLog - CSV import
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package infolog
* @copyright (c) 2003-6 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
$GLOBALS['egw_info']['flags'] = array(
'currentapp' => 'infolog',

View File

@ -1,24 +1,17 @@
<?php
/**************************************************************************\
* eGroupWare - InfoLog Admin-, Preferences- and SideboxMenu-Hooks *
* http://www.eGroupWare.org *
* Written and (c) by Ralf Becker <RalfBecker@outdoor-training.de> *
* ------------------------------------------------------- *
* 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$ */
/**
* InfoLog - Admin-, Preferences- and SideboxMenu-Hooks
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package infolog
* @copyright (c) 2003-6 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
/**
* Class containing admin, preferences and sidebox-menus (used as hooks)
*
* @package infolog
* @author Ralf Becker <RalfBecker@outdoor-training.de>
* @copyright (c) by Ralf Becker <RalfBecker@outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
*/
class admin_prefs_sidebox_hooks
{
@ -84,5 +77,3 @@ class admin_prefs_sidebox_hooks
}
}
}
?>

View File

@ -1,16 +1,15 @@
<?php
/**************************************************************************\
* eGroupWare - ProjectManager - DataSource for InfoLog *
* http://www.egroupware.org *
* Written and (c) 2005 by Ralf Becker <RalfBecker@outdoor-training.de> *
* -------------------------------------------- *
* 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$ */
/**
* InfoLog - Datasource for ProjektManager
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package infolog
* @subpackage projectmanager
* @copyright (c) 2005 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
include_once(EGW_INCLUDE_ROOT.'/projectmanager/inc/class.datasource.inc.php');
@ -23,11 +22,6 @@ include_once(EGW_INCLUDE_ROOT.'/projectmanager/inc/class.datasource.inc.php');
* - planned start from the end of a start constrain
* - planned end from the planned time and a start-time
* - planned start and end from the "real" values
*
* @package infolog
* @author RalfBecker-AT-outdoor-training.de
* @copyright (c) 2005 by RalfBecker-AT-outdoor-training.de
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
*/
class datasource_infolog extends datasource
{

View File

@ -1,37 +1,29 @@
<?php
/**************************************************************************\
* eGroupWare - InfoLog *
* http://www.egroupware.org *
* Written by Ralf Becker <RalfBecker@outdoor-training.de> *
* originaly based on todo written by Joseph Engo <jengo@phpgroupware.org> *
* -------------------------------------------- *
* 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. *
\**************************************************************************/
/**
* InfoLog - Link-registry
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package infolog
* @copyright (c) 2003-6 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
/* $Id$ */
include_once(EGW_INCLUDE_ROOT.'/infolog/inc/class.boinfolog.inc.php');
include_once(EGW_INCLUDE_ROOT.'/infolog/inc/class.boinfolog.inc.php');
/**
* This class returns the link-registry for infolog
*
* To prevent an invinit recursion, it has to be outside the boinfolog class,
* which itself instanciats the link class by default.
*
* @package infolog
* @author Ralf Becker <RalfBecker@outdoor-training.de>
* @copyright (c) by RalfBecker-At-outdoor-training.de
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
*/
class infolog_link_registry
/**
* This class returns the link-registry for infolog
*
* To prevent an invinit recursion, it has to be outside the boinfolog class,
* which itself instanciats the link class by default.
*/
class infolog_link_registry
{
function search_link($location)
{
function search_link($location)
{
$bo =& new boinfolog(0,false); // false = dont instanciate the link class
$bo =& new boinfolog(0,false); // false = dont instanciate the link class
return $bo->search_link($location);
}
return $bo->search_link($location);
}
}

View File

@ -1,15 +1,14 @@
<?php
/**************************************************************************\
* eGroupWare - iCalendar Parser *
* http://www.egroupware.org *
* Written by Lars Kneschke <lkneschke@egroupware.org> *
* -------------------------------------------- *
* 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. *
\**************************************************************************/
/* $Id$ */
/**
* InfoLog - SIF Parser
*
* @link http://www.egroupware.org
* @author Lars Kneschke <lkneschke@egroupware.org>
* @package infolog
* @subpackage syncml
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
require_once PHPGW_SERVER_ROOT.'/infolog/inc/class.boinfolog.inc.php';
require_once EGW_SERVER_ROOT.'/phpgwapi/inc/horde/Horde/iCalendar.php';

View File

@ -1,6 +1,6 @@
<?php
/**
* InfoLog - Custome fields
* InfoLog - Custom fields
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>

View File

@ -179,7 +179,7 @@ class uiinfolog
$readonlys["sp[$id]"] = !$this->bo->check_access($info,EGW_ACL_ADD);
$readonlys["view[$id]"] = $info['info_anz_subs'] < 1;
$readonlys['view[0]'] = True; // no parent
$readonlys["timesheet[$id]"] = !$this->prefs['show_times'] || !isset($GLOBALS['egw_info']['user']['apps']['timesheet']);
$readonlys["timesheet[$id]"] = !isset($GLOBALS['egw_info']['user']['apps']['timesheet']);
if (!$show_links) $show_links = $this->prefs['show_links'];
@ -321,9 +321,12 @@ class uiinfolog
}
else
{
unset($query['columnselection_pref']); // it might be set
$query['columnselection_pref'] = 'infolog.index.rows';
$query['default_cols'] = '!cat_id,info_datemodified,info_used_time_info_planned_time,info_id';
}
// set old show_times pref, that get_info calculates the cumulated time of the timesheets
$this->prefs['show_times'] = strpos($this->prefs['nextmatch-'.$query['columnselection_pref']],'info_used_time_info_planned_time') !== false;
$readonlys = $rows = array();
foreach($ids as $id => $info)
{

View File

@ -1,15 +1,14 @@
<?php
/**************************************************************************\
* eGroupWare - iCalendar Parser *
* http://www.egroupware.org *
* Written by Lars Kneschke <lkneschke@egroupware.org> *
* -------------------------------------------- *
* 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. *
\**************************************************************************/
/* $Id$ */
/**
* InfoLog - iCalendar Parser
*
* @link http://www.egroupware.org
* @author Lars Kneschke <lkneschke@egroupware.org>
* @package infolog
* @subpackage syncml
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
require_once EGW_SERVER_ROOT.'/infolog/inc/class.boinfolog.inc.php';
require_once EGW_SERVER_ROOT.'/phpgwapi/inc/horde/Horde/iCalendar.php';

View File

@ -1,22 +1,22 @@
<?php
/**************************************************************************\
* eGroupWare *
* http://www.egroupware.org *
* -------------------------------------------- *
* 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$ */
/**
* InfoLog - delete account hook
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package infolog
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
// Delete all records for a user
if((int)$GLOBALS['hook_values']['account_id'] > 0)
{
$info =& CreateObject('infolog.soinfolog');
// Delete all records for a user
if((int)$GLOBALS['hook_values']['account_id'] > 0)
{
require_once(EGW_INCLUDE_ROOT.'/infolog/inc/class.soinfolog.inc.php');
$info->change_delete_owner((int)$GLOBALS['hook_values']['account_id'],(int)$_POST['new_owner']);
$info =& new soinfolog;
unset($info);
}
?>
$info->change_delete_owner((int)$GLOBALS['hook_values']['account_id'],(int)$_POST['new_owner']);
unset($info);
}

View File

@ -1,57 +1,56 @@
<?php
/**************************************************************************\
* eGroupWare - Info Log on Homepage *
* http://www.egroupware.org *
* -------------------------------------------- *
* 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$ */
/**
* InfoLog - homepage hook
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package infolog
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
if (($showevents = $GLOBALS['egw_info']['user']['preferences']['infolog']['homeShowEvents']))
if (($showevents = $GLOBALS['egw_info']['user']['preferences']['infolog']['homeShowEvents']))
{
$save_app = $GLOBALS['egw_info']['flags']['currentapp'];
$GLOBALS['egw_info']['flags']['currentapp'] = 'infolog';
$GLOBALS['egw']->translation->add_app('infolog');
$app_id = $GLOBALS['egw']->applications->name2id('infolog');
$GLOBALS['portal_order'][] = $app_id;
$infolog =& CreateObject('infolog.uiinfolog');
$infolog->called_by = 'home';
if (in_array($showevents,array('1','2'))) $showevents = 'own-open-today';
$html = $infolog->index(array('nm' => array('filter' => $showevents)),'','',0,False,True);
$title = lang('InfoLog').' - '.lang($infolog->filters[$showevents]);
unset($infolog);
$portalbox =& CreateObject('phpgwapi.listbox',array(
'title' => $title,
'primary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'secondary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'tertiary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'width' => '100%',
'outerborderwidth' => '0',
'header_background_image' => $GLOBALS['egw']->common->image('phpgwapi/templates/default','bg_filler')
));
foreach(array('up','down','close','question','edit') as $key)
{
$save_app = $GLOBALS['egw_info']['flags']['currentapp'];
$GLOBALS['egw_info']['flags']['currentapp'] = 'infolog';
$portalbox->set_controls($key,Array('url' => '/set_box.php', 'app' => $app_id));
}
$portalbox->data = $data;
$GLOBALS['egw']->translation->add_app('infolog');
$app_id = $GLOBALS['egw']->applications->name2id('infolog');
$GLOBALS['portal_order'][] = $app_id;
$infolog =& CreateObject('infolog.uiinfolog');
$infolog->called_by = 'home';
if (in_array($showevents,array('1','2'))) $showevents = 'own-open-today';
$html = $infolog->index(array('nm' => array('filter' => $showevents)),'','',0,False,True);
$title = lang('InfoLog').' - '.lang($infolog->filters[$showevents]);
unset($infolog);
$portalbox =& CreateObject('phpgwapi.listbox',array(
'title' => $title,
'primary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'secondary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'tertiary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'width' => '100%',
'outerborderwidth' => '0',
'header_background_image' => $GLOBALS['egw']->common->image('phpgwapi/templates/default','bg_filler')
));
foreach(array('up','down','close','question','edit') as $key)
{
$portalbox->set_controls($key,Array('url' => '/set_box.php', 'app' => $app_id));
}
$portalbox->data = $data;
if (!file_exists(EGW_SERVER_ROOT.($et_css_file ='/etemplate/templates/'.$GLOBALS['egw_info']['user']['preferences']['common']['template_set'].'/app.css')))
{
$et_css_file = '/etemplate/templates/default/app.css';
}
if (!file_exists(EGW_SERVER_ROOT.($css_file ='/infolog/templates/'.$GLOBALS['egw_info']['user']['preferences']['common']['template_set'].'/app.css')))
{
$css_file = '/infolog/templates/default/app.css';
}
echo '
if (!file_exists(EGW_SERVER_ROOT.($et_css_file ='/etemplate/templates/'.$GLOBALS['egw_info']['user']['preferences']['common']['template_set'].'/app.css')))
{
$et_css_file = '/etemplate/templates/default/app.css';
}
if (!file_exists(EGW_SERVER_ROOT.($css_file ='/infolog/templates/'.$GLOBALS['egw_info']['user']['preferences']['common']['template_set'].'/app.css')))
{
$css_file = '/infolog/templates/default/app.css';
}
echo '
<!-- BEGIN InfoLog info -->
<style type="text/css">
<!--
@ -59,12 +58,11 @@
@import url('.$GLOBALS['egw_info']['server']['webserver_url'].$css_file.');
-->
</style>
'. $portalbox->draw($html)."\n<!-- END InfoLog info -->\n";
'. $portalbox->draw($html)."\n<!-- END InfoLog info -->\n";
unset($css_file); unset($et_css_file);
unset($portalbox);
unset($html);
$GLOBALS['egw_info']['flags']['currentapp'] = $save_app;
}
unset($showevents);
?>
unset($css_file); unset($et_css_file);
unset($portalbox);
unset($html);
$GLOBALS['egw_info']['flags']['currentapp'] = $save_app;
}
unset($showevents);

View File

@ -1,16 +1,13 @@
<?php
/**************************************************************************\
* eGroupWare - InfoLog Preferences *
* http://www.eGroupWare.org *
* Written by Ralf Becker <RalfBecker@outdoor-training.de> *
* -------------------------------------------- *
* 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$ */
/**
* InfoLog - Preferences
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package infolog
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
/* Setup some values to fill the array of this app's settings below */
$ui =& CreateObject('infolog.uiinfolog'); // need some labels from

View File

@ -1,78 +1,73 @@
<?php
/**************************************************************************\
* eGroupWare - infolog *
* http://www.egroupware.org *
* -------------------------------------------- *
* 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$ */
$setup_info['infolog']['name'] = 'infolog';
$setup_info['infolog']['version'] = '1.4';
$setup_info['infolog']['app_order'] = 5;
$setup_info['infolog']['tables'] = array('egw_infolog','egw_infolog_extra');
$setup_info['infolog']['enable'] = 1;
$setup_info['infolog']['author'] =
$setup_info['infolog']['maintainer'] = array(
'name' => 'Ralf Becker',
'email' => 'ralfbecker@outdoor-training.de'
);
$setup_info['infolog']['license'] = 'GPL';
$setup_info['infolog']['description'] =
'<p><b>CRM</b> (customer-relation-management) type app using Addressbook providing
Todo List, Notes and Phonelog. <b>InfoLog</b> is orininaly based on eGroupWare\'s
old ToDo-List and has the features of all 3 mentioned applications plus fully working ACL
(including Add+Private attributes, add for to addreplys/subtasks).</p>
<p>Responsibility for a task (ToDo) or a phonecall can be <b>delegated</b> to an other
user. All entries can be linked to addressbook entries, projects and/or calendar events.
This allows you to <b>log all activity of a contact</b>/address or project.
The entries may be viewed or added from InfoLog direct or from within
the contact/address, project or calendar view.</p>
<p>Other documents / files can be linked to InfoLog entries and are store in the VFS
(eGroupWare\'s virtual file system). An extension of the VFS allows to symlink
the files to a fileserver, instead of placeing a copy in the VFS
(<i>need to be configured in the admin-section</i>).
It is planed to include emails and faxes into InfoLog in the future.</p>';
$setup_info['infolog']['note'] =
'<p>There is a <b>CSV import filter</b> (in the admin-section) to import existing data.
It allows to interactivly assign fields, customize the values with regular
expressions and direct calls to php-functions (e.g. to link the phone calls
(again) to the addressbook entrys).</p>
<p><b>More information</b> about InfoLog and the current development-status can be found on the
<a href="http://www.egroupware.org/infolog" target="_blank">InfoLog page on our Website</a>.</p>';
/* The hooks this app includes, needed for hooks registration */
$setup_info['infolog']['hooks']['preferences'] = 'infolog.admin_prefs_sidebox_hooks.all_hooks';
$setup_info['infolog']['hooks'][] = 'settings';
$setup_info['infolog']['hooks']['admin'] = 'infolog.admin_prefs_sidebox_hooks.all_hooks';
$setup_info['infolog']['hooks'][] = 'deleteaccount';
$setup_info['infolog']['hooks'][] = 'home';
$setup_info['infolog']['hooks']['addressbook_view'] = 'infolog.uiinfolog.hook_view';
$setup_info['infolog']['hooks']['projects_view'] = 'infolog.uiinfolog.hook_view';
$setup_info['infolog']['hooks']['calendar_view'] = 'infolog.uiinfolog.hook_view';
$setup_info['infolog']['hooks']['infolog'] = 'infolog.uiinfolog.hook_view';
$setup_info['infolog']['hooks']['calendar_include_events'] = 'infolog.boinfolog.cal_to_include';
$setup_info['infolog']['hooks']['calendar_include_todos'] = 'infolog.boinfolog.cal_to_include';
$setup_info['infolog']['hooks']['sidebox_menu'] = 'infolog.admin_prefs_sidebox_hooks.all_hooks';
$setup_info['infolog']['hooks']['search_link'] = 'infolog.infolog_link_registry.search_link';
$setup_info['infolog']['hooks']['pm_custom_app_icons'] = 'infolog.boinfolog.pm_icons';
/* Dependencies for this app to work */
$setup_info['infolog']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['infolog']['depends'][] = array(
'appname' => 'etemplate',
'versions' => Array('1.3','1.4','1.5')
);
/**
* InfoLog - Setup
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package infolog
* @subpackage setup
* @copyright (c) 2003-6 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
$setup_info['infolog']['name'] = 'infolog';
$setup_info['infolog']['version'] = '1.4';
$setup_info['infolog']['app_order'] = 5;
$setup_info['infolog']['tables'] = array('egw_infolog','egw_infolog_extra');
$setup_info['infolog']['enable'] = 1;
$setup_info['infolog']['author'] =
$setup_info['infolog']['maintainer'] = array(
'name' => 'Ralf Becker',
'email' => 'ralfbecker@outdoor-training.de'
);
$setup_info['infolog']['license'] = 'GPL';
$setup_info['infolog']['description'] =
'<p><b>CRM</b> (customer-relation-management) type app using Addressbook providing
Todo List, Notes and Phonelog. <b>InfoLog</b> is orininaly based on eGroupWare\'s
old ToDo-List and has the features of all 3 mentioned applications plus fully working ACL
(including Add+Private attributes, add for to addreplys/subtasks).</p>
<p>Responsibility for a task (ToDo) or a phonecall can be <b>delegated</b> to an other
user. All entries can be linked to addressbook entries, projects and/or calendar events.
This allows you to <b>log all activity of a contact</b>/address or project.
The entries may be viewed or added from InfoLog direct or from within
the contact/address, project or calendar view.</p>
<p>Other documents / files can be linked to InfoLog entries and are store in the VFS
(eGroupWare\'s virtual file system). An extension of the VFS allows to symlink
the files to a fileserver, instead of placeing a copy in the VFS
(<i>need to be configured in the admin-section</i>).
It is planed to include emails and faxes into InfoLog in the future.</p>';
$setup_info['infolog']['note'] =
'<p>There is a <b>CSV import filter</b> (in the admin-section) to import existing data.
It allows to interactivly assign fields, customize the values with regular
expressions and direct calls to php-functions (e.g. to link the phone calls
(again) to the addressbook entrys).</p>
<p><b>More information</b> about InfoLog and the current development-status can be found on the
<a href="http://www.egroupware.org/infolog" target="_blank">InfoLog page on our Website</a>.</p>';
/* The hooks this app includes, needed for hooks registration */
$setup_info['infolog']['hooks']['preferences'] = 'infolog.admin_prefs_sidebox_hooks.all_hooks';
$setup_info['infolog']['hooks'][] = 'settings';
$setup_info['infolog']['hooks']['admin'] = 'infolog.admin_prefs_sidebox_hooks.all_hooks';
$setup_info['infolog']['hooks'][] = 'deleteaccount';
$setup_info['infolog']['hooks'][] = 'home';
$setup_info['infolog']['hooks']['addressbook_view'] = 'infolog.uiinfolog.hook_view';
$setup_info['infolog']['hooks']['projects_view'] = 'infolog.uiinfolog.hook_view';
$setup_info['infolog']['hooks']['calendar_view'] = 'infolog.uiinfolog.hook_view';
$setup_info['infolog']['hooks']['infolog'] = 'infolog.uiinfolog.hook_view';
$setup_info['infolog']['hooks']['calendar_include_events'] = 'infolog.boinfolog.cal_to_include';
$setup_info['infolog']['hooks']['calendar_include_todos'] = 'infolog.boinfolog.cal_to_include';
$setup_info['infolog']['hooks']['sidebox_menu'] = 'infolog.admin_prefs_sidebox_hooks.all_hooks';
$setup_info['infolog']['hooks']['search_link'] = 'infolog.infolog_link_registry.search_link';
$setup_info['infolog']['hooks']['pm_custom_app_icons'] = 'infolog.boinfolog.pm_icons';
/* Dependencies for this app to work */
$setup_info['infolog']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('1.3','1.4','1.5')
);
$setup_info['infolog']['depends'][] = array(
'appname' => 'etemplate',
'versions' => Array('1.3','1.4','1.5')
);

View File

@ -1,15 +1,15 @@
<?php
/**************************************************************************\
* eGroupWare *
* http://www.egroupware.org *
* -------------------------------------------- *
* 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$ */
/**
* InfoLog - Setup
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package infolog
* @subpackage setup
* @copyright (c) 2003-6 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
$phpgw_baseline = array(
'egw_infolog' => array(

View File

@ -1,15 +1,15 @@
<?php
/**************************************************************************\
* eGroupWare - Setup *
* http://www.egroupware.org *
* -------------------------------------------- *
* 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$ */
/**
* InfoLog - Setup
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package infolog
* @subpackage setup
* @copyright (c) 2003-6 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
$test[] = '0.9.11';
function infolog_upgrade0_9_11()

View File

@ -88,8 +88,8 @@ class jscalendar
static $chars_shortcut;
if (is_null($chars_shortcut)) $chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end
$short = lang(adodb_date('M',$ts)); // check if we have a translation of the short-cut
if ($substr($short,-1) == '*') // if not generate one by truncating the translation of the long name
$short = lang($m = adodb_date('M',$ts)); // check if we have a translation of the short-cut
if ($short == $m || $substr($short,-1) == '*') // if not generate one by truncating the translation of the long name
{
$short = $chars_shortcut > 0 ? $substr(lang(adodb_date('F',$ts)),0,$chars_shortcut) :
$substr(lang(adodb_date('F',$ts)),$chars_shortcut);

View File

@ -1255,17 +1255,24 @@
$url = str_replace ( 'http:', 'https:', $url);
}
}
$vars = array();
// add session params if not using cookies
if (!$GLOBALS['egw_info']['server']['usecookies'])
{
$vars['sessionid'] = $this->sessionid;
$vars['kp3'] = $this->kp3;
$vars['domain'] = $this->account_domain;
}
// check if the url already contains a query and ensure that vars is an array and all strings are in extravars
list($url,$othervars) = explode('?',$url);
if ($extravars && is_array($extravars))
{
$vars = $extravars;
$vars += $extravars;
$extravars = $othervars;
}
else
{
$vars = array();
if ($othervars) $extravars .= '&'.$othervars;
}
@ -1286,14 +1293,6 @@
}
}
// add session params if not using cookies
if (!$GLOBALS['egw_info']['server']['usecookies'])
{
$vars['sessionid'] = $this->sessionid;
$vars['kp3'] = $this->kp3;
$vars['domain'] = $this->account_domain;
}
// if there are vars, we add them urlencoded to the url
if (count($vars))
{

View File

@ -68,13 +68,12 @@
/**
* Create a new session id, called by session::create()
*
* Reimplemented to tell the php-sessions to use the id
* Reimplemented to use php session-id
*
* @return string a new session id
*/
function new_session_id()
{
session_id(parent::new_session_id());
session_start();
return session_id();

View File

@ -281,8 +281,8 @@ $monthnames = array('January','February','March','April','May','June','July','Au
$chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end
foreach($monthnames as $n => $name)
{
$short = lang(substr($name,0,3)); // test if our lang-file have a translation for the english short with 3 chars
if ($substr($short,-1) == '*') // else create one by truncating the full translation to x chars
$short = lang($m = substr($name,0,3)); // test if our lang-file have a translation for the english short with 3 chars
if ($short == $m || $substr($short,-1) == '*') // else create one by truncating the full translation to x chars
{
$short = $chars_shortcut > 0 ? $substr(lang($name),0,$chars_shortcut) : $substr(lang($name),$chars_shortcut);
}

View File

@ -40,10 +40,10 @@
{
$format .= 'H:i';
}
for($i = -23; $i<24; $i++)
for($i = -23.5; $i < 24.0; $i += 0.5)
{
$t = time() + $i * 60*60;
$tz_offset[$i] = $i . ' ' . lang('hours').': ' . date($format,$t);
$t = time() + round($i * 3600);
$tz_offset[(string)$i] = sprintf('%3.1lf',$i) . ' ' . lang('hours').': ' . date($format,$t);
}
$date_formats = array(

View File

@ -372,7 +372,7 @@
if (!isset($args['warning']))
{
$args['warning'] = lang('The %1 extension is needed from: %2.',$name,
is_array($args['from'] ? implode(', ',$args['from']) : $args['from']));
is_array($args['from']) ? implode(', ',$args['from']) : $args['from']);
}
echo "<div class='setup_info'>".$args['warning'].'</div>';
}