make the phpgw Version-0_9_16-branch HEAD

This commit is contained in:
Ralf Becker 2003-08-28 14:31:11 +00:00
parent f76c6eedd7
commit b8557e49d9
984 changed files with 23863 additions and 36043 deletions

View File

@ -1,6 +0,0 @@
phpgroupware-calendar (0.9.14-0.RC3.3) unstable; urgency=low
* New release.
- Source is now splitted into modules.
-- Luca - De Whiskey's - De Vitis <luca@debian.org> Mon, 21 May 2001 15:00:56 +0200

View File

@ -1,15 +0,0 @@
Source: phpgroupware-calendar
Section: web
Priority: optional
Maintainer: Luca - De Whiskey's - De Vitis <luca@debian.org>
Build-Depends: debhelper (>> 3.0.0)
Standards-Version: 3.5.2
Package: phpgroupware-calendar
Section: web
Architecture: all
Depends: phpgroupware (>= ${Source-Version}), php3-pgsql | php3-cgi-pgsql | php4-pgsql | php3-mysql | php3-cgi-mysql | php4-mysql
Description: The phpGroupWare calendar management module
This phpGroupWare module provides a calendar scheduling module with
alerts for high priority events.

View File

@ -1,15 +0,0 @@
This package was debianized by Luca - De Whiskey's - De Vitis <luca@debian.org> on
Sat, 29 Jun 2002 17:13:40 +0200
It was downloaded from the CVS repository at subversion.gnu.org. Try:
prompt$ CVSROOT=:pserver:anoncvs@subversions.gnu.org:/cvsroot/phpgroupware
prompt$ CVS_RSH=ssh
prompt$ cvs login
prompt$ cvs get all packages
Upstream Author(s):
Please, see credits.txt, the README file or visit http://apps.phpgroupware.org/
Copyright:
A copy of the GNU General Public License, version 2, can be found in
/usr/share/common-licenses/GPL .

View File

@ -1,74 +0,0 @@
#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 by Joey Hess.
#
# This version is for a hypothetical package that builds an
# architecture-dependant package, as well as an architecture-independent
# package.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# This is the debhelper compatability version to use.
export DH_COMPAT=3
APP = calendar
PACKAGE = debian/phpgroupware-$(APP)/usr/share/phpgroupware/$(APP)
PACKAGEDOC = debian/phpgroupware-$(APP)/usr/share/doc/phpgroupware-$(APP)
COPYRIGHT = -iname copyright\* -or -iname license
CHANGELOG = -iname change\*
INSTALL = -iname install
FINDOPT = -type f -not \( -path \*CVS\* -or -path \*debian\* -or -name .cvsignore \)
SPECIAL = -size 0 -or $(INSTALL) -or $(CHANGELOG) -or $(COPYRIGHT) -or -name \*.sgml
STAMPS = -name configure-stamp -or -name build-stamp
APPFILES = -not \( -path \*doc\* -or -path \. -or -name '*.pl' -or -name '*.py' -or $(STAMPS) \)
DOCFILES = -not \( $(SPECIAL) \)
configure: configure-stamp
configure-stamp:
dh_testdir
# No configuration needed.
touch configure-stamp
build: configure-stamp build-stamp
build-stamp:
dh_testdir
# Here should go the commands necessary to build the sgml documentation...
touch build-stamp
clean:
dh_testdir
rm -f build-stamp configure-stamp
rm -f debian/.builded
rm -f debian/files
# Here should go the commands to clean the builded sgml documents.
dh_clean
install: build
dh_testdir
# Install $(APP) files in $(PACKAGE)
find $(FINDOPT) $(APPFILES) \
-exec install -D --mode=644 {} $(PACKAGE)/{} \;
# Install $(APP) doc files in $(PACKAGEDOC)
cd doc ;\
find $(FINDOPT) $(DOCFILES) \
-exec install -D --mode=644 {} ../$(PACKAGEDOC)/{} \;
binary-indep: build install
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb | tee debian/.builded
binary: binary-indep
.PHONY: build clean binary-indep binary-arch binary install configure

50
calendar/help/DE/add.php Normal file
View File

@ -0,0 +1,50 @@
<?php
/**************************************************************************\
* phpGroupWare - User manual *
* http://www.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. *
\**************************************************************************/
/* $Id$ */
$phpgw_flags = Array(
'currentapp' => 'manual'
);
$phpgw_info['flags'] = $phpgw_flags;
include('../../../header.inc.php');
$font = $phpgw_info['theme']['font'];
?> <img src="<?php echo $phpgw->common->image('calendar','navbar.gif'); ?>" border="0">
<font face="<?php echo $font; ?>" size="2">
<p/>&nbsp;&nbsp;&nbsp;&nbsp; Ein durchsuchbares t&auml;gliches, w&ouml;chentliches, monatliches
und j&auml;hrliches Kalender/Planer-Programm mit Alarm f&uuml;r wichtige Ereignisse.<br/>
<ul>
<li><b>Einen Eintrag hinzuf&uuml;gen:</b> <img src="<?php echo $phpgw->common->image('calendar','new.gif'); ?>"><br/>
Um eine Eintragung f&uuml;r sich selber oder f&uuml;r ihre Gruppe hinzuzuf&uuml;gen
klicken Sie auf das kleine Symbol (+) wie das oben. Eine Formularseite wird
angezeigt, auf der Sie die wichtigen Felder ausf&uuml;llen k&ouml;nnen.</li>
<p/>&nbsp;&nbsp;&nbsp;&nbsp;
<table width="80%">
<td bgcolor="#ccddeb" width="50%" valign="top"> <font face="<?php echo $font ?>" size="2">
Titel:<br/>
Vollst&auml;ndige Beschreibung:<br/>
Datum:<br/>
Zeit:<br/>
Dauer:<br/>
Priorit&auml;t:<br/>
Zugriff:</td>
<td bgcolor="#ccddeb" width="50%" valign="top"> <font face="<?php echo $font; ?>" size="2">
Gruppen Auswahl:<br/>
Teilnehmer;<br/>
Wiederholungstyp:<br/>
Wiederholungs-Enddatum:<br/> Intervall:<font size="2" face="<?php echo $font; ?>">&nbsp;</font>:</td>
</table>
F&uuml;llen Sie die Felder aus und klicken Sie absenden.
</ul>
<br/>
<b>Wichtig:</b> Der Zugriff kann, wie mit anderen Programmen dieses Paketes, auf
Privat, Gruppen lesbar oder global eingestellt werden.
<p/>&nbsp;&nbsp;&nbsp;&nbsp;</font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -0,0 +1,73 @@
<?php
/**************************************************************************\
* phpGroupWare - User manual *
* http://www.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. *
\**************************************************************************/
/* $Id$ */
$phpgw_flags = Array(
'currentapp' => 'manual'
);
$phpgw_info['flags'] = $phpgw_flags;
include('../../../header.inc.php');
$font = $phpgw_info['theme']['font'];
?>
<img src="<?php echo $phpgw->common->image('calendar','navbar.gif'); ?>" border="0">
<font face="<?php echo $font; ?>" size="2"><p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ein durchsuchbares
t&auml;gliches, w&ouml;chentliches, monatliches und j&auml;hrliches Kalender/Planer-Programm
mit Alarm f&uuml;r wichtige Ereignisse.<br/>
Um entweder den St&uuml;ndlich/T&auml;glichen, w&ouml;chentlichen oder monatlichen
Kalender zu sehen, klicken Sie auf das Betreffende Symbol in der linken oberen
Ecke.<br/>
<ul><li><b>Ansicht:</b><img src="<?php echo $phpgw->common->image('calendar','today.gif'); ?>">Tag <img src="<?php echo $phpgw->common->image('calendar','week.gif'); ?>">Woche <img src="<?php echo $phpgw->common->image('calendar','month.gif'); ?>">Monat <img src="<?php echo $phpgw->common->image('calendar','year.gif'); ?>">Jahr<br/>
<i>Tag:</i><br/>
Der heutige Tag wird angezeigt, aufgeteilt in st&uuml;ndliche Bl&ouml;cke.
Anfangs und End-Zeit des Tages können in den Prefrences (Einstellungen, Optionen)
eingestellt werden.<br/>
<i>Woche:</i><br/>
Die aktuelle Woche wird angezeigt. Der Wochenanfangstag kann in den Prefrences (Optionen) eingestellt werden.<br/>
<i>Monat:</i><br/>
Der vor eingestellter Eintrag ist der aktuelle Monat. Der vorherige oder künftige
Monat sind leicht erreichbar mit nur einem klick.<br/>
<i>Jahr:</i><br/>
Das laufende Jahr wird angezeigt. Es werden die kleinen monatlichen Kalender
ansichten benutzt.</li>
<p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<li><b>Eine Eintragung hinzuf&uuml;gen:</b> <img src="<?php echo $phpgw->common->image('calendar','new.gif'); ?>"><br/>
Um eine Eintragung für sich selber oder für Mitglieder Ihrer Gruppe hinzuzufügen
klicken Sie auf das kleine (+) Symbol wie oben gezeigt. Eine Formularseite
wird angezeigt, auf der Sie dann die relevanten Felder ausf&uuml;llen k&ouml;nnen.
<table width="80%">
<td bgcolor="#ccddeb" width="50%" valign="top">
<font face="<?php echo $font; ?>" size="2">
Titel:<br/>
Vollst&auml;ndige Beschreibung:<br/>
Datum:<br/>
Zeit:<br/>
Dauer:<br/>
Priorit&auml;t:<br/>
Zugriff:</td>
<td bgcolor="#ccddeb" width="50%" valign="top">
<font face="<?php echo $font; ?>" size="2">
Gruppen Auswahl:<br/>
Teilnehmer;<br/>
Wiederholungstyp:<br/>
Wiederholungs-Enddatum:<br/>
Intervall:</td></table>
F&uuml;llen Sie die Felder aus und klicken Sie absenden.<br/>
<b>Wichtig:</b> Der Zugriff kann, wie mit anderen Programmen dieses Pakets,
auf privat, Gruppen und global eingestellt werden.</li>
<p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<li><b>Bearbeiten:L&ouml;schen</b>&nbsp&nbsp<img src="<?php echo $phpgw->common->image('calendar','circle.gif'); ?>"><br/>
Um eine Eintragung zu bearbeiten oder zu l&ouml;schen, klicken Sie auf das kleine Symbol wie oben gezeigt.
W&auml;hlen Sie bearbeiten oder löschen aus.<br/>
Wenn Sie Bearbeiten w&auml;hlen wird ihnen eine Formular seite angezeigt,
worauf Sie die gewünschten Felder bearbeiten können. <br/>
<b>Wichtig:</b>Sie können nur Eintragungen die Sie selber gemacht haben bearbeiten oder löschen.</li><p/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -0,0 +1,30 @@
<?php
/**************************************************************************\
* phpGroupWare - User manual *
* http://www.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. *
\**************************************************************************/
/* $Id$ */
$phpgw_flags = Array(
'currentapp' => 'manual'
);
$phpgw_info['flags'] = $phpgw_flags;
include('../../../header.inc.php');
?>
<img src="<?php echo $phpgw->common->image('calendar','navbar.gif'); ?>" border="0">
<font face="<?php echo $phpgw_info['theme']['font']; ?>" size="2"><p/>&nbsp;&nbsp; Ein
durchsuchbares t&auml;gliches, w&ouml;chentliches, monatliches und j&auml;hrliches
Kalender/Planer-Programm mit Alarm f&uuml;r wichtige Ereignisse.<br/>
<ul><li><b>Bearbeiten:L&ouml;schen</b>&nbsp&nbsp<img src="<?php echo $phpgw->common->image('calendar','circle.gif'); ?>"><br/>
Um eine Eintragung zu bearbeiten oder zu l&ouml;schen, klicken Sie auf das kleine Symbol wie oben gezeigt.
W&auml;hlen Sie bearbeiten oder löschen aus.<br/>
Wenn Sie Bearbeiten w&auml;hlen wird ihnen eine Formular seite angezeigt,
worauf Sie die gewünschten Felder bearbeiten können. </li><p/>&nbsp;&nbsp;
<b>Wichtig:</b>Sie k&ouml;nnen nur Eintragungen die Sie selber gemacht haben bearbeiten oder l&ouml;schen.<p/>&nbsp;&nbsp;</ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

45
calendar/help/DE/view.php Normal file
View File

@ -0,0 +1,45 @@
<?php
/**************************************************************************\
* phpGroupWare - User manual *
* http://www.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. *
\**************************************************************************/
/* $Id$ */
$phpgw_flags = Array(
'currentapp' => 'manual'
);
$phpgw_info['flags'] = $phpgw_flags;
include('../../../header.inc.php');
?> <img src="<?php echo $phpgw->common->image('calendar','navbar.gif'); ?>" border="0">
<font face="<?php echo $phpgw_info['theme']['font']; ?>" size="2">
<p/>&nbsp;&nbsp;&nbsp; Ein durchsuchbares t&auml;gliches, w&ouml;chentliches, monatliches
und j&auml;hrliches Kalender/Planer-Programm mit Alarm f&uuml;r wichtige Ereignisse.<br/>
Um entweder den St&uuml;ndlich/T&auml;glichen, w&ouml;chentlichen oder monatlichen
Kalender zu sehen, klicken Sie auf das Betreffende Symbol in der linken oberen
Ecke.<br/>
<ul>
<li><b>Ansicht:</b><img src="<?php echo $phpgw->common->image('calendar','today.gif'); ?>">Tag
<img src="<?php echo $phpgw->common->image('calendar','week.gif'); ?>">Woche
<img src="<?php echo $phpgw->common->image('calendar','month.gif'); ?>">Monat
<img src="<?php echo $phpgw->common->image('calendar','year.gif'); ?>">Jahr
<p/>&nbsp;&nbsp;&nbsp; <i>Tag:</i><br/>
Der heutige Tag wird angezeigt, aufgeteilt in st&uuml;ndliche Bl&ouml;cke.
Anfangs und End-Zeit des Tages k&ouml;nnen in den Prefrences (Einstellungen,
Optionen) eingestellt werden.
<p/>&nbsp;&nbsp;&nbsp; <i>Woche:</i><br/>
Die aktuelle Woche wird angezeigt. Der Wochenanfangstag kann in den Prefrences
(Optionen) eingestellt werden.
<p/>&nbsp;&nbsp;&nbsp; <i>Monat:</i><br/>
Der vor eingestellter Eintrag ist der aktuelle Monat. Der vorherige oder k&uuml;nftige
<br>
Monat sind leicht erreichbar mit nur einem klick.
<p/>&nbsp;&nbsp;&nbsp;</li>
</ul>
</font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -43,3 +43,4 @@ Frequency:</td></table>
Simply fill in the fields, and click Submit.</ul><br/>
<b>Note:</b> Access can be set as with other applications in this suite, Private,Group Readable,Globally
Readable.<p/></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -61,3 +61,4 @@ To edit an entry group click on the small icon as shown above.
A form page will be presented, where you can edit the relevant fields.
Chose edit or delete from the bottom of the page.<br/>
<b>Note:</b>You can only make changes or delete those calendar entries created by you.</li><p/></ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -25,3 +25,4 @@ To edit an entry group click on the small icon as shown above.
A form page will be presented, where you can edit the relevant fields.
Chose edit or delete from the bottom of the page.</li><p/>
<b>Note:</b>You can only make changes or delete those calendar entries created by you.<p/></ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -31,3 +31,4 @@ Current week is displayed. Start day of week can be set in preferences.<p/>
<i>Month:</i><br/>
Default entry is to the current month, viewed in monthly option, with both prior and future
months easily accessible with one click.<p/></li></ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -46,3 +46,4 @@ T
<b>Huomaa:</b>
Kuten muidenkin sovellusten kohdalla, voit antaa tiedon
käyttöoikeudeksi Yksityinen, Oma ryhmä tai Kaikki.<p/></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -66,3 +66,4 @@ Muokataksesi tapahtumaa napsauta t
Näytölle avautuu muokkauslomake.
Valitse muokkaa tai poista sivun alareunasta.<br/>
<b>Huomaa:</b>Voit muokata ja poistaa vain itse luomiasi tapahtumia.</li><p/></ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -26,3 +26,4 @@ Muokataksesi tapahtumaa napsauta t
Näytölle avautuu muokkauslomake.
Valitse muokkaa tai poista sivun alareunasta.</li><p/>
<b>Huomaa:</b>Voit muokata ja poistaa vain itse luomiasi tapahtumia.<p/></ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -34,3 +34,4 @@ asetuksista.<br/>
<i>Kuukausi:</i><br/>
Valittu kuukausi sekä edellinen ja seuraava kuukausi mini-kalentereina.
Voit siirtyä päivänäkymään haluamaasi päivää napsauttamalla.<p/></li></ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -9,7 +9,7 @@
* option) any later version. *
\**************************************************************************/
/* $Id: add.php,v 1.1 2001/05/11 02:50:44 skeeter Exp $ */
/* $Id$ */
$phpgw_flags = Array(
'currentapp' => 'manual'
);
@ -42,3 +42,4 @@
頻度:</td></table>
などの項目を入力し、実行ボタンをクリックします。<br/>
<b>備考:</b> 他のアプリケーションで備えているアクセス権(プライベート、グループ、グローバル)も、このアプリケーションで備えています。</li></ul><p/></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -9,7 +9,7 @@
* option) any later version. *
\**************************************************************************/
/* $Id: calendar.php,v 1.1 2001/05/11 02:50:44 skeeter Exp $ */
/* $Id$ */
$phpgw_flags = Array(
'currentapp' => 'manual'
@ -57,3 +57,4 @@
予定を訂正するために、このアイコンをクリックします。
訂正する予定が表示され、訂正か削除を選択するボタンが表示されます。<br/>
<b>備考:</b>訂正や削除は、自分で作成したものに限ります。</li><p/></ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -9,7 +9,7 @@
* option) any later version. *
\**************************************************************************/
/* $Id: edit_delete.php,v 1.1 2001/05/11 02:50:44 skeeter Exp $ */
/* $Id$ */
$phpgw_flags = Array(
'currentapp' => 'manual'
@ -24,3 +24,4 @@
予定を訂正するために、このアイコンをクリックします。
訂正する予定が表示され、訂正か削除を選択するボタンが表示されます。<br/>
<b>備考:</b>訂正や削除は、自分で作成したものに限ります。</li><p/></ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -9,7 +9,7 @@
* option) any later version. *
\**************************************************************************/
/* $Id: view.php,v 1.2 2001/05/11 03:00:00 skeeter Exp $ */
/* $Id$ */
$phpgw_flags = Array(
'currentapp' => 'manual'
@ -30,3 +30,4 @@
月単位で予定を表示します。月の表示はデフォルト設定となっています。先月や翌月にワンクリックでアクセスすることができます。<br/>
<i>今年:</i><br/>
年単位で予定を表示します。小さい月単位のカレンダーを一年分表示します。<p/></li></ul></font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -25,3 +25,4 @@ Version: <b><?php echo $setup_info[$appname]['version']; ?></b><p/>
This app was based on <a href="http://webcalendar.sourceforge.net" target="_new">WebCalendar</a><br/><p/>
Transformed by <a href="<?php echo $phpgw->link('/email/compose.php','to=skeeter@phpgroupware.org'); ?>" target="_new">Mark A Peters (Skeeter)</a><br/>
</font>
<?php $phpgw->common->phpgw_footer(); ?>

View File

@ -14,6 +14,10 @@
/* $Id$ */
define('PHPGW_ACL_DELETEALARM',PHPGW_ACL_DELETE); // for now
define('PHPGW_ACL_SETALARM',PHPGW_ACL_WRITE);
define('PHPGW_ACL_READALARM',PHPGW_ACL_READ);
class boalarm
{
var $so;
@ -26,46 +30,180 @@
// var $debug = True;
var $public_functions = array(
'add' => True,
'delete' => True
);
function boalarm()
{
$cal_id = (isset($GLOBALS['HTTP_POST_VARS']['cal_id'])?intval($GLOBALS['HTTP_POST_VARS']['cal_id']):'');
$cal_id = (isset($_POST['cal_id'])?intval($_POST['cal_id']):'');
if($cal_id)
{
$this->cal_id = $cal_id;
}
$this->cal = CreateObject('calendar.bocalendar',1);
$this->tz_offset = $this->cal->datetime->tz_offset;
$this->bo = CreateObject('calendar.bocalendar',1);
$this->so = CreateObject('calendar.socalendar',1);
$this->tz_offset = $this->bo->datetime->tz_offset;
if($this->debug)
{
echo "BO Owner : ".$this->cal->owner."<br>\n";
echo "BO Owner : ".$this->bo->owner."<br>\n";
}
if($this->cal->use_session)
if($this->bo->use_session)
{
$this->save_sessiondata();
}
}
function save_sessiondata()
{
$data = array(
'filter' => $this->cal->filter,
'cat_id' => $this->cal->cat_id,
'owner' => $this->cal->owner,
'year' => $this->cal->year,
'month' => $this->cal->month,
'day' => $this->cal->day
'filter' => $this->bo->filter,
'cat_id' => $this->bo->cat_id,
'owner' => $this->bo->owner,
'year' => $this->bo->year,
'month' => $this->bo->month,
'day' => $this->bo->day
);
$this->cal->save_sessiondata($data);
$this->bo->save_sessiondata($data);
}
function read_entry($cal_id)
{
return $this->cal->read_entry($cal_id);
return $this->bo->read_entry(intval($cal_id));
}
/*!
@function add
@abstract adds a new alarm to an event
@syntax add(&$event,$time,$login_id)
@param &$event event to add the alarm too
@param $time for the alarm in sec before the starttime of the event
@param $login_id user to alarm
@returns the alarm or False
*/
function add(&$event,$time,$owner)
{
if (!$this->check_perms(PHPGW_ACL_SETALARM,$owner) || !($cal_id = $event['id']))
{
return False;
}
$alarm = Array(
'time' => ($etime=$this->bo->maketime($event['start'])) - $time,
'offset' => $time,
'owner' => $owner,
'enabled' => 1
);
$alarm['id'] = $this->so->save_alarm($cal_id,$alarm);
$event['alarm'][$alarm['id']] = $alarm;
return $alarm;
}
/*!
@function check_perms
@abstract checks if user has a certain grant from the owner of an alarm or event
@syntax check_perms($grant,$owner)
@param $grant PHPGW_ACL_{SET|READ|DELETE}ALARM (defined at the top of this file)
*/
function check_perms($grant,$owner)
{
return $this->bo->check_perms($grant,0,$owner);
}
/*!
@function participants
@abstract get the participants of an event, the user has grants to alarm
@syntax participants($event,$fullnames=True)
@param $event or cal_id of an event
@param $fullnames if true return array with fullnames as values
@returns array with account_ids as keys
*/
function participants($event,$fullnames=True)
{
if (!is_array($event))
{
$event = $this->read_entry($event);
}
if (!$event)
{
return False;
}
$participants = array();
foreach ($event['participants'] as $uid => $status)
{
if ($this->check_perms(PHPGW_ACL_SETALARM,$uid))
{
$participants[$uid] = $fullnames ? $GLOBALS['phpgw']->common->grab_owner_name($uid) : True;
}
}
return $participants;
}
/*!
@function enable
@abstract enable or disable one or more alarms identified by its ids
@syntax enable($ids,$enable=True)
@param $ids array with alarm ids as keys (!)
@returns the number of alarms enabled or -1 for insuficent permission to do so
@note Not found alarms or insuficent perms stop the enableing of multiple alarms
*/
function enable($alarms,$enable=True)
{
$enabled = 0;
foreach ($alarms as $id => $field)
{
if (!($alarm = $this->so->read_alarm($id)))
{
return 0; // alarm not found
}
if (!$alarm['enabled'] == !$enable)
{
continue; // nothing to do
}
if ($enable && !$this->check_perms(PHPGW_ACL_SETALARM,$alarm['owner']) ||
!$enable && !$this->check_perms(PHPGW_ACL_DELETEALARM,$alarm['owner']))
{
return -1;
}
$alarm['enabled'] = intval(!$alarm['enabled']);
if ($this->so->save_alarm($alarm['cal_id'],$alarm))
{
++$enabled;
}
}
return $enabled;
}
/*!
@function delete
@abstract delete one or more alarms identified by its ids
@syntax delete($ids)
@param $ids array with alarm ids as keys (!)
@returns the number of alarms deleted or -1 for insuficent permission to do so
@note Not found alarms or insuficent perms stop the deleting of multiple alarms
*/
function delete($alarms)
{
$deleted = 0;
foreach ($alarms as $id => $field)
{
if (!($alarm = $this->so->read_alarm($id)))
{
return 0; // alarm not found
}
if (!$this->check_perms(PHPGW_ACL_DELETEALARM,$alarm['owner']))
{
return -1;
}
if ($this->so->delete_alarm($id))
{
++$deleted;
}
}
return $deleted;
}
/* Public functions */
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,97 @@
<?php
/**************************************************************************\
* phpGroupWare - Calendar - Custom fields and sorting *
* http://www.phpgroupware.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$ */
class bocustom_fields
{
var $stock_fields = array(
'title' => array(
'label' => 'Title',
'title' => True
),
'description' => 'Description',
'category' => 'Category',
'location' => 'Location',
'startdate' => 'Start Date/Time',
'enddate' => 'End Date/Time',
'priority' => 'Priority',
'access' => 'Access',
'participants'=> 'Participants',
'owner' => 'Created By',
'updated' => 'Updated',
'alarm' => 'Alarm',
'recure_type' => 'Repetition'
);
function bocustom_fields()
{
$this->config = CreateObject('phpgwapi.config','calendar');
$this->config->read_repository();
$this->fields = &$this->config->config_data['fields'];
if (!is_array($this->fields)) {
$this->fields = array();
}
foreach ($this->fields as $field => $data) // this can be removed after a while
{
if (!isset($this->stock_fields[$field]) && $field[0] != '#')
{
unset($this->fields[$field]);
$this->fields['#'.$field] = $data;
}
}
foreach($this->stock_fields as $field => $data)
{
if (!is_array($data))
{
$data = array('label' => $data);
}
if (!isset($this->fields[$field]))
{
$this->fields[$field] = array(
'name' => $field,
'title' => $data['title'],
'disabled' => $data['disabled']
);
}
$this->fields[$field]['label'] = $data['label'];
$this->fields[$field]['length'] = $data['length'];
$this->fields[$field]['shown'] = $data['shown'];
}
}
function set($data)
{
if (is_array($data) && strlen($data['name']) > 0)
{
if (!isset($this->stock_fields[$name = $data['name']]))
{
$name = '#'.$name;
}
$this->fields[$name] = $data;
}
}
function save($fields=False)
{
if ($fields)
{
$this->fields = $fields;
}
//echo "<pre>"; print_r($this->config->config_data); echo "</pre>\n";
$this->config->save_repository();
}
}

View File

@ -48,8 +48,6 @@
{
$this->so = CreateObject('calendar.soholiday');
if(isset($GLOBALS['locale'])) { $this->locales[] = $GLOBALS['locale']; }
if(isset($GLOBALS['start'])) { $this->start = intval($GLOBALS['start']); } else { $this->start = 0; }
if(isset($GLOBALS['query'])) { $this->query = $GLOBALS['query']; }
@ -58,9 +56,13 @@
if(isset($GLOBALS['order'])) { $this->order = $GLOBALS['order']; }
if(isset($GLOBALS['id'])) { $this->id = $GLOBALS['id']; }
if(isset($GLOBALS['year'])) { $this->year = $GLOBALS['year']; } else { $this->year = date('Y'); }
$this->id = get_var('id',array('POST','GET'));
$this->year = get_var('year',array('POST','GET'),date('Y'));
$this->locale = get_var('locale',array('POST','GET'));
if ($this->locale)
{
$this->locales[] = $this->locale;
}
if($this->debug)
{
@ -176,8 +178,7 @@
function prepare_read_holidays($year=0,$owner=0)
{
$datetime = CreateObject('phpgwapi.datetime');
$this->year = (isset($year) && $year > 0?$year:$GLOBALS['phpgw']->common->show_date(time() - $datetime->tz_offset,'Y'));
$this->year = (isset($year) && $year > 0?$year:$GLOBALS['phpgw']->common->show_date(time() - $GLOBALS['phpgw']->datetime->tz_offset,'Y'));
$this->owner = ($owner?$owner:$GLOBALS['phpgw_info']['user']['account_id']);
if($this->debug)
@ -393,7 +394,6 @@
}
$temp_locale = $GLOBALS['phpgw_info']['user']['preferences']['common']['country'];
$datetime = CreateObject('phpgwapi.datetime');
for($i=0;$i<count($holidays);$i++)
{
$c = $i;
@ -406,14 +406,13 @@
$GLOBALS['phpgw_info']['user']['preferences']['common']['country'] = $holidays[$i]['locale'];
$holidaycalc = CreateObject('calendar.holidaycalc');
}
$holidays[$i]['date'] = $holidaycalc->calculate_date($holidays[$i], $holidays, $this->year, $datetime, $c);
$holidays[$i]['date'] = $holidaycalc->calculate_date($holidays[$i], $holidays, $this->year, $c);
if($c != $i)
{
$i = $c;
}
}
unset($holidaycalc);
unset($datetime);
$this->holidays = $this->sort_holidays_by_date($holidays);
$this->cached_holidays = $this->set_holidays_to_date($this->holidays);
$GLOBALS['phpgw_info']['user']['preferences']['common']['country'] = $temp_locale;

View File

@ -97,6 +97,7 @@ class boicalendar
var $parameter = Array();
var $debug_str = False;
var $api = True;
var $chunk_split = True;
/*
* Base Functions
@ -1253,7 +1254,7 @@ class boicalendar
);
if(!is_object($GLOBALS['phpgw']->datetime))
{
$GLOBALS['phpgw']->datetime = createobject('phpgwaqpi.datetime');
$GLOBALS['phpgw']->datetime = createobject('phpgwapi.datetime');
}
}
@ -1293,12 +1294,12 @@ class boicalendar
function fold($str)
{
return chunk_split($str,FOLD_LENGTH,"\r\n");
return $this->chunk_split==True ? chunk_split($str,FOLD_LENGTH,"\r\n") : $str."\r\n";
}
function strip_quotes($str)
{
return str_replace('\"','',$str);
return str_replace('"','',$str);
}
function from_text($str)
@ -1563,7 +1564,7 @@ class boicalendar
$quote = '';
if($seperator == '=')
{
$quote = '\"';
$quote = '"';
}
$return_value = $this->fold('X-'.$x_type['name'].$seperator.$quote.$x_type['value'].$quote);
@ -1612,7 +1613,7 @@ class boicalendar
$include_datetime = True;
continue;
}
$quote = (@$this->parameter[$key]['quoted']?'\"':'');
$quote = (@$this->parameter[$key]['quoted']?'"':'');
if(isset($event[$key]) && @$this->parameter[$key]['properties'][$property])
{
$change_text = @$this->parameter[$key]['to_text'];
@ -1792,7 +1793,7 @@ class boicalendar
case 'function':
$str .= ';'.str_replace('_','-',strtoupper($value)).'=';
$function = @$this->parameter[$key]['function'];
$str .= (@$this->parameter[$key]['quoted']?'\"':'').$this->$function($event[$key]).(@$this->parameter[$key]['quoted']?'\"':'');
$str .= (@$this->parameter[$key]['quoted']?'"':'').$this->$function($event[$key]).(@$this->parameter[$key]['quoted']?'"':'');
break;
case 'float':
if(!empty($event[$value]))
@ -2274,28 +2275,28 @@ class boicalendar
switch($var)
{
case 'NEEDS-ACTION':
return NEEDS_ACTION;
return 0; // NEEDS_ACTION;
break;
case 'ACCEPTED':
return ACCEPTED;
return 1; // ACCEPTED;
break;
case 'DECLINED':
return DECLINED;
return 2; // DECLINED;
break;
case 'TENTATIVE':
return TENTATIVE;
return 3; // TENTATIVE;
break;
case 'DELEGATED':
return DELEGATED;
return 4; // DELEGATED;
break;
case 'COMPLETED':
return COMPLETED;
return 5; // COMPLETED;
break;
case 'IN-PROCESS':
return IN_PROCESS;
return 6; // IN_PROCESS;
break;
default:
return OTHER;
return 99; // OTHER;
break;
}
}
@ -2303,25 +2304,25 @@ class boicalendar
{
switch(intval($var))
{
case NEEDS_ACTION:
case 0: // NEEDS_ACTION:
return 'NEEDS-ACTION';
break;
case ACCEPTED:
case 1: // ACCEPTED:
return 'ACCEPTED';
break;
case DECLINED:
case 2: // DECLINED:
return 'DECLINED';
break;
case TENTATIVE:
case 3: // TENTATIVE:
return 'TENTATIVE';
break;
case DELEGATED:
case 4: // DELEGATED:
return 'DELEGATED';
break;
case COMPLETED:
case 5: // COMPLETED:
return 'COMPLETED';
break;
case IN_PROCESS:
case 6: // IN_PROCESS:
return 'IN-PROCESS';
break;
default:
@ -2903,8 +2904,7 @@ class boicalendar
)
)
);
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$GLOBALS['phpwg']->common->phpgw_exit();
}
$uploaddir = $GLOBALS['phpgw_info']['server']['temp_dir'] . SEP;
@ -2941,8 +2941,7 @@ class boicalendar
)
)
);
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$GLOBALS['phpwg']->common->phpgw_exit();
}
if(!is_object($GLOBALS['uicalendar']))
@ -3204,13 +3203,14 @@ class boicalendar
)
)
);
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$GLOBALS['phpgw']->common->phpgw_exit();
}
function export($l_event_id=0)
function export($params)
{
$event_id = ($l_event_id?$l_event_id:$GLOBALS['HTTP_GET_VARS']['cal_id']);
$event_id = ($params['l_event_id']?$params['l_event_id']:$GLOBALS['HTTP_GET_VARS']['cal_id']);
$this->chunk_split = $params['chunk_split'];
$method = ($params['method']?$params['method']:"publish");
$string_array = Array(
'summary' => 'description',
@ -3235,7 +3235,7 @@ class boicalendar
$this->set_var($ical['prodid'],'value','-//phpGroupWare//phpGroupWare '.$setup_info['calendar']['version'].' MIMEDIR//'.strtoupper($GLOBALS['phpgw_info']['user']['preferences']['common']['lang']));
$this->set_var($ical['version'],'value','2.0');
$this->set_var($ical['method'],'value',strtoupper('publish'));
$this->set_var($ical['method'],'value',strtoupper($method));
if(!$GLOBALS['phpgw_info']['flags']['included_classes']['uicalendar'])
{
@ -3276,13 +3276,24 @@ class boicalendar
}
}
// use system's date info for caluculating local timezone's offset in minutes
//
$gmt_offset = date('O',$GLOBALS['phpgw']->datetime->users_localtime); // offset to GMT
$offset = intval(substr($gmt_offset, 1, 2)) * 60 + intval(substr($gmt_offset, 3, 2));
if ($offset > 0)
{
$event['start']['min'] -= $offset;
$event['end']['min'] -= $offset;
$event['modtime']['min'] -= $offset;
}
$ical_event['priority'] = $event['priority'];
$ical_event['class'] = intval($event['public']);
$dtstart_mktime = $so_event->maketime($event['start']) - $GLOBALS['phpgw']->datetime->tz_offset;
$dtstart_mktime = $so_event->maketime($event['start']);
$this->parse_value($ical_event,'dtstart',date('Ymd\THis\Z',$dtstart_mktime),'vevent');
$dtend_mktime = $so_event->maketime($event['end']) - $GLOBALS['phpgw']->datetime->tz_offset;
$dtend_mktime = $so_event->maketime($event['end']);
$this->parse_value($ical_event,'dtend',date('Ymd\THis\Z',$dtend_mktime),'vevent');
$mod_mktime = $so_event->maketime($event['modtime']) - $GLOBALS['phpgw']->datetime->tz_offset;
$mod_mktime = $so_event->maketime($event['modtime']);
$this->parse_value($ical_event,'last_modified',date('Ymd\THis\Z',$mod_mktime),'vevent');
@reset($string_array);
while(list($ical_value,$event_value) = each($string_array))
@ -3316,11 +3327,15 @@ class boicalendar
@reset($event['participants']);
while(list($part,$status) = each($event['participants']))
{
$GLOBALS['phpgw']->accounts->get_account_name($accountid,$lid,$fname,$lname);
$GLOBALS['phpgw']->accounts->get_account_name($part,$lid,$fname,$lname);
$name = $fname.' '.$lname;
$owner_status = $this->switch_partstat(intval($this->switch_phpgw_status($event['participants'][$part])));
$owner_mailto = 'mpeters@satx.rr.com';
$str = 'CN="'.$name.'";PARTSTAT='.$owner_status.':'.$owner_mailto;
$mail_prefs = $GLOBALS['phpgw']->preferences->create_email_preferences($part);
$mailto = $mail_prefs['email']['address'];
$str = 'CN="'.$name.'";PARTSTAT='.$owner_status.':'.$mailto;
if($part == $event['owner'])
{
$str = 'ROLE=CHAIR;'.$str;
@ -3329,7 +3344,10 @@ class boicalendar
{
$str = 'ROLE=REQ-PARTICIPANT;'.$str;
}
$this->parse_value($ical_event,'attendee',$str,'vevent');
if ($method != 'reply' || $part == $GLOBALS['phpgw_info']['user']['account_id'])
{
$this->parse_value($ical_event,'attendee',$str,'vevent');
}
if($part == $event['owner'])
{
$this->parse_value($ical_event,'organizer',$str,'vevent');

View File

@ -15,27 +15,43 @@
class holidaycalc {
function calculate_date($holiday, &$holidays, $year, $datetime, &$i)
function calculate_date($holiday, &$holidays, $year, &$i)
{
static $cached_month;
static $cached_day;
static $cached_observance_rule;
if($holiday['day'] == 0 && $holiday['dow'] != 0 && $holiday['occurence'] != 0)
if ($holiday['day'] == 0 && $holiday['dow'] != 0 && $holiday['occurence'] != 0)
{
// for Coming of Age Day and Health and Sports Day
$dow = $GLOBALS['phpgw']->datetime->day_of_week($year, $holiday['month'], 1);
$dayshift = (($holiday['dow'] + 7) - $dow) % 7;
$day = ($holiday['occurence'] - 1) * 7 + $dayshift + 1;
// Happy monday law.
if ($year >= 2000)
if ($holiday['month'] == 1)
{
$dow = $datetime->day_of_week($year, $holiday['month'], 1);
$dayshift = (($holiday['dow'] + 7) - $dow) % 7;
$day = ($holiday['occurence'] - 1) * 7 + $dayshift + 1;
}
else
{
// non Happy monday law.
if ($holiday['month'] == 1)
if ($year < 2000)
{
$day = 15;
}
elseif ($holiday['month'] == 10)
}
elseif ($holiday['month'] == 7)
{
if ($year < 2003)
{
$day = 20;
}
}
elseif ($holiday['month'] == 9)
{
if ($year < 2003)
{
$day = 15;
}
}
elseif ($holiday['month'] == 10)
{
if ($year < 2000)
{
$day = 10;
}
@ -79,21 +95,53 @@ class holidaycalc {
$day = $holiday['day'];
}
if($holiday['observance_rule'] == True)
if ($year >= 1985 && $holiday['month'] == $cached_month && $day == $cached_day + 2 && $cached_observance_rule == True && $holiday['observance_rule'] == True)
{
$dow = $datetime->day_of_week($year,$holiday['month'],$day);
$pdow = $GLOBALS['phpgw']->datetime->day_of_week($year,$holiday['month'],$day-1);
if ($pdow != 0)
{
$addcnt = count($holidays) + 1;
$holidays[$addcnt]['locale'] = $holiday['locale'];
if ($pdow == 1)
{
$holidays[$addcnt]['name'] = lang('overlap holiday');
}
else
{
$holidays[$addcnt]['name'] = lang('people holiday');
}
$holidays[$addcnt]['day'] = $day - 1;
$holidays[$addcnt]['month'] = $holiday['month'];
$holidays[$addcnt]['occurence'] = 0;
$holidays[$addcnt]['dow'] = 0;
$holidays[$addcnt]['date'] = mktime(0,0,0,$holiday['month'],$day-1,$year);
$holidays[$addcnt]['observance_rule'] = 0;
}
}
$cached_month = $holiday['month'];
$cached_day = $day;
$cached_observance_rule = $holiday['observance_rule'];
if ($year >= 1985 && $holiday['month'] == 5 && $day == 3)
{
;
}
elseif ($holiday['observance_rule'] == True)
{
$dow = $GLOBALS['phpgw']->datetime->day_of_week($year,$holiday['month'],$day);
// This now calulates Observed holidays and creates a new entry for them.
if($dow == 0)
{
$i++;
$holidays[$i]['locale'] = $holiday['locale'].' (Observed)';
$holidays[$i]['name'] = lang('overlap holiday');
$holidays[$i]['day'] = $holiday['day'] + 1;
$holidays[$i]['month'] = $holiday['month'];
$holidays[$i]['occurence'] = $holiday['occurence'];
$holidays[$i]['dow'] = $holiday['dow'];
$holidays[$i]['date'] = mktime(0,0,0,$holiday['month'],$day+1,$year);
$holidays[$i]['obervance_rule'] = 0;
$addcnt = count($holidays) + 1;
$holidays[$addcnt]['locale'] = $holiday['locale'];
$holidays[$addcnt]['name'] = lang('overlap holiday');
$holidays[$addcnt]['day'] = $day + 1;
$holidays[$addcnt]['month'] = $holiday['month'];
$holidays[$addcnt]['occurence'] = $holiday['occurence'];
$holidays[$addcnt]['dow'] = $holiday['dow'];
$holidays[$addcnt]['date'] = mktime(0,0,0,$holiday['month'],$day+1,$year);
$holidays[$addcnt]['observance_rule'] = 0;
}
}

View File

@ -15,14 +15,14 @@
class holidaycalc {
function calculate_date($holiday, &$holidays, $year, $datetime, &$i)
function calculate_date($holiday, &$holidays, $year, &$i)
{
// if($holiday['day'] == 0 && $holiday['dow'] != 0 && $holiday['occurence'] != 0)
if($holiday['day'] == 0 && $holiday['occurence'] != 0)
{
if($holiday['occurence'] != 99)
{
$dow = $datetime->day_of_week($year,$holiday['month'],1);
$dow = $GLOBALS['phpgw']->datetime->day_of_week($year,$holiday['month'],1);
$day = (((7 * $holiday['occurence']) - 6) + ((($holiday['dow'] + 7) - $dow) % 7));
$day += ($day < 1 ? 7 : 0);
// What is the point of this?
@ -31,7 +31,7 @@ class holidaycalc {
// Sometimes the 5th occurance of a weekday (ie the 5th monday)
// can spill over to the next month. This prevents that.
$ld = $datetime->days_in_month($holiday['month'],$year);
$ld = $GLOBALS['phpgw']->datetime->days_in_month($holiday['month'],$year);
if ($day > $ld)
{
return;
@ -39,8 +39,8 @@ class holidaycalc {
}
else
{
$ld = $datetime->days_in_month($holiday['month'],$year);
$dow = $datetime->day_of_week($year,$holiday['month'],$ld);
$ld = $GLOBALS['phpgw']->datetime->days_in_month($holiday['month'],$year);
$dow = $GLOBALS['phpgw']->datetime->day_of_week($year,$holiday['month'],$ld);
$day = $ld - (($dow + 7) - $holiday['dow']) % 7 ;
}
}
@ -49,7 +49,7 @@ class holidaycalc {
$day = $holiday['day'];
if($holiday['observance_rule'] == True)
{
$dow = $datetime->day_of_week($year,$holiday['month'],$day);
$dow = $GLOBALS['phpgw']->datetime->day_of_week($year,$holiday['month'],$day);
// This now calulates Observed holidays and creates a new entry for them.
if($dow == 0)
{

View File

@ -1,9 +1,8 @@
<?php
/**************************************************************************\
* phpGroupWare - InfoLog *
* phpGroupWare - HTML creation class *
* http://www.phpgroupware.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 *
@ -15,60 +14,169 @@
class html
{
var $user_agent,$ua_version; // 'mozilla','msie','konqueror'
var $prefered_img_title;
function html()
{
{ // should be Ok for all HTML 4 compatible browsers
if (!eregi('compatible; ([a-z_]+)[/ ]+([0-9.]+)',$_SERVER['HTTP_USER_AGENT'],$parts))
{
eregi('^([a-z_]+)/([0-9.]+)',$_SERVER['HTTP_USER_AGENT'],$parts);
}
list(,$this->user_agent,$this->ua_version) = $parts;
$this->user_agent = strtolower($this->user_agent);
$this->prefered_img_title = $this->user_agent == 'mozilla' && $this->ua_version < 5 ? 'ALT' : 'TITLE';
//echo "<p>HTTP_USER_AGENT='$GLOBALS[HTTP_USER_AGENT]', UserAgent: '$this->user_agent', Version: '$this->ua_version', img_title: '$this->prefered_img_title'</p>\n";
}
function input_hidden($vars,$value='')
/*
* Function: Allows to show and select one item from an array
* Parameters: $name string with name of the submitted var which holds the key of the selected item form array
* $key key(s) of already selected item(s) from $arr, eg. '1' or '1,2' or array with keys
* $arr array with items to select, eg. $arr = array ( 'y' => 'yes','n' => 'no','m' => 'maybe');
* $no_lang if !$no_lang send items through lang()
* $options additional options (e.g. 'multiple')
* On submit $XXX is the key of the selected item (XXX is the content of $name)
* Returns: string to set for a template or to echo into html page
*/
function select($name, $key, $arr=0,$no_lang=0,$options='',$multiple=0)
{
// should be in class common.sbox
if (!is_array($arr))
{
$arr = array('no','yes');
}
if (intval($multiple) > 0)
{
$options .= ' MULTIPLE SIZE="'.intval($multiple).'"';
if (substr($name,-2) != '[]')
{
$name .= '[]';
}
}
$out = "<select name=\"$name\" $options>\n";
if (is_array($key))
{
$key = implode(',',$key);
}
foreach($arr as $k => $text)
{
$out .= '<option value="'.htmlspecialchars($k).'"';
if("$k" == "$key" || strstr(",$key,",",$k,"))
{
$out .= " SELECTED";
}
$out .= ">" . ($no_lang || $text == '' ? $text : lang($text)) . "</option>\n";
}
$out .= "</select>\n";
return $out;
}
function div($content,$options='')
{
return "<DIV $options>\n$content</DIV>\n";
}
function input_hidden($vars,$value='',$ignore_empty=True)
{
if (!is_array($vars))
{
$vars = array( $vars => $value );
}
while (list($name,$value) = each($vars))
foreach($vars as $name => $value)
{
if ($value && !($name == 'filter' && $value == 'none')) // dont need to send all the empty vars
if (is_array($value))
{
$html .= "<input type=hidden name=\"$name\" value=\"$value\">\n";
$value = serialize($value);
}
if (!$ignore_empty || $value && !($name == 'filter' && $value == 'none')) // dont need to send all the empty vars
{
$html .= "<INPUT TYPE=\"HIDDEN\" NAME=\"$name\" VALUE=\"".htmlspecialchars($value)."\">\n";
}
}
return $html;
}
function textarea($name,$value='',$options='' )
{
return "<TEXTAREA name=\"$name\" $options>".htmlspecialchars($value)."</TEXTAREA>\n";
}
function input($name,$value='',$type='',$options='' )
{
if ($type) $type = "type=$type";
return "<input $type name=\"$name\" value=\"$value\" $options>\n";
if ($type)
{
$type = 'TYPE="'.$type.'"';
}
return "<INPUT $type NAME=\"$name\" VALUE=\"".htmlspecialchars($value)."\" $options>\n";
}
function submit_button($name,$lang,$onClick='')
function submit_button($name,$lang,$onClick='',$no_lang=0,$options='',$image='',$app='')
{
return $this->input($name,lang($lang),'submit',$onClick ? "onClick=\"$onClick\"" : '');
if ($image != '')
{
if (strpos($image,'.'))
{
$image = substr($image,0,strpos($image,'.'));
}
if (!($path = $GLOBALS['phpgw']->common->image($app,$image)) &&
!($path = $GLOBALS['phpgw']->common->image('phpgwapi',$image)))
{
$path = $image; // name may already contain absolut path
}
$image = ' SRC="'.$path.'"';
}
if (!$no_lang)
{
$lang = lang($lang);
}
if (($accesskey = strstr($lang,'&')) && $accesskey[1] != ' ' &&
(($pos = strpos($accesskey,';')) === False || $pos > 5))
{
$lang_u = str_replace('&'.$accesskey[1],'<u>'.$accesskey[1].'</u>',$lang);
$lang = str_replace('&','',$lang);
$options = 'ACCESSKEY="'.$accesskey[1].'" '.$options;
}
else
{
$accesskey = '';
$lang_u = $lang;
}
if ($onClick) $options .= " onClick=\"$onClick\"";
// <button> is not working in all cases if ($this->user_agent == 'mozilla' && $this->ua_version < 5 || $image)
{
return $this->input($name,$lang,$image != '' ? 'IMAGE' : 'SUBMIT',$options.$image);
}
return '<button TYPE="submit" NAME="'.$name.'" VALUE="'.$lang.'" '.$options.'>'.
($image != '' ? "<img$image $this->prefered_img_title=\"$lang\"> " : '').
($image == '' || $accesskey ? $lang_u : '').'</button>';
}
/*
* create absolute link: $url: phpgw-relative link, may include query
* $vars: query or array with query
*/
/*!
@function link
@abstract creates an absolut link + the query / get-variables
@param $url phpgw-relative link, may include query / get-vars
@parm $vars query or array ('name' => 'value', ...) with query
@example link('/index.php?menuaction=infolog.uiinfolog.get_list',array('info_id' => 123))
@example = 'http://domain/phpgw-path/index.php?menuaction=infolog.uiinfolog.get_list&info_id=123'
@result absolut link already run through $phpgw->link
*/
function link($url,$vars='')
{
if (is_array( $vars ))
if (!is_array($vars))
{
$v = array( );
while(list($name,$value) = each($vars))
{
if ($value && !($name == 'filter' && $value == 'none')) // dont need to send all the empty vars
{
$v[] = "$name=$value";
}
}
$vars = implode('&',$v);
$vars = explode('&',$vars);
}
list($url,$v) = explode('?',$url); // url may contain additional vars
if ($v)
$vars .= ($vars ? '&' : '') . $v;
{
$vars += explode('&',$v);
}
return $GLOBALS['phpgw']->link($url,$vars);
}
@ -77,49 +185,74 @@ class html
return "<input type=\"checkbox\" name=\"$name\" value=\"True\"" .($value ? ' checked' : '') . ">\n";
}
function form($content,$hidden_vars,$url,$url_vars='',$method='POST')
function form($content,$hidden_vars,$url,$url_vars='',$name='',$options='',$method='POST')
{
$html = "<form method=\"$method\" action=\"".$this->link($url,$url_vars)."\">\n";
$html = "<form method=\"$method\" ".($name != '' ? "name=\"$name\" " : '')."action=\"".$this->link($url,$url_vars)."\" $options>\n";
$html .= $this->input_hidden($hidden_vars);
if ($content) {
if ($content)
{
$html .= $content;
$html .= "</form>\n";
}
return $html;
}
function form_1button($name,$lang,$hidden_vars,$url,$url_vars='',
$method='POST')
function form_1button($name,$lang,$hidden_vars,$url,$url_vars='',$form_name='',$method='POST')
{
return $this->form($this->submit_button($name,$lang),
$hidden_vars,$url,$url_vars,$method);
$hidden_vars,$url,$url_vars,$form_name,'',$method);
}
/*
* Example: $rows = array ( '1' => array( 1 => 'cell1', '.1' => 'colspan=3',
* 2 => 'cell2',
* 3 => '3,, '.3' => 'width="10%"' ),
* '.1' => 'bgcolor="#0000FF"' );
* table($rows,'width="100%"');
*/
function table($rows,$params = '')
/*!
@function table
@abstracts creates table from array with rows
@discussion abstract the html stuff
@param $rows array with rows, each row is an array of the cols
@param $options options for the table-tag
@example $rows = array ( '1' => array( 1 => 'cell1', '.1' => 'colspan=3',
@example 2 => 'cell2', 3 => 'cell3', '.3' => 'width="10%"' ),
@example '.1' => 'BGCOLOR="#0000FF"' );
@example table($rows,'WIDTH="100%"') = '<table WIDTH="100%"><tr><td colspan=3>cell1</td><td>cell2</td><td width="10%">cell3</td></tr></table>'
@result string with html-code of the table
*/
function table($rows,$options = '',$no_table_tr=False)
{
$html = "<table $params>\n";
$html = $no_table_tr ? '' : "<TABLE $options>\n";
while (list($key,$row) = each($rows)) {
foreach($rows as $key => $row)
{
if (!is_array($row))
{
continue; // parameter
$html .= "\t<tr ".$rows['.'.$key].">\n";
while (list($key,$cell) = each($row)) {
if ($key[0] == '.')
continue; // parameter
$html .= "\t\t<td ".$row['.'.$key].">$cell</td>\n";
}
$html .= "\t</tr>\n";
}
$html .= "</table>\n";
$html .= $no_table_tr && $key == 1 ? '' : "\t<TR ".$rows['.'.$key].">\n";
foreach($row as $key => $cell)
{
if ($key[0] == '.')
{
continue; // parameter
}
$table_pos = strpos($cell,'<TABLE');
$td_pos = strpos($cell,'<TD');
if ($td_pos !== False && ($table_pos === False || $td_pos < $table_pos))
{
$html .= $cell;
}
else
{
$html .= "\t\t<TD ".$row['.'.$key].">$cell</TD>\n";
}
}
$html .= "\t</TR>\n";
}
$html .= "</TABLE>\n";
if ($no_table_tr)
{
$html = substr($html,0,-16);
}
return $html;
}
@ -134,23 +267,38 @@ class html
return $html;
}
function image( $app,$name,$title='',$opts='' )
function image( $app,$name,$title='',$options='' )
{
$html = '<img src="'.$GLOBALS['phpgw']->common->image($app,$name).'"';
if (strstr($name,'.') === False)
{
$name .= '.gif';
}
if (!($path = $GLOBALS['phpgw']->common->image($app,$name)))
{
$path = $name; // name may already contain absolut path
}
if (!@is_readable($_SERVER['DOCUMENT_ROOT'] . $path))
{
return $title;
}
if ($title)
{
$html .= " alt=\"$title\" title=\"$title\"";
$options .= " $this->prefered_img_title=\"".htmlspecialchars($title).'"';
}
if ($opts)
{
$html .= " $opts";
}
return $html . '>';
return "<IMG SRC=\"$path\" $options>";
}
function a_href( $content,$url,$vars='',$options='')
{
if (!strstr($url,'/') && count(explode('.',$url)) == 3)
{
$url = "/index.php?menuaction=$url";
}
if (is_array($url))
{
$vars = $url;
$url = '/index.php';
}
return '<a href="'.$this->link($url,$vars).'" '.$options.'>'.$content.'</a>';
}
@ -158,4 +306,77 @@ class html
{
return '<b>'.$content.'</b>';
}
function italic($content)
{
return '<i>'.$content.'</i>';
}
function hr($width,$options='')
{
if ($width)
$options .= " WIDTH=$width";
return "<hr $options>\n";
}
/*!
@function formatOptions
@abstract formats option-string for most of the above functions
@param $options String (or Array) with option-values eg. '100%,,1'
@param $names String (or Array) with the option-names eg. 'WIDTH,HEIGHT,BORDER'
@example formatOptions('100%,,1','WIDTH,HEIGHT,BORDER') = ' WIDTH="100%" BORDER="1"'
@result option string
*/
function formatOptions($options,$names)
{
if (!is_array($options)) $options = explode(',',$options);
if (!is_array($names)) $names = explode(',',$names);
while (list($n,$val) = each($options))
if ($val != '' && $names[$n] != '')
$html .= ' '.$names[$n].'="'.$val.'"';
return $html;
}
/*!
@function themeStyles
@abstract returns simple stylesheet (incl. <STYLE> tags) for nextmatch row-colors
@result the classes 'th' = nextmatch header, 'row_on'+'row_off' = alternating rows
*/
function themeStyles()
{
return $this->style($this->theme2css());
}
/*!
@function theme2css
@abstract returns simple stylesheet for nextmatch row-colors
@result the classes 'th' = nextmatch header, 'row_on'+'row_off' = alternating rows
*/
function theme2css()
{
return
".th { background: ".$GLOBALS['phpgw_info']['theme']['th_bg']."; font-weight: bold; }\n".
".row_on,.th_bright { background: ".$GLOBALS['phpgw_info']['theme']['row_on']."; }\n".
".row_off { background: ".$GLOBALS['phpgw_info']['theme']['row_off']."; }\n";
}
function style($styles)
{
return $styles ? "<STYLE type=\"text/css\">\n<!--\n$styles\n-->\n</STYLE>" : '';
}
function label($content,$id='',$accesskey='',$options='')
{
if ($id != '')
{
$id = " FOR=\"$id\"";
}
if ($accesskey != '')
{
$accesskey = " ACCESSKEY=\"$accesskey\"";
}
return "<LABEL$id$accesskey $options>$content</LABEL>";
}
}

View File

@ -23,6 +23,7 @@
var $owner;
var $g_owner;
var $is_group = False;
var $datetime;
var $filter;
var $cat_id;
@ -133,43 +134,31 @@
return $this->get_event_ids(True,$sql);
}
function list_events_keyword($keywords)
function list_events_keyword($keywords,$members='')
{
// $sql = 'AND (phpgw_cal_user.cal_login='.$this->owner.') ';
$o = $this->owner;
$type = $GLOBALS['phpgw']->accounts->get_type($o);
if($type == 'g')
if (!$members)
{
$members = $GLOBALS['phpgw']->acl->get_ids_for_location($o, 1, 'phpgw_group');
}
else
{
$members[0] = $o;
$members[] = $this->owner;
}
$sql = 'AND (phpgw_cal_user.cal_login IN ('.implode(',',$members).')) AND '.
'(phpgw_cal_user.cal_login='.intval($this->owner).' OR phpgw_cal.is_public=1) AND (';
$sql = 'AND (phpgw_cal_user.cal_login='.$members[0];
for($i=1; $i<count($members); $i++)
$words = split(' ',$keywords);
foreach($words as $i => $word)
{
$sql .= ' OR phpgw_cal_user.cal_login='.$members[$i];
$sql .= $i > 0 ? ' OR ' : '';
$sql .= "(UPPER(phpgw_cal.title) LIKE UPPER('%".addslashes($word)."%') OR "
. "UPPER(phpgw_cal.description) LIKE UPPER('%".addslashes($word)."%') OR "
. "UPPER(phpgw_cal.location) LIKE UPPER('%".addslashes($word)."%') OR "
. "UPPER(phpgw_cal_extra.cal_extra_value) LIKE UPPER('%".addslashes($word)."%'))";
}
$sql .= ') ';
$words = split(' ',$keywords);
for ($i=0;$i<count($words);$i++)
{
$sql .= ($i==0?' AND (':'');
$sql .= ($i>0?' OR ':'');
$sql .= "(UPPER(phpgw_cal.title) LIKE UPPER('%".$words[$i]."%') OR "
. "UPPER(phpgw_cal.description) LIKE UPPER('%".$words[$i]."%'))";
$sql .= ($i==count($words) - 1?') ':'');
}
$sql .= (strpos($this->filter,'private')?'AND phpgw_cal.is_public=0 ':'');
$sql .= ($this->cat_id?"AND phpgw_cal.category like '%".$this->cat_id."%' ":'');
$sql .= 'ORDER BY phpgw_cal.datetime ASC, phpgw_cal.edatetime ASC, phpgw_cal.priority ASC';
return $this->get_event_ids(False,$sql);
$sql .= ($this->cat_id? "AND (phpgw_cal.category='$this->cat_id' OR phpgw_cal.category like '%,".$this->cat_id.",%') ":'');
$sql .= 'ORDER BY phpgw_cal.datetime DESC, phpgw_cal.edatetime DESC, phpgw_cal.priority ASC';
return $this->get_event_ids(False,$sql,True);
}
function read_from_store($startYear,$startMonth,$startDay,$endYear='',$endMonth='',$endDay='')
@ -183,9 +172,9 @@
return $events_cached;
}
function get_event_ids($include_repeats=False, $sql='')
function get_event_ids($search_repeats=False, $sql='',$search_extra=False)
{
return $this->cal->get_event_ids($include_repeats,$sql);
return $this->cal->get_event_ids($search_repeats,$sql,$search_extra);
}
function find_uid($uid)
@ -212,6 +201,16 @@
$this->cal->store_event($event);
}
function save_alarm($cal_id,$alarm,$id=0)
{
$this->cal->save_alarm($cal_id,$alarm,$id);
}
function delete_alarm($id)
{
$this->cal->delete_alarm($id);
}
function delete_entry($id)
{
$this->cal->delete_event($id);
@ -237,6 +236,7 @@
{
$id = $this->cal->stream->f('cal_id');
$db2->query('SELECT count(*) FROM phpgw_cal_user WHERE cal_id='.$id.' AND cal_login='.$new_owner,__LINE__,__FILE__);
$db2->next_record();
if($db2->f(0) == 0)
{
$db2->query('UPDATE phpgw_cal_user SET cal_login='.$new_owner.' WHERE cal_id='.$id.' AND cal_login='.$account_id,__LINE__,__FILE__);
@ -255,15 +255,31 @@
$this->cal->set_status($id,$this->owner,$status);
}
function get_alarm($id)
function get_alarm($cal_id)
{
if($GLOBALS['phpgw_info']['server']['calendar_type'] == 'sql')
if (!method_exists($this->cal,'get_alarm'))
{
return $this->cal->get_alarm($id);
return False;
}
else
return $this->cal->get_alarm($cal_id);
}
function read_alarm($id)
{
if (!method_exists($this->cal,'read_alarm'))
{
return False;
}
return $this->cal->read_alarm($id);
}
function read_alarms($cal_id)
{
if (!method_exists($this->cal,'read_alarms'))
{
return False;
}
return $this->cal->read_alarms($cal_id);
}
function find_recur_exceptions($event_id)

View File

@ -40,7 +40,7 @@ if(extension_loaded('mcal') == False)
define('MCAL_M_FRIDAY',32);
define('MCAL_M_SATURDAY',64);
define('MCAL_M_WEEKDAYS',63);
define('MCAL_M_WEEKDAYS',62);
define('MCAL_M_WEEKEND',65);
define('MCAL_M_ALLDAYS',127);
}
@ -51,6 +51,7 @@ define('MSG_ADDED',2);
define('MSG_REJECTED',3);
define('MSG_TENTATIVE',4);
define('MSG_ACCEPTED',5);
define('MSG_ALARM',6);
define('REJECTED',0);
define('NO_RESPONSE',1);
@ -68,10 +69,6 @@ class socalendar__
function socalendar__()
{
if(!is_object($GLOBALS['phpgw']->datetime))
{
$GLOBALS['phpgw']->datetime = createobject('phpgwapi.datetime');
}
}
function maketime($time)

View File

@ -31,6 +31,12 @@ class socalendar_ extends socalendar__
function socalendar_()
{
$this->socalendar__();
if (!is_object($GLOBALS['phpgw']->asyncservice))
{
$GLOBALS['phpgw']->asyncservice = CreateObject('phpgwapi.asyncservice');
}
$this->async = &$GLOBALS['phpgw']->asyncservice;
}
function open($calendar='',$user='',$passwd='',$options='')
@ -96,6 +102,111 @@ class socalendar_ extends socalendar__
return $calendar;
}
/*!
@function read_alarms
@abstract read the alarms of a calendar-event specified by $cal_id
@returns array of alarms with alarm-id as key
@note the alarm-id is a string of 'cal:'.$cal_id.':'.$alarm_nr, it is used as the job-id too
*/
function read_alarms($cal_id)
{
$alarms = array();
if ($jobs = $this->async->read('cal:'.intval($cal_id).':%'))
{
foreach($jobs as $id => $job)
{
$alarm = $job['data']; // text, enabled
$alarm['id'] = $id;
$alarm['time'] = $job['next'];
$alarms[$id] = $alarm;
}
}
return $alarms;
}
/*!
@function read_alarm
@abstract read a single alarm specified by it's $id
@returns array with data of the alarm
@note the alarm-id is a string of 'cal:'.$cal_id.':'.$alarm_nr, it is used as the job-id too
*/
function read_alarm($id)
{
if (!($jobs = $this->async->read($id)))
{
return False;
}
list($id,$job) = each($jobs);
$alarm = $job['data']; // text, enabled
$alarm['id'] = $id;
$alarm['time'] = $job['next'];
//echo "<p>read_alarm('$id')="; print_r($alarm); echo "</p>\n";
return $alarm;
}
/*!
@function save_alarm
@abstract saves a new or updated alarm
@syntax save_alarm($cal_id,$alarm,$id=False)
@param $cal_id Id of the calendar-entry
@param $alarm array with fields: text, owner, enabled, ..
*/
function save_alarm($cal_id,$alarm)
{
//echo "<p>save_alarm(cal_id=$cal_id, alarm="; print_r($alarm); echo ")</p>\n";
if (!($id = $alarm['id']))
{
$alarms = $this->read_alarms($cal_id); // find a free alarm#
$n = count($alarms);
do
{
$id = 'cal:'.intval($cal_id).':'.$n;
++$n;
}
while (@isset($alarms[$id]));
}
else
{
$this->async->cancel_timer($id);
}
$alarm['cal_id'] = $cal_id; // we need the back-reference
if (!$this->async->set_timer($alarm['time'],$id,'calendar.bocalendar.send_alarm',$alarm))
{
return False;
}
return $id;
}
/*!
@function delete_alarms($cal_id)
@abstract delete all alarms of a calendar-entry
@returns the number of alarms deleted
*/
function delete_alarms($cal_id)
{
$alarms = $this->read_alarms($cal_id);
foreach($alarms as $id => $alarm)
{
$this->async->cancel_timer($id);
}
return count($alarms);
}
/*!
@function delete_alarm($id)
@abstract delete one alarms identified by its id
@returns the number of alarms deleted
*/
function delete_alarm($id)
{
return $this->async->cancel_timer($id);
}
function fetch_event($event_id,$options='')
{
if(!isset($this->stream))
@ -103,7 +214,9 @@ class socalendar_ extends socalendar__
return False;
}
$this->stream->lock(array('phpgw_cal','phpgw_cal_user','phpgw_cal_repeats','phpgw_cal_alarm'));
$event_id = intval($event_id);
$this->stream->lock(array('phpgw_cal','phpgw_cal_user','phpgw_cal_repeats','phpgw_cal_extra'/* OLD-ALARM,'phpgw_cal_alarm'*/));
$this->stream->query('SELECT * FROM phpgw_cal WHERE cal_id='.$event_id,__LINE__,__FILE__);
@ -210,8 +323,20 @@ class socalendar_ extends socalendar__
}
}
// Custom fields
$this->stream->query('SELECT * FROM phpgw_cal_extra WHERE cal_id='.$event_id,__LINE__,__FILE__);
if($this->stream->num_rows())
{
while($this->stream->next_record())
{
$this->add_attribute('#'.$this->stream->f('cal_extra_name'),$this->stream->f('cal_extra_value'));
}
}
/* OLD-ALARM
if($this->event['reference'])
{
// What is event['reference']???
$alarm_cal_id = $event_id.','.$this->event['reference'];
}
else
@ -219,7 +344,9 @@ class socalendar_ extends socalendar__
$alarm_cal_id = $event_id;
}
$this->stream->query('SELECT * FROM phpgw_cal_alarm WHERE cal_id in ('.$alarm_cal_id.') AND cal_owner='.$this->user,__LINE__,__FILE__);
//echo '<!-- cal_id='.$alarm_cal_id.' -->'."\n";
//$this->stream->query('SELECT * FROM phpgw_cal_alarm WHERE cal_id in ('.$alarm_cal_id.') AND cal_owner='.$this->user,__LINE__,__FILE__);
$this->stream->query('SELECT * FROM phpgw_cal_alarm WHERE cal_id='.$event_id.' AND cal_owner='.$this->user,__LINE__,__FILE__);
if($this->stream->num_rows())
{
while($this->stream->next_record())
@ -232,6 +359,7 @@ class socalendar_ extends socalendar__
);
}
}
*/
}
else
{
@ -240,6 +368,15 @@ class socalendar_ extends socalendar__
$this->stream->unlock();
if ($this->event)
{
$this->event['alarm'] = $this->read_alarms($event_id);
if($this->event['reference'])
{
$this->event['alarm'] += $this->read_alarms($event_id);
}
}
return $this->event;
}
@ -340,7 +477,6 @@ class socalendar_ extends socalendar__
function expunge()
{
reset($this->deleted_events);
if(count($this->deleted_events) <= 0)
{
return 1;
@ -350,43 +486,51 @@ class socalendar_ extends socalendar__
'phpgw_cal',
'phpgw_cal_user',
'phpgw_cal_repeats',
'phpgw_cal_alarm'
'phpgw_cal_extra'
// OLD-ALARM 'phpgw_cal_alarm'
);
$this->stream->lock($locks);
for($i=0;$i<count($this->deleted_events);$i++)
foreach($this->deleted_events as $cal_id)
{
for($k=0;$k<count($locks);$k++)
foreach ($locks as $table)
{
$this->stream->query('DELETE FROM '.$locks[$k].' WHERE cal_id='.$this->deleted_events[$i],__LINE__,__FILE__);
$this->stream->query('DELETE FROM '.$table.' WHERE cal_id='.$cal_id,__LINE__,__FILE__);
}
}
$this->stream->unlock();
foreach($this->deleted_events as $cal_id)
{
$this->delete_alarms($cal_id);
}
$this->deleted_events = array();
$this->event = $this_event;
return 1;
}
/***************** Local functions for SQL based Calendar *****************/
function get_event_ids($search_repeats=False,$extra='')
function get_event_ids($search_repeats=False,$extra='',$search_extra=False)
{
if($search_repeats == True)
$from = $where = ' ';
if($search_repeats)
{
$repeats_from = ', phpgw_cal_repeats ';
$repeats_where = 'AND (phpgw_cal_repeats.cal_id = phpgw_cal.cal_id) ';
$from = ', phpgw_cal_repeats ';
$where = 'AND (phpgw_cal_repeats.cal_id = phpgw_cal.cal_id) ';
}
else
if($search_extra)
{
$repeats_from = ' ';
$repeats_where = '';
$from .= 'LEFT JOIN phpgw_cal_extra ON phpgw_cal_extra.cal_id = phpgw_cal.cal_id ';
}
$sql = 'SELECT DISTINCT phpgw_cal.cal_id,'
. 'phpgw_cal.datetime,phpgw_cal.edatetime,'
. 'phpgw_cal.priority '
. 'FROM phpgw_cal, phpgw_cal_user'
. $repeats_from
. $from
. 'WHERE (phpgw_cal_user.cal_id = phpgw_cal.cal_id) '
. $repeats_where . $extra;
. $where . $extra;
if($this->debug)
{
@ -421,7 +565,9 @@ class socalendar_ extends socalendar__
$locks = Array(
'phpgw_cal',
'phpgw_cal_user',
'phpgw_cal_repeats'
'phpgw_cal_repeats',
'phpgw_cal_extra'
// OLD-ALARM 'phpgw_cal_alarm'
);
$this->stream->lock($locks);
if($event['id'] == 0)
@ -451,14 +597,6 @@ class socalendar_ extends socalendar__
}
$event['uid'] = $part[0].'-'.$part[1].'@'.$id_suffix;
}
/* makes problems if tempnam is to long for title column, see bug #3162
$temp_name = tempnam($GLOBALS['phpgw_info']['server']['temp_dir'],'cal');
$this->stream->query('INSERT INTO phpgw_cal(uid,title,owner,priority,is_public,category) '
. "values('".$event['uid']."','".$temp_name."',".$event['owner'].','.$event['priority'].','.$event['public'].",'".$event['category']."')");
$this->stream->query("SELECT cal_id FROM phpgw_cal WHERE title='".$temp_name."'");
$this->stream->next_record();
$event['id'] = $this->stream->f('cal_id');
*/
$this->stream->query('INSERT INTO phpgw_cal(uid,title,owner,priority,is_public,category) '
. "values('".$event['uid']."','".$this->stream->db_addslashes($event['title'])
. "',".$event['owner'].','.$event['priority'].','.$event['public'].",'"
@ -490,7 +628,7 @@ class socalendar_ extends socalendar__
. 'is_public='.$event['public'].', '
. "title='".$this->stream->db_addslashes($event['title'])."', "
. "description='".$this->stream->db_addslashes($event['description'])."', "
. "location='".$event['location']."', "
. "location='".$this->stream->db_addslashes($event['location'])."', "
. ($event['groups']?"groups='".(count($event['groups'])>1?implode(',',$event['groups']):','.$event['groups'][0].',')."', ":'')
. 'reference='.$event['reference'].' '
. 'WHERE cal_id='.$event['id'];
@ -502,7 +640,6 @@ class socalendar_ extends socalendar__
@reset($event['participants']);
while (list($key,$value) = @each($event['participants']))
{
// if(intval($key) == intval($this->user))
if(intval($key) == $event['owner'])
{
$value = 'A';
@ -545,16 +682,59 @@ class socalendar_ extends socalendar__
{
$this->stream->query('DELETE FROM phpgw_cal_repeats WHERE cal_id='.$event['id'],__LINE__,__FILE__);
}
// Custom fields
$this->stream->query('DELETE FROM phpgw_cal_extra WHERE cal_id='.$event['id'],__LINE__,__FILE__);
foreach($event as $name => $value)
{
if ($name[0] == '#' && strlen($value))
{
$this->stream->query('INSERT INTO phpgw_cal_extra (cal_id,cal_extra_name,cal_extra_value) '
. 'VALUES('.$event['id'].",'".addslashes(substr($name,1))."','".addslashes($value)."')",__LINE__,__FILE__);
}
}
/*
$alarmcount = count($event['alarm']);
if ($alarmcount > 1)
{
// this should never happen, $event['alarm'] should only be set
// if creating a new event and uicalendar only sets up 1 alarm
// the user must use "Alarm Management" to create/establish multiple
// alarms or to edit/change an alarm
echo '<!-- how did this happen, too many alarms -->'."\n";
$this->stream->unlock();
return True;
}
if ($alarmcount == 1)
{
list($key,$alarm) = @each($event['alarm']);
$this->stream->query('INSERT INTO phpgw_cal_alarm(cal_id,cal_owner,cal_time,cal_text,alarm_enabled) VALUES('.$event['id'].','.$event['owner'].','.$alarm['time'].",'".$alarm['text']."',".$alarm['enabled'].')',__LINE__,__FILE__);
$this->stream->query('SELECT LAST_INSERT_ID()');
$this->stream->next_record();
$alarm['id'] = $this->stream->f(0);
}
*/
print_debug('Event Saved: ID #',$event['id']);
$this->stream->unlock();
if (is_array($event['alarm']))
{
foreach ($event['alarm'] as $alarm) // this are all new alarms
{
$this->save_alarm($event['id'],$alarm);
}
}
$GLOBALS['phpgw_info']['cal_new_event_id'] = $event['id'];
return True;
}
function get_alarm($id)
function get_alarm($cal_id)
{
/* OLD-ALARM
$this->stream->query('SELECT cal_time, cal_text FROM phpgw_cal_alarm WHERE cal_id='.$id.' AND cal_owner='.$this->user,__LINE__,__FILE__);
if($this->stream->num_rows())
{
@ -569,6 +749,18 @@ class socalendar_ extends socalendar__
{
return False;
}
*/
$alarms = $this->read_alarms($cal_id);
$ret = False;
foreach($alarms as $alarm)
{
if ($alarm['owner'] == $this->user || !$alarm['owner'])
{
$ret[$alarm['time']] = $alarm['text'];
}
}
return $ret;
}
function set_status($id,$owner,$status)
@ -581,6 +773,12 @@ class socalendar_ extends socalendar__
);
$this->stream->query("UPDATE phpgw_cal_user SET cal_status='".$status_code_short[$status]."' WHERE cal_id=".$id." AND cal_login=".$owner,__LINE__,__FILE__);
/* OLD-ALARM
if ($status == 'R')
{
$this->stream->query('UPDATE phpgw_cal_alarm set alarm_enabled=0 where cal_id='.$id.' and cal_owner='.$owner,__LINE__,__FILE__);
}
*/
return True;
}
@ -619,4 +817,57 @@ class socalendar_ extends socalendar__
{
return $this->localdates(mktime(0,0,0,intval(substr($d,4,2)),intval(substr($d,6,2)),intval(substr($d,0,4))));
}
function list_dirty_events($lastmod=-1,$repeats=false)
{
if(!isset($this->stream))
{
return False;
}
$lastmod = intval($lastmod);
$repeats = (bool) $repeats;
$user_where = " AND phpgw_cal_user.cal_login = $this->user";
$member_groups = $GLOBALS['phpgw']->accounts->membership($this->user);
@reset($member_groups);
while($member_groups != False && list($key,$group_info) = each($member_groups))
{
$member[] = $group_info['account_id'];
}
@reset($member);
// $user_where .= ','.implode(',',$member);
//$user_where .= ')) ';
if($this->debug)
{
echo '<!-- '.$user_where.' -->'."\n";
}
if($lastmod > 0)
{
$wheremod = "AND mdatetime = $lastmod";
}
$order_by = ' ORDER BY phpgw_cal.cal_id ASC';
if($this->debug)
{
echo "SQL : ".$user_where.$wheremod.$extra."<br>\n";
}
return $this->get_event_ids($repeats,$user_where.$wheremod.$extra.$order_by);
}
/* OLD-ALARM
function add_alarm($eventid,$alarm,$owner)
{
$this->stream->query('INSERT INTO phpgw_cal_alarm(cal_id,cal_owner,cal_time,cal_text,alarm_enabled) VALUES('.$eventid.','.$owner.','.$alarm['time'].",'".$alarm['text']."',1)",__LINE__,__FILE__);
$this->stream->query('SELECT LAST_INSERT_ID()');
$this->stream->next_record();
return($this->stream->f(0));
}
function delete_alarm($alarmid)
{
$this->stream->query('DELETE FROM phpgw_cal_alarm WHERE alarm_id='.$alarmid,__LINE__,__FILE__);
}
*/
}

View File

@ -19,9 +19,7 @@
function soholiday()
{
global $phpgw;
$this->db = $phpgw->db;
$this->db = $GLOBALS['phpgw']->db;
}
/* Begin Holiday functions */
@ -49,14 +47,12 @@
function store_to_array(&$holidays)
{
global $phpgw;
while($this->db->next_record())
{
$holidays[] = Array(
'index' => $this->db->f('hol_id'),
'locale' => $this->db->f('locale'),
'name' => $phpgw->strip_html($this->db->f('name')),
'name' => $GLOBALS['phpgw']->strip_html($this->db->f('name')),
'day' => intval($this->db->f('mday')),
'month' => intval($this->db->f('month_num')),
'occurence' => intval($this->db->f('occurence')),
@ -65,15 +61,13 @@
);
if($this->debug)
{
echo "Holiday ID: ".$this->db->f("hol_id")."<br>\n";
echo 'Holiday ID: '.$this->db->f('hol_id').'<br>'."\n";
}
}
}
function read_holidays($locales='',$query='',$order='',$year=0)
{
global $phpgw;
$holidays = Array();
if($locales == '')
@ -85,7 +79,7 @@
if($this->debug)
{
echo "Read Holidays : ".$sql."<br>\n";
echo 'Read Holidays : '.$sql.'<br>'."\n";
}
$this->db->query($sql,__LINE__,__FILE__);
@ -98,7 +92,7 @@
$holidays = Array();
if($this->debug)
{
echo "Reading Holiday ID : ".$id."<br>\n";
echo 'Reading Holiday ID : '.$id.'<br>'."\n";
}
$this->db->query('SELECT * FROM phpgw_cal_holidays WHERE hol_id='.$id,__LINE__,__FILE__);
$this->store_to_array($holidays);
@ -186,7 +180,7 @@
if($this->debug)
{
echo "HOLIDAY_TOTAL : ".$sql."<br>\n";
echo 'HOLIDAY_TOTAL : '.$sql.'<br>'."\n";
}
$this->db->query($sql,__LINE__,__FILE__);

View File

@ -46,27 +46,25 @@
{
echo "BO Owner : ".$this->bo->owner."<br>\n";
}
$this->template_dir = $GLOBALS['phpgw']->common->get_tpl_dir('calendar');
$this->html = CreateObject('calendar.html');
}
function prep_page()
{
$this->event = $this->bo->read_entry($this->bo->cal_id);
$can_edit = $this->bo->cal->check_perms(PHPGW_ACL_EDIT,$this->event);
/*
$can_edit = $this->bo->bo->check_perms(PHPGW_ACL_EDIT,$this->event);
if(!$can_edit)
{
Header('Location : '.$GLOBALS['phpgw']->link('/index.php',
Array(
'menuaction' => 'calendar.uicalendar.view',
'cal_id' => $this->bo->cal_id
)
)
);
$GLOBALS['phpgw']->redirect_link('/index.php',Array(
'menuaction' => 'calendar.uicalendar.view',
'cal_id' => $this->bo->cal_id
));
}
*/
unset($GLOBALS['phpgw_info']['flags']['noheader']);
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
$GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['calendar']['title'].' - '.lang('Alarm Management');
@ -74,7 +72,7 @@
$this->template = CreateObject('phpgwapi.Template',$this->template_dir);
$this->template->set_unknowns('keep');
$this->template->set_unknowns('remove');
$this->template->set_file(
Array(
'alarm' => 'alarm.tpl'
@ -84,10 +82,15 @@
$this->template->set_block('alarm','alarm_headers','alarm_headers');
$this->template->set_block('alarm','list','list');
$this->template->set_block('alarm','hr','hr');
$this->template->set_block('alarm','buttons','buttons');
}
function output_template_array($row,$list,$var)
{
if (!isset($var['tr_color']))
{
$var['tr_color'] = $GLOBALS['phpgw']->nextmatchs->alternate_row_color();
}
$this->template->set_var($var);
$this->template->parse($row,$list,True);
}
@ -96,48 +99,106 @@
function manager()
{
$this->prep_page();
ExecMethod('calendar.uicalendar.view_event',$this->event);
echo "<br>\n";
$GLOBALS['phpgw']->template->set_var(array(
'hr_text' => lang('Alarms').':',
'button_left' => '',
'button_center' => '',
'button_right' => ''
));
$GLOBALS['phpgw']->template->fp('row','hr',True);
$GLOBALS['phpgw']->template->fp('phpgw_body','view_event');
$var = Array(
'action_url' => $GLOBALS['phpgw']->link('/index.php',Array('menuaction'=>'calendar.uialarm.form_handler')),
'time_lang' => lang('Time'),
'text_lang' => lang('Text'),
'enabled_pict' => $GLOBALS['phpgw']->common->image('calendar','enabled.gif'),
'disabled_pict' => $GLOBALS['phpgw']->common->image('calendar','disabled.gif')
);
$this->output_template_array('row','alarm_headers',$var);
if($this->event['alarm'])
if ($_POST['delete'] && count($_POST['alarm']))
{
@reset($this->event['alarm']);
while(list($key,$alarm) = each($this->event['alarm']))
if ($this->bo->delete($_POST['alarm']) < 0)
{
$var = Array(
'edit_box' => '<input type="checkbox" name="alarm[id]" value="'.$alarm['id'].'">',
'field' => $icon.$GLOBALS['phpgw']->common->show_date($alarm['time']),
'data' => $alarm['text'],
'alarm_enabled' => ($alarm['enabled']?'<img src="'.$GLOBALS['phpgw']->common->image('calendar','enabled.gif').'" width="13" height="13" alt="enabled">':'&nbsp;'),
'alarm_disabled' => (!$alarm['enabled']?'<img src="'.$GLOBALS['phpgw']->common->image('calendar','disabled.gif').'" width="13" height="13" alt="disabled">':'&nbsp;')
);
$this->output_template_array('row','list',$var);
echo '<center>'.lang('You do not have permission to delete this alarm !!!').'</center>';
$GLOBALS['phpgw']->common->phpgw_exit(True);
}
}
if (($_POST['enable'] || $_POST['disable']) && count($_POST['alarm']))
{
if ($this->bo->enable($_POST['alarm'],$_POST['enable']) < 0)
{
echo '<center>'.lang('You do not have permission to enable/disable this alarm !!!').'</center>';
$GLOBALS['phpgw']->common->phpgw_exit(True);
}
}
$this->template->fp('phpgw_body','alarm_management');
}
function add_alarm()
{
$this->prep_page();
if ($_POST['add'])
{
$time = intval($_POST['time']['days'])*24*3600 +
intval($_POST['time']['hours'])*3600 +
intval($_POST['time']['mins'])*60;
if ($time > 0 && !$this->bo->add($this->event,$time,$_POST['owner']))
{
echo '<center>'.lang('You do not have permission to add alarms to this event !!!').'</center>';
$GLOBALS['phpgw']->common->phpgw_exit(True);
}
}
if (!ExecMethod('calendar.uicalendar.view_event',$this->event))
{
echo '<center>'.lang('You do not have permission to read this record!').'</center>';
$GLOBALS['phpgw']->common->phpgw_exit(True);
}
echo "<br>\n";
$GLOBALS['phpgw']->template->set_var('th_bg',$this->theme['th_bg']);
$GLOBALS['phpgw']->template->set_var('hr_text',lang('Alarms').':');
$GLOBALS['phpgw']->template->fp('row','hr',True);
$GLOBALS['phpgw']->template->pfp('phpgw_body','view_event');
$var = Array(
'tr_color' => $this->theme['th_bg'],
'action_url' => $GLOBALS['phpgw']->link('/index.php',Array('menuaction'=>'calendar.uialarm.manager')),
'hidden_vars' => $this->html->input_hidden('cal_id',$this->bo->cal_id),
'lang_select' => lang('Select'),
'lang_time' => lang('Time'),
'lang_text' => lang('Text'),
'lang_owner' => lang('Owner'),
'lang_enabled' => lang('enabled'),
'lang_disabled' => lang('disabled'),
'lang_enabled' => lang('enabled'),
'lang_disabled' => lang('disabled')
);
if($this->event['alarm'])
{
$this->output_template_array('rows','alarm_headers',$var);
foreach($this->event['alarm'] as $key => $alarm)
{
if (!$this->bo->check_perms(PHPGW_ACL_READALARM,$alarm['owner']))
{
continue;
}
$var = Array(
'field' => $GLOBALS['phpgw']->common->show_date($alarm['time']),
//'data' => $alarm['text'],
'data' => 'Email Notification',
'owner' => $GLOBALS['phpgw']->common->grab_owner_name($alarm['owner']),
'enabled' => ($alarm['enabled']?'<img src="'.$GLOBALS['phpgw']->common->image('calendar','enabled.gif').'" width="13" height="13" title="'.lang('enabled').'">':
'<img src="'.$GLOBALS['phpgw']->common->image('calendar','disabled.gif').'" width="13" height="13" title="'.lang('disabled').'">'),
'select' => '<input type="checkbox" name="alarm['.$alarm['id'].']">'
);
if ($this->bo->check_perms(PHPGW_ACL_DELETEALARM,$alarm['owner']))
{
++$to_delete;
}
$this->output_template_array('rows','list',$var);
}
$this->template->set_var('enable_button',$this->html->submit_button('enable','Enable'));
$this->template->set_var('disable_button',$this->html->submit_button('disable','Disable'));
if ($to_delete)
{
$this->template->set_var('delete_button',$this->html->submit_button('delete','Delete',"return confirm('".lang("Are you sure\\nyou want to\\ndelete these alarms?")."')"));
}
$this->template->parse('rows','buttons',True);
}
if (isset($this->event['participants'][intval($GLOBALS['phpgw_info']['user']['account_id'])]))
{
$this->template->set_var(Array(
'input_text' => lang('Email reminder'),
'input_days' => $this->html->select('time[days]',$_POST['time']['days'],range(0,31),True).' '.lang('days'),
'input_hours' => $this->html->select('time[hours]',$_POST['time']['hours'],range(0,24),True).' '.lang('hours'),
'input_minutes' => $this->html->select('time[mins]',$_POST['time']['mins'],range(0,60),True).' '.lang('minutes').' '.lang('before the event'),
'input_owner' => $this->html->select('owner',$GLOBALS['phpgw_info']['user']['account_id'],$this->bo->participants($this->event,True),True),
'input_add' => $this->html->submit_button('add','Add Alarm')
));
}
//echo "<p>alarm_management='".htmlspecialchars($this->template->get_var('alarm_management'))."'</p>\n";
$this->template->pfp('out','alarm_management');
}
}
?>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,202 @@
<?php
/**************************************************************************\
* phpGroupWare - Calendar - Custom fields and sorting *
* http://www.phpgroupware.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$ */
require_once(PHPGW_INCLUDE_ROOT.'/calendar/inc/class.bocustom_fields.inc.php');
$GLOBALS['phpgw_info']['flags']['included_classes']['bocustom_fields'] = True; // for 0.9.14
class uicustom_fields extends bocustom_fields
{
var $public_functions = array(
'index' => True,
'submited' => True
);
function uicustom_fields()
{
$this->bocustom_fields(); // call constructor of extended class
$this->tpl = $GLOBALS['phpgw']->template;
if (!is_object($GLOBALS['phpgw']->nextmatchs))
{
$GLOBALS['phpgw']->nextmatchs = CreateObject('phpgwapi.nextmatchs');
}
$this->html = CreateObject('calendar.html');
}
function index($error='')
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
$GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['calendar']['title'].' - '.lang('Custom fields and sorting');
$GLOBALS['phpgw']->common->phpgw_header();
$this->tpl = $GLOBALS['phpgw']->template;
$this->tpl->set_unknowns('remove');
$this->tpl->set_file(array(
'custom_fields_tpl' => 'custom_fields.tpl'
));
$this->tpl->set_block('custom_fields_tpl','custom_fields','custom_fields');
$this->tpl->set_block('custom_fields_tpl','row','row');
$n = 0;
foreach($this->fields as $field => $data)
{
$data['order'] = ($n += 10);
if (isset($this->stock_fields[$field]))
{
$this->set_row($data,$field);
}
else
{
$this->set_row($data,$field,'delete','Delete');
}
}
$this->tpl->set_var(array(
'hidden_vars' => '',
'lang_error' => $error,
'lang_name' => lang('Name'),
'lang_length' => lang('Length<br>(<= 255)'),
'lang_shown' => lang('Length shown<br>(emtpy for full length)'),
'lang_order' => lang('Order'),
'lang_title' => lang('Title-row'),
'lang_disabled'=> lang('Disabled'),
'action_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uicustom_fields.submited'),
'save_button' => $this->html->submit_button('save','Save'),
'cancel_button'=> $this->html->submit_button('cancel','Cancel'),
));
$this->set_row(array('order' => $n+10),'***new***','add','Add');
$this->tpl->pfp('out','custom_fields');
}
function set_row($values,$id='',$name='',$label='')
{
if ($id !== '')
{
$id = '['.htmlspecialchars($id).']';
}
$this->tpl->set_var(array(
'name' => $values['label'] ? lang($values['label']) : $this->html->input('name'.$id,$values['name'],'','SIZE="40" MAXLENGTH="40"'),
'length' => $values['label'] ? '&nbsp' : $this->html->input('length'.$id,$values['length'],'','SIZE="3"'),
'shown' => $values['label'] ? '&nbsp' : $this->html->input('shown'.$id,$values['shown'],'','SIZE="3"'),
'order' => $this->html->input('order'.$id,$values['order'],'','SIZE="3"'),
'title' => $this->html->checkbox('title'.$id,$values['title']),
'disabled'=> $this->html->checkbox('disabled'.$id,$values['disabled']),
'button' => $name ? $this->html->submit_button($name.$id,$label) : '&nbsp'
));
if ($name !== 'add')
{
$this->tpl->set_var('tr_color',$values['title'] ? $GLOBALS['phpgw_info']['theme']['th_bg'] : $GLOBALS['phpgw']->nextmatchs->alternate_row_color());
$this->tpl->parse('rows','row',True);
}
}
function submited()
{
if ($_POST['cancel'])
{
$GLOBALS['phpgw']->redirect_link('/admin/');
}
//echo "<pre>"; print_r($_POST); echo "</pre>";
foreach ($_POST['order'] as $field => $order)
{
if (isset($_POST['delete'][$field]) || $field == '***new***')
{
continue;
}
while(isset($ordered[$order]))
{
++$order;
}
$ordered[$order] = array(
'field' => $field,
'name' => stripslashes($_POST['name'][$field]),
'length' => intval($_POST['length'][$field]),
'shown' => intval($_POST['shown'][$field]),
'title' => !!$_POST['title'][$field],
'disabled' => !!$_POST['disabled'][$field]
);
if (isset($this->stock_fields[$field]))
{
$ordered[$order]['name'] = $this->fields[$field]['name'];
$ordered[$order]['label'] = $this->fields[$field]['label'];
}
}
if (isset($_POST['add']) || strlen($_POST['name']['***new***']))
{
$name = stripslashes($_POST['name']['***new***']);
if (!strlen($name) || array_search($name,$_POST['name']) != '***new***')
{
$error .= lang('New name must not exist and not be empty!!!');
}
else
{
$order = $_POST['order']['***new***'];
while(isset($_POST['order'][$order]))
{
++$order;
}
$ordered[$order] = array(
'field' => '#'.$name,
'name' => $name,
'length' => intval($_POST['length']['***new***']),
'shown' => intval($_POST['shown']['***new***']),
'title' => !!$_POST['title']['***new***'],
'disabled' => !!$_POST['disabled']['***new***']
);
}
}
//echo "<pre>"; print_r($ordered); echo "</pre>\n";
ksort($ordered,SORT_NUMERIC);
$this->fields = array();
foreach($ordered as $order => $data)
{
if ($data['length'] > 255)
{
$data['length'] = 255;
}
if ($data['length'] <= 0)
{
unset($data['length']);
}
if ($data['shown'] >= $data['length'] || $data['shown'] <= 0)
{
unset($data['shown']);
}
if (!$data['title'])
{
unset($data['title']);
}
if (!$data['disabled'])
{
unset($data['disabled']);
}
$field = $data['field'];
unset($data['field']);
$this->fields[$field] = $data;
}
if (!$error && isset($_POST['save']))
{
$this->save();
$GLOBALS['phpgw']->redirect_link('/admin/');
}
$this->index($error);
}
}
?>

View File

@ -81,7 +81,7 @@
@reset($locales);
if (!$locales)
{
$p->set_var('message',lang('No matches found.'));
$p->set_var('message',lang('no matches found'));
$p->parse('rows','row_empty',True);
}
else
@ -118,6 +118,10 @@
function edit_locale($locale='')
{
if ($locale === '')
{
$locale = $this->bo->locale;
}
if ($locale)
{
$this->bo->locales = array($locale);
@ -128,7 +132,7 @@
$link_params = Array(
'menuaction' => 'calendar.uiholiday.admin'
);
Header('Location: ' . $GLOBALS['phpgw']->link($this->base_url,$link_params));
$GLOBALS['phpgw']->redirect_link($this->base_url,$link_params);
}
unset($GLOBALS['phpgw_info']['flags']['noheader']);
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
@ -165,7 +169,7 @@
if (!count($holidays))
{
$p->set_var('message',lang('No matches found.'));
$p->set_var('message',lang('no matches found'));
$p->parse('rows','row_empty',True);
}
else
@ -228,9 +232,9 @@
{
$holiday = $this->bo->read_entry($this->bo->id);
}
if ($GLOBALS['HTTP_GET_VARS']['locale'])
if ($this->locale)
{
$holiday['locale'] = $GLOBALS['HTTP_GET_VARS']['locale'];
$holiday['locale'] = $this->locale;
}
unset($GLOBALS['phpgw_info']['flags']['noheader']);
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
@ -445,7 +449,7 @@
$this->bo->year = 0; // for a complete list with all years
$holidays = $this->bo->get_holiday_list();
if (isset($GLOBALS['HTTP_GET_VARS']['download']))
if (isset($_GET['download']))
{
$locale = $this->bo->locales[0];
$browser = CreateObject('phpgwapi.browser');

View File

@ -87,7 +87,7 @@
echo "Start Time : ".$GLOBALS['phpgw']->common->show_date()."<br>\n";
@set_time_limit(0);
$icsfile=PHPGW_APP_INC.'/events.vcs';
$icsfile=PHPGW_APP_INC.'/events.ics';
$fp=fopen($icsfile,'rt');
$contents = explode("\n",fread($fp, filesize($icsfile)));
fclose($fp);

View File

@ -9,18 +9,18 @@
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
{
{
// Only Modify the $file and $title variables.....
$file = Array
(
'Site Configuration' => $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiconfig.index&appname=' . $appname),
'Calendar Holiday Management' => $GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uiholiday.admin'),
'Global categories' => $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uicategories.index&appname=' . $appname . '&global_cats=True')
);
$title = $appname;
$file = Array(
'Site Configuration' => $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiconfig.index&appname=' . $appname),
'Custom fields and sorting' => $GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uicustom_fields.index'),
'Calendar Holiday Management' => $GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uiholiday.admin'),
'Global Categories' => $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uicategories.index&appname=calendar')
);
//Do not modify below this line
$GLOBALS['phpgw']->common->display_mainscreen($appname,$file);
}
display_section($appname,$title,$file);
}
?>

View File

@ -20,33 +20,35 @@
if($d1 == 'htt' || $d1 == 'ftp')
{
echo 'Failed attempt to break in via an old Security Hole!<br>'."\n";
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$phpgw->common->phpgw_exit();
}
unset($d1);
$GLOBALS['phpgw']->translation->add_app('calendar');
if ($calendar_id)
{
$GLOBALS['phpgw']->translation->add_app('calendar');
$cal = CreateObject('calendar.uicalendar');
//echo "Event ID: $calendar_id<br>\n";
$cal = CreateObject('calendar.uicalendar');
//echo "Event ID: $calendar_id<br>\n";
$event = $cal->bo->read_entry($calendar_id);
if ($event = $cal->bo->read_entry($calendar_id))
{
echo $cal->timematrix(
Array(
'date' => $GLOBALS['phpgw']->datetime->localdates(mktime(0,0,0,$event['start']['month'],$event['start']['mday'],$event['start']['year']) - $phpgw->calendar->tz_offset),
'starttime' => $cal->bo->splittime('000000',False),
'endtime' => 0,
'participants' => $event['participants'])
) .
echo $cal->timematrix(
Array(
'date' => $GLOBALS['phpgw']->datetime->localdates(mktime(0,0,0,$event['start']['month'],$event['start']['mday'],$event['start']['year']) - $phpgw->calendar->tz_offset),
'starttime' => $cal->bo->splittime('000000',False),
'endtime' => 0,
'participants' => $event['participants'])
) .
'</td></tr><tr><td>' .
'</td></tr><tr><td>' .
$cal->view_event($event) .
$cal->view_event($event) .
'</td></tr><tr><td align="center">' .
'</td></tr><tr><td align="center">' .
$cal->get_response($calendar_id);
unset($cal); unset($event);
$cal->get_response($calendar_id);
}
unset($cal); unset($event);
}
?>

View File

@ -18,8 +18,7 @@
if($d1 == 'htt' || $d1 == 'ftp' )
{
echo 'Failed attempt to break in via an old Security Hole!<br>'."\n";
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$GLOBALS['phpgw']->common->phpgw_exit();
}
unset($d1);
@ -36,6 +35,8 @@
$GLOBALS['g_month'] = substr($GLOBALS['date'],4,2);
$GLOBALS['g_day'] = substr($GLOBALS['date'],6,2);
$GLOBALS['owner'] = $GLOBALS['phpgw_info']['user']['account_id'];
$GLOBALS['css'] = "\n".'<STYLE type="text/css">'."\n".'<!--'."\n"
. ExecMethod('calendar.uicalendar.css').'-->'."\n".'</style>';
$page_ = explode('.',$GLOBALS['phpgw_info']['user']['preferences']['calendar']['defaultcalendar']);
$_page = substr($page_[0],0,7); // makes planner from planner_{user|category}
@ -52,11 +53,39 @@
}
include(PHPGW_INCLUDE_ROOT.'/calendar/inc/hook_home_'.$_page.'.inc.php');
$title = '<font color="#FFFFFF">'.lang('Calendar').'</font>';
$portalbox = CreateObject('phpgwapi.listbox',
Array(
'title' => $title,
'primary' => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
'secondary' => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
'tertiary' => $GLOBALS['phpgw_info']['theme']['navbar_bg'],
'width' => '100%',
'outerborderwidth' => '0',
'header_background_image' => $GLOBALS['phpgw']->common->image('phpgwapi/templates/default','bg_filler')
)
);
$app_id = $GLOBALS['phpgw']->applications->name2id('calendar');
$GLOBALS['portal_order'][] = $app_id;
$var = Array(
'up' => Array('url' => '/set_box.php', 'app' => $app_id),
'down' => Array('url' => '/set_box.php', 'app' => $app_id),
'close' => Array('url' => '/set_box.php', 'app' => $app_id),
'question' => Array('url' => '/set_box.php', 'app' => $app_id),
'edit' => Array('url' => '/set_box.php', 'app' => $app_id)
);
$GLOBALS['phpgw']->portalbox->set_params(array('app_id' => $app_id,
'title' => lang('calendar')));
$GLOBALS['phpgw']->portalbox->draw($GLOBALS['extra_data']);
while(list($key,$value) = each($var))
{
$portalbox->set_controls($key,$value);
}
$portalbox->data = Array();
echo "\n".'<!-- BEGIN Calendar info -->'."\n".$portalbox->draw($GLOBALS['extra_data'])."\n".'<!-- END Calendar info -->'."\n";
unset($cal);
}
flush();
?>

View File

@ -18,12 +18,11 @@
if($d1 == 'htt' || $d1 == 'ftp' )
{
echo 'Failed attempt to break in via an old Security Hole!<br>'."\n";
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$GLOBALS['phpgw']->common->phpgw_exit();
}
unset($d1);
$GLOBALS['extra_data'] = '<td>'."\n".'<table border="0" cols="3"><tr><td align="center" width="35%" valign="top">'
$GLOBALS['extra_data'] = $GLOBALS['css']."\n".'<td>'."\n".'<table border="0" cols="3"><tr><td align="center" width="35%" valign="top">'
. ExecMethod('calendar.uicalendar.mini_calendar',
Array(
'day' => $GLOBALS['g_day'],

View File

@ -18,12 +18,11 @@
if($d1 == 'htt' || $d1 == 'ftp' )
{
echo 'Failed attempt to break in via an old Security Hole!<br>'."\n";
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$GLOBALS['phpgw']->common->phpgw_exit();
}
unset($d1);
$GLOBALS['extra_data'] = '<td>'."\n".'<table border="0" cols="3"><tr><td align="center" width="100%" valign="top">'
$GLOBALS['extra_data'] = $GLOBALS['css']."\n".'<td>'."\n".'<table border="0" cols="3"><tr><td align="center" width="100%" valign="top">'
. ExecMethod('calendar.uicalendar.get_month')
.'</td>'."\n".'</tr>'."\n".'</table>'."\n".'</td>'."\n";
?>

View File

@ -18,12 +18,11 @@
if($d1 == 'htt' || $d1 == 'ftp' )
{
echo 'Failed attempt to break in via an old Security Hole!<br>'."\n";
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$GLOBALS['phpgw']->common->phpgw_exit();
}
unset($d1);
$GLOBALS['extra_data'] = '<td>'."\n".'<table border="0" cols="3"><tr><td align="center" width="100%" valign="top">'
$GLOBALS['extra_data'] = $GLOBALS['css']."\n".'<td>'."\n".'<table border="0" cols="3"><tr><td align="center" width="100%" valign="top">'
. ExecMethod('calendar.uicalendar.get_week')
.'</td>'."\n".'</tr>'."\n".'</table>'."\n".'</td>'."\n";
?>

View File

@ -18,12 +18,11 @@
if($d1 == 'htt' || $d1 == 'ftp' )
{
echo 'Failed attempt to break in via an old Security Hole!<br>'."\n";
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$GLOBALS['phpgw']->common->phpgw_exit();
}
unset($d1);
$GLOBALS['extra_data'] = '<td>'."\n".'<table border="0" cols="3"><tr><td align="center" width="100%" valign="top">'
$GLOBALS['extra_data'] = $GLOBALS['css']."\n".'<td>'."\n".'<table border="0" cols="3"><tr><td align="center" width="100%" valign="top">'
. ExecMethod('calendar.uicalendar.get_year')
.'</td>'."\n".'</tr>'."\n".'</table>'."\n".'</td>'."\n";
?>

View File

@ -15,52 +15,103 @@
/* $Id$ */
create_check_box('show default view on main screen','mainscreen_showevents');
ExecMethod('calendar.bocalendar.check_set_default_prefs');
create_select_box('weekday starts on','weekdaystarts',array(
$default = array(
'day' => lang('Daily'),
'week' => lang('Weekly'),
'month' => lang('Monthly'),
'year' => lang('Yearly'),
'planner_cat' => lang('Planner by category'),
'planner_user' => lang('Planner by user'),
);
create_select_box('default calendar view','defaultcalendar',$default,
'Which of calendar view do you want to see, when you start calendar ?');
create_check_box('show default view on main screen','mainscreen_showevents',
'Displays your default calendar view on the startpage (page you get when you enter phpGroupWare or click on the homepage icon)?');
/*
$summary = array(
'no' => lang('Never'),
'daily' => lang('Daily'),
'weekly' => lang('Weekly')
);
create_select_box('Receive summary of appointments','summary',$summary,
'Do you want to receive a regulary summary of your appointsments via email?<br>The summary is sent to your standard email-address on the morning of that day or on Monday for weekly summarys.<br>It is only sent when you have any appointments on that day or week.');
*/
$updates = array(
'no' => lang('Never'),
'add_cancel' => lang('on invitation / cancelation only'),
'time_change_4h' => lang('on time change of more than 4 hours too'),
'time_change' => lang('on any time change too'),
'modifications' => lang('on all modification, but responses'),
'responses' => lang('on participant responses too')
);
create_select_box('Receive email updates','receive_updates',$updates,
"Do you want to be notified about new or changed appointments? You be notified about changes you make yourself.<br>You can limit the notifications to certain changes only. Each item includes all the notification listed above it. All modifications include changes of title, description, participants, but no participant responses. If the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too.");
$update_formats = array(
'none' => lang('None'),
'extended' => lang('Extended'),
'ical' => lang('iCal / rfc2445')
);
create_select_box('Format of event updates','update_format',$update_formats,
'Extended updates always include the complete event-details. iCal\'s can be imported by certain other calendar-applications.');
$event_details = array(
'to-fullname' => lang('Fullname of person to notify'),
'to-firstname'=> lang('Firstname of person to notify'),
'to-lastname' => lang('Lastname of person to notify'),
'title' => lang('Title of the event'),
'description' => lang('Description'),
'startdate' => lang('Start Date/Time'),
'enddate' => lang('End Date/Time'),
'olddate' => lang('Old Startdate'),
'category' => lang('Category'),
'location' => lang('Location'),
'priority' => lang('Priority'),
'participants'=> lang('Participants'),
'owner' => lang('Owner'),
'repetition' => lang('Repetitiondetails (or empty)'),
'action' => lang('Action that caused the notify: Added, Canceled, Accepted, Rejected, ...')
);
create_notify('Notification messages for added events ','notifyAdded',5,50,
'This message is sent to every participant of events you own, who has requested notifcations about new events.<br>You can use certain variables which get substituted with the data of the event. The first line is the subject of the email.',
'',$event_details);
create_notify('Notification messages for canceled events ','notifyCanceled',5,50,
'This message is sent for canceled or deleted events.','',$event_details,False);
create_notify('Notification messages for modified events ','notifyModified',5,50,
'This message is sent for modified or moved events.','',$event_details,False);
create_notify('Notification messages for your responses ','notifyResponse',5,50,
'This message is sent when you accept, tentative accept or reject an event.',
'',$event_details,False);
create_notify('Notification messages for your alarms','notifyAlarm',5,50,
'This message is sent when you set an Alarm for a certain event. Include all information you might need.',
'',$event_details,False);
create_check_box('Show invitations you rejected','show_rejected',
'Should invitations you rejected still be shown in your calendar ?<br>You can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar!');
create_check_box('Display status of events','display_status',
'Should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ?');
$weekdaystarts = array(
'Monday' => lang('Monday'),
'Sunday' => lang('Sunday'),
'Saturday' => lang('Saturday')
));
);
create_select_box('weekday starts on','weekdaystarts',$weekdaystarts,
'This day is shown as first day in the week or month view.');
for ($i=0; $i < 24; ++$i)
{
$options[$i] = $GLOBALS['phpgw']->common->formattime($i,'00');
}
create_select_box('work day starts on','workdaystarts',$options);
create_select_box('work day ends on','workdayends',$options);
unset($options);
create_select_box('default calendar view','defaultcalendar',array(
'planner_cat' => lang('Planner by category'),
'planner_user' => lang('Planner by user'),
'year' => lang('Yearly'),
'month' => lang('Monthly'),
'week' => lang('Weekly'),
'day' => lang('Daily')
));
$groups = $GLOBALS['phpgw']->accounts->membership($GLOBALS['phpgw_info']['user']['account_id']);
$options = array(-1 => lang('none'));
foreach($groups as $group)
{
$options[$group['account_id']] = $GLOBALS['phpgw']->common->grab_owner_name($group['account_id']);
}
create_select_box('Preselected group for entering the planner','planner_start_with_group',$options);
unset($groups);
unset($options);
unset($group);
create_select_box('Default calendar filter','defaultfilter',array(
'all' => lang('all'),
'private' => lang('private only'),
// 'public' => lang('global public only'),
// 'group' => lang('group public only'),
// 'private+public' => lang('private and global public'),
// 'private+group' => lang('private and group public'),
// 'public+group' => lang('global public and group public')
));
create_select_box('Display interval in Day View','interval',array(
create_select_box('work day starts on','workdaystarts',$options,
'This defines the start of your dayview. Events before this time, are shown above the dayview.<br>This time is also used as a default starttime for new events.');
create_select_box('work day ends on','workdayends',$options,
'This defines the end of your dayview. Events after this time, are shown below the dayview.');
$intervals = array(
5 => '5',
10 => '10',
15 => '15',
@ -68,22 +119,50 @@
30 => '30',
45 => '45',
60 => '60'
));
);
create_select_box('Intervals in day view','interval',$intervals,
'Defines the size in minutes of the lines in the day view.');
create_input_box('default appointment length (in minutes)','defaultlength',
'Default length of newly created events. The length is in minutes, eg. 60 for 1 hour.','',3);
create_select_box('Number of Intervals per Day in Planner View','planner_intervals_per_day',array(
$groups = $GLOBALS['phpgw']->accounts->membership($GLOBALS['phpgw_info']['user']['account_id']);
$options = array(-1 => lang('none'));
if (is_array($groups))
{
foreach($groups as $group)
{
$options[$group['account_id']] = $GLOBALS['phpgw']->common->grab_owner_name($group['account_id']);
}
}
create_select_box('Preselected group for entering the planner','planner_start_with_group',$options,
'This group that is preselected when you enter the planner. You can change it in the planner anytime you want.');
$planner_intervals = array(
1 => '1',
2 => '2',
3 => '3',
4 => '4',
));
);
create_select_box('Intervals per day in planner view','planner_intervals_per_day',
$planner_intervals,'Specifies the the number of intervals shown in the planner view.');
create_check_box('Send/receive updates via email','send_updates');
create_check_box('Receive extra information in event mails','send_extra');
$defaultfilter = array(
'all' => lang('all'),
'private' => lang('private only'),
// 'public' => lang('global public only'),
// 'group' => lang('group public only'),
// 'private+public' => lang('private and global public'),
// 'private+group' => lang('private and group public'),
// 'public+group' => lang('global public and group public')
);
create_select_box('Default calendar filter','defaultfilter',$defaultfilter,
'Which events do you want to see when you enter the calendar.');
create_check_box('Display status of events','display_status');
create_check_box('Set new events to private','default_private',
'Should new events created as private by default ?');
create_check_box('When creating new events default set to private','default_private');
create_check_box('Print the mini calendars','display_minicals',
'Should the mini calendars by printed / displayed in the printer friendly views ?');
create_check_box('Display mini calendars when printing','display_minicals');
create_check_box('Print calendars in black & white','print_black_white');
create_check_box('Print calendars in black & white','print_black_white',
'Should the printer friendly view be in black & white or in color (as in normal view)?');

View File

@ -0,0 +1,64 @@
<?php
/**************************************************************************\
* phpGroupWare - Calendar's Sidebox-Menu for idots-template *
* http://www.phpgroupware.org *
* Written by Pim Snel <pim@lingewoud.nl> *
* -------------------------------------------- *
* 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$ */
{
/*
This hookfile is for generating an app-specific side menu used in the idots
template set.
$menu_title speaks for itself
$file is the array with link to app functions
display_sidebox can be called as much as you like
*/
$menu_title = $GLOBALS['phpgw_info']['apps'][$appname]['title'] . ' '. lang('Menu');
$file = Array(
'New Entry' => $GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uicalendar.add'),
'_NewLine_'=>'', // give a newline
'Today'=>$GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uicalendar.day'),
'This week'=>$GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uicalendar.week'),
'This month'=>$GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uicalendar.month'),
'This year'=>$GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uicalendar.year'),
'_NewLine_'=>'', // give a newline
'Group Planner'=>$GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uicalendar.planner'),
'Daily Matrix View'=>$GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uicalendar.matrixselect'),
'Import'=>$GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uiicalendar.import')
);
display_sidebox($appname,$menu_title,$file);
if ($GLOBALS['phpgw_info']['user']['apps']['preferences'])
{
$menu_title = lang('Preferences');
$file = Array(
'Calendar preferences'=>$GLOBALS['phpgw']->link('/preferences/preferences.php','appname=calendar'),
'Grant Access'=>$GLOBALS['phpgw']->link('/index.php','menuaction=preferences.uiaclprefs.index&acl_app=calendar'),
'Edit Categories' =>$GLOBALS['phpgw']->link('/index.php','menuaction=preferences.uicategories.index&cats_app=calendar&cats_level=True&global_cats=True'),
);
display_sidebox($appname,$menu_title,$file);
}
if ($GLOBALS['phpgw_info']['user']['apps']['admin'])
{
$menu_title = lang('Administration');
$file = Array(
'Configuration'=>$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiconfig.index&appname=calendar'),
'Custom Fields'=>$GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uicustom_fields.index'),
'Holiday Management'=>$GLOBALS['phpgw']->link('/index.php','menuaction=calendar.uiholiday.admin'),
'Global Categories' =>$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uicategories.index&appname=calendar'),
);
display_sidebox($appname,$menu_title,$file);
}
}
?>

View File

@ -36,7 +36,8 @@
'date' => date('Ymd',$GLOBALS['phpgw']->datetime->users_localtime)
);
// echo 'Local DateTime: '.date('Ymd H:i:s',$GLOBALS['phpgw']->datetime->users_localtime).'<br>'."\n";
Header('Location: '.$GLOBALS['phpgw']->link('/index.php',$parms));
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$GLOBALS['phpgw']->common->phpgw_exit();
?>

View File

@ -88,8 +88,7 @@
$phpgw->preferences->save_repository(True);
Header('Location: '.$phpgw->link('/preferences/index.php'));
$GLOBALS['phpgw_info']['flags']['nodisplay'] = True;
exit;
$phpgw->common->phpgw_exit();
}
function display_item($field,$data)
@ -107,6 +106,7 @@
}
$phpgw->common->phpgw_header();
echo parse_navbar();
$p = CreateObject('phpgwapi.Template',$phpgw->common->get_tpl_dir('calendar'));
$templates = Array(
@ -235,4 +235,5 @@
display_item(lang('Print calendars in black & white'),$str);
$p->pparse('out','pref');
$phpgw->common->phpgw_footer();
?>

99
calendar/setup/holidays.AU Executable file
View File

@ -0,0 +1,99 @@
National Fixed:
AU New Year's Day 1 1 0 0 1
AU Australia Day 26 1 0 0 1
AU ANZAC Day 25 4 0 0 1
AU Queen's Birthday (not WA) 0 6 2 1 0
AU Christmas Day 25 12 0 0 1
AU Boxing Day (not SA) 26 12 0 0 1
Regional:
AU ACT: Union Picnic Day 0 3 1 1 0
AU Tas: Royal Hobart Regatta 0 2 2 1 0
AU Tas: Launceston Cup 0 2 99 3 0
AU Vic: Labour Day 0 3 2 1 0
AU Tas: Eight Hours Day 0 3 2 1 0
AU ACT: Canberra Day 0 3 3 1 0
AU NT: May Day 0 5 1 1 0
AU Qld: Labour Day 0 5 1 1 0
AU SA: Adelaide Cup Day 0 5 3 1 0
AU WA: Foundation Day 0 6 1 1 0
AU ACT/NSW: Bank Holiday 0 8 1 1 0
AU NT: Picnic Day 0 8 1 1 0
AU Qld: Show Day 0 8 2 3 0
AU ACT/NSW/SA: Labour Day 0 10 1 1 0
AU Tas: Launceston Show 0 10 1 4 0
AU Tas: Hobart Show 0 10 3 4 0
AU WA: Queen's Birthday 0 10 5 1 0
AU Tas: Recreation Day 0 11 1 1 0
AU Vic: Melbourne Cup 0 11 1 2 0
AU SA: Proclamation Day 26 12 0 0 1
2002:
AU Good Friday 29 3 2002 0 0
AU Easter Sunday 1 4 2002 0 0
AU Easter Monday 2 4 2002 0 0
2003:
AU Good Friday 18 4 2003 0 0
AU Easter Sunday 20 4 2003 0 0
AU Easter Monday 21 4 2003 0 0
2004:
AU Good Friday 9 4 2004 0 0
AU Easter Sunday 11 4 2004 0 0
AU Easter Monday 12 4 2004 0 0
2005:
AU Good Friday 25 3 2005 0 0
AU Easter Sunday 27 3 2005 0 0
AU Easter Monday 28 3 2005 0 0
2006:
AU Good Friday 14 4 2006 0 0
AU Easter Sunday 16 4 2006 0 0
AU Easter Monday 17 4 2006 0 0
2007:
AU Good Friday 6 4 2007 0 0
AU Easter Sunday 8 4 2007 0 0
AU Easter Monday 9 4 2007 0 0
2008:
AU Good Friday 21 3 2008 0 0
AU Easter Sunday 23 3 2008 0 0
AU Easter Monday 24 3 2008 0 0
2009:
AU Good Friday 10 4 2009 0 0
AU Easter Sunday 12 4 2009 0 0
AU Easter Monday 13 4 2009 0 0
2010:
AU Good Friday 2 4 2010 0 0
AU Easter Sunday 4 4 2010 0 0
AU Easter Monday 5 4 2010 0 0
2011:
AU Good Friday 22 4 2011 0 0
AU Easter Sunday 24 4 2011 0 0
AU Easter Monday 25 4 2011 0 0
2012:
AU Good Friday 6 4 2012 0 0
AU Easter Sunday 8 4 2012 0 0
AU Easter Monday 9 4 2012 0 0
2013:
AU Good Friday 29 3 2013 0 0
AU Easter Sunday 31 3 2013 0 0
AU Easter Monday 1 4 2013 0 0
2014:
AU Good Friday 18 4 2014 0 0
AU Easter Sunday 20 4 2014 0 0
AU Easter Monday 21 4 2014 0 0
2015:
AU Good Friday 3 4 2015 0 0
AU Easter Sunday 5 4 2015 0 0
AU Easter Monday 6 4 2015 0 0

View File

@ -1,5 +1,25 @@
CA Quebec Civic Holiday 3 1 0 0 1
CA New Years 1 1 0 0 0
CA Civic Holiday (Quebec) 2 1 0 0 0
CA Valentines Day 14 2 0 0 0
CA St Patricks Day 17 3 0 0 0
CA Beginning of Spring 20 3 0 0 0
CA Good Friday 25 3 2005 0 0
CA Easter 27 3 2005 0 0
CA Easter Monday 28 3 2005 0 0
CA Good Friday 9 4 2004 0 0
CA Easter 11 4 2004 0 0
CA Easter Monday 12 4 2004 0 0
CA Good Friday 18 4 2003 5 0
CA Easter 20 4 2003 0 0
CA Easter Monday 21 4 2003 1 0
CA Victoria Day (Monday b4 M24) 0 5 3 1 0
CA Mothers Day 0 5 2 0 0
CA Fathers Day 0 6 3 0 0
CA St Jean Baptiste Day (Quebec) 24 6 0 0 0
CA Canada Day 1 7 0 0 0
CA Canadian Civic Holiday 0 8 1 1 0
CA Rememberence Day 11 11 0 0 1
CA Labour Day 0 9 1 1 0
CA Thanksgiving 25 10 2 1 0
CA Remembrance Day 11 11 0 0 0
CA Christmas Day 25 12 0 0 1
CA Boxing Day 26 12 0 0 1
CA Boxing Day 26 12 0 0 0

256
calendar/setup/holidays.DE Normal file
View File

@ -0,0 +1,256 @@
Regelmässig:
DE Sylvester 31 12 0 0 0
DE Neujahr 1 1 0 0 0
DE Hl. Drei Könige (Bw,By,St) 6 1 0 0 0
DE Maifeiertag 1 5 0 0 0
DE Maria Himmelfahrt (Sl) 15 8 0 0 0
DE Tag d. Dt. Einheit 3 10 0 0 0
DE Reformationstag (Bb,Mv,Sn,St) 31 10 0 0 0
DE Allerheiligen (Bw,By,Nw,Rp,Sl) 1 11 0 0 0
DE Heiliger Abend 24 12 0 0 0
DE 1. Weihnachtstag 25 12 0 0 0
DE 2. Weihnachtstag 26 12 0 0 0
2002:
DE Gründonnerstag 28 3 2002 0 0
DE Karfreitag 29 3 2002 0 0
DE Ostersonntag 1 4 2002 0 0
DE Ostermontag 2 4 2002 0 0
DE Christi Himmelfahrt 9 5 2002 0 0
DE Pfingstsonntag 19 5 2002 0 0
DE Pfingstmontag 20 5 2002 0 0
DE Fronleichnam 30 5 2002 0 0
2003:
DE Rosenmontag 3 3 2003 0 0
DE Fastnacht 4 3 2003 0 0
DE Aschermittwoch 5 3 2003 0 0
DE Gründonnerstag 17 4 2003 0 0
DE Karfreitag 18 4 2003 0 0
DE Ostersonntag 20 4 2003 0 0
DE Ostermontag 21 4 2003 0 0
DE Christi Himmelfahrt 29 5 2003 0 0
DE Pfingstsonntag 8 6 2003 0 0
DE Pfingstmontag 9 6 2003 0 0
DE Fronleichnam 19 6 2003 0 0
DE Buß- und Bettag 19 11 2003 0 0
DE 1. Advent 30 11 2003 0 0
DE 2. Advent 7 12 2003 0 0
DE 3. Advent 14 12 2003 0 0
DE 4. Advent 21 12 2003 0 0
2004:
DE Rosenmontag 23 2 2004 0 0
DE Fastnacht 24 2 2004 0 0
DE Aschermittwoch 25 2 2004 0 0
DE Gründonnerstag 8 4 2004 0 0
DE Karfreitag 9 4 2004 0 0
DE Ostersonntag 11 4 2004 0 0
DE Ostermontag 12 4 2004 0 0
DE Christi Himmelfahrt 20 5 2004 0 0
DE Pfingstsonntag 30 5 2004 0 0
DE Pfingstmontag 31 5 2004 0 0
DE Fronleichnam 10 6 2004 0 0
DE Buß- und Bettag 17 11 2004 0 0
DE 1. Advent 28 11 2004 0 0
DE 2. Advent 5 12 2004 0 0
DE 3. Advent 12 12 2004 0 0
DE 4. Advent 19 12 2004 0 0
2005:
DE Rosenmontag 7 2 2005 0 0
DE Fastnacht 8 2 2005 0 0
DE Aschermittwoch 9 2 2005 0 0
DE Gründonnerstag 24 3 2005 0 0
DE Karfreitag 25 3 2005 0 0
DE Ostersonntag 27 3 2005 0 0
DE Ostermontag 28 3 2005 0 0
DE Christi Himmelfahrt 5 5 2005 0 0
DE Pfingstsonntag 15 5 2005 0 0
DE Pfingstmontag 16 5 2005 0 0
DE Fronleichnam 26 5 2005 0 0
DE Buß- und Bettag 16 11 2005 0 0
DE 1. Advent 27 11 2005 0 0
DE 2. Advent 4 12 2005 0 0
DE 3. Advent 11 12 2005 0 0
DE 4. Advent 18 12 2005 0 0
2006:
DE Rosenmontag 27 2 2006 0 0
DE Fastnacht 28 2 2006 0 0
DE Aschermittwoch 1 3 2006 0 0
DE Gründonnerstag 13 4 2006 0 0
DE Karfreitag 14 4 2006 0 0
DE Ostersonntag 16 4 2006 0 0
DE Ostermontag 17 4 2006 0 0
DE Christi Himmelfahrt 25 5 2006 0 0
DE Pfingstsonntag 4 6 2006 0 0
DE Pfingstmontag 5 6 2006 0 0
DE Fronleichnam 15 6 2006 0 0
DE Buß- und Bettag 22 11 2006 0 0
DE 1. Advent 3 12 2006 0 0
DE 2. Advent 10 12 2006 0 0
DE 3. Advent 17 12 2006 0 0
DE 4. Advent 24 12 2006 0 0
2007:
DE Rosenmontag 19 2 2007 0 0
DE Fastnacht 20 2 2007 0 0
DE Aschermittwoch 21 2 2007 0 0
DE Gründonnerstag 5 4 2007 0 0
DE Karfreitag 6 4 2007 0 0
DE Ostersonntag 8 4 2007 0 0
DE Ostermontag 9 4 2007 0 0
DE Christi Himmelfahrt 17 5 2007 0 0
DE Pfingstsonntag 27 5 2007 0 0
DE Pfingstmontag 28 5 2007 0 0
DE Fronleichnam 7 6 2007 0 0
DE Buß- und Bettag 21 11 2007 0 0
DE 1. Advent 2 12 2007 0 0
DE 2. Advent 9 12 2007 0 0
DE 3. Advent 16 12 2007 0 0
DE 4. Advent 23 12 2007 0 0
2008:
DE Rosenmontag 4 2 2008 0 0
DE Fastnacht 5 2 2008 0 0
DE Aschermittwoch 6 2 2008 0 0
DE Gründonnerstag 20 3 2008 0 0
DE Karfreitag 21 3 2008 0 0
DE Ostersonntag 23 3 2008 0 0
DE Ostermontag 24 3 2008 0 0
DE Christi Himmelfahrt 1 5 2008 0 0
DE Pfingstsonntag 11 5 2008 0 0
DE Pfingstmontag 12 5 2008 0 0
DE Fronleichnam 22 5 2008 0 0
DE Buß- und Bettag 19 11 2008 0 0
DE 1. Advent 30 11 2008 0 0
DE 2. Advent 7 12 2008 0 0
DE 3. Advent 14 12 2008 0 0
DE 4. Advent 21 12 2008 0 0
2009:
DE Rosenmontag 23 2 2009 0 0
DE Fastnacht 24 2 2009 0 0
DE Aschermittwoch 25 2 2009 0 0
DE Gründonnerstag 9 4 2009 0 0
DE Karfreitag 10 4 2009 0 0
DE Ostersonntag 12 4 2009 0 0
DE Ostermontag 13 4 2009 0 0
DE Christi Himmelfahrt 21 5 2009 0 0
DE Pfingstsonntag 31 5 2009 0 0
DE Pfingstmontag 1 6 2009 0 0
DE Fronleichnam 11 6 2009 0 0
DE Buß- und Bettag 18 11 2009 0 0
DE 1. Advent 29 11 2009 0 0
DE 2. Advent 6 12 2009 0 0
DE 3. Advent 13 12 2009 0 0
DE 4. Advent 20 12 2009 0 0
2010:
DE Rosenmontag 15 2 2010 0 0
DE Fastnacht 16 2 2010 0 0
DE Aschermittwoch 17 2 2010 0 0
DE Gründonnerstag 1 4 2010 0 0
DE Karfreitag 2 4 2010 0 0
DE Ostersonntag 4 4 2010 0 0
DE Ostermontag 5 4 2010 0 0
DE Christi Himmelfahrt 13 5 2010 0 0
DE Pfingstsonntag 23 5 2010 0 0
DE Pfingstmontag 24 5 2010 0 0
DE Fronleichnam 3 6 2010 0 0
DE Buß- und Bettag 17 11 2010 0 0
DE 1. Advent 28 11 2010 0 0
DE 2. Advent 5 12 2010 0 0
DE 3. Advent 12 12 2010 0 0
DE 4. Advent 19 12 2010 0 0
2011:
DE Rosenmontag 7 3 2011 0 0
DE Fastnacht 8 3 2011 0 0
DE Aschermittwoch 9 3 2011 0 0
DE Gründonnerstag 21 4 2011 0 0
DE Karfreitag 22 4 2011 0 0
DE Ostersonntag 24 4 2011 0 0
DE Ostermontag 25 4 2011 0 0
DE Christi Himmelfahrt 2 6 2011 0 0
DE Pfingstsonntag 12 6 2011 0 0
DE Pfingstmontag 13 6 2011 0 0
DE Fronleichnam 23 6 2011 0 0
DE Buß- und Bettag 16 11 2011 0 0
DE 1. Advent 27 11 2011 0 0
DE 2. Advent 4 12 2011 0 0
DE 3. Advent 11 12 2011 0 0
DE 4. Advent 18 12 2011 0 0
2012:
DE Rosenmontag 20 2 2012 0 0
DE Fastnacht 21 2 2012 0 0
DE Aschermittwoch 22 2 2012 0 0
DE Gründonnerstag 5 4 2012 0 0
DE Karfreitag 6 4 2012 0 0
DE Ostersonntag 8 4 2012 0 0
DE Ostermontag 9 4 2012 0 0
DE Christi Himmelfahrt 17 5 2012 0 0
DE Pfingstsonntag 27 5 2012 0 0
DE Pfingstmontag 28 5 2012 0 0
DE Fronleichnam 7 6 2012 0 0
DE Buß- und Bettag 21 11 2012 0 0
DE 1. Advent 2 12 2012 0 0
DE 2. Advent 9 12 2012 0 0
DE 3. Advent 16 12 2012 0 0
DE 4. Advent 23 12 2012 0 0
2013:
DE Rosenmontag 11 2 2013 0 0
DE Fastnacht 12 2 2013 0 0
DE Aschermittwoch 13 2 2013 0 0
DE Gründonnerstag 28 3 2013 0 0
DE Karfreitag 29 3 2013 0 0
DE Ostersonntag 31 3 2013 0 0
DE Ostermontag 1 4 2013 0 0
DE Christi Himmelfahrt 9 5 2013 0 0
DE Pfingstsonntag 19 5 2013 0 0
DE Pfingstmontag 20 5 2013 0 0
DE Fronleichnam 30 5 2013 0 0
DE Buß- und Bettag 20 11 2013 0 0
DE 1. Advent 1 12 2013 0 0
DE 2. Advent 8 12 2013 0 0
DE 3. Advent 15 12 2013 0 0
DE 4. Advent 22 12 2013 0 0
2014:
DE Rosenmontag 3 3 2014 0 0
DE Fastnacht 4 3 2014 0 0
DE Aschermittwoch 5 3 2014 0 0
DE Gründonnerstag 17 4 2014 0 0
DE Karfreitag 18 4 2014 0 0
DE Ostersonntag 20 4 2014 0 0
DE Ostermontag 21 4 2014 0 0
DE Christi Himmelfahrt 29 5 2014 0 0
DE Pfingstsonntag 8 6 2014 0 0
DE Pfingstmontag 9 6 2014 0 0
DE Fronleichnam 19 6 2014 0 0
DE Buß- und Bettag 19 11 2014 0 0
DE 1. Advent 30 11 2014 0 0
DE 2. Advent 7 12 2014 0 0
DE 3. Advent 14 12 2014 0 0
DE 4. Advent 21 12 2014 0 0
2015:
DE Rosenmontag 16 2 2015 0 0
DE Fastnacht 17 2 2015 0 0
DE Aschermittwoch 18 2 2015 0 0
DE Gründonnerstag 2 4 2015 0 0
DE Karfreitag 3 4 2015 0 0
DE Ostersonntag 5 4 2015 0 0
DE Ostermontag 6 4 2015 0 0
DE Christi Himmelfahrt 14 5 2015 0 0
DE Pfingstsonntag 24 5 2015 0 0
DE Pfingstmontag 25 5 2015 0 0
DE Fronleichnam 4 6 2015 0 0
DE Buß- und Bettag 18 11 2015 0 0
DE 1. Advent 29 11 2015 0 0
DE 2. Advent 6 12 2015 0 0
DE 3. Advent 13 12 2015 0 0
DE 4. Advent 20 12 2015 0 0

View File

@ -0,0 +1,26 @@
FR Jour de l'an 1 1 0 0 0
FR Lundi de Pâques 24 3 2008 0 0
FR Lundi de Pâques 28 3 2005 0 0
FR Lundi de Pâques 9 4 2007 0 0
FR Lundi de Pâques 12 4 2004 0 0
FR Lundi de Pâques 17 4 2006 0 0
FR Lundi de Pâques 21 4 2003 0 0
FR Fête du travail 1 5 0 0 0
FR Ascension 1 5 2008 0 0
FR Ascension 5 5 2005 0 0
FR Fête de la libération 8 5 0 0 0
FR Lundi de Pentecôte 12 5 2008 0 0
FR Lundi de Pentecôte 16 5 2005 0 0
FR Ascension 17 5 2007 0 0
FR Ascension 20 5 2004 0 0
FR Ascension 25 5 2006 0 0
FR Lundi de Pentecôte 28 5 2007 0 0
FR Ascension 29 5 2003 0 0
FR Lundi de Pentecôte 31 5 2004 0 0
FR Lundi de Pentecôte 5 6 2006 0 0
FR Lundi de Pentecôte 9 6 2003 0 0
FR Fête nationale 14 7 0 0 0
FR Assomption 15 8 0 0 0
FR Toussaint 1 11 0 0 0
FR Armistice 11 11 0 0 0
FR Noël 25 12 0 0 0

View File

@ -4,10 +4,9 @@ JP
JP 春分の日 0 3 0 0 1
JP みどりの日 29 4 0 0 1
JP 憲法記念日 3 5 0 0 1
JP 国民の祝日 4 5 0 0 1
JP こどもの日 5 5 0 0 1
JP 海の日 20 7 0 0 1
JP 敬老の日 15 9 0 0 1
JP 海の日 0 7 3 1 1
JP 敬老の日 0 9 3 1 1
JP 秋分の日 0 9 0 0 1
JP 体育の日 0 10 2 1 1
JP 文化の日 3 11 0 0 1

View File

@ -8,20 +8,28 @@
a calendar de a
accept calendar de Zusagen
accepted calendar de Zugesagt
action that caused the notify: added, canceled, accepted, rejected, ... calendar de Aktion die die Benachrichtigung verursacht hat: Zugefügt, Storniert, Zugesagt, Abgesagt
add a single entry by passing the fields. calendar de Einen einzelnen neuen Eintrag über seine Felder erzeugen.
add alarm calendar de Alarm zufügen
add contact calendar de Kontakt zufügen
added calendar de Neuer Termin
address book calendar de Adressbuch
alarm calendar de Alarm
alarm for %1 at %2 in %3 calendar de Alarm für %1 am %2 in %3
alarm management calendar de Alarm Management
alarm-management calendar de Alarm Management
alarms calendar de Alarme
all day calendar de ganztägig
are you sure you want to delete this country ? calendar de Sind Sie sicher, dass Sie dieses Land löschen wollen ?
are you sure you want to delete this holiday ? calendar de Sind Sie sicher, dass Sie diesen Feiertag löschen wollen ?
are you sure\nyou want to\ndelete these alarms? calendar de Sind Sie sicher,\ndass Sie diese\nAlarme löschen wollen ?
are you sure\nyou want to\ndelete this entry ? calendar de Sind Sie sicher,\ndass Sie diesen\nEintrag löschen wollen ?
are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar de Sind Sie sicher,\ndass Sie diesen\nEintrag löschen wollen ?\n\nDieser Eintrag wird damit\nfür alle Benutzer gelöscht.
are you sure\nyou want to\ndelete this single occurence ?\n\nthis will delete\nthis entry for all users. calendar de Sind Sie sicher,\ndass Sie diesen einzelnen\nEintrag löschen wollen ?\n\nDieser Eintrag wird damit\nfür alle Benutzer gelöscht.
back calendar de zurück
before the event calendar de vor dem Termin
brief description calendar de Kurzbeschreibung
business calendar de geschäftlich
calendar common de Kalender
calendar - [iv]cal importer calendar de Kalendar - [iv]Cal Importieren
calendar - add calendar de Kalendereintrag hinzufügen
@ -31,21 +39,32 @@ calendar holiday management admin de Feiertage verwalten
calendar preferences calendar de Kalender Einstellungen
calendar settings admin de Kalender Einstellungen
calendar-fieldname calendar de Kalender Feldname
canceled calendar de Abgesagt
change all events for $params['old_owner'] to $params['new_owner']. calendar de Ändere alle Termine für $params['old_owner'] auf $params['new_owner'].
change status calendar de Zusage ändern
choose the category calendar de Kategorie auswählen
click %1here%2 to return to the calendar. calendar de %1Hier%2 klicken um zum Kalender zurück zu kehren.
configuration calendar de Konfiguration
countries calendar de Länder
country calendar de Land
csv-fieldname calendar de CSV-Feldname
csv-filename calendar de CSV-Dateiname
custom fields calendar de Benutzerdefinierte Felder
custom fields and sorting common de Benutzerdefinierte Felder und Sortierung
daily calendar de Täglich
daily matrix view calendar de Matrix-Ansicht des Tages
daily matrix view calendar de Matrix-Ansicht
days calendar de Tage
days repeated calendar de wiederholte Tage
dayview calendar de Tagesansicht
default appointment length (in minutes) calendar de Standardlänge eines neuen Kalendareintrags (in Minuten)
default calendar filter calendar de Standard-Filter des Kalenders
default calendar view calendar de Standard-Ansicht des Kalenders
default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar de Vorgabe für die Länge von neuen Kalendareinträgen. Die Länge ist in Minuten, zb. 60 für 1 Stunde.
default view of appointments calendar de Standard-Ansicht der Termine
defines the size in minutes of the lines in the day view. calendar de Bestimmt die Zeitskala in Minuten der Tagesansicht des Kalendars.
delete a single entry by passing the id. calendar de Lösche einen einzelnen Eintrag über seine Id.
delete an entire users calendar. calendar de Lösche den kompletten Kalender eines Benutzers.
delete selected contacts calendar de Löscht die ausgewählten Kontakte.
delete series calendar de Serie löschen
delete single calendar de Einzelevent löschen
deleted calendar de Abgesagt
@ -53,44 +72,68 @@ description calendar de Beschreibung
display interval in day view calendar de Intervall der Tagesansicht
display mini calendars when printing calendar de zeige einen kleinen Kalender beim drucken
display status of events calendar de Status von Terminen anzeigen
displays your default calendar view on the startpage (page you get when you enter phpgroupware or click on the homepage icon)? calendar de Soll Ihr Kalender auf der phpGroupWare Startseite angezeigt werden (die Seite welche sich nach dem Login öffnet oder wenn Sie auch Home klicken)?
do you want to be notified about new or changed appointments? you be notified about changes you make yourself.<br>you can limit the notifications to certain changes only. each item includes all the notification listed above it. all changes include changes of title, description, participants and the acceptions and rejections of the appointment. calendar de Möchten Sie über neue oder geänderte Termine benachrichtigt werden? Sie werden benachrichtigt werden über Änderungen welche Sie selbst durchführen.<br> Sie können die benachrichtigungen beschränken auf bestimmte Änderungen. Jeder auszuwählende Punkt schließt auch die darüber aufgeführten Benachrichtigungen mit ein. Alle Änderungen beinhaltet Änderungen des Titels, der Beschreibung, Teilnehmer so wie Zusagen so wie Absagen von Terminen.
do you want to be notified about new or changed appointments? you be notified about changes you make yourself.<br>you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar de Wollen Sie über neue oder geänderte Termine benachrichtigt werden? Sie werden nie über eigene Änderungen benachrichtig.<br>Sie können die Benachrichtigungen auf verschiedene Änderungen begrenzen. Jede Zeile enthält die Benachrichtigungen der darüberliegenden. Alle Änderungen umfasst den Title, die Beschreibung, Teilnehmer, aber keine Antworten der Teilnehmer. Wenn der Ersteller eines Event irgendeine Benachrichtigung will, erhält er automatisch auch die Antworten der Teilnehmer, wie Zusagen und Absagen.
do you want to be notified about new or changed appointments? you dont get notifications for changes you made yourself.<br>you can limit the notifications on certain changes only. every item include all notification above. all changes include changes of title, description, participants and the acceptions and rejections of them. calendar de
do you want to receive a regulary summary of your appointsments via email?<br>the summary is send to your standard email-address in the morning of that day or on monday for weekly summarys.<br>it is only send when you have any appointments on that day or week. calendar de
do you want to receive a regulary summary of your appointsments via email?<br>the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.<br>it is only sent when you have any appointments on that day or week. calendar de Möchten Sie eine regelmäßige Zusammenfassung Ihrer Termine via E-Mail erhalten?<br>Die Zusammenfassung wird täglich (jeden Morgen), oder für eine wöchentliche Zusammenfassung Montags an Ihre standard E-Mail Adresse gesendet.<br> Die Benachrichtigung wird nur versendet wenn Sie am nächsten Tag oder in der nächsten Woche auch einen Termin haben.
do you wish to autoload calendar holidays files dynamically? admin de Sollen die Feiertage automatisch geladen werden?
download calendar de Herunterladen
duration calendar de Dauer
edit series calendar de Serie bearbeiten
edit single calendar de Einzel bearbeiten
end date/time calendar de Enddatum/-zeit
enddate calendar de Enddatum
ends calendar de endet
enter output filename: ( .vcs appended ) calendar de Namen der Ausgabedatei (.vcs angehangen)
event details follow calendar de Details zum Termin folgen
exceptions calendar de Ausnahmen
export calendar de Exportieren
export a list of entries in ical format. calendar de Eine Liste von Einträgen im iCal Format exportieren.
extended calendar de Erweitert
extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar de Erweiterte Benachrichtigungen enthälten immer die kompletten Termindetails. iCal's können von vielen anderen Kalendarprogrammen importiert werden.
external participants calendar de Externe Teilnehmer
failed sending message to '%1' #%2 subject='%3', sender='%4' !!! calendar de Fehler beim Senden einer Email an '%1' #%2 Betreff='%3', Absender='%4' !!!
fieldseparator calendar de Feldtrenner
firstname of person to notify calendar de Vorname der zu benachrichtigenden Person
format of event updates calendar de Format der Benachrichtigungen
fr calendar de Fr
free/busy calendar de frei/belegt
frequency calendar de Häufigkeit
fri calendar de Fr
full description calendar de vollständige Beschreibung
fullname of person to notify calendar de Name der zu benachrichtigenden Person
generate printer-friendly version calendar de Drucker-freundliche Version erzeugen
global public and group public calendar de Global &Ouml;ffentlich und Gruppen-&Ouml;ffentlich
global public only calendar de nur Global &Ouml;ffentlich
global categories calendar de Globale Kategorien
global public and group public calendar de Global öffentlich und Gruppen-öffentlich
global public only calendar de nur Global öffentlich
go! calendar de Go!
grant calendar access common de Berechtigungen f&uuml;r Kalenderzugriffe
grant calendar access common de Berechtigungen für Kalenderzugriffe
group planner calendar de Gruppenplaner
group public only calendar de Gruppen-Öffentlich
has been canceled calendar de wurde abgesagt
has been rescheduled to calendar de wurde verschoben auf
here is your requested alarm. calendar de Hier ist ihr bestellter Alarm.
high calendar de hoch
high priority calendar de Hohe Priorität
holiday calendar de Feiertag
holiday management calendar de Feitertagsverwaltung
holiday-management calendar de Feitertagsverwaltung
holidays calendar de Feiertage
hours calendar de Stunden
i participate calendar de Ich nehme teil
ical / rfc2445 calendar de iCal / RFC2445
if checked holidays falling on a weekend, are taken on the monday after. calendar de Wenn ausgewählt werden Feiertage die auf ein Wochenende fallen, am drauffolgenden Montag nachgeholt.
ignore conflict calendar de Konflikt ignorieren
import calendar de Importieren
import csv-file into calendar calendar de CSV-Datei in den Kalender importieren
interval calendar de Interval
intervals in day view calendar de Zeitintervalle in der Tagesansicht
intervals per day in planner view calendar de Zeitintervalle pro Tag in der Planeransicht
invalid entry id. calendar de ungültige Id des Eintrags.
last calendar de letzte
lastname of person to notify calendar de Nachname der zu benachrichtigenden Person
length shown<br>(emtpy for full length) calendar de angezeigte Länge<br>(leer für volle Länge)
length<br>(<= 255) calendar de Länge<br>(<= 255)
load [iv]cal calendar de [iv]Cal Laden
location calendar de Ort
location to autoload from admin de Von wo sollen sie geladen werden
@ -99,6 +142,7 @@ matrixview calendar de Matrixansicht
minutes calendar de Minuten
mo calendar de Mo
modified calendar de Geändert
modify list of external participants calendar de Liste der externen Teilnehmer änderen
mon calendar de Mo
month calendar de Monat
monthly calendar de Monatlich
@ -106,16 +150,38 @@ monthly (by date) calendar de Monatlich (nach Datum)
monthly (by day) calendar de Monatlich (nach Wochentag)
monthview calendar de Monatsansicht
new entry calendar de Neuer Eintrag
new name must not exist and not be empty!!! calendar de Neuer Name darf nicht exisitieren und nicht leer sein!!!
no matches found calendar de Keine Treffer gefunden
no matches found. calendar de Keine Treffer gefunden.
no response calendar de Keine Antwort
normal calendar de normal
notification message for updates you send calendar de Mitteilungs Text für updates welche Sie versenden
notification messages for added events calendar de Benachrichtigungstext für neue Termine
notification messages for canceled events calendar de Benachrichtigungstext für stornierte Termine
notification messages for modified events calendar de Benachrichtigungstext für geänderte Termine
notification messages for your alarms calendar de Benachrichtigungstext für ihre Alarem
notification messages for your responses calendar de Benachrichtigungstext für ihre Antworten
number of intervals per day in planner view calendar de Anzahl Intervale pro Tag im Planer
number of months calendar de Anzahl Monate
number of records to read (<=200) calendar de Anzeil Datensätze zu lesen (<= 200)
observance rule calendar de Observance Rule
occurence calendar de Wiederholung
old startdate calendar de Altes Startdatum
olddate calendar de AltesDatum
on %1 %2 %3 your meeting request for %4 calendar de Am %1 hat %2 Ihre Einladung für den %4 %3
overlap holiday calendar de überlappender Urlaub
on all changes calendar de bei allen Veränderungen
on all changes too calendar de
on all modification, but responses calendar de bei allen Änderungen, außer Antworten
on any time change (and above options) calendar de bei allen zeitliche Änderunge (und obige optionen)
on any time change too calendar de auch jede zeitliche Veränderung
on every time-change too calendar de
on invitation / cancelation only calendar de nur bei Einladungen/Absagen
on participant responses too calendar de auch bei Antworten der Teilnehmer
on time change of more than 4 hours too calendar de bei zeitlichen Änderungen größer als 4 Stunden
on time change of time of more than 4 hours (and above options) calendar de wenn der Termin sich um mehr als 4 Stunde verschiebt (und obige Optionen)
on time-changes >= 4 hours too calendar de
order calendar de Reihenfolge
overlap holiday calendar de überlappender Feiertag
participant calendar de Teilnehmer
participants calendar de Teilnehmer
participates calendar de nimmt teil
@ -124,21 +190,26 @@ permission denied calendar de Zugriff verweigert
planner calendar de Planer
planner by category calendar de Planer nach Kategorien
planner by user calendar de Planer nach Benutzern
please confirm,accept,reject or examine changes in the corresponding entry in your calendar calendar de Bitte den entsprechenden Eintrag im Ihrem Kalendar bestätigen, zusagen, absagen oder die Änderungen beachten
please confirm,accept,reject or examine changes in the corresponding entry in your calendar calendar de Bitte den entsprechenden Eintrag im Ihrem Kalendar bestätigen, Zusagen, Absagen oder die Änderungen beachten
preselected group for entering the planner calendar de vorausgewählte Gruppe beim Planeraufruf
print calendars in black & white calendar de Kalender in Schwarz und Weiß drucken
print calendars in black & white calendar de Kalender in schwarz und weiß drucken
print the mini calendars calendar de Mini- Kalender drucken
printer friendly calendar de Drucker-freundlich
privat calendar de Privat
private and global public calendar de Privat und Global Öffentlich
private and group public calendar de Privat und Gruppen Öffentlich
private and global public calendar de Privat und Global öffentlich
private and group public calendar de Privat und Gruppen öffentlich
private only calendar de nur private
re-edit event calendar de Event erneut bearbeiten
read a list of entries. calendar de Eine Liste von Einträgen lesen.
read a single entry by passing the id and fieldlist. calendar de Einen einzelnen Eintrag über seine Id und eine Feldliste lesen.
read this list of methods. calendar de Diese Liste der Methoden lesen.
receive email updates calendar de Empfange E-Mail updates
receive email updates when: calendar de Empfange E-Mail updates wenn:
receive extra information in event mails calendar de Zusätzliche Informationen bei EMail-Benachrichtigung
recurring event calendar de Wiederholender Termin event
receive summary of appointments calendar de Zusammenfassung der Termine erhalten
recurring event calendar de Wiederholender Termin
refresh calendar de Aktualisieren
regular summary of your appointments calendar de
reinstate calendar de Wiedereinsetzen
reject calendar de Absagen
rejected calendar de Abgesagt
@ -147,26 +218,40 @@ repeat end date calendar de Enddatum
repeat type calendar de Wiederholungstyp
repeating event information calendar de Informationen zu sich wiederholenden Ereignissen
repetition calendar de Wiederholung
repetitiondetails (or empty) calendar de Details der Wiederholung (oder leer)
reset calendar de Zurücksetzen
rule calendar de Regel
sa calendar de Sa
sat calendar de Sa
scheduling conflict calendar de Terminüberschneidung
search results calendar de Suchergebnisse
send updates via email common de Updates via EMail senden
selected contacts (%1) calendar de Ausgewählte Kontakte (%1)
send updates via email common de Updates via E-Mail senden
send/receive updates via email calendar de Senden/Empfangen von Aktualisierungen via EMail
send_extra calendar de
set a year only for one-time / non-regular holidays. calendar de Nur für einmalige / unregelmäßige Feiertage das Jahr angeben.
set a year only for one-time / non-regular holidays. calendar de Nur für einmalige/unregelmäßige Feiertage das Jahr angeben.
set new events to private calendar de Neue Termine als private Termine eintragen
should invitations you rejected still be shown in your calendar ?<br>you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar de Sollen Einladungen welche von Ihnen abgelehnt wurden in Ihrem Kalender angezeigt werden?<br> Sie können diese Einladungen dann später akzeptieren (z. B. wenn Sie eine Terminkolission gelöst haben), wenn Sie in Ihrem Kalender noch vorhanden sind!
should invitations you rejected still be shown in your calendar ?<br>you can only accept them later (eg. when your sheduling conflict disappears), if they are still in your calendar! calendar de
should new events created as private by default ? calendar de Sollen neue Termine generell als Privat angelegt werden?
should new events created private by default ? calendar de
should the mini calendars by printed / displayed in the printer friendly views ? calendar de Soll der Mini Kalender "gedruckt werden/angezeigt werden" in einer Druck freundlichen Ansicht ?
should the printer friendly view be in black & white or in color (as in normal view)? calendar de Soll die Drucker freundliche Ansicht in schwarz-weiß dargestellt werden oder in Farbe (identisch der normalen Ansicht)?
should the printer friendly view be in black & white or in color, like the normal view? calendar de
should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar de Soll der Status (Zugesagt,Abgesagt ...)der Termin- Teilnehmer in Klammern hinter jeden Teilnehmer angezeigt werden?
show day view on main screen calendar de Tagesansicht auf Startseite anzeigen
show default view on main screen calendar de Standardansicht auf der Startseite anzeigen
show high priority events on main screen calendar de Termine mit hoher Priorität auf der Startseite anzeigen
show invitations you rejected calendar de Zeige Einladungen welche abgelehnt wurden an
single event calendar de Einzelner Termin
sorry, the owner has just deleted this event calendar de Der Eigentümer hat diesen Termin gerade gelöscht
sorry, this event does not exist calendar de Dieser Termin existiert nicht
sorry, this event does not have exceptions defined calendar de Dieser Termin hat keine Ausnahmen definiert
sort by calendar de Sortieren nach
specifies the granularity of the planner view. calendar de
specifies the the number of intervals shown in the planner view. calendar de Legt die Anzahl der Zeitintervalle fest welche in der Kalenderplanung angezeigt werden.
start date/time calendar de Startdatum/-zeit
start- and enddates calendar de Start- und Enddatum/-zeit
startdate calendar de Startdatum
startrecord calendar de Startdatensatz
su calendar de So
submit to repository calendar de Übertragen zu phpGroupWare.org
@ -178,17 +263,39 @@ th calendar de Do
the following conflicts with the suggested time:<ul>%1</ul> calendar de Im gewählten Zeitraum gibt es einen Konflikt:<ul>%1</ul>
the user %1 is not participating in this event! calendar de Der Benutzer %1 nimmt nicht an diesem Event teil!
there was an error trying to connect to your news server.<br>please contact your admin to check the news servername, username or password. calendar de Fehler beim Kontaktieren Ihres News-Servers.<br>Bitte benachrichtigen Sie ihren Administrator um Servername, Username und Passwort für News zu überprüfen.
this day is shown as first day in the week or month view. calendar de Dieser Tag wird als erster in der Wochen- oder Monatsansicht angezeigt
this defines the end of your dayview. events after that time, are shown below the dayview. calendar de
this defines the end of your dayview. events after this time, are shown below the dayview. calendar de Diese Zeit definiert das Ende des Arbeitstags in der Tagesansicht. Alle späteren Einträge werden darunter dargestellt.
this defines the start of your dayview. events before that time, are shown above the dayview. calendar de
this defines the start of your dayview. events before this time, are shown above the dayview. calendar de Diese Zeit definiert das Start des Arbeitstags in der Tageseinsicht. Alle späteren Einträge werden darüber dargestellt.
this defines the start of your dayview. events before this time, are shown above the dayview.<br>this time is also used as a default starttime for new events. calendar de Diese Zeit definiert den Anfang des Arbeitstags in der Tagesansicht. Alle früheren Einträge werden darüber dargestellt.
this group got preselected when you enter the planner. you can change it in the planner anytime you want. calendar de
this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar de Diese Gruppe wird als vorauswahl ausgewählt wenn Sie den Planer öffnen. Sie können die Gruppe jederzeit wechseln wenn Sie möchten.
this is mostly caused by a not or wrongly configured smtp server. notify your administrator. calendar de Das wird meistens durch einen nicht oder falsch konfigurierten SMTP Server verursacht. Benachrichtigen sie ihren Administrator.
this message is send to every participant of events you own, who requested notifcations.<br>you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar de
this message is sent for canceled or deleted events. calendar de Diese Benachrichtigung wird für stornierte oder gelöschte Termine versandt.
this message is sent for modified or moved events. calendar de Diese Benachrichtigung wird für geänderte Termine versandt.
this message is sent to every participant of events you own, who has requested notifcations about new events.<br>you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar de Diese Nachricht wird an alle Teilnehmer der Termine die Sie anlegen versandt, die Benachrichtigungen wünschen.<br>Sie können verschiedene Variablen verwenden, welche durch die Daten des Termins ersetzt werden. Die erste Zeite ist der Betreff der E-Mail.
this message is sent to every participant of events you own, who has requested notifcations.<br>you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar de Mit dieser Nachricht laden Sie Teilnehmer zu einem Termin ein, welche eine automatische Benachrichtigung aktiviert haben.<br> Sie können verschiedene Variablen benutzen welche durch die Daten des Meetings ersetzt werden. Die erste Zeile ist der Betreff der E-Mail
this message is sent when you accept, tentative accept or reject an event. calendar de Diese Nachricht wird gesendet wenn Sie einen Termin zusagen, vorläufig zusagen oder absagen.
this message is sent when you set an alarm for a certain event. include all information you might need. calendar de Diese Meldung wird ihnen gesandt, wenn sie einen Alarm für einen Termin setzen. Nehmen sie alle Information darin auf, die sie benötigen.
this month calendar de Dieser Monat
this week calendar de Diese Woche
this year calendar de Dieses Jahr
thu calendar de Do
title calendar de TITEL
title calendar de Titel
title of the event calendar de Titel des Termin
title-row calendar de Titelzeile
to-firstname calendar de An-Vorname
to-fullname calendar de An-Name
to-lastname calendar de An-Nachname
today calendar de Heute
translation calendar de Übersetzung
tu calendar de Di
tue calendar de Di
update a single entry by passing the fields. calendar de Einen einzelnen Termin über seine Felder updaten.
updated calendar de Aktualisiert
updates of your appointments via email calendar de
use end date calendar de Enddatum benutzen
view this entry calendar de Diesen Eintrag anzeigen
we calendar de Mi
@ -198,27 +305,34 @@ weekday starts on calendar de Arbeitswoche beginnt am
weekly calendar de Wöchentlich
weekview calendar de Wochenansicht
when creating new events default set to private calendar de neue Termine sind privat
which events do you want to see when you enter the calendar. calendar de Welche Termine möchten Sie angezeigt bekommen wenn Sie den Kalender öffnen?
which of calendar view do you want to see, when you start calendar ? calendar de Welche der möglichen Ansichten des Kalenders möchten Sie als Standard sehen wenn der Kalender geöffnet wird?
which of the calendar-views do you want to see, when you enter the calendar ? calendar de
work day ends on calendar de Arbeitstag endet um
work day starts on calendar de Arbeitstag beginnt um
workdayends calendar de Arbeitstag endet um
workdayends calendar de Arbeitstag endet
year calendar de Jahr
yearly calendar de Jährlich
yearview calendar de
you can either set a year or a occurence, not both !!! calendar de Sie können nur entweder das Jahr oder die Wiederholung angeben, nicht beides !!!
you can only set a year or a occurence !!! calendar de Sie können nur ein Jahr oder eine Wiederholung angeben !!!
yearview calendar de Jährliche Ansicht
you can either set a year or a occurence, not both !!! calendar de Sie können nur entweder das Jahr oder die Wiederholung angeben, nicht beides!
you can only set a year or a occurence !!! calendar de Sie können nur ein Jahr oder eine Wiederholung angeben !
you do not have permission to add alarms to this event !!! calendar de Sie haben keine Berechtigung Alarme zu diesem Termin zuzufügen !!!
you do not have permission to delete this alarm !!! calendar de Sie haben keine Berechtigung diesen Alarm zu löschen !!!
you do not have permission to enable/disable this alarm !!! calendar de Sie haben keine Berechtigung diesen Alarm ein- oder auszuschalten !!!
you do not have permission to read this record! calendar de Sie haben keine Berechtigung diesen Eintrag zu lesen!
you have %1 high priority events on your calendar today. common de Sie haben heute %1 Einträge mit hoher Priorität auf Ihrer Liste!
you have 1 high priority event on your calendar today. common de Sie haben heute einen Eintrag mit hoher Priorität auf Ihrer Liste!
you have a meeting scheduled for calendar de Sie haben einen Termin am
you have a meeting scheduled for %1 calendar de Sie haben einen Termin am %1.
you have not entered a title calendar de Sie haben keinen Titel angegeben
you have not entered a valid date calendar de Sie haben kein gültiges Datum angegeben
you have not entered a valid time of day calendar de Sie haben keine gültige Uhrzeit angegeben
you have not entered a\nbrief description calendar de Sie haben keine a\nKurzbeschreibung eingegeben
you have not entered a\nvalid time of day calendar de Sie haben keine a\ngültige Tageszeit eingegeben.
you have not entered participants calendar de Sie haben keine Teilnehmer angegeben
you have %1 high priority events on your calendar today. common de Sie haben heute %1 Einträge mit hoher Priorität auf Ihrer Liste!
you must enter one or more search keywords calendar de Sie müssen einen oder mehrere Suchbegriffe angeben
you must enter one or more search keywords. calendar de Sie müssen einen oder mehrere Suchbegriffe angeben.
you must select a [iv]cal. (*.[iv]cs) calendar de Sie müssen einen [iv]Cal (*.[iv]cs) auswählen.
you need to set either a day or a occurence !!! calendar de Sie müssen entweder einen Tag oder eine Wiederholung angeben !!!
your meeting scheduled for calendar de Ihr Termin am
your meeting that had been scheduled for calendar de Ihr Termin am
your meeting scheduled for %1 has been canceled calendar de Ihr Termin am %1 wurde abgesagt.
your meeting that had been scheduled for %1 has been rescheduled to %2 calendar de Ihr Termin am %1 wurde auf %2 verschoben.
your suggested time of <b> %1 - %2 </b> conflicts with the following existing calendar entries: calendar de Der von Ihnen gewählte Zeitraum <B> %1 - %2 </B> führt zu Konflikten mit folgenden bereits existierenden Kalendereinträgen:

View File

@ -8,44 +8,60 @@
a calendar en a
accept calendar en Accept
accepted calendar en Accepted
action that caused the notify: added, canceled, accepted, rejected, ... calendar en Action that caused the notify: Added, Canceled, Accepted, Rejected, ...
add a single entry by passing the fields. calendar en Add a single entry by passing the fields.
add alarm calendar en Add Alarm
add contact calendar en Add Contact
added calendar en Added
address book calendar en Address Book
alarm calendar en alarm
alarm for %1 at %2 in %3 calendar en Alarm for %1 at %2 in %3
alarm management calendar en Alarm Management
alarm-management calendar en Alarm-Management
alarms calendar en Alarms
all day calendar en All Day
are you sure you want to delete this country ? calendar en Are you sure you want to delete this Country ?
are you sure you want to delete this holiday ? calendar en Are you sure you want to delete this holiday ?
are you sure\nyou want to\ndelete these alarms? calendar en Are you sure\nyou want to\ndelete these alarms?
are you sure\nyou want to\ndelete this entry ? calendar en Are you sure\nyou want to\ndelete this entry ?
are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar en Are you sure\nyou want to\ndelete this entry ?\n\nThis will delete\nthis entry for all users.
are you sure\nyou want to\ndelete this single occurence ?\n\nthis will delete\nthis entry for all users. calendar en Are you sure\nyou want to\ndelete this single occurence ?\n\nThis will delete\nthis entry for all users.
before the event calendar en before the event
brief description calendar en Brief Description
business calendar en Business
calendar common en Calendar
calendar - [iv]cal importer calendar en Calendar - [iv]Cal Importer
calendar - add calendar en Calendar - Add
calendar - edit calendar en Calendar - Edit
calendar - [iv]cal importer calendar en Calendar - [iv]Cal Importer
calendar event calendar en Calendar Event
calendar holiday management admin en Calendar Holiday Management
calendar preferences calendar en Calendar Preferences
calendar settings admin en Calendar Settings
calendar-fieldname calendar en Calendar-Fieldname
canceled calendar en Canceled
change all events for $params['old_owner'] to $params['new_owner']. calendar en Change all events for $params['old_owner'] to $params['new_owner'].
change status calendar en Change Status
click %1here%2 to return to the calendar. calendar en Click %1here%2 to return to the calendar.
configuration calendar en Configuration
countries calendar en Countries
country calendar en Country
csv-fieldname calendar en CSV-Fieldname
csv-filename calendar en CSV-Filename
custom fields calendar en Custom Fields
custom fields and sorting common en Custom fields and sorting
daily calendar en Daily
daily matrix view calendar en Daily Matrix View
days calendar en days
days repeated calendar en days repeated
dayview calendar en Dayview
default appointment length (in minutes) calendar en default appointment length (in minutes)
default calendar filter calendar en Default calendar filter
default calendar view calendar en Default calendar view
default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar en Default length of newly created events. The length is in minutes, eg. 60 for 1 hour.
defines the size in minutes of the lines in the day view. calendar en Defines the size in minutes of the lines in the day view.
delete a single entry by passing the id. calendar en Delete a single entry by passing the id.
delete an entire users calendar. calendar en Delete an entire users calendar.
delete selected contacts calendar en Delete selected contacts
delete series calendar en Delete Series
delete single calendar en Delete Single
deleted calendar en Deleted
@ -53,47 +69,64 @@ description calendar en DESCRIPTION
display interval in day view calendar en Display interval in Day View
display mini calendars when printing calendar en Display mini calendars when printing
display status of events calendar en Display Status of Events
Display week days only in Month/Week View calendar en Display week days only in Month/Week View
displays your default calendar view on the startpage (page you get when you enter phpgroupware or click on the homepage icon)? calendar en Displays your default calendar view on the startpage (page you get when you enter phpGroupWare or click on the homepage icon)?
do you want to be notified about new or changed appointments? you be notified about changes you make yourself.<br>you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar en Do you want to be notified about new or changed appointments? You be notified about changes you make yourself.<br>You can limit the notifications to certain changes only. Each item includes all the notification listed above it. All modifications include changes of title, description, participants, but no participant responses. If the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too.
do you want to receive a regulary summary of your appointsments via email?<br>the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.<br>it is only sent when you have any appointments on that day or week. calendar en Do you want to receive a regulary summary of your appointsments via email?<br>The summary is sent to your standard email-address on the morning of that day or on Monday for weekly summarys.<br>It is only sent when you have any appointments on that day or week.
do you wish to autoload calendar holidays files dynamically? admin en Do you wish to autoload calendar holidays files dynamically?
download calendar en Download
duration calendar en Duration
edit series calendar en Edit Series
edit single calendar en Edit Single
end date/time calendar en End Date/Time
enddate calendar en Enddate
ends calendar en ends
enter output filename: ( .vcs appended ) calendar en Enter Output Filename: ( .vcs appended )
event details follow calendar en Event Details Follow
exceptions calendar en Exceptions
export calendar en Export
export a list of entries in ical format. calendar en Export a list of entries in iCal format.
extended calendar en Extended
extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar en Extended updates always include the complete event-details. iCal's can be imported by certain other calendar-applications.
external participants calendar en External Participants
failed sending message to '%1' #%2 subject='%3', sender='%4' !!! calendar en Failed sending message to '%1' #%2 subject='%3', sender='%4' !!!
fieldseparator calendar en Fieldseparator
firstname of person to notify calendar en Firstname of person to notify
format of event updates calendar en Format of event updates
fr calendar en F
free/busy calendar en Free/Busy
frequency calendar en Frequency
fri calendar en Fri
full description calendar en Full Description
fullname of person to notify calendar en Fullname of person to notify
generate printer-friendly version calendar en Generate printer-friendly version
global categories calendar en Global Categories
global public and group public calendar en Global Public and group public
global public only calendar en Global Public Only
go! calendar en Go!
grant calendar access common en Grant Calendar Access
group planner calendar en Group Planner
group public only calendar en Group Public Only
has been canceled calendar en has been canceled
has been rescheduled to calendar en has been rescheduled to
here is your requested alarm. calendar en Here is your requested alarm.
high priority calendar en high priority
holiday calendar en Holiday
holiday management calendar en Holiday Management
holiday-management calendar en Holiday-Management
holidays calendar en Holidays
hours calendar en hours
i participate calendar en I Participate
ical / rfc2445 calendar en iCal / rfc2445
if checked holidays falling on a weekend, are taken on the monday after. calendar en If checked holidays falling on a weekend, are taken on the monday after.
ignore conflict calendar en Ignore Conflict
import calendar en Import
import csv-file into calendar calendar en Import CSV-File into Calendar
interval calendar en Interval
intervals in day view calendar en Intervals in day view
intervals per day in planner view calendar en Intervals per day in planner view
invalid entry id. calendar en Invalid entry id.
last calendar en last
lastname of person to notify calendar en Lastname of person to notify
length shown<br>(emtpy for full length) calendar en Length shown<br>(emtpy for full length)
length<br>(<= 255) calendar en Length<br>(<= 255)
load [iv]cal calendar en Load [iv]Cal
location calendar en Location
location to autoload from admin en Location to autoload from
@ -101,6 +134,7 @@ matrixview calendar en Matrixview
minutes calendar en minutes
mo calendar en M
modified calendar en Modified
modify list of external participants calendar en Modify List of External Participants
mon calendar en Mon
month calendar en Month
monthly calendar en Monthly
@ -108,14 +142,29 @@ monthly (by date) calendar en Monthly (by date)
monthly (by day) calendar en Monthly (by day)
monthview calendar en Monthview
new entry calendar en New Entry
no matches found. calendar en No matches found.
new name must not exist and not be empty!!! calendar en New name must not exist and not be empty!!!
no matches found calendar en No matches found
no response calendar en No Response
notification messages for added events calendar en Notification messages for added events
notification messages for canceled events calendar en Notification messages for canceled events
notification messages for modified events calendar en Notification messages for modified events
notification messages for your alarms calendar en Notification messages for your alarms
notification messages for your responses calendar en Notification messages for your responses
number of intervals per day in planner view calendar en Number of Intervals per Day in Planner View
number of months calendar en Number of months
number of records to read (<=200) calendar en Number of records to read (<=200)
observance rule calendar en Observance Rule
occurence calendar en Occurence
old startdate calendar en Old Startdate
olddate calendar en OldDate
on %1 %2 %3 your meeting request for %4 calendar en On %1 %2 %3 your meeting request for %4
on all changes calendar en on all changes
on all modification, but responses calendar en on all modification, but responses
on any time change too calendar en on any time change too
on invitation / cancelation only calendar en on invitation / cancelation only
on participant responses too calendar en on participant responses too
on time change of more than 4 hours too calendar en on time change of more than 4 hours too
order calendar en Order
overlap holiday calendar en overlap holiday
participant calendar en Participant
participants calendar en Participants
@ -125,10 +174,10 @@ permission denied calendar en Permission denied
planner calendar en Planner
planner by category calendar en Planner by category
planner by user calendar en Planner by user
planner_user calendar en planner_user
please confirm,accept,reject or examine changes in the corresponding entry in your calendar calendar en Please confirm, accept, reject or examine changes in the corresponding entry in your calendar
preselected group for entering the planner calendar en Preselected group for entering the planner
print calendars in black & white calendar en Print calendars in black & white
print the mini calendars calendar en Print the mini calendars
printer friendly calendar en Printer Friendly
privat calendar en Privat
private and global public calendar en Private and Global Public
@ -138,7 +187,9 @@ re-edit event calendar en Re-Edit Event
read a list of entries. calendar en Read a list of entries.
read a single entry by passing the id and fieldlist. calendar en Read a single entry by passing the id and fieldlist.
read this list of methods. calendar en Read this list of methods.
receive email updates calendar en Receive email updates
receive extra information in event mails calendar en Receive extra information in event mails
receive summary of appointments calendar en Receive summary of appointments
recurring event calendar en recurring event
refresh calendar en Refresh
reinstate calendar en Reinstate
@ -148,26 +199,36 @@ repeat end date calendar en Repeat End date
repeat type calendar en Repeat type
repeating event information calendar en Repeating Event Information
repetition calendar en Repetition
repetitiondetails (or empty) calendar en Repetitiondetails (or empty)
reset calendar en Reset
rule calendar en Rule
sa calendar en Sa
sat calendar en Sat
scheduling conflict calendar en Scheduling Conflict
search results calendar en Search Results
selected contacts (%1) calendar en Selected contacts (%1)
send updates via email common en Send updates via EMail
send/receive updates via email calendar en Send/Receive updates via EMail
send_extra calendar en send_extra
set a year only for one-time / non-regular holidays. calendar en Set a Year only for one-time / non-regular holidays.
set new events to private calendar en Set new events to private
should invitations you rejected still be shown in your calendar ?<br>you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar en Should invitations you rejected still be shown in your calendar ?<br>You can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar!
should new events created as private by default ? calendar en Should new events created as private by default ?
should the mini calendars by printed / displayed in the printer friendly views ? calendar en Should the mini calendars by printed / displayed in the printer friendly views ?
should the printer friendly view be in black & white or in color (as in normal view)? calendar en Should the printer friendly view be in black & white or in color (as in normal view)?
should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar en Should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ?
show day view on main screen calendar en show day view on main screen
show default view on main screen calendar en Show default view on main screen
show high priority events on main screen calendar en Show high priority events on main screen
show invitations you rejected calendar en Show invitations you rejected
single event calendar en single event
sorry, the owner has just deleted this event calendar en Sorry, the owner has just deleted this event
sorry, this event does not exist calendar en Sorry, this event does not exist
sorry, this event does not have exceptions defined calendar en Sorry, this event does not have exceptions defined
sort by calendar en Sort by
specifies the the number of intervals shown in the planner view. calendar en Specifies the the number of intervals shown in the planner view.
start date/time calendar en Start Date/Time
start- and enddates calendar en Start- and Enddates
startdate calendar en Startdate
startrecord calendar en Startrecord
su calendar en Su
submit to repository calendar en Submit to Repository
@ -179,11 +240,26 @@ th calendar en T
the following conflicts with the suggested time:<ul>%1</ul> calendar en The following conflicts with the suggested time:<ul>%1</ul>
the user %1 is not participating in this event! calendar en The user %1 is not participating in this event!
there was an error trying to connect to your news server.<br>please contact your admin to check the news servername, username or password. calendar en There was an error trying to connect to your news server.<br>Please contact your admin to check the news servername, username or password.
this day is shown as first day in the week or month view. calendar en This day is shown as first day in the week or month view.
this defines the end of your dayview. events after this time, are shown below the dayview. calendar en This defines the end of your dayview. Events after this time, are shown below the dayview.
this defines the start of your dayview. events before this time, are shown above the dayview.<br>this time is also used as a default starttime for new events. calendar en This defines the start of your dayview. Events before this time, are shown above the dayview.<br>This time is also used as a default starttime for new events.
this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar en This group that is preselected when you enter the planner. You can change it in the planner anytime you want.
this is mostly caused by a not or wrongly configured smtp server. notify your administrator. calendar en This is mostly caused by a not or wrongly configured SMTP server. Notify your administrator.
this message is sent for canceled or deleted events. calendar en This message is sent for canceled or deleted events.
this message is sent for modified or moved events. calendar en This message is sent for modified or moved events.
this message is sent to every participant of events you own, who has requested notifcations about new events.<br>you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar en This message is sent to every participant of events you own, who has requested notifcations about new events.<br>You can use certain variables which get substituted with the data of the event. The first line is the subject of the email.
this message is sent when you accept, tentative accept or reject an event. calendar en This message is sent when you accept, tentative accept or reject an event.
this message is sent when you set an alarm for a certain event. include all information you might need. calendar en This message is sent when you set an Alarm for a certain event. Include all information you might need.
this month calendar en This month
this week calendar en This week
this year calendar en This year
thu calendar en Thu
title calendar en TITLE
title of the event calendar en Title of the event
title-row calendar en Title-row
to-firstname calendar en To-Firstname
to-fullname calendar en To-Fullname
to-lastname calendar en To-Lastname
today calendar en Today
translation calendar en Translation
tu calendar en T
@ -199,6 +275,8 @@ weekday starts on calendar en Weekday starts on
weekly calendar en Weekly
weekview calendar en Weekview
when creating new events default set to private calendar en When creating new events default set to private
which events do you want to see when you enter the calendar. calendar en Which events do you want to see when you enter the calendar.
which of calendar view do you want to see, when you start calendar ? calendar en Which of calendar view do you want to see, when you start calendar ?
work day ends on calendar en Work day ends on
work day starts on calendar en Work day starts on
workdayends calendar en workdayends
@ -206,10 +284,13 @@ yearly calendar en Yearly
yearview calendar en Yearview
you can either set a year or a occurence, not both !!! calendar en You can either set a Year or a Occurence, not both !!!
you can only set a year or a occurence !!! calendar en You can only set a year or a occurence !!!
you do not have permission to add alarms to this event !!! calendar en You do not have permission to add alarms to this event !!!
you do not have permission to delete this alarm !!! calendar en You do not have permission to delete this alarm !!!
you do not have permission to enable/disable this alarm !!! calendar en You do not have permission to enable/disable this alarm !!!
you do not have permission to read this record! calendar en You do not have permission to read this record!
you have %1 high priority events on your calendar today. common en You have %1 high priority events on your calendar today.
you have 1 high priority event on your calendar today. common en You have 1 high priority event on your calendar today.
you have a meeting scheduled for calendar en You have a meeting scheduled for
you have a meeting scheduled for %1 calendar en You have a meeting scheduled for %1
you have not entered a title calendar en You have not entered a title
you have not entered a valid date calendar en You have not entered a valid date
you have not entered a valid time of day calendar en You have not entered a valid time of day
@ -217,6 +298,6 @@ you have not entered participants calendar en You have not entered participants
you must enter one or more search keywords calendar en You must enter one or more search keywords
you must select a [iv]cal. (*.[iv]cs) calendar en You must select a [iv]Cal. (*.[iv]cs)
you need to set either a day or a occurence !!! calendar en You need to set either a day or a occurence !!!
your meeting scheduled for calendar en Your meeting scheduled for
your meeting that had been scheduled for calendar en Your meeting that had been scheduled for
your meeting scheduled for %1 has been canceled calendar en Your meeting scheduled for %1 has been canceled
your meeting that had been scheduled for %1 has been rescheduled to %2 calendar en Your meeting that had been scheduled for %1 has been rescheduled to %2
your suggested time of <b> %1 - %2 </b> conflicts with the following existing calendar entries: calendar en Your suggested time of <B> %1 - %2 </B> conflicts with the following existing calendar entries:

View File

@ -8,29 +8,37 @@
a calendar fr un
accept calendar fr Accepte
accepted calendar fr Accepté
action that caused the notify: added, canceled, accepted, rejected, ... calendar fr L'action qui a causé la notification: Ajouté, Annulé, Accepté, Rejeté, ...
add a single entry by passing the fields. calendar fr Ajouter une unique entrée en passant les champs.
add alarm calendar fr Ajouter une alarme
add contact calendar fr Ajouter un contact
added calendar fr Ajouté
address book calendar fr Carnet d'adresses
alarm calendar fr Alarme
alarm for %1 at %2 in %3 calendar fr Alarme pour %1 à %2 dans %3
alarm management calendar fr Gestion des alarmes
alarm-management calendar fr Gestion des alarmes
alarms calendar fr Alarmes
all day calendar fr Journée entière
are you sure you want to delete this country ? calendar fr Etes-vous sûr de vouloir effacer ce pays ?
are you sure you want to delete this holiday ? calendar fr Etes-vous sûr de vouloir effacer ces vacances ?
are you sure\nyou want to\ndelete these alarms? calendar fr Etes-vous sûr\nde vouloir\neffacer ces alarmes?
are you sure\nyou want to\ndelete this entry ? calendar fr Etes-vous sûr\nde vouloir\neffacer cette entrée ?
Are you sure\nyou want to\ndelete this entry ?\n\nThis will delete\nthis entry for all users. calendar fr Etes-vous sûr\nde vouloir\neffacer cette entrée ?\n\nCeci va effacer\ncette entrée pour tous les utilisateurs.
Are you sure\nyou want to\ndelete this single occurence ?\n\nThis will delete\nthis entry for all users. calendar fr Etes-vous sûr\nde vouloir\neffacer cette unique occurence ?\n\nCeci va effacer\ncette entrée pour tous les utilisateurs.
before the event calendar fr avant l'évènement
brief description calendar fr Description brève
business calendar fr Travail
calendar common fr Calendrier
calendar - [iv]cal importer calendar fr Calendrier - Importateur [iv]Cal
calendar - add calendar fr Calendrier - Ajouter
calendar - edit calendar fr Calendrier - Modifier
calendar - [iv]cal importer calendar fr Calendrier - Importateur [iv]Cal
calendar event calendar fr Evénement de calendrier
calendar holiday management admin fr Gestion du calendrier des vacances
calendar preferences calendar fr Préférences du calendrier
calendar settings admin fr Réglages calendrier
calendar-fieldname calendar fr Calendrier-nom des champs
canceled calendar fr Annulé
change all events for $params['old_owner'] to $params['new_owner']. calendar fr Changer tous les évènements pour $params['old_owner'] vers $params['new_owner'].
change status calendar fr Modifier le statut
configuration calendar fr Configuration
@ -38,14 +46,21 @@ countries calendar fr Pays
country calendar fr Pays
csv-fieldname calendar fr CSV-nom des champs
csv-filename calendar fr CSV-nom du fichier
custom fields calendar fr Champs personnalisés
custom fields and sorting common fr Champs personnalisés et tri
daily calendar fr Journalier
daily matrix view calendar fr Vue journalière de la matrice
days calendar fr Jours
days repeated calendar fr Jours répétés
dayview calendar fr Vue journalière
default appointment length (in minutes) calendar fr Durée du rendez-vous par défaut (en minutes)
default calendar filter calendar fr Filtre de calendrier par défaut
default calendar view calendar fr Vue du calendrier par défaut
default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar fr Durée par défaut des évènements nouvellement crées. La durée est en minutes, p.e. 60 pour 1 heure.
defines the size in minutes of the lines in the day view. calendar fr Définit la taille en minutes des lignes dans la vue journalière.
delete a single entry by passing the id. calendar fr Effacer une unique entrée en passant l'ID.
delete an entire users calendar. calendar fr Efface l'ensemble du calendrier de l'utilisateur.
delete selected contacts calendar fr Effacer les contacts sélectionnés
delete series calendar fr Effacer les séries
delete single calendar fr Effacer un unique
deleted calendar fr Effacé
@ -53,47 +68,64 @@ description calendar fr Description
display interval in day view calendar fr Afficher l'intervalle dans la vue journalière
display mini calendars when printing calendar fr Afficher mini calendriers à l'impression
display status of events calendar fr Afficher le statut des événements
Display week days only in Month/Week View calendar fr Afficher les jours ouvrés seulement dans la vue Mois/Semaine
displays your default calendar view on the startpage (page you get when you enter phpgroupware or click on the homepage icon)? calendar fr Afficher votre vue de calendrier par défaut sur la page de démarrage (page que vous obtenez quand vous entrez dans phpGroupWare ou cliquez sur l'icône page maison (homepage))?
do you want to be notified about new or changed appointments? you be notified about changes you make yourself.<br>you can limit the notifications to certain changes only. each item includes all the notification listed above it. all modifications include changes of title, description, participants, but no participant responses. if the owner of an event requested any notifcations, he will always get the participant responses like acceptions and rejections too. calendar fr Voulez-vous être prévenu des rendez-vous nouveaux ou modifiés? Vous serez prévenu des modifications que vous faites vous-même.<br>Vous pouvez limiter les notifications à certains changements seulement. Chaque objet inclut toutes les notifications listées au-dessus de lui. Toutes les modifications inclut les modifications de titre, description, participants, mais pas les réponses des participants. Si le propriétaire d'un évènement a demandé aucune notification, il aura toujours les réponses des participants comme les acceptations et les rejets aussi.
do you want to receive a regulary summary of your appointsments via email?<br>the summary is sent to your standard email-address on the morning of that day or on monday for weekly summarys.<br>it is only sent when you have any appointments on that day or week. calendar fr Voulez-vous recevoir un résumé régulier de vos rendez-vous par EMail?<br>Le résumé est envoyé à votre adresse EMail standard le matin de ce jour ou le lundi pour les résumés hebdomadaires.<br>Il est envoyé seulement quand vous avez des rendez-vous ce jour-là ou cette semaine-là.
do you wish to autoload calendar holidays files dynamically? admin fr Voulez-vous auto-charger les fichiers de vacances calendrier dynamiquement?
download calendar fr Downloader
duration calendar fr Durée
edit series calendar fr Modifier toutes les occurrences
edit single calendar fr Modifier cette occurrence
email reminder calendar fr EMail de rappel
end date/time calendar fr Date/Heure de fin
enddate calendar fr Date de fin
ends calendar fr Finit
enter output filename: ( .vcs appended ) calendar fr Entrer le nom du fichier de sortie: ( .vcs ajouté )
event details follow calendar fr Les détails de l'évènement suivent
exceptions calendar fr Exceptions
export calendar fr Export
export a list of entries in ical format. calendar fr Exporter une liste d'entrées dans le format iCal.
extended calendar fr Etendu
extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar fr Les mises à jour étendues incluent toujours les détails complets de l'évènement. Les iCals peuvent être importés par certaines autres applications de calendrier.
external participants calendar fr Participants extérieurs
fieldseparator calendar fr Séparateur de champs
firstname of person to notify calendar fr Prénom de la personne à prévenir
format of event updates calendar fr Format des mises à jour d'évènement
fr calendar fr F
free/busy calendar fr Libre/occupé
frequency calendar fr Fréquence
fri calendar fr Ven
full description calendar fr Description complète
fullname of person to notify calendar fr Nom complet de la personne à prévenir
generate printer-friendly version calendar fr Générer une version imprimable
global categories calendar fr Catégories globales
global public and group public calendar fr Public global et groupe public
global public only calendar fr Public global seulement
go! calendar fr Go!
grant calendar access common fr Régler les autorisations d'accès au calendrier
group planner calendar fr Planificateur de groupe
group public only calendar fr Groupe public seulement
has been canceled calendar fr a été annulé
has been rescheduled to calendar fr a été replanifié le
here is your requested alarm. calendar fr Voici votre alarme demandée.
high priority calendar fr Priorité haute
holiday calendar fr Vacance
holiday management calendar fr Gestion des vacances
holiday-management calendar fr Gestion des vacances
holidays calendar fr Vacances
hours calendar fr Heures
i participate calendar fr Je participe
ical / rfc2445 calendar fr iCal / rfc2445
if checked holidays falling on a weekend, are taken on the monday after. calendar fr Si activé les vacances tombant sur un Week-End, sont prises sur le lundi d'après.
ignore conflict calendar fr Ignorer le conflit
import calendar fr Import
import csv-file into calendar calendar fr Importer un fichier CSV dans le calendrier
interval calendar fr Intervalle
intervals in day view calendar fr Intervalles dans la vue journalière
intervals per day in planner view calendar fr Intervalles par jour dans la vue planning
invalid entry id. calendar fr ID d'entrée invalide.
last calendar fr Dernier
lastname of person to notify calendar fr Nom de famille de la personne à prévenir
length shown<br>(emtpy for full length) calendar fr Longueur montrée<br>(vide pour longueur complète)
length<br>(<= 255) calendar fr Longueur<br>(<= 255)
load [iv]cal calendar fr Charger [iv]Cal
location calendar fr Emplacement
location to autoload from admin fr Emplacement depuis lequel auto-charger
@ -101,6 +133,7 @@ matrixview calendar fr Vue matricielle
minutes calendar fr minutes
mo calendar fr L
modified calendar fr Modifié
modify list of external participants calendar fr Modifier la liste des participants extérieurs
mon calendar fr Lun
month calendar fr Mois
monthly calendar fr Mensuel
@ -108,14 +141,29 @@ monthly (by date) calendar fr Mensuel (par date)
monthly (by day) calendar fr Mensuel (par jour)
monthview calendar fr Vue mensuelle
new entry calendar fr Nouvelle entrée
no matches found. calendar fr Pas d'occurences trouvées.
new name must not exist and not be empty!!! calendar fr Le nouveau nom ne doit pas exister et ne doit pas être vide!!!
no matches found calendar fr Pas d'occurences trouvées
no response calendar fr Pas de réponse
notification messages for added events calendar fr Messages de notification pour les évènements ajoutés
notification messages for canceled events calendar fr Messages de notification pour les évènements annulés
notification messages for modified events calendar fr Messages de notification pour les évènements modifiés
notification messages for your alarms calendar fr Messages de notification pour vos alarmes
notification messages for your responses calendar fr Messages de notification pour vos réponses
number of intervals per day in planner view calendar fr Nombre d'intervalles par jour dans la vue planificateur
number of months calendar fr Nombre de mois
number of records to read (<=200) calendar fr Nombre d'enregistrements à lire (<=200)
observance rule calendar fr Règle d'observation
occurence calendar fr Occurence
old startdate calendar fr Ancienne date de début
olddate calendar fr Ancienne date
on %1 %2 %3 your meeting request for %4 calendar fr Le %1 %2 %3 votre demande de réunion pour %4
on all changes calendar fr Sur tous les changements
on all modification, but responses calendar fr Sur toutes les modifications, sauf les réponses
on any time change too calendar fr Sur n'importe quel changement de temps aussi
on invitation / cancelation only calendar fr sur invitation / annulation seulement
on participant responses too calendar fr Sur les réponses des participants aussi
on time change of more than 4 hours too calendar fr sur le changement de temps de plus de 4 heures aussi
order calendar fr Ordre
overlap holiday calendar fr Vacances recouvrantes
participant calendar fr Participant
participants calendar fr Participants
@ -125,10 +173,10 @@ permission denied calendar fr Permission refus
planner calendar fr Planificateur
planner by category calendar fr Planificateur par catégrie
planner by user calendar fr Planificateur par utilisateur
planner_user calendar fr Utilisateur planificateur
please confirm,accept,reject or examine changes in the corresponding entry in your calendar calendar fr SVP confirmez, acceptez, rejetez ou examinez les modifications dans l'entrée correspondante de votre calendrier
preselected group for entering the planner calendar fr Groupe présélectionné pour entrer le planificateur
print calendars in black & white calendar fr Imprimer les calendriers en noir & blanc
print the mini calendars calendar fr Imprimer les mini-calendriers
printer friendly calendar fr Imprimable
privat calendar fr Privée
private and global public calendar fr Public privé et global
@ -138,7 +186,9 @@ re-edit event calendar fr Remodifier l'
read a list of entries. calendar fr Lire une liste d'entrées.
read a single entry by passing the id and fieldlist. calendar fr Lire une unique entrée en passant l'ID et la liste des champs.
read this list of methods. calendar fr Lire cette liste de méthodes.
receive email updates calendar fr Recevoir les mises à jour par EMail
receive extra information in event mails calendar fr Recevoir des informations supplémentaires dans les EMails d'évènements
receive summary of appointments calendar fr Recevoir le résumé des rendez-vous
recurring event calendar fr Evènement récurrent
refresh calendar fr Rafraîchir
reinstate calendar fr Réinstaller
@ -148,26 +198,36 @@ repeat end date calendar fr Date de fin de r
repeat type calendar fr Type de répétition
repeating event information calendar fr Informations d'événement répétitif
repetition calendar fr Répétition
repetitiondetails (or empty) calendar fr Détails de répétition (ou vide)
reset calendar fr Réinitialiser
rule calendar fr Règle
sa calendar fr Sa
sat calendar fr Sam
scheduling conflict calendar fr Conflit de planification
search results calendar fr Résultats de recherche
selected contacts (%1) calendar fr Contacts choisis (%1)
send updates via email common fr Envoyer les mises à jour par EMail
send/receive updates via email calendar fr Envoyer/recevoir les mises à jour par EMail
send_extra calendar fr Envoyer extra
set a year only for one-time / non-regular holidays. calendar fr Régler sur une année seulement pour les vacances uniques / non-régulières.
set new events to private calendar fr Régler les nouveaux évènements comme privés
should invitations you rejected still be shown in your calendar ?<br>you can only accept them later (eg. when your scheduling conflict is removed), if they are still shown in your calendar! calendar fr Les invitations que vous avez rejeté doivent-elles être encore montrées dans votre calendrier ?<br>Vous ne pourrez les accepter plus tard (p.e. quand le conflit de rendez-vous est supprimé), que si elles sont encore montrées dans votre calendrier!
should new events created as private by default ? calendar fr Les nouveaux évènements doivent-ils être crées comme privés par défaut ?
should the mini calendars by printed / displayed in the printer friendly views ? calendar fr Les mini-calendriers doivent-ils être imprimés / affichés dans les vues compatibles imprimante ?
should the printer friendly view be in black & white or in color (as in normal view)? calendar fr La vue compatible imprimante doit-elle être en noir & blanc ou en couleur (comme dans la vue normale)?
should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar fr Le statut de chaque participant à l'évènement (accepté, rejeté, ...) doit-il être montré entre crochets après le nom de chaque participant ?
show day view on main screen calendar fr Montrer la vue du jour sur l'écran principal
show default view on main screen calendar fr Montrer la vue par défaut sur l'écran principal
show high priority events on main screen calendar fr Montrer les événements prioritaires sur la page principale
show invitations you rejected calendar fr Montrer les invitations que vous avez rejeté
single event calendar fr Evènement unique
sorry, the owner has just deleted this event calendar fr Désolé, le propriétaire vient juste d'effacer cet événement
sorry, this event does not exist calendar fr Désolé, cet évènement n'existe pas
sorry, this event does not have exceptions defined calendar fr Désolé, cet évènement n'a pas d'exceptions définies
sort by calendar fr Sort by
specifies the the number of intervals shown in the planner view. calendar fr Spécifie le nombre d'intervalles montrés dans la vue planning.
start date/time calendar fr Date/heure de début
start- and enddates calendar fr Dates de début et de fin
startdate calendar fr Date de début
startrecord calendar fr Enregistrement de début
su calendar fr Di
submit to repository calendar fr Soumettre au dépôt
@ -179,11 +239,25 @@ th calendar fr J
the following conflicts with the suggested time:<ul>%1</ul> calendar fr L'élément suivant entre en conflit avec l'heure suggérée:<ul>%1</ul>
the user %1 is not participating in this event! calendar fr L'utilisateur %1 ne participe pas à cet évènement!
there was an error trying to connect to your news server.<br>please contact your admin to check the news servername, username or password. calendar fr Il y a eu une erreur en essayant de se connecter à votre serveur de News.<br>SVP, contactez votre administrateur pour vérifier le nom du serveur de News, votre nom ou mot de passe.
this day is shown as first day in the week or month view. calendar fr Ce jour est montré comme le premier jour dans la vue hebdomadaire ou mensuelle.
this defines the end of your dayview. events after this time, are shown below the dayview. calendar fr Ceci définit la fin de votre vue journalière. Les évènements après cette heure sont montrés sous la vue journalière.
this defines the start of your dayview. events before this time, are shown above the dayview.<br>this time is also used as a default starttime for new events. calendar fr Ceci définit le début de votre vue journalière. Les évènements avant cette heuresont montrés au-dessus de la vue journalière.<br>Cette heure est aussi utilisée comme l'heure de début par défaut pour les nouveaux évènements.
this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar fr Ce groupe qui est présélectionné quand vous entrez dans le planning. Vous pouvez le changer dans le planning chaque fois que vous le voulez.
this message is sent for canceled or deleted events. calendar fr Ce message est envoyé pour les évènements annulés ou effacés.
this message is sent for modified or moved events. calendar fr Ce message est envoyé pour les évènements modifiés ou déplacés.
this message is sent to every participant of events you own, who has requested notifcations about new events.<br>you can use certain variables which get substituted with the data of the event. the first line is the subject of the email. calendar fr Ce message est envoyé à tous les participants des évènements vous appartenant qui ont demandé des notifications à propos des nouveaux évènements.<br>Vous pouvez utiliser certaines variables qui seront remplacées par les données de l'évènement. La première ligne est le sujet de l'EMail.
this message is sent when you accept, tentative accept or reject an event. calendar fr Ce message est envoyé quand vous acceptez, essayez d'accepter ou rejetez un évènement.
this message is sent when you set an alarm for a certain event. include all information you might need. calendar fr Ce message est envoyé quand vous réglez une Alarme pour un évènement précis. Incluez toutes les informations dont vous pourriez avoir besoin.
this month calendar fr Ce mois
this week calendar fr Cette semaine
this year calendar fr Cette année
thu calendar fr Jeu
title calendar fr Titre
title of the event calendar fr Titre de l'évènement
title-row calendar fr Titre de ligne
to-firstname calendar fr A-prénom
to-fullname calendar fr A-Nom complet
to-lastname calendar fr A-Nom de famille
today calendar fr Aujourd'hui
translation calendar fr Traduction
tu calendar fr M
@ -199,6 +273,8 @@ weekday starts on calendar fr La semaine d
weekly calendar fr Hebdomadaire
weekview calendar fr Vue hebdomadaire
when creating new events default set to private calendar fr A la création de nouveaux événements mettre par défaut en privé
which events do you want to see when you enter the calendar. calendar fr Quels évènements voulez-vous voir quand vous entrez dans le calendrier.
which of calendar view do you want to see, when you start calendar ? calendar fr Laquelle des vues du calendrier vous voulez voir, quand vous entrez dans le calendrier ?
work day ends on calendar fr Jour de travail finit à
work day starts on calendar fr Jour de travail démarre à
workdayends calendar fr Le jour de travail finit
@ -206,10 +282,13 @@ yearly calendar fr Annuel
yearview calendar fr Vue annuelle
you can either set a year or a occurence, not both !!! calendar fr Vous pouvez soit régler une année ou une Occurence, pas les deux !!!
you can only set a year or a occurence !!! calendar fr Vous pouvez uniquement régler une année ou une occurrence !!!
you do not have permission to add alarms to this event !!! calendar fr Vous n'avez pas les droits pour ajouter des alarmes à cet évènement !!!
you do not have permission to delete this alarm !!! calendar fr Vous n'avez pas les droits pour effacer cette alarme !!!
you do not have permission to enable/disable this alarm !!! calendar fr Vous n'avez pas les droits pour activer/désactiver cette alarme !!!
you do not have permission to read this record! calendar fr Vous n'avez pas les droits pour lire cet enregistrement!
you have %1 high priority events on your calendar today. common fr Vous avez %1 événements de haute priorité dans votre calendrier aujourd'hui.
you have 1 high priority event on your calendar today. common fr Vous avez 1 événement de haute priorité dans votre calendrier aujourd'hui.
you have a meeting scheduled for calendar fr Vous avez une réunion planifiée le
you have a meeting scheduled for %1 calendar fr Vous avez une réunion planifiée pour %1
you have not entered a title calendar fr Vous n'avez pas entré de titre
you have not entered a valid date calendar fr Vous n'avez pas entré une date correcte
you have not entered a valid time of day calendar fr Vous n'avez pas entré une heure de la journée correcte
@ -217,6 +296,6 @@ you have not entered participants calendar fr Vous n'avez pas s
you must enter one or more search keywords calendar fr Vous devez entrer un ou plusieurs mots clés de recherche
you must select a [iv]cal. (*.[iv]cs) calendar fr Vous devez choisir un [iv]Cal. (*.[iv]cs)
you need to set either a day or a occurence !!! calendar fr Vous devez régler soit un jour soit une occurrence !!!
your meeting scheduled for calendar fr Votre réunion planifiée le
your meeting that had been scheduled for calendar fr Votre réunion qui a été planifiée le
your meeting scheduled for %1 has been canceled calendar fr Votre réunion planifiée pour %1 a été annulée
your meeting that had been scheduled for %1 has been rescheduled to %2 calendar fr Votre réunion qui avait été planifiée pour %1 a été replanifiée pour %2
your suggested time of <b> %1 - %2 </b> conflicts with the following existing calendar entries: calendar fr L'heure que vous avez suggéré <B> %1 - %2 </B> entre en conflit avec les entrés suivantes du calendrier:

View File

@ -6,9 +6,11 @@ alarms calendar ja
alarm management calendar ja アラーム管理
all day calendar ja 全ての日
am calendar ja 午前
are you sure you want to delete this country ? calendar ja この国の休日を削除してもよろしいですか。
are you sure\nyou want to\ndelete this entry ? calendar ja この項目を\n削除してもよろしいですか。
are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar ja 削除してもよろしいですか。\n全てのユーザに影響します
Are you sure\nyou want to\ndelete this single occurence ?\n\nThis will delete\nthis entry for all users. calendar ja 削除してもよろしいですか。\n全てのユーザに影響します
back calendar ja 戻る
brief description calendar ja 件名
calendar common ja カレンダー
calendar preferences common ja カレンダーユーザ設定
@ -17,6 +19,7 @@ calendar - add calendar ja
calendar - edit calendar ja カレンダー - 訂正
calendar holiday management admin ja 休日設定
countries calendar ja 国一覧
country calendar ja 国
daily calendar ja 日単位
daily matrix view calendar ja 日程表示
days repeated calendar ja 曜日
@ -24,6 +27,7 @@ delete series calendar ja Ϣ³
delete single calendar ja 単独削除
default calendar filter calendar ja カレンダーの初期選択
default calendar view calendar ja カレンダーの初期表示
display interval in day View calendar ja 日表示時の時間間隔
display mini calendars when printing calendar ja 印刷用の時、小カレンダを表示
display status of events calendar ja イベント状況表示
do you wish to autoload calendar holidays files dynamically? admin ja 休日ファイルを自動ロードする
@ -66,12 +70,15 @@ no matches found. calendar ja
no matchs found calendar ja 見つかりません。
no response calendar ja 返答なし
observance rule calendar ja 休日のルールを適用
overlap holiday calendar ja 振替休日
occurence calendar ja 曜日指定
participant calendar ja 参加者
participates calendar ja も参加
participants calendar ja 参加者
people holiday calendar ja 国民の休日
planner calendar ja プランナー
pm calendar ja 午後
print calendars in black & white calendar ja 印刷用の時、白黒表示にする
printer friendly calendar ja 印刷用へ
private and global public calendar ja プライベートと共有
private and group public calendar ja プライベートと所属グループ
@ -94,6 +101,7 @@ search results calendar ja
select country for including holidays calendar ja 休日データ選択
send/receive updates via email calendar ja 更新情報を電子メールで受取る
show day view on main screen calendar ja 今日の予定をメイン画面に表示
show default view on main screen calendar ja 初期表示をメイン画面に表示
show high priority events on main screen calendar ja 優先度が高いイベントをメイン画面に表示
start date/time calendar ja 開始日時
su calendar ja 日

View File

@ -2,12 +2,9 @@
1 match found calendar sv 1 träff hittad
a calendar sv a
all calendar sv Alla
are you sure\\\\nyou want to\\\\ndelete this entry ? calendar sv Är du säker på attndu villnta bort denna?
are you sure\\\\nyou want to\\\\ndelete this entry ?\\\\n\\\\nthis will delete\\\\nthis entry for all users. calendar sv Är du säker på attndu villnta bort denna entry ?nnDetta vill ta bortndenna entry för alla användare.
are you sure\\nyou want to\\ndelete this entry ? calendar sv Är du säker\\natt du vill\\ntabort denna post?
are you sure\\nyou want to\\ndelete this entry ?\\n\\nthis will delete\\nthis entry for all users. calendar sv Är du säker\\natt du vill\\ntabort denna post?\\n\\nDetta tar bort den\\nför alla användare.
are you sure\nyou want to\ndelete this entry ? calendar sv Är du säker\natt du vill\\nradera denna post?
are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar sv Är du säker\\natt du vill\\nradera denna post?\\n\\nDetta tar bort\\ndenna post för alla\\nanvändare.
are you sure\nyou want to\ndelete this entry ? calendar sv Är du säker på att\ndu vill\nta bort denna?
are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar sv Är du säker på attndu villnta bort denna entry ?\n\nDetta vill ta bortndenna entry för alla användare.
are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar sv Är du säker\natt du vill\ntabort denna post?\n\nDetta tar bort den\nför alla användare.
brief description calendar sv Kort beskrivning
calendar common sv kalender
calendar preferences common sv Kalender inställningar
@ -80,11 +77,11 @@ year calendar sv
yearly calendar sv Årligen
you have 1 high priority event on your calendar today. common sv Du har 1 högprioritets händelse i din kalender i dag.
you have %1 high priority events on your calendar today. common sv Du har %1 högprioritets händelse i din kalender i dag.
you have not entered a\\\\nbrief description calendar sv Du har inte skrivit in ennkort beskrivning
you have not entered a\\\\nvalid time of day. calendar sv Du har inte skrivit in enngiltig tid.
you have not entered a\\nbrief description calendar sv Du har inte gett\\nnågon beskrivning
you have not entered a\\nvalid time of day. calendar sv Du har inte angett\\nnågon giltig tid på dagen.
you have not entered a\nbrief description calendar sv Du har inte skrivit\\nen beskrivning.
you have not entered a\nvalid time of day. calendar sv Du har inte angivit\\nen giltig tid.
you have not entered a\nbrief description calendar sv Du har inte skrivit in ennkort beskrivning
you have not entered a\nvalid time of day. calendar sv Du har inte skrivit in enngiltig tid.
you have not entered a\nbrief description calendar sv Du har inte gett\nnågon beskrivning
you have not entered a\nvalid time of day. calendar sv Du har inte angett\nnågon giltig tid på dagen.
you have not entered a\nbrief description calendar sv Du har inte skrivit\nen beskrivning.
you have not entered a\nvalid time of day. calendar sv Du har inte angivit\nen giltig tid.
you must enter one or more search keywords calendar sv Du måste skriva in ett eller flera sökord
your suggested time of <b> %1 - %2 </b> conflicts with the following existing calendar entries: calendar sv Din föreslagna tid av <B> %1 - %2 </B> är i konflikt med de följande kalender entries:

View File

@ -12,58 +12,50 @@
/* $Id$ */
$setup_info['calendar']['name'] = 'calendar';
$setup_info['calendar']['version'] = '0.9.13.007';
$setup_info['calendar']['version'] = '0.9.16.001';
$setup_info['calendar']['app_order'] = 3;
$setup_info['calendar']['enable'] = 1;
$setup_info['calendar']['author'] = array
(
'name' => 'Mark Peters',
'email' => 'skeeter@phpgroupware.org'
);
$setup_info['calendar']['author'] = 'Mark Peters';
$setup_info['calendar']['license'] = 'GPL';
$setup_info['calendar']['description'] = 'Powerful calendar with meeting request system and ACL security.';
$setup_info['calendar']['description'] =
'Powerful calendar with meeting request system and ACL security.';
$setup_info['calendar']['note'] =
'Bassed on Webcalendar by <a href="http://www.radix.net/~cknudsen" target="_blank">Craig Knudsen</a>.<p>
<b>More information</b> about the calendar and the current development-status can be found on the
<a href="http://www.phpgroupware.org/wiki/calendar" target="_blank">Calendar page in our Wiki</a> or
<a href="http://www.phpgroupware.org/wiki/calendarFAQs" target="_blank">Calendar FAQs</a>.';
$setup_info['calendar']['maintainer'] = array(
'name' => 'Ralf Becker',
'email' => 'ralfbecker@outdoor-training.de'
);
$setup_info['calendar']['based_on'] = array
(
'info' => 'Webcalendar by Craig Knudsen',
'email' => 'cknudsen@radix.net',
'url' => 'http://www.radix.net/~cknudsen'
'email' => 'RalfBecker@outdoor-training.de'
);
$setup_info['calendar']['tables'][] = 'phpgw_cal';
$setup_info['calendar']['tables'][] = 'phpgw_cal_holidays';
$setup_info['calendar']['tables'][] = 'phpgw_cal_repeats';
$setup_info['calendar']['tables'][] = 'phpgw_cal_user';
$setup_info['calendar']['tables'][] = 'phpgw_cal_alarm';
$setup_info['calendar']['tables'][] = 'phpgw_cal_extra';
/* The hooks this app includes, needed for hooks registration */
$setup_info['calendar']['hooks'] = array
(
'add_def_prefs',
'admin',
'deleteaccount',
'email',
'home',
'home_day',
'home_month',
'home_week',
'home_year',
'manual',
'preferences',
'settings'
);
$setup_info['calendar']['hooks'][] = 'add_def_prefs';
$setup_info['calendar']['hooks'][] = 'admin';
$setup_info['calendar']['hooks'][] = 'deleteaccount';
$setup_info['calendar']['hooks'][] = 'email';
$setup_info['calendar']['hooks'][] = 'home';
$setup_info['calendar']['hooks'][] = 'home_day';
$setup_info['calendar']['hooks'][] = 'home_month';
$setup_info['calendar']['hooks'][] = 'home_week';
$setup_info['calendar']['hooks'][] = 'home_year';
$setup_info['calendar']['hooks'][] = 'manual';
$setup_info['calendar']['hooks'][] = 'preferences';
$setup_info['calendar']['hooks'][] = 'settings';
$setup_info['calendar']['hooks'][] = 'sidebox_menu';
/* Dependencies for this app to work */
$setup_info['calendar']['depends'][] = array(
'appname' => 'phpgwapi',
'versions' => Array('0.9.13', '0.9.14','0.9.15')
'versions' => Array('0.9.14','0.9.15','0.9.16')
);
?>

View File

@ -15,20 +15,20 @@
'phpgw_cal' => array(
'fd' => array(
'cal_id' => array('type' => 'auto','nullable' => False),
'uid' => array('type' => 'varchar', 'precision' => 255,'nullable' => False),
'owner' => array('type' => 'int', 'precision' => 8,'nullable' => False),
'category' => array('type' => 'varchar', 'precision' => 30,'nullable' => True),
'groups' => array('type' => 'varchar', 'precision' => 255,'nullable' => True),
'datetime' => array('type' => 'int', 'precision' => 8,'nullable' => True),
'mdatetime' => array('type' => 'int', 'precision' => 8,'nullable' => True),
'edatetime' => array('type' => 'int', 'precision' => 8,'nullable' => True),
'priority' => array('type' => 'int', 'precision' => 8,'nullable' => False,'default' => 2),
'cal_type' => array('type' => 'varchar', 'precision' => 10,'nullable' => True),
'is_public' => array('type' => 'int', 'precision' => 8,'nullable' => False,'default' => 1),
'title' => array('type' => 'varchar', 'precision' => 80,'nullable' => False,'default' => '1'),
'uid' => array('type' => 'varchar','precision' => '255','nullable' => False),
'owner' => array('type' => 'int','precision' => '8','nullable' => False),
'category' => array('type' => 'varchar','precision' => '30','nullable' => True),
'groups' => array('type' => 'varchar','precision' => '255','nullable' => True),
'datetime' => array('type' => 'int','precision' => '8','nullable' => True),
'mdatetime' => array('type' => 'int','precision' => '8','nullable' => True),
'edatetime' => array('type' => 'int','precision' => '8','nullable' => True),
'priority' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '2'),
'cal_type' => array('type' => 'varchar','precision' => '10','nullable' => True),
'is_public' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '1'),
'title' => array('type' => 'varchar','precision' => '80','nullable' => False,'default' => '1'),
'description' => array('type' => 'text','nullable' => True),
'location' => array('type' => 'varchar', 'precision' => 255,'nullable' => True),
'reference' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => 0)
'location' => array('type' => 'varchar','precision' => '255','nullable' => True),
'reference' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0')
),
'pk' => array('cal_id'),
'fk' => array(),
@ -38,13 +38,13 @@
'phpgw_cal_holidays' => array(
'fd' => array(
'hol_id' => array('type' => 'auto','nullable' => False),
'locale' => array('type' => 'char', 'precision' => 2, 'nullable' => False),
'name' => array('type' => 'varchar', 'precision' => 50, 'nullable' => False),
'mday' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => 0),
'month_num' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => 0),
'occurence' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => 0),
'dow' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => 0),
'observance_rule' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => 0)
'locale' => array('type' => 'char','precision' => '2','nullable' => False),
'name' => array('type' => 'varchar','precision' => '50','nullable' => False),
'mday' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
'month_num' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
'occurence' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
'dow' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
'observance_rule' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0')
),
'pk' => array('hol_id'),
'fk' => array(),
@ -53,13 +53,13 @@
),
'phpgw_cal_repeats' => array(
'fd' => array(
'cal_id' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
'recur_type' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
'recur_use_end' => array('type' => 'int', 'precision' => 8, 'nullable' => True, 'default' => 0),
'recur_enddate' => array('type' => 'int', 'precision' => 8, 'nullable' => True),
'recur_interval' => array('type' => 'int', 'precision' => 8, 'nullable' => True, 'default' => 1),
'recur_data' => array('type' => 'int', 'precision' => 8, 'nullable' => True, 'default' => 1),
'recur_exception' => array('type' => 'varchar', 'precision' => 255, 'nullable' => True, 'default' => '')
'cal_id' => array('type' => 'int','precision' => '8','nullable' => False),
'recur_type' => array('type' => 'int','precision' => '8','nullable' => False),
'recur_use_end' => array('type' => 'int','precision' => '8','nullable' => True,'default' => '0'),
'recur_enddate' => array('type' => 'int','precision' => '8','nullable' => True),
'recur_interval' => array('type' => 'int','precision' => '8','nullable' => True,'default' => '1'),
'recur_data' => array('type' => 'int','precision' => '8','nullable' => True,'default' => '1'),
'recur_exception' => array('type' => 'varchar','precision' => '255','nullable' => True,'default' => '')
),
'pk' => array(),
'fk' => array(),
@ -68,25 +68,23 @@
),
'phpgw_cal_user' => array(
'fd' => array(
'cal_id' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => 0),
'cal_login' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => 0),
'cal_status' => array('type' => 'char', 'precision' => 1, 'nullable' => True, 'default' => 'A')
'cal_id' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
'cal_login' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
'cal_status' => array('type' => 'char','precision' => '1','nullable' => True,'default' => 'A'),
'cal_type' => array('type' => 'varchar','precision' => '1','nullable' => False,'default' => '')
),
'pk' => array('cal_id','cal_login'),
'fk' => array(),
'ix' => array(),
'uc' => array()
),
'phpgw_cal_alarm' => array(
'phpgw_cal_extra' => array(
'fd' => array(
'alarm_id' => array('type' => 'auto','nullable' => False),
'cal_id' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
'cal_owner' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
'cal_time' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
'cal_text' => array('type' => 'varchar', 'precision' => 50, 'nullable' => False),
'alarm_enabled' => array('type' => 'int', 'precision' => 4, 'nullable' => False, 'default' => '1')
'cal_id' => array('type' => 'int','precision' => '4','nullable' => False),
'cal_extra_name' => array('type' => 'varchar','precision' => '40','nullable' => False),
'cal_extra_value' => array('type' => 'varchar','precision' => '255','nullable' => False,'default' => '')
),
'pk' => array('alarm_id'),
'pk' => array('cal_id','cal_extra_name'),
'fk' => array(),
'ix' => array(),
'uc' => array()

View File

@ -827,6 +827,12 @@
$GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.001';
return $GLOBALS['setup_info']['calendar']['currentver'];
}
$test[] = '0.9.12';
function calendar_upgrade0_9_12()
{
$GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.001';
return $GLOBALS['setup_info']['calendar']['currentver'];
}
$test[] = '0.9.13.001';
function calendar_upgrade0_9_13_001()
{
@ -907,4 +913,33 @@
$GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.007';
return $GLOBALS['setup_info']['calendar']['currentver'];
}
$test[] = '0.9.13.007';
function calendar_upgrade0_9_13_007()
{
$GLOBALS['phpgw_setup']->oProc->AddColumn('phpgw_cal_user','cal_type',array(
'type' => 'varchar',
'precision' => '1',
'nullable' => False,
'default' => ''
));
$GLOBALS['phpgw_setup']->oProc->CreateTable('phpgw_cal_extra',array(
'fd' => array(
'cal_id' => array('type' => 'int','precision' => '4','nullable' => False),
'cal_extra_name' => array('type' => 'varchar','precision' => '40','nullable' => False),
'cal_extra_value' => array('type' => 'varchar','precision' => '255','nullable' => False,'default' => '')
),
'pk' => array('cal_id','cal_extra_name'),
'fk' => array(),
'ix' => array(),
'uc' => array()
));
$GLOBALS['phpgw_setup']->oProc->DropTable('phpgw_cal_alarm');
$GLOBALS['setup_info']['calendar']['currentver'] = '0.9.16.001';
return $GLOBALS['setup_info']['calendar']['currentver'];
}
?>

View File

@ -1,33 +1,48 @@
<!-- $Id$ -->
<!-- BEGIN alarm_management -->
<form action="{action_url}" method="post" name="alarmform">
{hidden_vars}
<center>
<table border="0" width="90%">
{row}
{rows}
</table>
</center>
<p>
<center>
<b>{input_text}</b><p>
{input_days}&nbsp;{input_hours}&nbsp;{input_minutes}&nbsp;{input_owner}
<p>
{input_add}
</center>
</form>
<!-- END alarm_management -->
<!-- BEGIN alarm_headers -->
<tr class="th">
<th valign="top" align="left" width="4%">&nbsp;</b></th>
<th valign="top" align="left" width="30%">&nbsp;<b>{time_lang}</b></th>
<th valign="top" align="left" width="54%">&nbsp;{text_lang}</th>
<th valign="top" align="center" width="6%"><img src="{enabled_pict}" width="13" height="13" alt="enabled"></th>
<th valign="top" align="center" width="6%"><img src="{disabled_pict}" width="13" height="13" alt="disabled"></th>
<tr bgcolor="{tr_color}">
<th align="left" width="25%">{lang_time}</th>
<th align="left" width="30%">{lang_text}</th>
<th align="left" width="25%">{lang_owner}</th>
<th width="10%">{lang_enabled}</th>
<th width="10%">{lang_select}</th>
</tr>
<!-- END alarm_headers -->
<!-- BEGIN list -->
<tr class="{tr_color}">
<td valign="top" align="left" width="4%">{edit_box}</td>
<td valign="top" align="left" width="30%"><b>{field}:</b></td>
<td valign="top" align="left" width="54%">{data}</td>
<td valign="top" align="left" width="6%">{alarm_enabled}</td>
<td valign="top" align="left" width="6%">{alarm_disabled}</td>
<tr bgcolor="{tr_color}">
<td><b>{field}:</b></td>
<td>{data}</td>
<td>{owner}</td>
<td align="center">{enabled}</td>
<td align="center">{select}</td>
</tr>
<!-- END list -->
<!-- BEGIN hr -->
<tr class="th">
<tr bgcolor="{th_bg}">
<td colspan="5" align="center"><b>{hr_text}</b></td>
</tr>
<!-- END hr -->
<!-- BEGIN buttons -->
<tr>
<td colspan="6" align="right">
{enable_button}&nbsp;{disable_button}&nbsp;{delete_button}
</td>
</tr>
<!-- END buttons -->

View File

@ -1,20 +1,20 @@
<!-- BEGIN header -->
<form method="POST" action="{action_url}">
<table border="0" align="center">
<tr class="th">
<tr bgcolor="{th_bg}">
<td colspan="2"><font color="{th_text}">&nbsp;<b>{title}</b></font></td>
</tr>
<!-- END header -->
<!-- BEGIN body -->
<tr class="row_on">
<tr bgcolor="{row_on}">
<td colspan="2">&nbsp;</td>
</tr>
<tr class="row_off">
<tr bgcolor="{row_off}">
<td colspan="2"><b>{lang_Calendar_settings}</b></td>
</tr>
<tr class="row_on">
<tr bgcolor="{row_on}">
<td>{lang_Do_you_wish_to_autoload_calendar_holidays_files_dynamically?}</td>
<td>
<select name="newsettings[auto_load_holidays]">
@ -23,7 +23,7 @@
</select>
</td>
</tr>
<tr class="row_off">
<tr bgcolor="{row_off}">
<td>{lang_Location_to_autoload_from}:</td>
<td>
<select name="newsettings[holidays_url_path]">
@ -35,7 +35,7 @@
<!-- END body -->
<!-- BEGIN footer -->
<tr class="th">
<tr bgcolor="{th_bg}">
<td colspan="2">
&nbsp;
</td>

View File

@ -0,0 +1,46 @@
<!-- $Id$ -->
<!-- BEGIN custom_fields -->
{lang_error}<br>
<form action="{action_url}" method="post">
{hidden_vars}
<center>
<table border="0" width="90%">
<tr class="th">
<th align="left" width="30%">{lang_name}</th>
<th>{lang_length}</th>
<th>{lang_shown}</th>
<th>{lang_order}</th>
<th>{lang_title}</th>
<th>{lang_disabled}</th>
<th>&nbsp;</th>
</tr>
{rows}
<tr class="th">
<td>{name}</td>
<td align="center">{length}</td>
<td align="center">{shown}</td>
<td align="center">{order}</td>
<td align="center">{title}</td>
<td align="center">{disabled}</td>
<td align="center">{button}</td>
</tr>
<tr>
<td>{save_button} &nbsp; {cancel_button}</td>
</tr>
</table>
</center>
</form>
<br>
<!-- END custom_fields -->
<!-- BEGIN row -->
<tr bgcolor="{tr_color}">
<td>{name}</td>
<td align="center">{length}</td>
<td align="center">{shown}</td>
<td align="center">{order}</td>
<td align="center">{title}</td>
<td align="center">{disabled}</td>
<td align="center">{button}</td>
</tr>
<!-- END row -->

View File

@ -14,7 +14,7 @@
</td>
</tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="0" class="bg_text">
<table border="0" width="100%" cellspacing="0" cellpadding="0" bgcolor="{bg_text}">
{day_events}
</table>
</td>

View File

@ -9,15 +9,15 @@
</tr>
<!-- END day_row -->
<!-- BEGIN day_event_on -->
<td class="row_on"{extras}>{event}</td>
<td class="event-on"{extras}>{event}</td>
<!-- END day_event_on -->
<!-- BEGIN day_event_off -->
<td class="row_off"{extras}>{event}</td>
<td class="event-off"{extras}>{event}</td>
<!-- END day_event_off -->
<!-- BEGIN day_event_holiday -->
<td class="cal_holiday"{extras}>{event}</td>
<td class="event-holiday"{extras}>{event}</td>
<!-- END day_event_holiday -->
<!-- BEGIN day_time -->
<td class="th" nowrap width="10%">{open_link}{time}{close_link}</td>
<td class="time" nowrap>{open_link}{time}{close_link}</td>
<!-- END day_time -->

View File

@ -1,9 +1,16 @@
<!-- $Id$ -->
<!-- BEGIN edit_entry -->
<script language="JavaScript">
self.name="first_Window";
function accounts_popup()
{
Window1=window.open('{accounts_link}',"Search","width=800,height=600,toolbar=no,scrollbars=yes,resizable=yes");
}
</script>
<center>
<font color="#000000" face="{font}">
<form action="{action_url}" method="post" name="addform">
<form action="{action_url}" method="post" name="app_form">
{common_hidden}
<table border="0" width="90%">
<tr>
@ -14,7 +21,7 @@
{row}
<tr>
<td>
<table><tr valign="top">
<table><tr>
<td><input type="submit" value="{submit_button}">&nbsp;</form></td>
<td>{cancel_button}</td>
</tr></table>
@ -26,13 +33,13 @@
</center>
<!-- END edit_entry -->
<!-- BEGIN list -->
<tr class="{tr_color}">
<tr bgcolor="{tr_color}">
<td valign="top" width="35%">&nbsp;<b>{field}:</b></td>
<td valign="top" width="65%">{data}</td>
</tr>
<!-- END list -->
<!-- BEGIN hr -->
<tr class="{tr_color}">
<tr bgcolor="{tr_color}">
<td colspan="2">
{hr_text}
</td>

View File

@ -22,7 +22,7 @@
return '<a href="'.$link.'"><img src="'.$GLOBALS['phpgw']->common->image('calendar',$image).'" alt="'.$alt.'" title="'.$alt.'" border="0"></a>';
}
$refer = explode('.',MENUACTION);
$refer = explode('.',$GLOBALS['HTTP_GET_VARS']['menuaction']);
$referrer = $refer[2];
$templates = Array(
@ -30,7 +30,6 @@
'form_button_dropdown' => 'form_button_dropdown.tpl',
'form_button_script' => 'form_button_script.tpl'
);
$tpl = &$GLOBALS['phpgw']->template;
$tpl->set_file($templates);
$tpl->set_block('head_tpl','head','head');
$tpl->set_block('head_tpl','head_table','head_table');
@ -70,7 +69,7 @@
add_col($tpl,' <td width="'.(100 - $col_width).'%" align="left"'.(floor(phpversion()) < 4?' colspan="2"':'').'>&nbsp;</td>');
$tpl->parse('phpgw_body','head_table',True);
$tpl->parse('row','head_table',True);
$tpl->set_var('header_column','');
$tpl->set_var('cols',$cols);
@ -78,38 +77,37 @@
if($referrer!='view')
{
$remainder = 72;
$cal_id = get_var('cal_id',Array('GET','DEFAULT'),0);
$keywords = get_var('keywords',Array('POST','DEFAULT'),'');
$matrixtype = get_var('matrixtype',Array('POST','DEFAULT'),'');
$participants = get_var('participants',Array('POST'));
$date = get_var('date',Array('GET','POST'));
$year = $this->bo->year;
$month = $this->bo->month;
$day = $this->bo->day;
$var_list = Array(
'cal_id',
'keywords',
'matrixtype',
'date',
'year',
'month',
'day'
);
$base_hidden_vars = '<input type="hidden" name="from" value="'.MENUACTION.'">'."\n";
for($i=0;$i<count($var_list);$i++)
$date = (isset($GLOBALS['date'])?$GLOBALS['date']:'');
$date = (isset($GLOBALS['HTTP_GET_VARS']['date'])?$GLOBALS['HTTP_GET_VARS']['date']:$date);
$date = ($date=='' && isset($GLOBALS['HTTP_POST_VARS']['date'])?$GLOBALS['HTTP_POST_VARS']['date']:$date);
$base_hidden_vars = '<input type="hidden" name="from" value="'.$GLOBALS['HTTP_GET_VARS']['menuaction'].'">'."\n";
if(isset($GLOBALS['HTTP_GET_VARS']['cal_id']) && $GLOBALS['HTTP_GET_VARS']['cal_id'] != 0)
{
if($$var_list[$i])
{
$base_hidden_vars .= ' <input type="hidden" name="'.$var_list[$i].'" value="'.$$var_list[$i].'">'."\n";
}
$base_hidden_vars .= ' <input type="hidden" name="cal_id" value="'.$GLOBALS['HTTP_GET_VARS']['cal_id'].'">'."\n";
}
$hidden_vars = '';
if($participants)
if(isset($GLOBALS['HTTP_POST_VARS']['keywords']) && $GLOBALS['HTTP_POST_VARS']['keywords'])
{
for ($i=0;$i<count($participants);$i++)
$base_hidden_vars .= ' <input type="hidden" name="keywords" value="'.$GLOBALS['HTTP_POST_VARS']['keywords'].'">'."\n";
}
if(isset($GLOBALS['HTTP_POST_VARS']['matrixtype']) && $GLOBALS['HTTP_POST_VARS']['matrixtype'])
{
$base_hidden_vars .= ' <input type="hidden" name="matrixtype" value="'.$GLOBALS['HTTP_POST_VARS']['matrixtype'].'">'."\n";
}
if($date)
{
$base_hidden_vars .= ' <input type="hidden" name="date" value="'.$date.'">'."\n";
}
$base_hidden_vars .= ' <input type="hidden" name="month" value="'.$this->bo->month.'">'."\n";
$base_hidden_vars .= ' <input type="hidden" name="day" value="'.$this->bo->day.'">'."\n";
$base_hidden_vars .= ' <input type="hidden" name="year" value="'.$this->bo->year.'">'."\n";
if(isset($GLOBALS['HTTP_POST_VARS']['participants']) && $GLOBALS['HTTP_POST_VARS']['participants'])
{
for ($i=0;$i<count($GLOBALS['HTTP_POST_VARS']['participants']);$i++)
{
$hidden_vars .= ' <input type="hidden" name="participants[]" value="'.$participants[$i].'">'."\n";
$base_hidden_vars .= ' <input type="hidden" name="participants[]" value="'.$GLOBALS['HTTP_POST_VARS']['participants'][$i].'">'."\n";
}
}
@ -118,15 +116,15 @@
'form_link' => $this->page($referrer),
'form_name' => 'cat_id',
'title' => lang('Category'),
'hidden_vars' => $base_hidden_vars.$hidden_vars,
'form_options' => '<option value="0">All</option>'.$this->cat->formatted_list('select','all',$this->bo->cat_id,'True'),
'hidden_vars' => $base_hidden_vars,
'form_options' => '<option value="0">All</option>'.$this->cat->formated_list('select','all',$this->bo->cat_id,'True'),
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
if(MENUACTION == 'calendar.uicalendar.planner')
if($GLOBALS['HTTP_GET_VARS']['menuaction'] == 'calendar.uicalendar.planner')
{
$remainder -= 28;
print_debug('Sort By',$this->bo->sortby);
@ -151,14 +149,6 @@
if($this->bo->check_perms(PHPGW_ACL_PRIVATE))
{
$remainder -= 28;
$hidden_vars = '';
if($participants)
{
for ($i=0;$i<count($participants);$i++)
{
$hidden_vars .= ' <input type="hidden" name="participants[]" value="'.$participants[$i].'">'."\n";
}
}
$form_options = '<option value=" all "'.($this->bo->filter==' all '?' selected':'').'>'.lang('All').'</option>'."\n";
$form_options .= ' <option value=" private "'.((!isset($this->bo->filter) || !$this->bo->filter) || $this->bo->filter==' private '?' selected':'').'>'.lang('Private Only').'</option>'."\n";
@ -167,7 +157,7 @@
'form_link' => $this->page($referrer),
'form_name' => 'filter',
'title' => lang('Filter'),
'hidden_vars' => $base_hidden_vars.$hidden_vars,
'hidden_vars' => $base_hidden_vars,
'form_options' => $form_options,
'button_value' => lang('Go!')
);
@ -179,45 +169,11 @@
if((!isset($GLOBALS['phpgw_info']['server']['deny_user_grants_access']) || !$GLOBALS['phpgw_info']['server']['deny_user_grants_access']) && count($this->bo->grants) > 0)
{
$form_options = '';
reset($this->bo->grants);
while(list($grantor,$temp_rights) = each($this->bo->grants))
{
$GLOBALS['phpgw']->accounts->get_account_name($grantor,$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $grantor,
'value' => ($GLOBALS['phpgw']->accounts->get_type($grantor)=='g'?'g_':'').$grantor,
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
}
$memberships = $GLOBALS['phpgw']->accounts->membership($GLOBALS['phpgw_info']['user']['account_id']);
while($memberships != False && list($key,$group_info) = each($memberships))
{
$GLOBALS['phpgw']->accounts->get_account_name($group_info['account_id'],$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $group_info['account_id'],
'value' => ($GLOBALS['phpgw']->accounts->get_type($group_info['account_id'])=='g'?'g_':'').$group_info['account_id'],
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
$account_perms = $GLOBALS['phpgw']->acl->get_ids_for_location($group_info['account_id'],PHPGW_ACL_READ,'calendar');
while($account_perms && list($key,$group_id) = each($account_perms))
{
$GLOBALS['phpgw']->accounts->get_account_name($group_id,$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $group_id,
'value' => ($GLOBALS['phpgw']->accounts->get_type($group_id)=='g'?'g_':'').$group_id,
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
}
}
@reset($drop_down);
@ksort($drop_down);
while(list($key,$grant) = each($drop_down))
$drop_down = $this->bo->list_cals();
foreach($drop_down as $key => $grant)
{
$form_options .= ' <option value="'.$grant['value'].'"'.($grant['grantor']==$this->bo->owner?' selected':'').'>'.$grant['name'].'</option>'."\n";
}
reset($this->bo->grants);
$var = Array(
'form_width' => $remainder,
@ -234,11 +190,10 @@
}
}
$hidden_vars = ' <input type="hidden" name="from" value="'.MENUACTION.'">'."\n";
$date = get_var('date',Array('GET'));
if($date)
$hidden_vars = ' <input type="hidden" name="from" value="'.$GLOBALS['HTTP_GET_VARS']['menuaction'].'">'."\n";
if(isset($GLOBALS['HTTP_GET_VARS']['date']) && $GLOBALS['HTTP_GET_VARS']['date'])
{
$hidden_vars .= ' <input type="hidden" name="date" value="'.$date.'">'."\n";
$hidden_vars .= ' <input type="hidden" name="date" value="'.$GLOBALS['HTTP_GET_VARS']['date'].'">'."\n";
}
$hidden_vars .= ' <input type="hidden" name="month" value="'.$this->bo->month.'">'."\n";
$hidden_vars .= ' <input type="hidden" name="day" value="'.$this->bo->day.'">'."\n";
@ -255,7 +210,7 @@
{
$hidden_vars .= ' <input type="hidden" name="num_months" value="'.$this->bo->num_months.'">'."\n";
}
$hidden_vars .= ' <input name="keywords"'.($keywords?' value="'.$keywords.'"':'').'>';
$hidden_vars .= ' <input name="keywords"'.($GLOBALS['HTTP_POST_VARS']['keywords']?' value="'.$GLOBALS['HTTP_POST_VARS']['keywords'].'"':'').'>';
$var = Array(
'action_url_button' => $this->page('search'),
@ -267,5 +222,5 @@
$button = $tpl->fp('out','form_button');
$tpl->set_var('str','<td align="right" valign="bottom">'.$button.'</td>');
$tpl->parse('header_column','head_col',True);
$tpl->parse('phpgw_body','head_table',True);
$tpl->parse('row','head_table',True);
?>

View File

@ -9,7 +9,7 @@
<tr>
<td colspan="2">
<table width="100%" border="0" cellspacing="5">
<tr valign="top">
<tr>
<td>
<input type="submit" name="submit" value="{lang_add}"></form>
</td>
@ -27,7 +27,7 @@
</center>
<!-- END form -->
<!-- BEGIN list -->
<tr class="{tr_color}">
<tr bgcolor="{tr_color}">
<td valign="top" width="35%"><b>{field}:</b></td>
<td valign="top" width="65%">{data}</td>
</tr>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 B

After

Width:  |  Height:  |  Size: 175 B

View File

@ -9,8 +9,8 @@
</table>
<table border="0" width="70%" align="center">
<tr class="th">
<td>{sort_name}</td>
<tr bgcolor="{th_bg}">
<td>&nbsp;{sort_name}</td>
{header_rule}
<td>{header_edit}</td>
<td>{header_delete}</td>
@ -38,7 +38,7 @@
</table>
<!-- END list -->
<!-- BEGIN row -->
<tr class="{tr_color}">
<tr bgcolor="{tr_color}">
<td>&nbsp;{group_name}</td>
{rule}
<td width="5%">{edit_link}</td>

View File

@ -1,15 +1,15 @@
<!-- $Id$ -->
<!-- BEGIN matrix_query -->
<center>
<form target="viewmatrix" action="{action_url}" method="post" name="matrixform">
<form action="{action_url}" method="post" name="matrixform">
<table border="0" width="90%">
<tr class="th">
<tr bgcolor="{th_bg}">
<td colspan="2" align="center"><b>{title}</b></td>
</tr>
{rows}
<tr>
<td>
<table cellspacing="5"><tr valign="top">
<table cellspacing="5"><tr>
<td><input type="submit" value="{submit_button}"></form></td>
<td>{cancel_button}</td>
</tr></table>
@ -19,7 +19,7 @@
</center>
<!-- END matrix_query -->
<!-- BEGIN list -->
<tr class="{tr_color}">
<tr bgcolor="{tr_color}">
<td valign="top" width="35%"><b>&nbsp;{field}:</b></td>
<td valign="top" width="65%">{data}</td>
</tr>

View File

@ -4,7 +4,7 @@
{column_header}</tr>
<!-- END monthly_header -->
<!-- BEGIN column_title -->
<th width="11%" class="{class}"><font color="{font_color}">{col_title}</font></th>
<th width="11%" bgcolor="{bgcolor}"><font color="{font_color}">{col_title}</font></th>
<!-- END column_title -->
<!-- BEGIN month_column -->
<td valign="top" height="75" colspan="1" width="{col_width}%"{extra}>

View File

@ -1,3 +1,4 @@
<!-- BEGIN pref -->
<p><b>{title}:</b><hr><p>
<form action="{action_url}" method="POST">
<table border="0" align="center" width="90%">
@ -5,3 +6,17 @@
</table>
<center><input type="submit" name="submit" value="{submit_lang}"></center>
</form>
<!-- END pref -->
<!-- BEGIN pref_colspan -->
<tr bgcolor="{bg_color}">
<td colspan="2">{text}</td>
</tr>
<!-- END pref_colspan -->
<!-- BEGIN pref_list -->
<tr bgcolor="{bg_color}">
<td align="right">{field}</td>
<td align="center">{data}</td>
</tr>
<!-- END pref_list -->

View File

@ -1,4 +0,0 @@
<tr class="{bg_color}">
<td colspan="2">{text}</td>
</tr>

View File

@ -1,5 +0,0 @@
<tr class="{bg_color}">
<td align="right">{field}</td>
<td align="center">{data}</td>
</tr>

View File

@ -1,5 +1,5 @@
<!-- $Id$ -->
<tr class="{row_color}">
<tr bgcolor="{row_color}">
<td>{user}</td>
<td align="center"><input type="checkbox" name="{read}" value="Y"{read_selected}></td>
<td align="center"><input type="checkbox" name="{add}" value="Y"{add_selected}></td>

View File

@ -1,8 +1,8 @@
<tr class="th">
<tr bgcolor="{bg_color}">
<td>{string}</td>
<td align="center">{read_lang}</td>
<td align="center">{add_lang}</td>
<td align="center">{edit_lang}</td>
<td align="center">{delete_lang}</td>
<td align="center">{private_lang}</td>
<td align="center">{lang_read}</td>
<td align="center">{lang_add}</td>
<td align="center">{lang_edit}</td>
<td align="center">{lang_delete}</td>
<td align="center">{lang_private}</td>
</tr>

View File

@ -1,7 +1,7 @@
<!-- $Id$ -->
<!-- BEGIN search -->
<table width="90%">
<tr><td colspan="2" align="center" class="th"><b>{quantity}</b></td></tr>
<tr><td colspan="2" align="center" bgcolor="{th_bg}"><b>{quantity}</b></td></tr>
{rows}
</table>
<!-- END search -->
@ -9,7 +9,7 @@
<!-- END search_list_header -->
<!-- BEGIN search_list -->
<tr class="{tr_color}">
<tr bgcolor="{tr_color}">
<td width="20%">&nbsp;{date}</td>
<td>{link}</td>
</tr>

View File

@ -12,14 +12,14 @@
</center>
<!-- END view_event -->
<!-- BEGIN list -->
<tr class="{tr_color}">
<tr bgcolor="{tr_color}">
<td valign="top" width="30%">&nbsp;<b>{field}:</b></td>
<td colspan="2" valign="top" width="70%">{data}</td>
</tr>
<!-- END list -->
<!-- BEGIN hr -->
<tr>
<td colspan="3" class="th" align="center">
<td colspan="3" bgcolor="{th_bg}" align="center">
<b>{hr_text}</b>
</td>
</tr>

View File

@ -0,0 +1,38 @@
<!-- $Id$ -->
<!-- BEGIN day -->
{printer_friendly}
<table border="0" width="100%">
<tr>
<td valign="top" width="70%">
<tr>
<td>
<table border="0" width=100%>
<tr>
<td align="middle">
<font size="+2" color="{bg_text}"><b>{date}</b></font><br>
<font size="+1" color="{bg_text}">{username}</font>
</td>
</tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<!-- <table border="0" width="100%" cellspacing="0" cellpadding="0" bgcolor="{bg_text}">-->
{day_events}
</table
</td>
<td valign="top" align="right">
{small_calendar}
</td>
</tr>
</td>
</tr>
</table>
{print}
<!-- END day -->
<!-- BEGIN day_event -->
<tr>
<td>
{daily_events}
</td>
</tr>
<!-- END day_event -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

View File

@ -1,270 +0,0 @@
<?php
/**************************************************************************\
* phpGroupWare *
* http://www.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. *
\**************************************************************************/
/* $Id$ */
function add_col(&$tpl,$str)
{
$tpl->set_var('str',$str);
$tpl->parse('header_column','head_col',True);
}
function add_image_ahref($link,$image,$alt)
{
return '<a href="'.$link.'"><img src="'.$GLOBALS['phpgw']->common->image('calendar',$image).'" alt="'.$alt.'" title="'.$alt.'" border="0"></a>';
}
$refer = explode('.',MENUACTION);
$referrer = $refer[2];
$templates = Array(
'head_tpl' => 'head.tpl',
'form_button_dropdown' => 'form_button_dropdown.tpl',
'form_button_script' => 'form_button_script.tpl'
);
$tpl->set_file($templates);
$tpl->set_block('head_tpl','head','head');
$tpl->set_block('head_tpl','head_table','head_table');
$tpl->set_block('head_tpl','head_col','head_col');
$tpl->set_block('form_button_script','form_button');
if(floor(phpversion()) >= 4)
{
$tpl->set_var('cols',8);
}
else
{
$tpl->set_var('cols',7);
}
$today = date('Ymd',$GLOBALS['phpgw']->datetime->users_localtime);
$col_width = 12;
add_col($tpl,' <td width="2%">&nbsp;</td>');
add_col($tpl,' <td width="2%">'.add_image_ahref($this->page('day','&date='.$today),'today',lang('Today')).'</td>');
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('week','&date='.$today),'week',lang('This week')).'</td>');
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('month','&date='.$today),'month',lang('This month')).'</td>');
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('year','&date='.$today),'year',lang('This Year')).'</td>');
if(floor(phpversion()) >= 4)
{
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('planner','&date='.$today),'planner',lang('Planner')).'</td>');
$col_width += 2;
}
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('matrixselect'),'view',lang('Daily Matrix View')).'</td>');
add_col($tpl,' <td width="'.(100 - $col_width).'%" align="left"'.(floor(phpversion()) < 4?' colspan="2"':'').'>&nbsp;</td>');
$tpl->parse('row','head_table',True);
$tpl->set_var('header_column','');
$tpl->set_var('cols',$cols);
if($referrer!='view')
{
$remainder = 72;
$cal_id = get_var('cal_id',Array('GET','DEFAULT'),0);
$keywords = get_var('keywords',Array('POST','DEFAULT'),'');
$matrixtype = get_var('matrixtype',Array('POST','DEFAULT'),'');
$participants = get_var('participants',Array('POST'));
$date = get_var('date',Array('GET','POST'));
$year = $this->bo->year;
$month = $this->bo-month;
$day = $this->bo->day;
$var_list = Array(
'cal_id',
'keywords',
'matrixtype',
'date',
'year',
'month',
'day'
);
$base_hidden_vars = '<input type="hidden" name="from" value="'.MENUACTION.'">'."\n";
for($i=0;$i<count($var_list);$i++)
{
if($($var_list[$i]))
{
$base_hidden_vars .= ' <input type="hidden" name="'.$var_list[$i].'" value="'.$($var_list[$i]).'">'."\n";
}
}
$hidden_vars = '';
if($participants)
{
for ($i=0;$i<count($participants);$i++)
{
$hidden_vars .= ' <input type="hidden" name="participants[]" value="'.$participants[$i].'">'."\n";
}
}
$var = Array(
'form_width' => '28',
'form_link' => $this->page($referrer),
'form_name' => 'cat_id',
'title' => lang('Category'),
'hidden_vars' => $base_hidden_vars.$hidden_vars,
'form_options' => '<option value="0">All</option>'.$this->cat->formated_list('select','all',$this->bo->cat_id,'True'),
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
if(MENUACTION == 'calendar.uicalendar.planner')
{
$remainder -= 28;
print_debug('Sort By',$this->bo->sortby);
$form_options = '<option value="user"'.($this->bo->sortby=='user'?' selected':'').'>'.lang('User').'</option>'."\n";
$form_options .= ' <option value="category"'.((!isset($this->bo->sortby) || !$this->bo->sortby) || $this->bo->sortby=='category'?' selected':'').'>'.lang('Category').'</option>'."\n";
$var = Array(
'form_width' => '28',
'form_link' => $this->page($referrer),
'form_name' => 'sortby',
'title' => lang('Sort By'),
'hidden_vars' => $base_hidden_vars,
'form_options' => $form_options,
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
}
if($this->bo->check_perms(PHPGW_ACL_PRIVATE))
{
$remainder -= 28;
$hidden_vars = '';
if($participants)
{
for ($i=0;$i<count($participants);$i++)
{
$hidden_vars .= ' <input type="hidden" name="participants[]" value="'.$participants[$i].'">'."\n";
}
}
$form_options = '<option value=" all "'.($this->bo->filter==' all '?' selected':'').'>'.lang('All').'</option>'."\n";
$form_options .= ' <option value=" private "'.((!isset($this->bo->filter) || !$this->bo->filter) || $this->bo->filter==' private '?' selected':'').'>'.lang('Private Only').'</option>'."\n";
$var = Array(
'form_width' => '28',
'form_link' => $this->page($referrer),
'form_name' => 'filter',
'title' => lang('Filter'),
'hidden_vars' => $base_hidden_vars.$hidden_vars,
'form_options' => $form_options,
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
}
if((!isset($GLOBALS['phpgw_info']['server']['deny_user_grants_access']) || !$GLOBALS['phpgw_info']['server']['deny_user_grants_access']) && count($this->bo->grants) > 0)
{
$form_options = '';
reset($this->bo->grants);
while(list($grantor,$temp_rights) = each($this->bo->grants))
{
$GLOBALS['phpgw']->accounts->get_account_name($grantor,$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $grantor,
'value' => ($GLOBALS['phpgw']->accounts->get_type($grantor)=='g'?'g_':'').$grantor,
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
}
$memberships = $GLOBALS['phpgw']->accounts->membership($GLOBALS['phpgw_info']['user']['account_id']);
while($memberships != False && list($key,$group_info) = each($memberships))
{
$GLOBALS['phpgw']->accounts->get_account_name($group_info['account_id'],$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $group_info['account_id'],
'value' => ($GLOBALS['phpgw']->accounts->get_type($group_info['account_id'])=='g'?'g_':'').$group_info['account_id'],
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
$account_perms = $GLOBALS['phpgw']->acl->get_ids_for_location($group_info['account_id'],PHPGW_ACL_READ,'calendar');
while($account_perms && list($key,$group_id) = each($account_perms))
{
$GLOBALS['phpgw']->accounts->get_account_name($group_id,$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $group_id,
'value' => ($GLOBALS['phpgw']->accounts->get_type($group_id)=='g'?'g_':'').$group_id,
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
}
}
@reset($drop_down);
@ksort($drop_down);
while(list($key,$grant) = each($drop_down))
{
$form_options .= ' <option value="'.$grant['value'].'"'.($grant['grantor']==$this->bo->owner?' selected':'').'>'.$grant['name'].'</option>'."\n";
}
reset($this->bo->grants);
$var = Array(
'form_width' => $remainder,
'form_link' => $this->page($referrer),
'form_name' => 'owner',
'title' => lang('User'),
'hidden_vars' => $base_hidden_vars,
'form_options' => $form_options,
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
}
}
$hidden_vars = ' <input type="hidden" name="from" value="'.MENUACTION.'">'."\n";
$date = get_var('date',Array('GET'));
if($date)
{
$hidden_vars .= ' <input type="hidden" name="date" value="'.$date.'">'."\n";
}
$hidden_vars .= ' <input type="hidden" name="month" value="'.$this->bo->month.'">'."\n";
$hidden_vars .= ' <input type="hidden" name="day" value="'.$this->bo->day.'">'."\n";
$hidden_vars .= ' <input type="hidden" name="year" value="'.$this->bo->year.'">'."\n";
if(isset($this->bo->filter) && $this->bo->filter)
{
$hidden_vars .= ' <input type="hidden" name="filter" value="'.$this->bo->filter.'">'."\n";
}
if(isset($this->bo->sortby) && $this->bo->sortby)
{
$hidden_vars .= ' <input type="hidden" name="sortby" value="'.$this->bo->sortby.'">'."\n";
}
if(isset($this->bo->num_months) && $this->bo->num_months)
{
$hidden_vars .= ' <input type="hidden" name="num_months" value="'.$this->bo->num_months.'">'."\n";
}
$hidden_vars .= ' <input name="keywords"'.($keywords?' value="'.$keywords.'"':'').'>';
$var = Array(
'action_url_button' => $this->page('search'),
'action_text_button' => lang('Search'),
'action_confirm_button' => '',
'action_extra_field' => $hidden_vars
);
$tpl->set_var($var);
$button = $tpl->fp('out','form_button');
$tpl->set_var('str','<td align="right" valign="bottom">'.$button.'</td>');
$tpl->parse('header_column','head_col',True);
$tpl->parse('row','head_table',True);
?>

View File

@ -1,270 +0,0 @@
<?php
/**************************************************************************\
* phpGroupWare *
* http://www.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. *
\**************************************************************************/
/* $Id$ */
function add_col(&$tpl,$str)
{
$tpl->set_var('str',$str);
$tpl->parse('header_column','head_col',True);
}
function add_image_ahref($link,$image,$alt)
{
return '<a href="'.$link.'"><img src="'.$GLOBALS['phpgw']->common->image('calendar',$image).'" alt="'.$alt.'" title="'.$alt.'" border="0"></a>';
}
$refer = explode('.',MENUACTION);
$referrer = $refer[2];
$templates = Array(
'head_tpl' => 'head.tpl',
'form_button_dropdown' => 'form_button_dropdown.tpl',
'form_button_script' => 'form_button_script.tpl'
);
$tpl->set_file($templates);
$tpl->set_block('head_tpl','head','head');
$tpl->set_block('head_tpl','head_table','head_table');
$tpl->set_block('head_tpl','head_col','head_col');
$tpl->set_block('form_button_script','form_button');
if(floor(phpversion()) >= 4)
{
$tpl->set_var('cols',8);
}
else
{
$tpl->set_var('cols',7);
}
$today = date('Ymd',$GLOBALS['phpgw']->datetime->users_localtime);
$col_width = 12;
add_col($tpl,' <td width="2%">&nbsp;</td>');
add_col($tpl,' <td width="2%">'.add_image_ahref($this->page('day','&date='.$today),'today',lang('Today')).'</td>');
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('week','&date='.$today),'week',lang('This week')).'</td>');
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('month','&date='.$today),'month',lang('This month')).'</td>');
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('year','&date='.$today),'year',lang('This Year')).'</td>');
if(floor(phpversion()) >= 4)
{
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('planner','&date='.$today),'planner',lang('Planner')).'</td>');
$col_width += 2;
}
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('matrixselect'),'view',lang('Daily Matrix View')).'</td>');
add_col($tpl,' <td width="'.(100 - $col_width).'%" align="left"'.(floor(phpversion()) < 4?' colspan="2"':'').'>&nbsp;</td>');
$tpl->parse('row','head_table',True);
$tpl->set_var('header_column','');
$tpl->set_var('cols',$cols);
if($referrer!='view')
{
$remainder = 72;
$cal_id = get_var('cal_id',Array('GET','DEFAULT'),0);
$keywords = get_var('keywords',Array('POST','DEFAULT'),'');
$matrixtype = get_var('matrixtype',Array('POST','DEFAULT'),'');
$participants = get_var('participants',Array('POST'));
$date = get_var('date',Array('GET','POST'));
$year = $this->bo->year;
$month = $this->bo-month;
$day = $this->bo->day;
$var_list = Array(
'cal_id',
'keywords',
'matrixtype',
'date',
'year',
'month',
'day'
);
$base_hidden_vars = '<input type="hidden" name="from" value="'.MENUACTION.'">'."\n";
for($i=0;$i<count($var_list);$i++)
{
if($($var_list[$i]))
{
$base_hidden_vars .= ' <input type="hidden" name="'.$var_list[$i].'" value="'.$($var_list[$i]).'">'."\n";
}
}
$hidden_vars = '';
if($participants)
{
for ($i=0;$i<count($participants);$i++)
{
$hidden_vars .= ' <input type="hidden" name="participants[]" value="'.$participants[$i].'">'."\n";
}
}
$var = Array(
'form_width' => '28',
'form_link' => $this->page($referrer),
'form_name' => 'cat_id',
'title' => lang('Category'),
'hidden_vars' => $base_hidden_vars.$hidden_vars,
'form_options' => '<option value="0">All</option>'.$this->cat->formated_list('select','all',$this->bo->cat_id,'True'),
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
if(MENUACTION == 'calendar.uicalendar.planner')
{
$remainder -= 28;
print_debug('Sort By',$this->bo->sortby);
$form_options = '<option value="user"'.($this->bo->sortby=='user'?' selected':'').'>'.lang('User').'</option>'."\n";
$form_options .= ' <option value="category"'.((!isset($this->bo->sortby) || !$this->bo->sortby) || $this->bo->sortby=='category'?' selected':'').'>'.lang('Category').'</option>'."\n";
$var = Array(
'form_width' => '28',
'form_link' => $this->page($referrer),
'form_name' => 'sortby',
'title' => lang('Sort By'),
'hidden_vars' => $base_hidden_vars,
'form_options' => $form_options,
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
}
if($this->bo->check_perms(PHPGW_ACL_PRIVATE))
{
$remainder -= 28;
$hidden_vars = '';
if($participants)
{
for ($i=0;$i<count($participants);$i++)
{
$hidden_vars .= ' <input type="hidden" name="participants[]" value="'.$participants[$i].'">'."\n";
}
}
$form_options = '<option value=" all "'.($this->bo->filter==' all '?' selected':'').'>'.lang('All').'</option>'."\n";
$form_options .= ' <option value=" private "'.((!isset($this->bo->filter) || !$this->bo->filter) || $this->bo->filter==' private '?' selected':'').'>'.lang('Private Only').'</option>'."\n";
$var = Array(
'form_width' => '28',
'form_link' => $this->page($referrer),
'form_name' => 'filter',
'title' => lang('Filter'),
'hidden_vars' => $base_hidden_vars.$hidden_vars,
'form_options' => $form_options,
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
}
if((!isset($GLOBALS['phpgw_info']['server']['deny_user_grants_access']) || !$GLOBALS['phpgw_info']['server']['deny_user_grants_access']) && count($this->bo->grants) > 0)
{
$form_options = '';
reset($this->bo->grants);
while(list($grantor,$temp_rights) = each($this->bo->grants))
{
$GLOBALS['phpgw']->accounts->get_account_name($grantor,$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $grantor,
'value' => ($GLOBALS['phpgw']->accounts->get_type($grantor)=='g'?'g_':'').$grantor,
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
}
$memberships = $GLOBALS['phpgw']->accounts->membership($GLOBALS['phpgw_info']['user']['account_id']);
while($memberships != False && list($key,$group_info) = each($memberships))
{
$GLOBALS['phpgw']->accounts->get_account_name($group_info['account_id'],$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $group_info['account_id'],
'value' => ($GLOBALS['phpgw']->accounts->get_type($group_info['account_id'])=='g'?'g_':'').$group_info['account_id'],
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
$account_perms = $GLOBALS['phpgw']->acl->get_ids_for_location($group_info['account_id'],PHPGW_ACL_READ,'calendar');
while($account_perms && list($key,$group_id) = each($account_perms))
{
$GLOBALS['phpgw']->accounts->get_account_name($group_id,$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $group_id,
'value' => ($GLOBALS['phpgw']->accounts->get_type($group_id)=='g'?'g_':'').$group_id,
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
}
}
@reset($drop_down);
@ksort($drop_down);
while(list($key,$grant) = each($drop_down))
{
$form_options .= ' <option value="'.$grant['value'].'"'.($grant['grantor']==$this->bo->owner?' selected':'').'>'.$grant['name'].'</option>'."\n";
}
reset($this->bo->grants);
$var = Array(
'form_width' => $remainder,
'form_link' => $this->page($referrer),
'form_name' => 'owner',
'title' => lang('User'),
'hidden_vars' => $base_hidden_vars,
'form_options' => $form_options,
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
}
}
$hidden_vars = ' <input type="hidden" name="from" value="'.MENUACTION.'">'."\n";
$date = get_var('date',Array('GET'));
if($date)
{
$hidden_vars .= ' <input type="hidden" name="date" value="'.$date.'">'."\n";
}
$hidden_vars .= ' <input type="hidden" name="month" value="'.$this->bo->month.'">'."\n";
$hidden_vars .= ' <input type="hidden" name="day" value="'.$this->bo->day.'">'."\n";
$hidden_vars .= ' <input type="hidden" name="year" value="'.$this->bo->year.'">'."\n";
if(isset($this->bo->filter) && $this->bo->filter)
{
$hidden_vars .= ' <input type="hidden" name="filter" value="'.$this->bo->filter.'">'."\n";
}
if(isset($this->bo->sortby) && $this->bo->sortby)
{
$hidden_vars .= ' <input type="hidden" name="sortby" value="'.$this->bo->sortby.'">'."\n";
}
if(isset($this->bo->num_months) && $this->bo->num_months)
{
$hidden_vars .= ' <input type="hidden" name="num_months" value="'.$this->bo->num_months.'">'."\n";
}
$hidden_vars .= ' <input name="keywords"'.($keywords?' value="'.$keywords.'"':'').'>';
$var = Array(
'action_url_button' => $this->page('search'),
'action_text_button' => lang('Search'),
'action_confirm_button' => '',
'action_extra_field' => $hidden_vars
);
$tpl->set_var($var);
$button = $tpl->fp('out','form_button');
$tpl->set_var('str','<td align="right" valign="bottom">'.$button.'</td>');
$tpl->parse('header_column','head_col',True);
$tpl->parse('row','head_table',True);
?>

View File

@ -1,270 +0,0 @@
<?php
/**************************************************************************\
* phpGroupWare *
* http://www.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. *
\**************************************************************************/
/* $Id$ */
function add_col(&$tpl,$str)
{
$tpl->set_var('str',$str);
$tpl->parse('header_column','head_col',True);
}
function add_image_ahref($link,$image,$alt)
{
return '<a href="'.$link.'"><img src="'.$GLOBALS['phpgw']->common->image('calendar',$image).'" alt="'.$alt.'" title="'.$alt.'" border="0"></a>';
}
$refer = explode('.',MENUACTION);
$referrer = $refer[2];
$templates = Array(
'head_tpl' => 'head.tpl',
'form_button_dropdown' => 'form_button_dropdown.tpl',
'form_button_script' => 'form_button_script.tpl'
);
$tpl->set_file($templates);
$tpl->set_block('head_tpl','head','head');
$tpl->set_block('head_tpl','head_table','head_table');
$tpl->set_block('head_tpl','head_col','head_col');
$tpl->set_block('form_button_script','form_button');
if(floor(phpversion()) >= 4)
{
$tpl->set_var('cols',8);
}
else
{
$tpl->set_var('cols',7);
}
$today = date('Ymd',$GLOBALS['phpgw']->datetime->users_localtime);
$col_width = 12;
add_col($tpl,' <td width="2%">&nbsp;</td>');
add_col($tpl,' <td width="2%">'.add_image_ahref($this->page('day','&date='.$today),'today',lang('Today')).'</td>');
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('week','&date='.$today),'week',lang('This week')).'</td>');
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('month','&date='.$today),'month',lang('This month')).'</td>');
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('year','&date='.$today),'year',lang('This Year')).'</td>');
if(floor(phpversion()) >= 4)
{
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('planner','&date='.$today),'planner',lang('Planner')).'</td>');
$col_width += 2;
}
add_col($tpl,' <td width="2%" align="left">'.add_image_ahref($this->page('matrixselect'),'view',lang('Daily Matrix View')).'</td>');
add_col($tpl,' <td width="'.(100 - $col_width).'%" align="left"'.(floor(phpversion()) < 4?' colspan="2"':'').'>&nbsp;</td>');
$tpl->parse('row','head_table',True);
$tpl->set_var('header_column','');
$tpl->set_var('cols',$cols);
if($referrer!='view')
{
$remainder = 72;
$cal_id = get_var('cal_id',Array('GET','DEFAULT'),0);
$keywords = get_var('keywords',Array('POST','DEFAULT'),'');
$matrixtype = get_var('matrixtype',Array('POST','DEFAULT'),'');
$participants = get_var('participants',Array('POST'));
$date = get_var('date',Array('GET','POST'));
$year = $this->bo->year;
$month = $this->bo-month;
$day = $this->bo->day;
$var_list = Array(
'cal_id',
'keywords',
'matrixtype',
'date',
'year',
'month',
'day'
);
$base_hidden_vars = '<input type="hidden" name="from" value="'.MENUACTION.'">'."\n";
for($i=0;$i<count($var_list);$i++)
{
if($($var_list[$i]))
{
$base_hidden_vars .= ' <input type="hidden" name="'.$var_list[$i].'" value="'.$($var_list[$i]).'">'."\n";
}
}
$hidden_vars = '';
if($participants)
{
for ($i=0;$i<count($participants);$i++)
{
$hidden_vars .= ' <input type="hidden" name="participants[]" value="'.$participants[$i].'">'."\n";
}
}
$var = Array(
'form_width' => '28',
'form_link' => $this->page($referrer),
'form_name' => 'cat_id',
'title' => lang('Category'),
'hidden_vars' => $base_hidden_vars.$hidden_vars,
'form_options' => '<option value="0">All</option>'.$this->cat->formated_list('select','all',$this->bo->cat_id,'True'),
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
if(MENUACTION == 'calendar.uicalendar.planner')
{
$remainder -= 28;
print_debug('Sort By',$this->bo->sortby);
$form_options = '<option value="user"'.($this->bo->sortby=='user'?' selected':'').'>'.lang('User').'</option>'."\n";
$form_options .= ' <option value="category"'.((!isset($this->bo->sortby) || !$this->bo->sortby) || $this->bo->sortby=='category'?' selected':'').'>'.lang('Category').'</option>'."\n";
$var = Array(
'form_width' => '28',
'form_link' => $this->page($referrer),
'form_name' => 'sortby',
'title' => lang('Sort By'),
'hidden_vars' => $base_hidden_vars,
'form_options' => $form_options,
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
}
if($this->bo->check_perms(PHPGW_ACL_PRIVATE))
{
$remainder -= 28;
$hidden_vars = '';
if($participants)
{
for ($i=0;$i<count($participants);$i++)
{
$hidden_vars .= ' <input type="hidden" name="participants[]" value="'.$participants[$i].'">'."\n";
}
}
$form_options = '<option value=" all "'.($this->bo->filter==' all '?' selected':'').'>'.lang('All').'</option>'."\n";
$form_options .= ' <option value=" private "'.((!isset($this->bo->filter) || !$this->bo->filter) || $this->bo->filter==' private '?' selected':'').'>'.lang('Private Only').'</option>'."\n";
$var = Array(
'form_width' => '28',
'form_link' => $this->page($referrer),
'form_name' => 'filter',
'title' => lang('Filter'),
'hidden_vars' => $base_hidden_vars.$hidden_vars,
'form_options' => $form_options,
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
}
if((!isset($GLOBALS['phpgw_info']['server']['deny_user_grants_access']) || !$GLOBALS['phpgw_info']['server']['deny_user_grants_access']) && count($this->bo->grants) > 0)
{
$form_options = '';
reset($this->bo->grants);
while(list($grantor,$temp_rights) = each($this->bo->grants))
{
$GLOBALS['phpgw']->accounts->get_account_name($grantor,$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $grantor,
'value' => ($GLOBALS['phpgw']->accounts->get_type($grantor)=='g'?'g_':'').$grantor,
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
}
$memberships = $GLOBALS['phpgw']->accounts->membership($GLOBALS['phpgw_info']['user']['account_id']);
while($memberships != False && list($key,$group_info) = each($memberships))
{
$GLOBALS['phpgw']->accounts->get_account_name($group_info['account_id'],$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $group_info['account_id'],
'value' => ($GLOBALS['phpgw']->accounts->get_type($group_info['account_id'])=='g'?'g_':'').$group_info['account_id'],
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
$account_perms = $GLOBALS['phpgw']->acl->get_ids_for_location($group_info['account_id'],PHPGW_ACL_READ,'calendar');
while($account_perms && list($key,$group_id) = each($account_perms))
{
$GLOBALS['phpgw']->accounts->get_account_name($group_id,$lid,$fname,$lname);
$drop_down[$lname.' '.$fname] = Array(
'grantor' => $group_id,
'value' => ($GLOBALS['phpgw']->accounts->get_type($group_id)=='g'?'g_':'').$group_id,
'name' => $GLOBALS['phpgw']->common->display_fullname($lid,$fname,$lname)
);
}
}
@reset($drop_down);
@ksort($drop_down);
while(list($key,$grant) = each($drop_down))
{
$form_options .= ' <option value="'.$grant['value'].'"'.($grant['grantor']==$this->bo->owner?' selected':'').'>'.$grant['name'].'</option>'."\n";
}
reset($this->bo->grants);
$var = Array(
'form_width' => $remainder,
'form_link' => $this->page($referrer),
'form_name' => 'owner',
'title' => lang('User'),
'hidden_vars' => $base_hidden_vars,
'form_options' => $form_options,
'button_value' => lang('Go!')
);
$tpl->set_var($var);
$tpl->set_var('str',$tpl->fp('out','form_button_dropdown'));
$tpl->parse('header_column','head_col',True);
}
}
$hidden_vars = ' <input type="hidden" name="from" value="'.MENUACTION.'">'."\n";
$date = get_var('date',Array('GET'));
if($date)
{
$hidden_vars .= ' <input type="hidden" name="date" value="'.$date.'">'."\n";
}
$hidden_vars .= ' <input type="hidden" name="month" value="'.$this->bo->month.'">'."\n";
$hidden_vars .= ' <input type="hidden" name="day" value="'.$this->bo->day.'">'."\n";
$hidden_vars .= ' <input type="hidden" name="year" value="'.$this->bo->year.'">'."\n";
if(isset($this->bo->filter) && $this->bo->filter)
{
$hidden_vars .= ' <input type="hidden" name="filter" value="'.$this->bo->filter.'">'."\n";
}
if(isset($this->bo->sortby) && $this->bo->sortby)
{
$hidden_vars .= ' <input type="hidden" name="sortby" value="'.$this->bo->sortby.'">'."\n";
}
if(isset($this->bo->num_months) && $this->bo->num_months)
{
$hidden_vars .= ' <input type="hidden" name="num_months" value="'.$this->bo->num_months.'">'."\n";
}
$hidden_vars .= ' <input name="keywords"'.($keywords?' value="'.$keywords.'"':'').'>';
$var = Array(
'action_url_button' => $this->page('search'),
'action_text_button' => lang('Search'),
'action_confirm_button' => '',
'action_extra_field' => $hidden_vars
);
$tpl->set_var($var);
$button = $tpl->fp('out','form_button');
$tpl->set_var('str','<td align="right" valign="bottom">'.$button.'</td>');
$tpl->parse('header_column','head_col',True);
$tpl->parse('row','head_table',True);
?>

6
debian/changelog vendored
View File

@ -1,6 +0,0 @@
phpgroupware-phpgroupware (0.9.14-0.RC3.3) unstable; urgency=low
* New release.
- Source is now splitted into modules.
-- Luca - De Whiskey's - De Vitis <luca@debian.org> Mon, 21 May 2001 15:00:56 +0200

37
debian/control vendored
View File

@ -1,37 +0,0 @@
Source: phpgroupware-phpgroupware
Section: web
Priority: optional
Maintainer: Luca - De Whiskey's - De Vitis <luca@debian.org>
Build-Depends: debhelper (>> 3.0.0)
Standards-Version: 3.5.2
Package: phpgroupware-core
Section: web
Architecture: all
Depends: phpgroupware (>= ${Source-Version}), php3-pgsql | php3-cgi-pgsql | php4-pgsql | php3-mysql | php3-cgi-mysql | php4-mysql
Provides: phpgroupware-core-doc
Conflicts: phpgroupware-core-doc
Description: The phpGroupWare core module
This is the phpGroupWare core module. It provides the XMLRPC server, the SOAP
server, the wrapper for anonymous login and other core files.
Package: phpgroupware
Architecture: all
Section: web
Depends: apache | httpd, php3-imap | php3-cgi-imap | php4-imap, phpgroupware-core (>= ${Source-Version}), phpgroupware-api (>= ${Source-Version}), phpgroupware-setup (>= ${Source-Version}), phpgroupware-admin (>= ${Source-Version}), phpgroupware-preferences (>= ${Source-Version}), debconf, wwwconfig-common
Recommends: php3-ldap | php3-cgi-ldap | php4-ldap
Suggests: slapd | ldap-server, postgresql | mysql-server, courier-imap | imap-server, libdbi-perl, phpgroupware-manual, phpgroupware-todo, phpgroupware-notes, phpgroupware-email, phpgroupware-nntp, phpgroupware-calendar, phpgroupware-addressbook
Conflicts: phpgroupware-doc, phpgroupware-unstable-apps, phpgroupware-transy
Description: Web based GroupWare system written in PHP
phpGroupWare is a web based GroupWare system. It comes with several core
apps for email, calendar, todo list, address book, file manager, and a
notepad. It also provides a framework for add-on modules to integrate
seamlessly in phpGroupWare. Some samples are a bookmark manager, a trouble
ticket system, a weather reporter, a phone log, a chat program, and a forum
system. There are many more in development, and you can develop your own as
well.
.
You should use it if you would like a powerful groupware system that can be
access from anywhere on the Internet, and allows for custom add-ons. For
companies with a distributed user base, it's an ideal solution. Oh, and did I
mention that its FREE?

15
debian/copyright vendored
View File

@ -1,15 +0,0 @@
This package was debianized by Luca - De Whiskey's - De Vitis <luca@debian.org> on
Sat, 29 Jun 2002 17:13:40 +0200
It was downloaded from the CVS repository at subversion.gnu.org. Try:
prompt$ CVSROOT=:pserver:anoncvs@subversions.gnu.org:/cvsroot/phpgroupware
prompt$ CVS_RSH=ssh
prompt$ cvs login
prompt$ cvs get all packages
Upstream Author(s):
Please, see credits.txt, the README file or visit http://apps.phpgroupware.org/
Copyright:
A copy of the GNU General Public License, version 2, can be found in
/usr/share/common-licenses/GPL .

78
debian/rules vendored
View File

@ -1,78 +0,0 @@
#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 by Joey Hess.
#
# This version is for a hypothetical package that builds an
# architecture-dependant package, as well as an architecture-independent
# package.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# This is the debhelper compatability version to use.
export DH_COMPAT=3
APP = core
PACKAGE = debian/phpgroupware-$(APP)/usr/share/phpgroupware/
PACKAGEDOC = debian/phpgroupware-$(APP)/usr/share/doc/phpgroupware-$(APP)
COPYRIGHT = -iname copyright\* -or -iname license
CHANGELOG = -iname change\*
INSTALL = -iname install
FINDOPT = -type f -not \( -path \*CVS\* -or -path \*debian\* -or -name .cvsignore \)
SPECIAL = -size 0 -or $(INSTALL) -or $(CHANGELOG) -or $(COPYRIGHT) -or -name \*.sgml
STAMPS = -name configure-stamp -or -name build-stamp
APPFILES = -not \( -path \*doc\* -or -path \. -or -name '*.pl' -or -name '*.py' -or $(STAMPS) \)
DOCFILES = -not \( $(SPECIAL) \)
configure: configure-stamp
configure-stamp:
dh_testdir
# No configuration needed.
touch configure-stamp
build: configure-stamp build-stamp
build-stamp:
dh_testdir
# Here should go the commands necessary to build the sgml documentation...
touch build-stamp
clean:
dh_testdir
rm -f build-stamp configure-stamp
rm -f debian/.builded
rm -f debian/files
# Here should go the commands to clean the builded sgml documents.
dh_clean
install: build
dh_installdirs
dh_testdir
# Install $(APP) files in $(PACKAGE)
find $(FINDOPT) $(APPFILES) \
-exec install -D --mode=644 {} $(PACKAGE)/{} \;
# Install $(APP) doc files in $(PACKAGEDOC)
cd doc ;\
find $(FINDOPT) $(DOCFILES) \
-exec install -D --mode=644 {} ../$(PACKAGEDOC)/{} \;
install --mode=644 debian/etc/apache.conf \
debian/phpgroupware/etc/phpgroupware
binary-indep: build install
dh_testdir
dh_testroot
dh_installdocs
dh_installchangelogs doc/CHANGELOG
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb | tee debian/.builded
binary: binary-indep
.PHONY: build clean binary-indep binary-arch binary install configure

View File

@ -28,76 +28,65 @@
// Modules you want to checkout, do NOT add the phpgroupware module
$co_modules[] = array
(
'addbook',
'addressbook',
'admin',
'backup',
'bookkeeping',
'bookmarks',
'brewer',
'calendar',
'cart',
'ccs',
'cdb',
'chat',
'chora',
'comic',
'cron',
'developer_tools',
'dj',
'eldaptir',
'email',
'etemplate',
'felamimail'
'filemanager',
'forum';
'ftp',
'headlines',
'hr',
'img',
'infolog',
'inv',
'manual',
'mediadb',
'meerkat',
'messenger',
'napster',
'netsaint',
'news_admin',
'nntp',
'notes',
'packages',
'phonelog',
'phpGWShell_Win32_VB',
'phpgwapi',
'phpgwnetsaint',
'phpsysinfo',
'polls',
'preferences',
'projects',
'property'
'qmailldap',
'rbs',
'registration',
'setup',
'sitemgr'
'skel',
'soap',
'squirrelmail',
'stocks',
'syncml-server',
'timetrack',
'todo',
'transy',
'tts',
'vmailmgr',
'wap',
'wcm',
'weather',
'xmlrpc'
);
$co_modules[] = 'addressbook';
$co_modules[] = 'admin';
$co_modules[] = 'backup';
$co_modules[] = 'bookkeeping';
$co_modules[] = 'bookmarks';
$co_modules[] = 'brewer';
$co_modules[] = 'calendar';
$co_modules[] = 'cart';
$co_modules[] = 'ccs';
$co_modules[] = 'cdb';
$co_modules[] = 'chat';
$co_modules[] = 'chora';
$co_modules[] = 'comic';
$co_modules[] = 'cron';
$co_modules[] = 'developer_tools';
$co_modules[] = 'dj';
$co_modules[] = 'eldaptir';
$co_modules[] = 'email';
$co_modules[] = 'filemanager';
$co_modules[] = 'forum';
$co_modules[] = 'ftp';
$co_modules[] = 'headlines';
$co_modules[] = 'hr';
$co_modules[] = 'infolog';
$co_modules[] = 'inv';
$co_modules[] = 'manual';
$co_modules[] = 'mediadb';
$co_modules[] = 'meerkat';
$co_modules[] = 'messenger';
$co_modules[] = 'napster';
$co_modules[] = 'netsaint';
$co_modules[] = 'news_admin';
$co_modules[] = 'nntp';
$co_modules[] = 'notes';
$co_modules[] = 'phonelog';
$co_modules[] = 'phpGWShell_Win32_VB';
$co_modules[] = 'phpgwapi';
$co_modules[] = 'phpgwnetsaint';
$co_modules[] = 'phpsysinfo';
$co_modules[] = 'phpwebhosting';
$co_modules[] = 'polls';
$co_modules[] = 'preferences';
$co_modules[] = 'projects';
$co_modules[] = 'qmailldap';
$co_modules[] = 'rbs';
$co_modules[] = 'setup';
$co_modules[] = 'skel';
$co_modules[] = 'soap';
$co_modules[] = 'squirrelmail';
$co_modules[] = 'stocks';
$co_modules[] = 'syncml-server';
$co_modules[] = 'timetrack';
$co_modules[] = 'todo';
$co_modules[] = 'transy';
$co_modules[] = 'tts';
$co_modules[] = 'wap';
$co_modules[] = 'wcm';
$co_modules[] = 'weather';
$co_modules[] = 'xmlrpc';
// -- End config section

View File

@ -65,6 +65,7 @@
'phpgwapi',
'phpgwnetsaint',
'phpsysinfo',
'phpwebhosting',
'polls',
'preferences',
'projects',

Some files were not shown because too many files have changed in this diff Show More