merge from trunk(revision 23794:23834) to 1.4 branch

This commit is contained in:
Lars Kneschke 2007-05-08 14:58:22 +00:00
commit 40da3a001e
44 changed files with 1927 additions and 313 deletions

View File

@ -0,0 +1,421 @@
<?php
/**
* Addressbook - xmlrpc access
*
* The original addressbook xmlrpc interface was written by Joseph Engo <jengo@phpgroupware.org>
* and Miles Lott <milos@groupwhere.org>
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package addressbook
* @copyright (c) 2007 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
require_once(EGW_API_INC.'/class.contacts.inc.php');
/**
* Class to access AND manipulate addressbook data via XMLRPC or SOAP
*
* eGW's xmlrpc interface is documented at http://egroupware.org/wiki/xmlrpc
*
* @link http://egroupware.org/wiki/xmlrpc
*/
class boaddressbook
{
/**
* Instance of the contacts class
*
* @var contacts
*/
var $contacts;
/**
* Field-mapping for certain user-agents
*
* @var array
*/
var $mapping=array();
/**
* Contstructor
*
* @return boaddressbook
*/
function boaddressbook()
{
if (!is_object($GLOBALS['egw']->contacts))
{
$GLOBALS['egw']->contacts =& new contacts();
}
$this->contacts =& $GLOBALS['egw']->contacts;
// are we called via xmlrpc?
if (!is_object($GLOBALS['server']) || !$GLOBALS['server']->last_method)
{
die('not called via xmlrpc');
}
$this->set_mapping_for_user_agent();
}
/**
* This handles introspection or discovery by the logged in client,
* in which case the input might be an array. The server always calls
* this function to fill the server dispatch map using a string.
*
* @param string/array $_type='xmlrpc' xmlrpc or soap
* @return array
*/
function list_methods($_type='xmlrpc')
{
if(is_array($_type))
{
$_type = $_type['type'] ? $_type['type'] : $_type[0];
}
switch($_type)
{
case 'xmlrpc':
return array(
'read' => array(
'function' => 'read',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Read a single entry by passing the id and fieldlist.')
),
'save' => array(
'function' => 'save',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Write (update or add) a single entry by passing the fields.')
),
'write' => array( // old 1.2 name
'function' => 'save',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Write (update or add) a single entry by passing the fields.')
),
'delete' => array(
'function' => 'delete',
'signature' => array(array(xmlrpcString,xmlrpcString)),
'docstring' => lang('Delete a single entry by passing the id.')
),
'search' => array(
'function' => 'search',
'signature' => array(array(xmlrpcStruct,xmlrpcStruct)),
'docstring' => lang('Read a list / search for entries.')
),
'categories' => array(
'function' => 'categories',
'signature' => array(array(xmlrpcBoolean,xmlrpcBoolean)),
'docstring' => lang('List all categories')
),
'customfields' => array(
'function' => 'customfields',
'signature' => array(array(xmlrpcArray,xmlrpcArray)),
'docstring' => lang('List all customfields')
),
'list_methods' => array(
'function' => 'list_methods',
'signature' => array(array(xmlrpcStruct,xmlrpcString)),
'docstring' => lang('Read this list of methods.')
)
);
case 'soap':
return array(
'read' => array(
'in' => array('int','struct'),
'out' => array('array')
),
'write' => array(
'in' => array('int','struct'),
'out' => array()
),
'categories' => array(
'in' => array('bool'),
'out' => array('struct')
),
'customfields' => array(
'in' => array('array'),
'out'=> array('struct')
)
);
default:
return array();
}
}
/**
* Get field-mapping for user agents expecting old / other field-names
*
* @internal
*/
function set_mapping_for_user_agent()
{
//error_log("set_mapping_for_user_agent(): HTTP_USER_AGENT='$_SERVER[HTTP_USER_AGENT]'");
switch($_SERVER['HTTP_USER_AGENT'])
{
case 'KDE-AddressBook':
$this->mapping = array(
'n_fn' => 'fn',
'modified' => 'last_mod',
'tel_other' => 'ophone',
'adr_one_street2' => 'address2',
'adr_two_street2' => 'address3',
'freebusy_uri' => 'freebusy_url',
'grants[owner]' => 'rights',
'jpegphoto' => false, // gives errors in KAddressbook, maybe the encoding is wrong
'photo' => false, // is uncomplete anyway
'private' => 'access', // special handling necessary
);
break;
case 'eGWOSync': // no idea what is necessary
break;
}
}
/**
* translate array of internal datas to xmlrpc, eg. format bday as iso8601
*
* @internal
* @param array $datas array of contact arrays
* @return array
*/
function data2xmlrpc($datas)
{
if(is_array($datas))
{
foreach($datas as $n => $nul)
{
$data =& $datas[$n]; // $n => &$data is php5 ;-)
// remove empty or null elements, they dont need to be transfered
$data = array_diff($data,array('',null));
// translate birthday to a iso8601 date
if(isset($data['bday']))
{
list($y,$m,$d) = explode('-',$data['bday']);
$data['bday'] = $GLOBALS['server']->date2iso8601(array('year'=>$y,'month'=>$m,'mday'=>$d));
}
// translate timestamps
foreach($this->contacts->timestamps as $name)
{
if(isset($data[$name]))
{
$data[$name] = $GLOBALS['server']->date2iso8601($data[$name]);
}
}
// translate categories-id-list to array with id-name pairs
if(isset($data['cat_id']))
{
$data['cat_id'] = $GLOBALS['server']->cats2xmlrpc(explode(',',$data['cat_id']));
}
// translate fieldnames if required
foreach($this->mapping as $from => $to)
{
switch($from)
{
case 'grants[owner]':
$data[$to] = $this->bo->grants[$data['owner']];
break;
case 'private':
$data[$to] = $data['private'] ? 'private' : 'public';
break;
default:
if(isset($data[$from]))
{
if ($to) $data[$to] =& $data[$from];
unset($data[$from]);
}
break;
}
}
}
}
return $datas;
}
/**
* retranslate from xmlrpc / iso8601 to internal format
*
* @internal
* @param array $data
* @return array
*/
function xmlrpc2data($data)
{
// translate fieldnames if required
foreach($this->mapping as $to => $from)
{
if ($from && isset($data[$from]))
{
switch($to)
{
case 'private':
$data[$to] = $data['access'] == 'private';
break;
default:
$data[$to] =& $data[$from]; unset($data[$from]);
break;
}
}
}
// translate birthday
if(isset($data['bday']))
{
$arr = $GLOBALS['server']->iso86012date($data['bday']);
$data['bday'] = $arr['year'] && $arr['month'] && $arr['mday'] ? sprintf('%04d-%02d-%02d',$arr['year'],$arr['month'],$arr['mday']) : null;
}
// translate timestamps
foreach($this->bo->timestamps as $name)
{
if(isset($data[$name]))
{
$data[$name] = $GLOBALS['server']->date2iso8601($data[$name]);
}
}
// translate cats
if(isset($data['cat_id']))
{
$cats = $GLOBALS['server']->xmlrpc2cats($data['cat_id']);
$data['cat_id'] = count($cats) > 1 ? ','.implode(',',$cats).',' : (int)$cats[0];
}
return $data;
}
/**
* Search the addressbook
*
* Todo: use contacts::search and all it's possebilities instead of the depricated contacts::old_read()
*
* @param array $param
* @param int $param['start']=0 starting number of the range, if $param['limit'] != 0
* @param int $param['limit']=0 max. number of entries to return, 0=all
* @param array $param['fields']=null fields to return or null for all stock fields, fields are in the values (!)
* @param string $param['query']='' search pattern or '' for none
* @param string $param['filter']='' filters with syntax like <name>=<value>,<name2>=<value2>,<name3>=!'' for not empty
* @param string $param['sort']='' sorting: ASC or DESC
* @param string $param['order']='' column to order, default ('') n_family,n_given,email ASC
* @param int $param['lastmod']=-1 return only values modified after given timestamp, default (-1) return all
* @param string $param['cquery='' return only entries starting with given character, default ('') all
* @return array of contacts
*/
function search($param)
{
return $this->data2xmlrpc($this->contacts->old_read(
(int) $param['start'],
(int) $param['limit'],
$param['fields'],
$param['query'],
$param['filter'],
$param['sort'],
$param['order'],
$param['lastmod'] ? $param['lastmod'] : -1,
$param['cquery']
));
}
/**
* Read one contract
*
* @param mixed $id $id, $id[0] or $id['id'] contains the id of the contact
* @return array contact
*/
function read($id)
{
if(is_array($id)) $id = isset($id[0]) ? $id[0] : $id['id'];
$data = $this->contacts->read($id);
if($data !== false) // permission denied
{
$data = array($this->data2xmlrpc($data));
return $data[0];
}
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']);
}
/**
* Save a contact
*
* @param array $data
* @return int new contact_id
*/
function save($data)
{
$data = $this->xmlrpc2data($data);
$id = $this->contacts->save($data);
if($id) return $id;
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']);
}
/**
* Delete a contact
*
* @param mixed $id $id, $id[0] or $id['id'] contains the id of the contact
* @param boolean true
*/
function delete($id)
{
if(is_array($id)) $id = isset($id[0]) ? $id[0] : $id['id'];
if ($this->contacts->delete($id))
{
return true;
}
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']);
}
/**
* return all addressbook categories
*
* @param boolean $complete complete cat-array or just the name
* @param array with cat_id => name or cat_id => cat-array pairs
*/
function categories($complete = False)
{
return $GLOBALS['server']->categories($complete);
}
/**
* get or set addressbook customfields
*
* @param array $new_fields=null
* @return array
*/
function customfields($new_fields=null)
{
if(is_array($new_fields) && count($new_fields))
{
if(!$GLOBALS['egw_info']['user']['apps']['admin'])
{
$GLOBALS['server']->xmlrpc_error($GLOBALS['xmlrpcerr']['no_access'],$GLOBALS['xmlrpcstr']['no_access']);
}
require_once(EGW_INCLUDE_ROOT.'/admin/inc/class.customfields.inc.php');
$fields = new customfields('addressbook');
foreach($new_fields as $new)
{
if (!is_array($new))
{
$new = array('name' => $new);
}
$fields->create_field(array('fields' => $new));
}
}
$customfields = array();
foreach($this->contacts->customfields as $name => $data)
{
$customfields[$name] = $data['label'];
}
return $customfields;
}
}

View File

@ -711,6 +711,8 @@ class uicontacts extends bocontacts
$query['order'] = 'org_name';
}
$rows = parent::organisations($query);
$GLOBALS['egw_info']['flags']['params']['manual'] = array('page' => 'ManualAddressbookIndexOrga');
}
else // contacts view
{

View File

@ -6,7 +6,7 @@
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package addressbook
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id: class.bocontacts.inc.php 21831 2006-06-14 16:53:14Z ralfbecker $
* @version $Id$
*/
function contact_repositories($config)

View File

@ -1,6 +1,6 @@
%1 added addressbook pl %1 dodany
%1 contact(s) %2 addressbook pl %1 kontakt(ów) %2
%1 contact(s) %2, %3 failed because of insufficent rights !!! addressbook pl %1 kontakt(ów)%2, %3 nie było możliwe ponieważnie masz odpowiednich praw !!!
%1 contact(s) %2, %3 failed because of insufficent rights !!! addressbook pl %1 kontakt(ów)%2, %3 nie by³o mo¿liwe poniewa¿ nie masz odpowiednich praw !!!
%1 fields in %2 other organisation member(s) changed addressbook pl %1 pól w %2 cz³onków innej organizacji zmieniono
%1 records imported addressbook pl Zaimportowano %1 rekordów
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook pl Wczytano %1 rekordów (ale jeszcze nie zaimportowano, mo¿esz %2wróciæ%3 i skasowaæ zaznaczenie próbnego importu)
@ -14,8 +14,12 @@ actions addressbook pl Polecenia
add %1 addressbook pl Dodaj %1
add a contact to this organisation addressbook pl Dodaj kontakty do tej organizacji
add a new contact addressbook pl Dodaj nowy kontakt
add a new list addressbook pl Dodaj now± listê
add a single entry by passing the fields. addressbook pl Dodaj pojedyczy wpis za pomoc± przekazania pól
add custom field addressbook pl Dodaj pole u¿ytkownika
add to distribution list: addressbook pl Dodaj do listy dystrybucyjnej:
added by synchronisation addressbook pl dodano poprzez synchronizacjê
added to distribution list addressbook pl dodano do listy dystrybucyjnej
additional information about using ldap as contact repository admin pl Dodatkowe informacje o korzystaniu z LDAP jako repozytorium kontaktów
address book common pl Kontakty, adresy
address book - vcard in addressbook pl Wczytanie kartek elektronicznych do ksi±¿ki adresowej
@ -23,6 +27,7 @@ address book - view addressbook pl Przegl
address line 2 addressbook pl Wiersz adresu nr 2
address type addressbook pl Typ adresu
addressbook common pl Ksi±¿ka adresowa
addressbook csv export addressbook pl Eksport ksi±¿ki adresowej do CSV
addressbook menu addressbook pl Menu ksi±¿ki adresowej
addressbook preferences addressbook pl Ustawienia ksi±¿ki adresowej
addressbook the contact should be saved to addressbook pl Ksi±¿ka adresowa do której ma zostaæ zapisany ontakt
@ -89,21 +94,27 @@ csv-fieldname addressbook pl Nazwa pola CSV
csv-filename addressbook pl Nazwa pliku CSV
custom addressbook pl U¿ytkownika
custom fields addressbook pl Pola u¿ytkownika
debug output in browser addressbook pl Debuguj wynik w przegl±darce
default addressbook for adding contacts addressbook pl Domy¶lna ksi±¿ka adresowa przy dodawaniu kontaktów
default filter addressbook pl Filtr domy¶lny
delete a single entry by passing the id. addressbook pl Usuñ jeden wpis wed³ug podanego id.
delete selected distribution list! addressbook pl Usuñ wybran± listê dystrybucyjn±!
delete this contact addressbook pl Usuñ ten kontakt
delete this organisation including all its contacts addressbook pl Usuń tę organizację i wszystkie jej kontaky
delete this organisation including all its contacts addressbook pl Usuñ tê organizacjê i wszystkie jej kontakty
deleted addressbook pl skasowany
deletes the photo addressbook pl Usuñ to zdjêcie
department common pl Oddzia³
departments addressbook pl oddzia³y
displays a remider for birthdays on the startpage (page you get when you enter egroupware or click on the homepage icon). addressbook pl Przypominaj o urodzinach na stronie startowej (strona domowa z ikonk± domu)
do you want a private addressbook, which can not be viewed by users, you grant access to your personal addressbook? addressbook pl Czy chcesz prywatną księgę gości, niewidoczną dla innych urzytkowników, którym nie dałeś praw do niej?
distribution list deleted addressbook pl Lista dystrybucyjna zosta³a usuniêta
distribution lists addressbook pl Listy dystrybucyjne
do you want a private addressbook, which can not be viewed by users, you grant access to your personal addressbook? addressbook pl Czy chcesz prywatn± ksiêgê go¶ci, niewidoczn± dla innych u¿ytkowników, którym nie da³e¶ praw do niej?
do your really want to delete this contact? addressbook pl Naprawdê chcesz usun±æ ten kontakt?
doesn't matter addressbook pl nie ma znaczenia
domestic addressbook pl Domowy
don't hide empty columns addressbook pl Nie ukrywaj pustych kolumn
download addressbook pl Pobierz
download export file (uncheck to debug output in browser) addressbook pl Zapisz plik na dysku (jeżeli nie zaznaczysz, wynik bedzie pokazany wyłącznie w oknie przeglądarki)
download export file (uncheck to debug output in browser) addressbook pl Zapisz plik na dysku (je¿eli nie zaznaczysz, wynik bêdzie pokazany wy³±cznie w oknie przegl±darki)
download this contact as vcard file addressbook pl sci±gnij ten kontakt jako plik vCard
edit custom field addressbook pl Edytuj pole u¿ytkownika
edit custom fields admin pl Edytuj pola u¿ytkownika
@ -124,14 +135,19 @@ export file name addressbook pl Nazwa pliku
export from addressbook addressbook pl Eksport z ksi±¿ki adresowej
export selection addressbook pl Wyeksportuj wybrane
exported addressbook pl wyeksportowano
exports contacts from your addressbook into a csv file. csv means 'comma seperated values'. however in the options tab you can also choose other seperators. addressbook pl Eksportuj kontakty z ksi±¿ki adresowej do pliku CSV, czyli "warto¶ci rozdzielone przecinkami". Mo¿esz wybraæ równie¿ tabulator jako separator.
extra addressbook pl Dodatkowe
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook pl nie uda³o siê zmieniæ %1 cz³onków organizacji (brak uprawnieñ)
fax addressbook pl Faks
fax number common pl Numer faksu
field %1 has been added ! addressbook pl Pole %1 zosta³o dodane !
field %1 has been updated ! addressbook pl Pole %1 zosta³o zaktualizowane !
field name addressbook pl Nazwa pola
fields for the csv export addressbook pl Pola do wyeksportowania do CSV
fields the user is allowed to edit himself admin pl Pola, które mog± byæ edytowane przez u¿ytkownika
fields to show in address list addressbook pl Pola pokazywane na li¶cie adresów
fieldseparator addressbook pl Separator pól
for read only ldap admin pl dla dostêpu LDAP tylko do odczytu
freebusy uri addressbook pl URI wolny/zajêty
full name addressbook pl Pe³na nazwa
general addressbook pl G³ówne
@ -139,6 +155,8 @@ geo addressbook pl GEO
global categories addressbook pl Kategorie globalne
grant addressbook access common pl Nadaj prawa dostêpu do ksi±¿ki adresowej
group %1 addressbook pl Grupa %1
hide accounts from addressbook addressbook pl Ukryj konta z ksi±¿ki adresowej
hides accounts completly from the adressbook. addressbook pl Ukrywa ca³kowicie konta z ksi±¿ki adresowej
home address addressbook pl Adres domowy
home address, birthday, ... addressbook pl Adres domowy, urodziny, ...
home city addressbook pl Miasto zamieszkania
@ -157,10 +175,12 @@ import file addressbook pl Plik importu
import from addressbook pl Importuj z
import from ldif, csv, or vcard addressbook pl Import z LDIF, CSV lub VCard
import from outlook addressbook pl Importuj z programu Outlook
import multiple vcard addressbook pl Importuj wiele plików VCard
import next set addressbook pl Importuj nastêpny set
import_instructions addressbook pl W Netscape, otwórz Ksi±¿kê Adresow± (Addressbook) i wybierz z menu <b>Plik</b> (File) pozycjê <b>Eksport</b>. Plik zostanie wyeksportowany w formacie LDIF.<p> W Outlooku, wybierz folder Kontakty, wybierz z menu <b>Plik</b> pozycjê <b>Import i eksport</b> i wyeksportuj swoje kontakty do pliku tekstowego oddzielanego kropk± (CSV).<p>W Palm Desktop 4.0 (lub wy¿szym), wejd¼ do ksi±¿ki adresowej i wybierz <b>Export</b> z menu <b>Plik</b>. Zostanie on wyeksportowany w formacie VCard.
in %1 days (%2) is %3's birthday. addressbook pl Za %1 dni s± urodziny %3
income addressbook pl Dochód
insufficent rights to delete this list! addressbook pl Brak wystarczaj±cych uprawnieñ do usuniêcia listy!
international addressbook pl Miêdzynarodowy
label addressbook pl Etykieta
last modified addressbook pl ostatnio zmodyfikowany
@ -174,6 +194,8 @@ link title for contacts show addressbook pl Tytu
links addressbook pl Linki
list all categories addressbook pl Wywietl wszystkie kategorie
list all customfields addressbook pl Poka¿ wszystkie pola u¿ytkownika
list created addressbook pl Lista zosta³a utworzona
list creation failed, no rights! addressbook pl Lista NIE zosta³a utworzona, brak uprawnieñ!
load vcard addressbook pl £aduj vCard
locations addressbook pl Lokacje
mark records as private addressbook pl Zaznacz rekordy jako prywatne
@ -187,13 +209,14 @@ mobile addressbook pl Kom
mobile phone addressbook pl Komórka
modem phone addressbook pl Numer modemu
more ... addressbook pl Wiêcej ...
move to addressbook: addressbook pl Przenie¶ do ksia¿ki adresowej:
moved addressbook pl przesuniêto
multiple vcard addressbook pl VCard z wieloma kontaktami
name for the distribution list addressbook pl Nazwa dla listy dystrybucyjnej
name, address addressbook pl Imiê, adres
no vcard addressbook pl Bez VCard
number addressbook pl Numer
number of records to read (%1) addressbook pl Liczba rekordów do wczytania (%1)
only if there is content addressbook pl jedynie jeśli zawiera
options for type admin pl Opcje typu
organisation addressbook pl organizacja
organisations addressbook pl Organizacje
@ -218,10 +241,12 @@ public key addressbook pl Klucz publiczny
publish into groups: addressbook pl Opublikuj do grup:
read a list / search for entries. addressbook pl Czytaj listê / szukaj wpisów.
read a list of entries. addressbook pl Wczytaj listê wpisów
read a single entry by passing the id and fieldlist. addressbook pl Czytaj pojedzńczy wpis szukając w/g id i listy pól.
read a single entry by passing the id and fieldlist. addressbook pl Czytaj pojedynczy wpis szukaj±c w/g id i listy pól.
read only addressbook pl tylko do odczytu
record access addressbook pl Dostêp do rekordu
record owner addressbook pl W³a¶ciciel rekordu
remove selected contacts from distribution list addressbook pl Usuñ wybrane kontakty z listy dystrybucyjnej
removed from distribution list addressbook pl usuniêto z listy dystrybucyjnej
role addressbook pl Pozycja
room addressbook pl Pokój
search for '%1' addressbook pl Szukaj '%1'
@ -237,12 +262,12 @@ select the type of conversion addressbook pl Wybierz typ konwersji
select the type of conversion: addressbook pl Wybierz typ konwersji
select where you want to store / retrieve contacts admin pl Wybierz, dok±d mam zapisywaæ kontakty
selected contacts addressbook pl wybrane kontakty
show addressbook pl Poka
show a column for %1 addressbook pl pokaż kolumnę dla %1
should the columns photo and home address always be displayed, even if they are empty. addressbook pl Czy kolumny: zdjêcie i adres domowy powinny byæ wy¶wietlane zawsze, nawet je¿eli s± puste?
show addressbook pl Poka¿
show birthday reminders on main screen addressbook pl Pokazuj przypomnienia o urodzinach na g³ównym ekranie
show infolog entries for this organisation addressbook pl Poka¿ wpisy InfoLog tej organizacji
show the contacts of this organisation addressbook pl Poka¿ kontakty tej organizacji
size of popup (wxh, eg.400x300, if a popup should be used) admin pl Wielkość okna 'popup' (WxSz, np.: 300x400, jeśli chcesz z tego korzystać)
size of popup (wxh, eg.400x300, if a popup should be used) admin pl Wielko¶æ okna 'popup' (szeroko¶æ na wysoko¶æ, np.: 400x300, je¶li chcesz z tego korzystaæ)
start admin pl Pocz±tek
startrecord addressbook pl Rekord pocz±tkowy
state common pl Województwo
@ -261,16 +286,26 @@ today is %1's birthday! common pl Dzi s urodziny %1
tomorrow is %1's birthday. common pl Jutro s urodziny %1
translation addressbook pl T³umaczenie
type addressbook pl typ
update a single entry by passing the fields. addressbook pl Aktualizuj pojedyñczy wpis poprzez podawanie warto¶ci pól.
upload or delete the photo addressbook pl Za³aduj lub usuñ zdjêcie
url to link telephone numbers to (use %1 for the number) admin pl Rodzaj odno¶nika URL dla numerów telefonów (u¿yj %1 jako numer)
use an extra category tab? addressbook pl U¿ywaæ specjalnej zak³adki kategorii?
use country list addressbook pl U¿yj listy krajów
use setup for a full account-migration admin pl u¿yj (/setup) w celu pe³nej migracji kont
used for links and for the own sorting of the list addressbook pl u¿ywane w odno¶nikach oraz we w³asnym sortowaniu listy
vcard common pl Kartka elektroniczna (VCard)
vcards require a first name entry. addressbook pl Kartki elektroniczne (VCard) wymagaj± podania imienia.
vcards require a last name entry. addressbook pl Kartki elektroniczne (VCard) wymagaj± podania nazwiska
view linked infolog entries addressbook pl Poka¿ wpisy do InfoLog jako link
warning!! ldap is valid only if you are not using contacts for accounts storage! admin pl UWAGA!! Można uzywać LDAP tylko kiedy NIE używa się kontaktów do przechowywania kont!
warning!! ldap is valid only if you are not using contacts for accounts storage! admin pl UWAGA!! Mo¿na u¿ywaæ LDAP tylko kiedy NIE u¿ywa siê kontaktów do przechowywania kont!
warning: all contacts found will be deleted! addressbook pl UWAGA: Wszystkie znalezione kontakty zostan± skasowane!
what should links to the addressbook display in other applications. empty values will be left out. you need to log in anew, if you change this setting! addressbook pl Jak± tre¶æ powinny mieæ odno¶niki do ksi±¿ki adresowej widocznie w innych aplikacjach? Puste warto¶ci zostan± pominiête. Musisz na nowo siê zalogowaæ, je¿eli zmienisz to ustawienie.
which addressbook should be selected when adding a contact and you have no add rights to the current addressbook. addressbook pl Która ksi±¿ka adresowa powinna byæ wybrana przy dodawaniu kontaktu, je¿eli nie masz praw zapisu do BIE¯¡CEJ ksi±¿ki adresowej?
which charset should be used for the csv export. the system default is the charset of this egroupware installation. addressbook pl Jakiego zestawu znaków u¿yæ przy eksporcie do CSV? Zestaw "systemowy domy¶lny" jest zestawem wybrany w tej instalacji eGroupWare.
which fields should be exported. all means every field stored in the addressbook incl. the custom fields. the business or home address only contains name, company and the selected address. addressbook pl Które pola powinny byæ wyeksportowane? "Wszystkie", czyli ka¿de pole ksi±¿ki adresowej, równie¿ pola w³asne u¿ytkowników. Tryb adresu "biznes" oraz "domowy" zawiera tylko: nazwê, przedsiêbiorstwo oraz wybrany rodzaj adresu.
whole query addressbook pl Ca³e zapytanie
work phone addressbook pl Telefon do pracy
write (update or add) a single entry by passing the fields. addressbook pl Zapisz (aktualizuj lub dodaj) pojedynczy wpis poprzez podanie zawarto¶ci pól.
yes, for the next three days addressbook pl Tak, dla nastêpnych trzech dni
yes, for the next two weeks addressbook pl Tak, dla nastêpnych dwuch tygodni
yes, for the next week addressbook pl Tak, dla nastêpnego tygodnia
@ -279,9 +314,10 @@ you are not permitted to delete contact %1 addressbook pl Nie masz uprawnie
you are not permittet to delete this contact addressbook pl Nie masz uprawnieñ do kasowania tego kontaktu
you are not permittet to edit this contact addressbook pl Nie masz uprawnieñ do edytowania tego kontaktu
you are not permittet to view this contact addressbook pl Nie masz uprawnieñ do ogl±dania tego kontaktu
you can only use ldap as contact repository if the accounts are stored in ldap too! admin pl Możesz jedynie używać LDAP jako rezpozytorium kontaktów, jeśli te konto zostało zapisane także w LDAP'ie!
you can only use ldap as contact repository if the accounts are stored in ldap too! admin pl Mo¿esz jedynie u¿ywaæ LDAP jako repozytorium kontaktów, je¶li te konto zosta³o zapisane tak¿e w LDAP!
you must select a vcard. (*.vcf) addressbook pl Musisz wybraæ kartke adresow± VCard (*.vcf)
you must select at least 1 column to display addressbook pl Musisz wybraæ przynajmniej jedn± kolumnê do wy¶wietlenia
you need to select a distribution list addressbook pl Musisz wybraæ listê dystrybucyjn±
you need to select some contacts first addressbook pl Musisz najpierw wybraæ kontakty
zip code common pl Kod pocztowy
zip_note addressbook pl <p><b>Uwaga:</b>Plik mo¿e byæ typu zip i zawieraæ zbiór plików typu .csv, .vcf lub .ldif. Mimo to proszê nie mieszaæ plików ró¿nego typu w jednym archiwum.

View File

@ -244,6 +244,7 @@
// This is down here so we are sure to catch the acl changes
// for LDAP to update the memberuid attribute
$group->data['account_email'] = $group_info['account_email'];
$group->data['account_lid'] = $group_info['account_name'];
$group->save_repository();
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values']+array(

View File

@ -680,7 +680,8 @@
function delete_user()
{
if ($GLOBALS['egw']->acl->check('account_access',32,'admin') || $GLOBALS['egw_info']['user']['account_id'] == $_GET['account_id'])
if ($GLOBALS['egw']->acl->check('account_access',32,'admin') || $GLOBALS['egw_info']['user']['account_id'] == $_GET['account_id'] ||
$_POST['cancel'])
{
$GLOBALS['egw']->redirect($GLOBALS['egw']->link('/index.php','menuaction=admin.uiaccounts.list_users'));
}

View File

@ -68,8 +68,16 @@ class socal
/**
* internal copy of the global db-object
*
* @var egw_db
*/
var $db;
/**
* instance of the async object
*
* @var asyncservice
*/
var $async;
/**
* Constructor of the socal class
@ -1087,6 +1095,23 @@ ORDER BY cal_user_type, cal_usre_id
else
{
$this->db->update($this->cal_table,array('cal_owner' => $new_user),array('cal_owner' => $old_user),__LINE__,__FILE__);
// delete participation of old user, if new user is already a participant
$this->db->select($this->user_table,'cal_id',array( // MySQL does NOT allow to run this as delete!
'cal_user_type' => 'u',
'cal_user_id' => $old_user,
"cal_id IN (SELECT cal_id FROM $this->user_table other WHERE other.cal_id=cal_id AND other.cal_user_id=".(int)$new_user." AND cal_user_type='u')",
),__LINE__,__FILE__);
$ids = array();
while(($row = $this->db->row(true)))
{
$ids[] = $row['cal_id'];
}
if ($ids) $this->db->delete($this->user_table,array(
'cal_user_type' => 'u',
'cal_user_id' => $old_user,
'cal_id' => $ids,
),__LINE__,__FILE__);
// now change participant in the rest to contain new user instead of old user
$this->db->update($this->user_table,array('cal_user_id' => $new_user),array('cal_user_type' => 'u','cal_user_id' => $old_user),__LINE__,__FILE__);
}
}

View File

@ -681,7 +681,7 @@ function load_cal(url,id) {
</script>
".
$this->accountsel->selection('owner','uical_select_owner',$accounts,'calendar+',count($accounts) > 1 ? 4 : 1,False,
' style="width: '.(count($accounts) > 1 && $this->common_prefs['account_selection']=='selectbox' ? 185 : 165).'px;"'.
' style="width: '.(count($accounts) > 1 && in_array($this->common_prefs['account_selection'],array('selectbox','groupmembers')) ? '100%' : '165px').';"'.
' title="'.lang('select a %1',lang('user')).'" onchange="load_cal(\''.
$GLOBALS['egw']->link('/index.php',array(
'menuaction' => $this->view_menuaction,

View File

@ -232,11 +232,11 @@ class uiforms extends uical
{
$msg = lang('You need to select an account, contact or resource first!');
}
// fall-through
break;
case 'delete': // handled in default
case 'quantity': // handled in new_resource
case 'cal_resources':
$uid = false;
break;
case 'resource':
@ -248,17 +248,19 @@ class uiforms extends uical
{
$status = isset($this->bo->resources[$type]['new_status']) ? ExecMethod($this->bo->resources[$type]['new_status'],$id) : 'U';
$quantity = $content['participants']['quantity'] ? $content['participants']['quantity'] : 1;
if ($uid) $event['participants'][$uid] = $event['participant_types'][$type][$id] =
$status.((int) $quantity > 1 ? (int)$quantity : '');
break;
}
// fall-through for accounts entered as contact
case 'account':
$id = $uid = $data;
$type = 'u';
$quantity = 1;
$status = $uid == $this->bo->user ? 'A' : 'U';
foreach(is_array($data) ? $data : explode(',',$data) as $uid)
{
if ($uid) $event['participants'][$uid] = $event['participant_types']['u'][$uid] =
$uid == $this->bo->user ? 'A' : 'U';
}
break;
default: // existing participant row
foreach(array('uid','status','status_recurrence','quantity') as $name)
{
@ -282,7 +284,7 @@ class uiforms extends uical
}
if ($data['old_status'] != $status)
{
if ($this->bo->set_status($event['id'],$uid,$status,$event['recur_type'] != MCAL_RECUR_NONE && $status_recurrence != 'A' ? $content['participants']['status_date'] : 0))
if ($this->bo->set_status($event['id'],$uid,$status,$event['recur_type'] != MCAL_RECUR_NONE && !$status_recurrence ? $content['participants']['status_date'] : 0))
{
// refreshing the calendar-view with the changed participant-status
$msg = lang('Status changed');
@ -295,13 +297,14 @@ class uiforms extends uical
}
}
}
if ($uid && $status != 'G')
{
$event['participants'][$uid] = $event['participant_types'][$type][$id] =
$status.((int) $quantity > 1 ? (int)$quantity : '');
}
}
break;
}
if (!$uid || !$status || $status == 'G') continue; // empty, deleted, group-invitation --> ignore
$event['participants'][$uid] = $event['participant_types'][$type][$id] =
$status.((int) $quantity > 1 ? (int)$quantity : '');
}
}
$preserv = array(
@ -467,7 +470,7 @@ class uiforms extends uical
$offset = DAY_s * $content['new_alarm']['days'] + HOUR_s * $content['new_alarm']['hours'] + 60 * $content['new_alarm']['mins'];
$alarm = array(
'offset' => $offset,
'time' => $content['start'] - $offset,
'time' => ($content['actual_date'] ? $content['actual_date'] : $content['start']) - $offset,
'all' => !$content['new_alarm']['owner'],
'owner' => $content['new_alarm']['owner'] ? $content['new_alarm']['owner'] : $this->user,
);
@ -598,7 +601,7 @@ class uiforms extends uical
'action' => array(
'copy' => array('label' => 'Copy', 'title' => 'Copy this event'),
'ical' => array('label' => 'Export', 'title' => 'Download this event as iCal'),
'mail' => array('label' => 'Mail participants', 'title' => 'compose a mail to all participants after the event is saved'),
'mail' => array('label' => 'Mail all participants', 'title' => 'compose a mail to all participants after the event is saved'),
),
'status_recurrence' => array('' => 'for this event', 'A' => 'for all future events'),
);
@ -801,13 +804,17 @@ class uiforms extends uical
}
$readonlys['button[delete]'] = !$event['id'] || !$this->bo->check_perms(EGW_ACL_DELETE,$event);
if ($event['id'] || $this->bo->check_perms(EGW_ACL_EDIT,$event)) // new event or edit rights to the event ==> allow to add alarm for all users
if (!$event['id'] || $this->bo->check_perms(EGW_ACL_EDIT,$event)) // new event or edit rights to the event ==> allow to add alarm for all users
{
$sel_options['owner'][0] = lang('All participants');
}
if (isset($event['participant_types']['u'][$this->user]))
{
$sel_options['owner'][$this->user] = $this->bo->participant_name($this->user);
}
foreach((array) $event['participant_types']['u'] as $uid => $status)
{
if ($status != 'R' && $this->bo->check_perms(EGW_ACL_EDIT,0,$uid))
if ($uid != $this->user && $status != 'R' && $this->bo->check_perms(EGW_ACL_EDIT,0,$uid))
{
$sel_options['owner'][$uid] = $this->bo->participant_name($uid);
}

View File

@ -2,7 +2,7 @@
/**
* eGroupWare - eTemplates for Application calendar
* http://www.egroupware.org
* generated by soetemplate::dump4setup() 2007-03-09 12:43
* generated by soetemplate::dump4setup() 2007-05-07 20:30
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package calendar
@ -24,9 +24,9 @@ $templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','g
$templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','group' => '0','version' => '1.3.002','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:6:{s:2:"h1";s:6:",!@msg";s:2:"c2";s:2:"th";s:1:"A";s:3:"100";s:2:"h4";s:8:",!@owner";s:1:"B";s:3:"300";s:2:"h2";s:2:"28";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:2;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Title";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:5:"title";s:4:"span";s:3:"all";s:6:"needed";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:63:"General|Description|Participants|Recurrence|Custom|Links|Alarms";s:4:"name";s:63:"general|description|participants|recurrence|custom|links|alarms";s:4:"help";s:158:"Location, Start- and Endtimes, ...|Full description|Participants, Resources, ...|Repeating Event Information|Custom fields|Links, Attachments|Alarm management";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:5:"owner";s:8:"readonly";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:9:"date-time";s:5:"label";s:7:"Updated";s:4:"name";s:8:"modified";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:14:"select-account";s:5:"label";s:2:"by";s:4:"name";s:8:"modifier";s:8:"readonly";s:1:"1";}}}i:5;a:3:{s:1:"A";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:22:"saves the changes made";}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"apply the changes";}i:3;a:4:{s:4:"type";s:6:"button";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:4:"help";s:16:"Close the window";}i:4;a:5:{s:4:"type";s:6:"select";s:4:"name";s:6:"action";s:4:"help";s:39:"Execute a further action for this entry";s:4:"size";s:10:"Actions...";s:8:"onchange";s:34:"this.form.submit(); this.value=\'\';";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";s:5:"align";s:5:"right";}}}s:4:"rows";i:5;s:4:"cols";i:3;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '.end_hide { visibility: visible; white-space: nowrap; margin-left: 10px; }','modified' => '1166691126',);
$templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','group' => '0','version' => '1.3.003','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:6:{s:2:"h1";s:6:",!@msg";s:2:"c2";s:2:"th";s:1:"A";s:3:"100";s:2:"h4";s:8:",!@owner";s:1:"B";s:3:"300";s:2:"h2";s:2:"28";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:2;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Title";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:5:"title";s:4:"span";s:3:"all";s:6:"needed";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:63:"General|Description|Participants|Recurrence|Custom|Links|Alarms";s:4:"name";s:63:"general|description|participants|recurrence|custom|links|alarms";s:4:"help";s:158:"Location, Start- and Endtimes, ...|Full description|Participants, Resources, ...|Repeating Event Information|Custom fields|Links, Attachments|Alarm management";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:5:"owner";s:8:"readonly";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:9:"date-time";s:5:"label";s:7:"Updated";s:4:"name";s:8:"modified";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:14:"select-account";s:5:"label";s:2:"by";s:4:"name";s:8:"modifier";s:8:"readonly";s:1:"1";}}}i:5;a:3:{s:1:"A";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:22:"saves the changes made";}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"apply the changes";}i:3;a:4:{s:4:"type";s:6:"button";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:4:"help";s:16:"Close the window";}i:4;a:5:{s:4:"type";s:6:"select";s:4:"name";s:6:"action";s:4:"help";s:39:"Execute a further action for this entry";s:4:"size";s:10:"Actions...";s:8:"onchange";s:34:"this.form.submit(); this.value=\'\';";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";s:5:"align";s:5:"right";}}}s:4:"rows";i:5;s:4:"cols";i:3;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '.end_hide { visibility: visible; white-space: nowrap; margin-left: 10px; }','modified' => '1168898663',);
$templ_data[] = array('name' => 'calendar.edit','template' => '','lang' => '','group' => '0','version' => '1.3.003','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:6:{i:0;a:6:{s:2:"h1";s:6:",!@msg";s:2:"c2";s:2:"th";s:1:"A";s:3:"100";s:2:"h4";s:8:",!@owner";s:1:"B";s:3:"300";s:2:"h2";s:2:"28";}i:1;a:3:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";s:5:"align";s:6:"center";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:2;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Title";}s:1:"B";a:5:{s:4:"type";s:4:"text";s:4:"size";s:6:"80,255";s:4:"name";s:5:"title";s:4:"span";s:3:"all";s:6:"needed";s:1:"1";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:3;a:3:{s:1:"A";a:5:{s:4:"type";s:3:"tab";s:4:"span";s:3:"all";s:5:"label";s:63:"General|Description|Participants|Recurrence|Custom|Links|Alarms";s:4:"name";s:63:"general|description|participants|recurrence|custom|links|alarms";s:4:"help";s:158:"Location, Start- and Endtimes, ...|Full description|Participants, Resources, ...|Repeating Event Information|Custom fields|Links, Attachments|Alarm management";}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:1:{s:4:"type";s:5:"label";}}i:4;a:3:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:5:"owner";s:8:"readonly";s:1:"1";}s:1:"C";a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:9:"date-time";s:5:"label";s:7:"Updated";s:4:"name";s:8:"modified";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:14:"select-account";s:5:"label";s:2:"by";s:4:"name";s:8:"modifier";s:8:"readonly";s:1:"1";}}}i:5;a:3:{s:1:"A";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"4";s:4:"span";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:5:"label";s:4:"Save";s:4:"name";s:12:"button[save]";s:4:"help";s:22:"saves the changes made";}i:2;a:4:{s:4:"type";s:6:"button";s:4:"name";s:13:"button[apply]";s:5:"label";s:5:"Apply";s:4:"help";s:17:"apply the changes";}i:3;a:5:{s:4:"type";s:6:"button";s:4:"name";s:14:"button[cancel]";s:5:"label";s:6:"Cancel";s:4:"help";s:16:"Close the window";s:7:"onclick";s:15:"window.close();";}i:4;a:5:{s:4:"type";s:6:"select";s:4:"name";s:6:"action";s:4:"help";s:39:"Execute a further action for this entry";s:4:"size";s:10:"Actions...";s:8:"onchange";s:34:"this.form.submit(); this.value=\'\';";}}s:1:"B";a:1:{s:4:"type";s:5:"label";}s:1:"C";a:6:{s:4:"type";s:6:"button";s:5:"label";s:6:"Delete";s:4:"name";s:14:"button[delete]";s:4:"help";s:17:"Delete this event";s:7:"onclick";s:36:"return confirm(\'Delete this event\');";s:5:"align";s:5:"right";}}}s:4:"rows";i:5;s:4:"cols";i:3;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '.end_hide { visibility: visible; white-space: nowrap; margin-left: 10px; }','modified' => '1168898663',);
$templ_data[] = array('name' => 'calendar.edit.alarms','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:5:{s:2:"c1";s:3:"row";s:1:"A";s:2:"95";s:2:"h1";s:16:"20,@no_add_alarm";s:2:"c2";s:4:",top";s:2:"h2";s:8:",!@alarm";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"before the event";}s:1:"B";a:10:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"8";i:1;a:3:{s:4:"type";s:13:"select-number";s:4:"size";s:4:",0,7";s:4:"name";s:15:"new_alarm[days]";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"size";s:18:",,,new_alarm[days]";s:5:"label";s:4:"days";}i:3;a:3:{s:4:"type";s:13:"select-number";s:4:"name";s:16:"new_alarm[hours]";s:4:"size";s:5:",0,23";}i:4;a:3:{s:4:"type";s:5:"label";s:4:"size";s:19:",,,new_alarm[hours]";s:5:"label";s:5:"hours";}i:5;a:3:{s:4:"type";s:13:"select-number";s:4:"name";s:15:"new_alarm[mins]";s:4:"size";s:7:",0,55,5";}i:6;a:3:{s:4:"type";s:5:"label";s:4:"size";s:18:",,,new_alarm[mins]";s:5:"label";s:7:"Minutes";}i:7;a:5:{s:4:"type";s:6:"select";s:4:"name";s:16:"new_alarm[owner]";s:7:"no_lang";s:1:"1";s:5:"label";s:3:"for";s:4:"help";s:31:"Select who should get the alarm";}i:8;a:3:{s:4:"type";s:6:"button";s:4:"name";s:17:"button[add_alarm]";s:5:"label";s:9:"Add alarm";}}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Alarms";}s:1:"B";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";}i:1;a:5:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Time";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"before the event";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"All participants";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";}}i:2;a:5:{s:1:"A";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:12:"${row}[time]";s:8:"readonly";s:1:"1";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:4:"name";s:14:"${row}[offset]";s:7:"no_lang";s:1:"1";}s:1:"C";a:4:{s:4:"type";s:8:"checkbox";s:5:"align";s:6:"center";s:4:"name";s:11:"${row}[all]";s:8:"readonly";s:1:"1";}s:1:"D";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:13:"${row}[owner]";s:8:"readonly";s:1:"1";}s:1:"E";a:7:{s:4:"type";s:6:"button";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:5:"align";s:6:"center";s:4:"name";s:27:"delete_alarm[$row_cont[id]]";s:4:"help";s:17:"Delete this alarm";s:7:"onclick";s:36:"return confirm(\'Delete this alarm\');";}}}s:4:"rows";i:2;s:4:"cols";i:5;s:4:"name";s:5:"alarm";s:7:"options";a:0:{}}}}s:4:"rows";i:2;s:4:"cols";i:2;s:4:"size";s:17:"100%,200,,,,,auto";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1118780740',);
$templ_data[] = array('name' => 'calendar.edit.alarms','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:5:{s:2:"c1";s:3:"row";s:1:"A";s:2:"95";s:2:"h1";s:16:"20,@no_add_alarm";s:2:"c2";s:4:",top";s:2:"h2";s:8:",!@alarm";}i:1;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"before the event";}s:1:"B";a:10:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"8";i:1;a:4:{s:4:"type";s:13:"select-number";s:4:"size";s:4:",0,7";s:4:"name";s:15:"new_alarm[days]";s:4:"help";s:4:"days";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"size";s:18:",,,new_alarm[days]";s:5:"label";s:4:"days";}i:3;a:4:{s:4:"type";s:13:"select-number";s:4:"name";s:16:"new_alarm[hours]";s:4:"size";s:5:",0,23";s:4:"help";s:5:"hours";}i:4;a:3:{s:4:"type";s:5:"label";s:4:"size";s:19:",,,new_alarm[hours]";s:5:"label";s:5:"hours";}i:5;a:4:{s:4:"type";s:13:"select-number";s:4:"name";s:15:"new_alarm[mins]";s:4:"size";s:7:",0,55,5";s:4:"help";s:7:"Minutes";}i:6;a:3:{s:4:"type";s:5:"label";s:4:"size";s:18:",,,new_alarm[mins]";s:5:"label";s:7:"Minutes";}i:7;a:5:{s:4:"type";s:6:"select";s:4:"name";s:16:"new_alarm[owner]";s:7:"no_lang";s:1:"1";s:5:"label";s:3:"for";s:4:"help";s:31:"Select who should get the alarm";}i:8;a:3:{s:4:"type";s:6:"button";s:4:"name";s:17:"button[add_alarm]";s:5:"label";s:9:"Add alarm";}}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Alarms";}s:1:"B";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:2:{s:2:"c1";s:2:"th";s:2:"c2";s:3:"row";}i:1;a:5:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Time";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"before the event";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:16:"All participants";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:5:"Owner";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Action";}}i:2;a:5:{s:1:"A";a:3:{s:4:"type";s:9:"date-time";s:4:"name";s:12:"${row}[time]";s:8:"readonly";s:1:"1";}s:1:"B";a:3:{s:4:"type";s:5:"label";s:4:"name";s:14:"${row}[offset]";s:7:"no_lang";s:1:"1";}s:1:"C";a:4:{s:4:"type";s:8:"checkbox";s:5:"align";s:6:"center";s:4:"name";s:11:"${row}[all]";s:8:"readonly";s:1:"1";}s:1:"D";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:13:"${row}[owner]";s:8:"readonly";s:1:"1";}s:1:"E";a:7:{s:4:"type";s:6:"button";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:5:"align";s:6:"center";s:4:"name";s:27:"delete_alarm[$row_cont[id]]";s:4:"help";s:17:"Delete this alarm";s:7:"onclick";s:36:"return confirm(\'Delete this alarm\');";}}}s:4:"rows";i:2;s:4:"cols";i:5;s:4:"name";s:5:"alarm";s:7:"options";a:0:{}}}}s:4:"rows";i:2;s:4:"cols";i:2;s:4:"size";s:17:"100%,200,,,,,auto";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1118780740',);
$templ_data[] = array('name' => 'calendar.edit.custom','template' => '','lang' => '','group' => '0','version' => '1.0.1.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:2:"c1";s:4:",top";}i:1;a:1:{s:1:"A";a:2:{s:4:"type";s:12:"customfields";s:4:"name";s:12:"customfields";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:17:"100%,200,,,,,auto";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1118737582',);
@ -46,7 +46,9 @@ $templ_data[] = array('name' => 'calendar.edit.participants','template' => '','l
$templ_data[] = array('name' => 'calendar.edit.participants','template' => '','lang' => '','group' => '0','version' => '1.0.1.003','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:5:{s:2:"c1";s:7:"row,top";s:1:"A";s:2:"95";s:2:"h1";s:6:",@view";s:2:"h2";s:7:",!@view";s:2:"c2";s:4:",top";}i:1;a:4:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"size";s:15:",,,participants";s:5:"label";s:12:"Participants";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"size";s:12:"14,calendar+";s:4:"name";s:22:"participants[accounts]";}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Resources";s:5:"align";s:5:"right";}s:1:"D";a:3:{s:4:"type";s:16:"resources_select";s:4:"size";s:2:"14";s:4:"name";s:23:"participants[resources]";}}i:2;a:4:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Participants";}s:1:"B";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:26:"accounts_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:22:"participants[accounts]";s:7:"options";a:0:{}}s:1:"C";a:3:{s:4:"type";s:5:"label";s:5:"label";s:9:"Resources";s:5:"align";s:5:"right";}s:1:"D";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:19:",!@resources_status";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:16:"resources_select";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:27:"resources_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:23:"participants[resources]";s:7:"options";a:0:{}}}}s:4:"rows";i:2;s:4:"cols";i:4;s:4:"size";s:23:"100%,200,,row_on,,,auto";s:7:"options";a:4:{i:3;s:6:"row_on";i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,row_on,,,auto','style' => '','modified' => '1129665796',);
$templ_data[] = array('name' => 'calendar.edit.participants','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:7:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:6:{s:1:"A";s:2:"95";s:2:"c3";s:4:",top";s:2:"c1";s:3:"row";s:2:"c2";s:2:"th";s:2:"h1";s:8:",@no_add";s:1:"D";s:24:",@hide_status_recurrence";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"New";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:14:"select-account";s:4:"size";s:18:"User or group,both";s:4:"name";s:7:"account";}i:2;a:3:{s:4:"type";s:10:"link-entry";s:4:"name";s:8:"resource";s:4:"size";s:14:"@cal_resources";}}s:1:"C";a:3:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:8:"quantity";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:2;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Participants";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Quantity";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:17:"status recurrence";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Status";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}}i:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:11:"${row}[app]";}s:1:"B";a:6:{s:4:"type";s:5:"label";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:26:"accounts_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:13:"${row}[title]";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:3:"int";s:4:"name";s:16:"${row}[quantity]";s:4:"size";s:4:"1,,3";}s:1:"D";a:2:{s:4:"type";s:6:"select";s:4:"name";s:25:"${row}[status_recurrence]";}s:1:"E";a:4:{s:4:"type";s:6:"select";s:4:"name";s:14:"${row}[status]";s:7:"no_lang";s:1:"1";s:8:"onchange";i:1;}s:1:"F";a:9:{s:4:"type";s:6:"button";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:19:",!@resources_status";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:16:"resources_select";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:27:"resources_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:22:"delete[$row_cont[uid]]";s:5:"align";s:6:"center";s:5:"label";s:6:"Delete";s:8:"onchange";i:1;s:4:"size";s:6:"delete";}}}s:4:"rows";i:3;s:4:"cols";i:6;s:4:"size";s:17:"100%,200,,,,,auto";s:4:"name";s:12:"participants";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1172430059',);
$templ_data[] = array('name' => 'calendar.edit.participants','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:7:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:6:{s:1:"A";s:2:"95";s:2:"c3";s:4:",top";s:2:"c1";s:3:"row";s:2:"c2";s:2:"th";s:2:"h1";s:8:",@no_add";s:1:"D";s:24:",@hide_status_recurrence";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"New";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"1,,0,0";i:1;a:3:{s:4:"type";s:4:"hbox";s:4:"size";s:18:"User or group,both";s:4:"name";s:7:"account";}}i:2;a:3:{s:4:"type";s:10:"link-entry";s:4:"name";s:8:"resource";s:4:"size";s:14:"@cal_resources";}}s:1:"C";a:3:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:8:"quantity";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:2;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:3:{s:4:"type";s:14:"select-account";s:4:"size";s:18:"User or group,both";s:4:"name";s:7:"account";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Quantity";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:17:"status recurrence";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Status";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}}i:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:11:"${row}[app]";}s:1:"B";a:6:{s:4:"type";s:5:"label";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:26:"accounts_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:13:"${row}[title]";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:3:"int";s:4:"name";s:16:"${row}[quantity]";s:4:"size";s:4:"1,,3";}s:1:"D";a:2:{s:4:"type";s:6:"select";s:4:"name";s:25:"${row}[status_recurrence]";}s:1:"E";a:4:{s:4:"type";s:6:"select";s:4:"name";s:14:"${row}[status]";s:7:"no_lang";s:1:"1";s:8:"onchange";i:1;}s:1:"F";a:9:{s:4:"type";s:6:"button";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:19:",!@resources_status";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:16:"resources_select";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:27:"resources_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:22:"delete[$row_cont[uid]]";s:5:"align";s:6:"center";s:5:"label";s:6:"Delete";s:8:"onchange";i:1;s:4:"size";s:6:"delete";}}}s:4:"rows";i:3;s:4:"cols";i:6;s:4:"size";s:17:"100%,200,,,,,auto";s:4:"name";s:12:"participants";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1172430059',);
$templ_data[] = array('name' => 'calendar.edit.participants','template' => '','lang' => '','group' => '0','version' => '1.3.002','data' => 'a:1:{i:0;a:7:{s:4:"type";s:4:"grid";s:4:"data";a:4:{i:0;a:6:{s:1:"A";s:2:"95";s:2:"c3";s:4:",top";s:2:"c1";s:3:"row";s:2:"c2";s:2:"th";s:2:"h1";s:8:",@no_add";s:1:"D";s:24:",@hide_status_recurrence";}i:1;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:3:"New";}s:1:"B";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:4:{s:4:"type";s:14:"select-account";s:4:"size";s:22:"User or group,both,,10";s:4:"name";s:7:"account";s:4:"help";s:13:"User or group";}i:2;a:3:{s:4:"type";s:10:"link-entry";s:4:"name";s:8:"resource";s:4:"size";s:14:"@cal_resources";}}s:1:"C";a:3:{s:4:"type";s:3:"int";s:4:"size";s:4:"1,,3";s:4:"name";s:8:"quantity";}s:1:"D";a:1:{s:4:"type";s:5:"label";}s:1:"E";a:3:{s:4:"type";s:6:"button";s:5:"label";s:3:"Add";s:4:"name";s:3:"add";}s:1:"F";a:1:{s:4:"type";s:5:"label";}}i:2;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:5:"label";s:4:"Type";}s:1:"B";a:2:{s:4:"type";s:5:"label";s:5:"label";s:12:"Participants";}s:1:"C";a:2:{s:4:"type";s:5:"label";s:5:"label";s:8:"Quantity";}s:1:"D";a:2:{s:4:"type";s:5:"label";s:5:"label";s:10:"All future";}s:1:"E";a:2:{s:4:"type";s:5:"label";s:5:"label";s:6:"Status";}s:1:"F";a:2:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";}}i:3;a:6:{s:1:"A";a:2:{s:4:"type";s:5:"label";s:4:"name";s:11:"${row}[app]";}s:1:"B";a:6:{s:4:"type";s:5:"label";s:4:"data";a:2:{i:0;a:0:{}i:1;a:2:{s:1:"A";a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:26:"accounts_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:13:"${row}[title]";s:7:"no_lang";s:1:"1";}s:1:"C";a:3:{s:4:"type";s:3:"int";s:4:"name";s:16:"${row}[quantity]";s:4:"size";s:4:"1,,3";}s:1:"D";a:3:{s:4:"type";s:8:"checkbox";s:4:"name";s:25:"${row}[status_recurrence]";s:5:"align";s:6:"center";}s:1:"E";a:4:{s:4:"type";s:6:"select";s:4:"name";s:14:"${row}[status]";s:7:"no_lang";s:1:"1";s:8:"onchange";i:1;}s:1:"F";a:9:{s:4:"type";s:6:"button";s:4:"data";a:2:{i:0;a:1:{s:2:"h1";s:19:",!@resources_status";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:16:"resources_select";s:4:"name";s:6:"${row}";s:8:"readonly";s:1:"1";s:7:"no_lang";s:1:"1";}s:1:"B";a:5:{s:4:"type";s:6:"select";s:4:"name";s:27:"resources_status[$row_cont]";s:8:"onchange";s:1:"1";s:4:"help";s:30:"Accept or reject an invitation";s:7:"no_lang";s:1:"1";}}}s:4:"rows";i:1;s:4:"cols";i:2;s:4:"name";s:22:"delete[$row_cont[uid]]";s:5:"align";s:6:"center";s:5:"label";s:6:"Delete";s:8:"onchange";i:1;s:4:"size";s:6:"delete";}}}s:4:"rows";i:3;s:4:"cols";i:6;s:4:"size";s:17:"100%,200,,,,,auto";s:4:"name";s:12:"participants";s:7:"options";a:3:{i:0;s:4:"100%";i:1;s:3:"200";i:6;s:4:"auto";}}}','size' => '100%,200,,,,,auto','style' => '','modified' => '1172430059',);
$templ_data[] = array('name' => 'calendar.edit.recurrence','template' => '','lang' => '','group' => '0','version' => '','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:2:{s:2:"c1";s:3:"row";s:1:"A";s:2:"95";}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:8:"100%,200";s:7:"options";a:2:{i:0;s:4:"100%";i:1;s:3:"200";}}}','size' => '100%,200','style' => '','modified' => '1118737412',);

View File

@ -22,6 +22,7 @@ alarms calendar de Alarme
all categories calendar de Alle Kategorien
all day calendar de ganztägig
all events calendar de Alle Termine
all future calendar de Alle zukünftigen
all participants calendar de Alle Teilnehmer
allows to edit the event again calendar de Erlaubt den Termin erneut zu bearbeiten
apply the changes calendar de Übernimmt die Änderungen
@ -116,8 +117,6 @@ filename of the download calendar de Name der herunterzuladenden Datei
find free timeslots where the selected participants are availible for the given timespan calendar de Such freie Zeitslots an denen die ausgewählten Teilnehmer für die gegebene Zeitspanne verfügbar sind
firstname of person to notify calendar de Vorname der zu benachrichtigenden Person
for calendar de für
for all future events calendar de Für alle künftigen Termine
for this event calendar de Für diesen Termin
for which views should calendar show distinct lines with a fixed time interval. calendar de Für welche Ansichten soll der Kalender einzelne Zeilen mit festen Zeitintervallen anzeigen.
format of event updates calendar de Format der Benachrichtigungen
forward half a month calendar de einen halben Monat weiter
@ -266,7 +265,6 @@ startdate and -time of the search calendar de Startdatum und -zeit der Suche
startdate of the export calendar de Startdatum des Exports
startrecord calendar de Startdatensatz
status changed calendar de Status geändert
status recurrence calendar de Statuswiederholung
submit to repository calendar de Übertragen zu eGroupWare.org
sun calendar de So
tentative calendar de Vorläufige Zusage

View File

@ -22,6 +22,7 @@ alarms calendar en Alarms
all categories calendar en All categories
all day calendar en all day
all events calendar en All events
all future calendar en All future
all participants calendar en All participants
allows to edit the event again calendar en Allows to edit the event again
apply the changes calendar en apply the changes
@ -116,8 +117,6 @@ filename of the download calendar en Filename of the download
find free timeslots where the selected participants are availible for the given timespan calendar en Find free timeslots where the selected participants are availible for the given timespan
firstname of person to notify calendar en Firstname of person to notify
for calendar en for
for all future events calendar en For all future events
for this event calendar en For this event
for which views should calendar show distinct lines with a fixed time interval. calendar en For which views should calendar show distinct lines with a fixed time interval.
format of event updates calendar en Format of event updates
forward half a month calendar en forward half a month
@ -266,7 +265,6 @@ startdate and -time of the search calendar en Startdate and -time of the search
startdate of the export calendar en Startdate of the export
startrecord calendar en Startrecord
status changed calendar en Status changed
status recurrence calendar en Status recurrence
submit to repository calendar en Submit to Repository
sun calendar en Sun
tentative calendar en Tentative

View File

@ -1,262 +1,324 @@
%1 %2 in %3 calendar pl %1 %2 w %3
%1 matches found calendar pl Znaleziono %1 zgodnych
%1 records imported calendar pl Zaimportowano %1 rekordów
%1 records read (not yet imported, you may go back and uncheck test import) calendar pl Wczytano %1 rekordów (jeszcze nie zaimportowano; mo¿esz siê cofn±c i odznaczyæ Import Testowy)
(for weekly) calendar pl (dla tygodniowego)
(i/v)cal calendar pl (i/v)Kal
1 match found calendar pl Znaleziono 1 zgodny
a calendar pl a
accept calendar pl Akceptuj
<b>please note</b>: the calendar use the holidays of your country, which is set to %1. you can change it in your %2.<br />holidays are %3 automatic installed from %4. you can changed it in %5. calendar pl <b>Zauwa¿</b>: Kalendarz u¿ywa listy dni ¶wi±tecznych dla Twojego kraju, tj. dla %1. Mo¿esz zmieniæ to zachowanie w Twoim %2.<br />Dni ¶wi±teczne s± %3 automatycznie instalowane z %4. Mo¿esz zmieniæ to w %5.
a non blocking event will not conflict with other events calendar pl Termin nie blokuj±cy nie bêdzie w konflikcie z innymi terminami kalendarza
accept or reject an invitation calendar pl Zaakeptuj lub odrzuæ zaproszenie
accepted calendar pl Zaakceptowano
access denied to the calendar of %1 !!! calendar pl Brak dostêpu do kalendarza u¿ytkownika %1
action that caused the notify: added, canceled, accepted, rejected, ... calendar pl Akcja która spowodowa³a powiadomienie: Dodano, Anulowano, Zakceptowano, Odrzucono...
add a single entry by passing the fields. calendar pl Dodaj pojedyñczy wpis przez przechodzenie po polach
actions calendar pl Operacje
actions... calendar pl Operacje...
add alarm calendar pl Dodaj alarm
add contact calendar pl Dodaj kontakt
add or update a single entry by passing the fields. calendar pl Dodaj lub popraw pojedyñczy wpis przez przechodzenie po polach
added calendar pl Dodano
address book calendar pl Adresy, Kontakty
after %1 calendar pl Po %1
after current date calendar pl Po bie¿±cej dacie
alarm calendar pl Alarm
alarm added calendar pl Alarm zosta³ dodany
alarm deleted calendar pl Alarm zosta³ usuniêty
alarm for %1 at %2 in %3 calendar pl Alarm dla %1 o %2 w %3
alarm management calendar pl Zarz±dzanie alarmami
alarm-management calendar pl Zarzadzaniealarmami
alarms calendar pl Alarmy
all categories calendar pl Wszystkie kategorie
all day calendar pl Wszystkie dni
all events calendar pl Wszystkie terminy
all participants calendar pl Wszyscy uczestnicy
allows to edit the event again calendar pl Pozwala edytowaæ termin ponownie
apply the changes calendar pl zastosuj zmiany
are you sure you want to delete this country ? calendar pl Na pewno chcesz usun±æ \nten kraj?
are you sure you want to delete this holiday ? calendar pl Na pewno chcesz usun±æ ¶wiêto?
are you sure\nyou want to\ndelete these alarms? calendar pl Na pewno chcesz usun±æ \nte alarmy?
are you sure\nyou want to\ndelete this entry ? calendar pl Na pewno\nchcesz\nusun±æ ten wpis?
are you sure\nyou want to\ndelete this entry ?\n\nthis will delete\nthis entry for all users. calendar pl Na pewno\nchcesz\nusun±æ ten wpis?\n\nWpis zostanie usuniêty\ndla wszystkich u¿ytkowników.
are you sure\nyou want to\ndelete this single occurence ?\n\nthis will delete\nthis entry for all users. calendar pl Na pewno\nchcesz\nusun±æ ten pojedyñczy wpis?\n\nWpis zostanie usuniêty\ndla wszystkich u¿ytkowników.
back half a month calendar pl wstecz o pó³ miesi±ca
back one month calendar pl wstecz o jeden miesi±c
before %1 calendar pl Przed %1
before current date calendar pl Przed bie¿±c± dat±
before the event calendar pl przed zdarzeniem
brief description calendar pl Krótki opis
business calendar pl Biznes
calendar common pl Kalendarz
calendar - [iv]cal importer calendar pl Import kalendarza
calendar - add calendar pl Dodaj do kalendarza
calendar - edit calendar pl Edycja kalendarza
birthday calendar pl Data urodzin
busy calendar pl zajêty
by calendar pl przez
calendar event calendar pl Zdarzenia kalendarza
calendar holiday management admin pl Zarz±dzanie ¶wiêtami
calendar menu calendar pl Menu kalendarza
calendar preferences calendar pl Preferencje kalendarza
calendar settings admin pl Ustawienia kalendarza
calendar-fieldname calendar pl Kalendarz-Nazwapola
can't add alarms in the past !!! calendar pl Nie mo¿esz dodaæ alarmów w przesz³o¶ci.
canceled calendar pl Anulowany
change all events for $params['old_owner'] to $params['new_owner']. calendar pl Zmieñ wszystkie wydarzenia z $params['old_owner'] na $params['new_owner'].
change status calendar pl Zmieñ status
charset of file calendar pl Kodowanie pliku
click %1here%2 to return to the calendar. calendar pl Kliknij %1tutaj%2 aby wróciæ do Kalendarza
configuration calendar pl Konfiguracja
close the window calendar pl Zamknij okno
compose a mail to all participants after the event is saved calendar pl Po zapisaniu terminu, przejd¼ do tworzenia wiadomo¶ci poczty elektronicznej dla wszystkich uczestników
copy of: calendar pl Kopia z:
copy this event calendar pl Skopiuj ten termin
countries calendar pl Kraje
country calendar pl Kraj
created by calendar pl Utworzony przez
create an exception for the given date calendar pl Utwórz wyj±tek dla podanej daty
create new links calendar pl Stwórz nowe odno¶niki
csv calendar pl CSV
csv-fieldname calendar pl Nazwa pola CSV
csv-filename calendar pl Nazwa pliku CSV
custom fields calendar pl Pola w³asne
custom fields and sorting common pl Pola w³asne i sortowanie
custom fields common pl Pola w³asne
daily calendar pl Codziennie
daily matrix view calendar pl Harmonogram dnia
days calendar pl dni
days of the week for a weekly repeated event calendar pl Dni tygodnia dla tygodniowo powtarzanych terminów
days repeated calendar pl Dni powtórzeñ
dayview calendar pl Widok Dzienny
default appointment length (in minutes) calendar pl domy¶lna d³ugo¶æ spotkania (w minutach)
default calendar filter calendar pl Domy¶lny filtr kalendarza
default calendar view calendar pl Domy¶lny uk³ad kalendarza
default length of newly created events. the length is in minutes, eg. 60 for 1 hour. calendar pl Domy¶lna d³ugo¶æ nowo dodawanych zdarzeñ. D³ugo¶æ podaj w minutach.
defines the size in minutes of the lines in the day view. calendar pl Definiuje rozmiar w minutach na liniach w widoku dnia
delete a single entry by passing the id. calendar pl Usuñ pojedyñczy wpis przez przechodzenie po ID
delete an entire users calendar. calendar pl Usuñ ca³y kalendarz u¿ytkownika
delete selected contacts calendar pl Skasuj wybrane kontakty
default week view calendar pl domy¶lny widok tygodnia
delete series calendar pl Skasuj seriê
delete single calendar pl Skasuj pojedynczy
deleted calendar pl Usuniêto
description calendar pl Opis
disable calendar pl Wy³±cz
disabled calendar pl wy³±czony
display interval in day view calendar pl Przedzia³ wy¶wietlania w Widoku Dziennym
display mini calendars when printing calendar pl Wy¶wietlaæ mini kaledarz przy wydruku?
delete this alarm calendar pl Usuñ ten alarm
delete this event calendar pl Usuñ ten termin
delete this exception calendar pl Usuñ ten wyj±tek
delete this series of recuring events calendar pl Usuñ seriê terminów powtarzanych
disinvited calendar pl Zaproszenie cofniêto
display status of events calendar pl Wy¶wietl status zdarzeñ
displayed view calendar pl bie¿±cy widok
displays your default calendar view on the startpage (page you get when you enter egroupware or click on the homepage icon)? calendar pl Pokazywaæ Twój kalendarz na stronie g³ównej (stronie, któr± widzisz po zalogowaniu siê do eGW lub po klikniêciu na ikonê strony domowej - homepage)?
do you want a weekview with or without weekend? calendar pl Czy widok tygodniowy powinien zawieraæ weekend?
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 pl Czy chcesz byæ powiadamiany o nowych lub zmienionych spotkaniach? Bêdziesz powiadamiany o zmianach któe sam zrobisz.<br>Mo¿esz ograniczyæ powiadomienia tylko do niektórych zmian. Ka¿da pozycja zawiera wszystkie powiadomienia wymienione powy¿ej. <i>Wszystkie zmiany</i> zawieraj± zmiany nazwy, opisu, uczestników, ale nie same odpowiedzi uczestników. Je¿eli w³a¶ciciel zdarzenia wybierze powiadomienia dowolne, bêdzie otrzymywa³ równie¿ odpowiedzi uczestników, takie jak akceptacje czy odrzucenia.
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 pl Czy chcesz otrzymywaæ mailem regularne podsumowania swoich spotkañ?<br>Podsumowanie jest wysy³ane na Twój adres email codziennie rano, lub w poniedzia³ki dla podsumowañ tygodniowych.<br>Podsumowanie jest wysy³ane tylko je¿eli masz zaplanowane jakie¶ spotkania w danym dniu lub tygodniu.
do you wish to autoload calendar holidays files dynamically? admin pl Czy chcesz automatycznie ³adowaæ do kalendarza listê ¶wi±t?
download calendar pl ¦ci±gnij
duration calendar pl Czas trwania
download this event as ical calendar pl ¦ci±gnij zdarzenia w formacie iCal
duration of the meeting calendar pl Czas trwania spotkania
edit exception calendar pl Edytuj wyj±tek
edit series calendar pl Edytuj seriê
edit single calendar pl Edytuj pojedynczy
email notification calendar pl Powiadomienie email
email notification for %1 calendar pl Powiadomienie email dla %1
edit this event calendar pl Edytuj termin
edit this series of recuring events calendar pl Edytuj seriê terminów powtarzanych
empty for all calendar pl pusty dla wszystkich
enable calendar pl W³±cz
enabled calendar pl w³±czony
end calendar pl Zakoñczenie
end date/time calendar pl Data/godzina zakoñczenia
enddate calendar pl Data zakoñczenia
enddate / -time of the meeting, eg. for more then one day calendar pl Data i czas zakoñczenia spotkania, np. dla terminów trwaj±cych wiêcej ni¿ jeden dzieñ
enddate of the export calendar pl Data koñcowa dla eksportu
ends calendar pl koñczy siê
enter output filename: ( .vcs appended ) calendar pl Wpisz nazwê pliku wyj¶cia: ( .vcs dodane )
error adding the alarm calendar pl B³±d przy dodawaniu alarmu
error: importing the ical calendar pl B³±d przy importowaniu iCal
error: no participants selected !!! calendar pl B³±d: nie wybrano uczestników
error: saving the event !!! calendar pl B³±d przy zapisywaniu terminu
error: starttime has to be before the endtime !!! calendar pl B³±d: czas rozpoczêcia musi byæ wcze¶niejszy ni¿ czas zakoñczenia
event copied - the copy can now be edited calendar pl Termin zosta³ skopiowany - kopia mo¿e byæ teraz edytowana
event deleted calendar pl Termin usuniêty
event details follow calendar pl Detale Wydarzenia Nastêpuj±
event saved calendar pl Termin zosta³ zachowany
event will occupy the whole day calendar pl Termin bêdzie trwaæ ca³y dzieñ
exception calendar pl Wyj±tek
exceptions calendar pl Wyj±tki
execute a further action for this entry calendar pl Wykonaj dalsz± akcjê dla tego wpisu
existing links calendar pl Istniej±ce odno¶niki
export calendar pl Eksport
export a list of entries in ical format. calendar pl Eksport listy wpisów w formacie iCal
extended calendar pl Rozszerzone
extended updates always include the complete event-details. ical's can be imported by certain other calendar-applications. calendar pl Rozszerzone uaktualnienia zawsze zawieraj± kompletne dane o wpisach. iCal-e mog± byæ importowane przez ró¿ne inne programy - kalendarze.
external participants calendar pl Zewnêtrzni uczestnicy
failed sending message to '%1' #%2 subject='%3', sender='%4' !!! calendar pl Wys³anie wiadomo¶ci nieudane do '%1' #%2 subject='%3', sender='%4' !!!
fieldseparator calendar pl Odzielnik pola
filename calendar pl Nazwa pliku
filename of the download calendar pl Nazwa pliku do ¶ci±gniêcia
find free timeslots where the selected participants are availible for the given timespan calendar pl Wyszukaj wolne przedzia³y czasu, dla których wybrani uczestnicy s± dostêpni przez okre¶lony okres
firstname of person to notify calendar pl Imiê osoby do powiadomienia
for calendar pl dla
for all future events calendar pl Dla wszystkich przysz³ych terminów
for this event calendar pl Dla tego terminu
for which views should calendar show distinct lines with a fixed time interval. calendar pl Które widoki kalendarza powinny zawieraæ poziomie linie, reprezentuj±ce siatkê godzin?
format of event updates calendar pl Format uaktualnieñ wydarzeñ
fr calendar pl Pt
free/busy calendar pl Wolny/Zajêty
frequency calendar pl Czêsto¶æ powtarzania
forward half a month calendar pl naprzód o pó³ miesi±ca
forward one month calendar pl naprzód o jeden miesi±c
four days view calendar pl Widok czterodniowy
freebusy: unknow user '%1', wrong password or not availible to not loged in users !!! calendar pl wolny-zajêty: Nieznany u¿ytkownik '%1', nieprawid³owe has³o lub dane nie s± dostêpne dla go¶ci
freetime search calendar pl Wyszukiwanie wolnego czasu
fri calendar pl Pt
full description calendar pl Pe³ny opis
fullname of person to notify calendar pl Imiê i nazwisko osoby do powiadomienia
generate printer-friendly version calendar pl Wersja do wydruku
global categories calendar pl Kategorie globalne
general calendar pl G³ówne
global public and group public calendar pl Publiczne dla grupy i globalnie
global public only calendar pl Tylko globalnie publiczne
go! calendar pl Id¼!
grant calendar access common pl Udostêpnij kalendarz
group invitation calendar pl Zaproszenie grupowe
group planner calendar pl Planowanie grupowe
group public only calendar pl Tylko grupowo publiczne
groupmember(s) %1 not included, because you have no access. calendar pl Nastêpuj±cy cz³onkowie wybranych grup nie zostali uwzglêdnieni ze wzglêdu na brak dostêpu: %1
h calendar pl g
here is your requested alarm. calendar pl Oto alarm, którego za¿±da³e¶/a¶
hide private infos calendar pl Ukryj prywatne informacje
high priority calendar pl wysoki priorytet
holiday calendar pl ¦wiêto
holiday management calendar pl Zarz±dzanie ¶wiêtami
holidays calendar pl ¦wiêta
hours calendar pl godziny
i participate calendar pl Uczestniczê
if checked holidays falling on a weekend, are taken on the monday after. calendar pl Je¿eli zaznaczone ¶wiêta przypadaj± na weekend, zostan± przeniesione na nadchodz±cy ponedzia³ek.
if you dont set a password here, the information is availible to everyone, who knows the url!!! calendar pl Je¿eli nie wprowadzisz tutaj has³a, informacja bêdzie dostêpna dla ka¿dego, kto zna URL!!!
how far to search (from startdate) calendar pl jak daleko szukaæ (pocz±wszy od daty pocz±tkowej)
how many minutes should each interval last? calendar pl Jak d³ugo powinien trwaæ ka¿dy odcinek czasu?
ical calendar pl iCal
ical / rfc2445 calendar pl iCal / rfc2445
ical export calendar pl Eksport do iCal
ical file calendar pl Plik iCal
ical import calendar pl Import z iCal
ical successful imported calendar pl iCal zosta³ poprawnie zaimportowany
if checked holidays falling on a weekend, are taken on the monday after. calendar pl Je¿eli zaznaczone ¶wiêta przypadaj± na weekend, zostan± przeniesione na nadchodz±cy poniedzia³ek.
if you dont set a password here, the information is available to everyone, who knows the url!!! calendar pl Je¿eli nie ustanowisz has³a w tym miejscu, informacja bêdzie dostêpna dla ka¿dego, kto zna adres odno¶nika!
ignore conflict calendar pl Ignoruj konflikt
import calendar pl Import
import csv-file common pl Importuj plik CSV
interval calendar pl Przedzia³
intervals in day view calendar pl Przedzia³y w widoku dziennym
invalid email-address "%1" for user %2 calendar pl Nieprawid³owy adres e-mail "%1" dla u¿ytkownika "%2"
last calendar pl ostatni
link calendar pl Link
lastname of person to notify calendar pl Nazwisko osoby, któr± nale¿y powiadomiæ
length of the time interval calendar pl D³ugo¶æ odcinka czasu
link to view the event calendar pl Link do zdarzenia
list all categories. calendar pl Poka¿ wszystkie kategorie
links calendar pl Odno¶niki
links, attachments calendar pl Odno¶niki, Za³±czniki
listview calendar pl Widok listy
location calendar pl Lokalizacja
matrixview calendar pl Harmonogram dnia
location to autoload from admin pl Lokalizacja do automatycznego za³adowania z
location, start- and endtimes, ... calendar pl Lokalizacja, czas rozpoczêcia i zakoñczenia
mail all participants calendar pl wy¶lij do wszystkich uczestników
make freebusy information available to not loged in persons? calendar pl Czy udostêpniæ informacjê wolny-zajêty dla go¶ci (osób nie zalogowanych)?
minutes calendar pl minuty
mo calendar pl Po
modified calendar pl Zmodyfikowany
mon calendar pl Pon
month calendar pl Miesi±c
monthly calendar pl Miesiêczny
monthly (by date) calendar pl Co miesi±c (wg dat)
monthly (by day) calendar pl Co miesi±c (wg dni)
monthview calendar pl Widok Miesiêczny
new entry calendar pl Nowy wpis
new search with the above parameters calendar pl nowe wyszukiwanie z powy¿szymi parametrami
no events found calendar pl Nie znaleziono pasuj±cych terminów
no filter calendar pl Brak filtra
no matches found calendar pl Nic nie znaleziono
no matches found. calendar pl Nie znaleziono zgodnych
no matchs found calendar pl Nie znaleziono zgodnych
no response calendar pl Brak odpowiedzi
number of months calendar pl Ilo¶æ miesiêcy
on all changes calendar pl po wszystkich zmianach
non blocking calendar pl nie blokuj±ce
notification messages for added events calendar pl Powiadomienia dla dodanych terminów
notification messages for canceled events calendar pl Powiadomienia dla odwo³anych terminów
notification messages for disinvited participants calendar pl Powiadomienia dla uczestników, którym anulowano zaproszenie
notification messages for modified events calendar pl Powiadomienia dla terminów zmodyfikowanych
notification messages for your alarms calendar pl Powiadomienia dla Twoich alarmów
notification messages for your responses calendar pl Powiadomienia dla Twoich odpowiedzi
number of records to read (%1) calendar pl Liczba rekordów do wczytania (%1)
observance rule calendar pl Przestrzeganie zasad
occurence calendar pl Wyst±pienie
old startdate calendar pl Stara data pocz±tkowa
on %1 %2 %3 your meeting request for %4 calendar pl Na %1 %2 %3 Twoje ¿±danie spotkania dla %4
on all modification, but responses calendar pl po wszystkich zmianach z wyj±tkiem odpowiedzi
on any time change too calendar pl tak¿e po ka¿dej zmianie czasu
on invitation / cancelation only calendar pl tylko po zaproszeniu / odwo³aniu
on participant responses too calendar pl tak¿e po odpowiedziach uczestników
on time change of more than 4 hours too calendar pl przy zmianie czasu o wiêcej ni¿ 4 godziny
one month calendar pl jeden miesi±c
one week calendar pl jeden tydzieñ
one year calendar pl jeden rok
only the initial date of that recuring event is checked! calendar pl Tylko data pocz±tkowa dla tego terminu powtarzanego jest brana pod uwagê!
open todo's: calendar pl Otwarte Do Zrobienia:
participant calendar pl Uczestnik
overlap holiday calendar pl nak³adaj±ce siê ¶wiêto
participants calendar pl Uczestnicy
participates calendar pl Uczestniczy
participants disinvited from an event calendar pl Uczestnicy wyproszeni z terminu
participants, resources, ... calendar pl Uczestnicy, Zasoby, ...
password for not loged in users to your freebusy information? calendar pl Has³o dla go¶ci (u¿ytkowników nie zalogowanych) dla Twoich informacji wolny-zajêty?
permission denied calendar pl Dostêp zabroniony
planner calendar pl Zaplanowane
print calendars in black & white calendar pl Drukuj kalendarz jako czarno-bia³y
printer friendly calendar pl Wersja do wydruku
planner by category calendar pl Planner wed³ug kategorii
planner by user calendar pl Planner wed³ug u¿ytkowników
please note: you can configure the field assignments after you uploaded the file. calendar pl Zwróæ uwagê: mo¿esz skonfigurowaæ przypisania pól PO TYM jak wgrasz plik.
preselected group for entering the planner calendar pl Grupa domy¶lna przy uruchamianiu plannera
previous calendar pl poprzedni
private and global public calendar pl Prywatne i Globalne Publiczne
private and group public calendar pl Prywatne i grupowo publiczne
private only calendar pl Tylko prywatne
quantity calendar pl Liczba (sztuk)
re-edit event calendar pl Edytuj zdarzenie
refresh calendar pl Od¶wie¿
reject calendar pl Odrzuæ
receive email updates calendar pl Otrzymuj powiadomienia pocztowe przy aktualizacjach
receive summary of appointments calendar pl Otrzymuj podsumowania spotkañ
recurrence calendar pl Powtarzanie
recurring event calendar pl Termin powtarzany
rejected calendar pl Odrzucone
repeat day calendar pl Dni powtarzania
repeat end date calendar pl Data ostatniego powtórzenia
repeat days calendar pl Dni powtórzenia
repeat the event until which date (empty means unlimited) calendar pl powtarzaj termin a¿ do wskazanej daty (pusta oznacza nieskoñczono¶æ)
repeat type calendar pl Typ powtórek
repeating event information calendar pl Informacja o powtórkach
repeating interval, eg. 2 to repeat every second week calendar pl okres powtarzania, np. 2 oznacza co drugi tydzieñ
repetition calendar pl Powtarzanie
repetitiondetails (or empty) calendar pl Szczegó³y powtórzenia (lub puste)
reset calendar pl Skasuj
resources calendar pl Zasoby
rule calendar pl Regu³a
sa calendar pl So
sat calendar pl So
saves the changes made calendar pl zachowuje wykonane zmiany
saves the event ignoring the conflict calendar pl Zachowuje termin ignoruj±c konflikt
scheduling conflict calendar pl Konflikt w terminarzu
search results calendar pl Wynik szukania
select country for including holidays calendar pl Wybierz kraj do w³±czenia ¶wi±t
selected contacts (%1) calendar pl Wybrane kontakty (%1)
send updates via email common pl Wy¶lij uaktualnienia e-mailem
send/receive updates via email calendar pl Wy¶lij/Odbierz aktualizacjê przez e-mail
select a %1 calendar pl wybierz %1
select a time calendar pl wybierz czas
select resources calendar pl Wybierz zasoby
select who should get the alarm calendar pl Wybierz odbiorców alarmu
selected range calendar pl Wybrany zakres
set a year only for one-time / non-regular holidays. calendar pl Wybierz rok tylko dla jednorazowych lub nieregularnych dni ¶wi±tecznych
set new events to private calendar pl Oznaczaj nowe terminy jako prywatne
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 pl Czy odrzucone zaproszenia nadal maj± byæ widoczne w Twoim kalendarzu?<br>Tylko je¿eli s± widoczne, mo¿esz zaakceptowaæ je pó¼niej (np. kiedy zostanie usuniêty konflikt terminów).
should new events created as private by default ? calendar pl Czy nowe zdarzenia maja byæ oznaczane domy¶lnie jako prywatne?
should the printer friendly view be in black & white or in color (as in normal view)? calendar pl Czy widok do druku ma byæ czarno-bia³y, czy te¿ kolorowy (jak normalny)?
should not loged in persons be able to see your freebusy information? you can set an extra password, different from your normal password, to protect this informations. the freebusy information is in ical format and only include the times when you are busy. it does not include the event-name, description or locations. the url to your freebusy information is %1. calendar pl Czy osoba nie zalogowana (go¶æ) powinna mieæ dostêp do informacji wolny-zajêty? Mo¿na ustawiæ specjalne has³o, inne ni¿ has³o do eGroupWare, aby chroniæ te informacje. Informacja wolny-zajêty jest w formacie iCal i zawiera jedynie przedzia³y czasu, w których jeste¶ zajêty. Nie ma tam innych informacji - np. nazwy terminu, opisu czy lokalizacji. Odno¶nik do informacji wolny-zajêty to %1.
should the planner display an empty row for users or categories without any appointment. calendar pl Czy widok planowania grupowego powinien zawieraæ puste wiersze dla u¿ytkowników lub kategorii bez jakichkolwiek terminów?
should the status of the event-participants (accept, reject, ...) be shown in brakets after each participants name ? calendar pl Czy pokazywaæ w nawiasach status (zaakceptowane, odrzucone...) uczestników zdarzenia obok ich nazwiska?
show day view on main screen calendar pl Wy¶wietl widok dnia na stronie g³ównej
show high priority events on main screen calendar pl Wy¶wietl zdarzenia o wysokim priorytecie na stronie g³ównej
show default view on main screen calendar pl Pokazuj widok domy¶lny na g³ównym ekranie
show empty rows in planner calendar pl Pokazuj puste wiersze w widoku planowania grupowego
show invitations you rejected calendar pl Poka¿ zaproszenia które odrzuci³e¶/a¶
show list of upcoming events calendar pl Poka¿ listê nadchodz±cych zdarzeñ
show this month calendar pl Poka¿ ten miesi±c
show this week calendar pl Poka¿ ten tydzieñ
single event calendar pl pojedyncze zdarzenie
sorry, the owner has just deleted this event calendar pl W³a¶ciciel ju¿ usun±³ to zdarzenie
sorry, this event does not exist calendar pl To zdarzenie ju¿ nie istnieje
sort by calendar pl Sortuj wg.
start calendar pl Rozpoczêcie
start date/time calendar pl Data/godzina rozpoczêcia
start- and enddates calendar pl Daty rozpoczêcia i zakoñczenia
su calendar pl N
startdate / -time calendar pl Data/czas rozpoczêcia
startdate and -time of the search calendar pl Data/czas rozpoczêcia przy wyszukwaniu
startdate of the export calendar pl Data pocz±tkowa dla eksportu
startrecord calendar pl Pierwszy wpis
status changed calendar pl Status zosta³ zmieniony
status recurrence calendar pl Status powtarzania
submit to repository calendar pl Wy¶lij do repozytorium
sun calendar pl Nie
tentative calendar pl Niezobowi±zuj±cy
test import (show importable records <u>only</u> in browser) calendar pl Import testowy (tylko pokazuje importowane rekordy, nie importuje ich)
text calendar pl Tekst
th calendar pl Cz
the following conflicts with the suggested time:<ul>%1</ul> calendar pl Nastêpuj±ce wpisy s± w konflikcie z sugerowanym czasem: <ul>%1</ul>
the user %1 is not participating in this event! calendar pl U¿ytkownik %1 nie jest uczestnikiem tego zdarzenia!
this day is shown as first day in the week or month view. calendar pl Ten dzieñ jest wy¶wietlany jako pierwszy w widoku dziennym lub tygodniowym.
this is mostly caused by a not or wrongly configured smtp server. notify your administrator. calendar pl Najczê¶ciej jest to spowodowane b³êdna konfiguracj± serwera SMTP (lub jej brakiem). Powiadom administratora.
this defines the end of your dayview. events after this time, are shown below the dayview. calendar pl Warto¶æ wskazuje koñcow± godzinê widoku dziennego. Terminy zdefiniowane po tej godzinie s± pokazywane poni¿ej widoku dziennego.
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 pl Warto¶æ wskazuje pocz±tkow± godzinê widoku dziennego. Terminy zdefiniowane przed t± godzin± s± pokazywane powy¿ej widoku dziennego.<br /> Jest to równie¿ godzina u¿ywana jako domy¶lny czas rozpoczêcia nowego terminu.
this group that is preselected when you enter the planner. you can change it in the planner anytime you want. calendar pl Ta grupa jest automatycznie wybierana gdy uruchamiasz widoki planowania grupowego. Mo¿esz j± zmieniæ w plannerze, kiedy tylko chcesz.
this message is sent for canceled or deleted events. calendar pl Ta wiadomo¶æ jest wysy³ana dla anulowanych lub skasowanych zdarzeñ.
this message is sent for modified or moved events. calendar pl Ta wiadomo¶æ jest wysy³ana dla zmodyfikowanych lub przeniesionych zdarzeñ.
this message is sent to disinvited participants. calendar pl Ta wiadomo¶æ jest wysy³ana do uczestników, którym cofniêto zaproszenie
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 pl Ta wiadomo¶æ jest wysy³ana do wszystkich uczestników spotkania, którego jeste¶ w³a¶cicielem, którzy za¿yczyli sobie otrzymywania powiadomieñ o nowych terminach.<br />Mo¿esz u¿yæ pewnych zmiennych, które ulegn± podstawieniu danymi konkretnego terminu. Pierwsza linia jest tematem wiadomo¶ci e-mail.
this message is sent when you accept, tentative accept or reject an event. calendar pl Ta wiadomo¶æ jest wysy³ana kiedy akceptujesz, akceptujesz próbnie lub odrzucasz zdarzenie.
this message is sent when you set an alarm for a certain event. include all information you might need. calendar pl Ta wiadomo¶æ jest wysy³ana, kiedy ustawiasz Alarm dla jakiego¶ zdarzenia. Do³±cz wszystkie informacje, których mo¿esz potrzebowaæ.
this month calendar pl Bie¿±cy miesi±c
this week calendar pl Bie¿±cy tydzieñ
this year calendar pl Bie¿±cy rok
three month calendar pl trzy miesi±ce
thu calendar pl Czw
title calendar pl Nazwa
til calendar pl a¿ do
timeframe calendar pl Rama czasowa
timeframe to search calendar pl Rama czasowa do wyszukiwania
title of the event calendar pl Nazwa zdarzenia
title-row calendar pl Rz±d tytu³owy
to-firstname calendar pl Do-imie
to-fullname calendar pl Do-imienazwisko
to-lastname calendar pl Do-nazwisko
today calendar pl Dzisiaj
to many might exceed your execution-time-limit calendar pl zbyt wiele mo¿e spowodowaæ przekroczenie czasu wykonywania
translation calendar pl T³umaczenie
tu calendar pl Wt
tue calendar pl Wto
two weeks calendar pl dwa tygodnie
updated calendar pl Uaktualniony
use end date calendar pl U¿yj daty zakoñczenia
view this entry calendar pl Podgl±d wpisu
we calendar pl ¦r
use the selected time and close the popup calendar pl wybierz zaznaczony czas i zamknij okno
user or group calendar pl U¿ytkownik lub grupa
view this event calendar pl Poka¿ ten termin
views with fixed time intervals calendar pl Widoki ze sta³ymi przedzia³ami czasu
wed calendar pl ¦ro
week calendar pl Tydzieñ
weekday starts on calendar pl Pierwszy dzieñ tygodnia
weekdays calendar pl Dni tygodnia
weekdays to use in search calendar pl Dni tygodnia do wyszukiwania
weekly calendar pl Tygodniowy
weekview calendar pl Widok tygodniowy
when creating new events default set to private calendar pl Ustawiæ nowe zdarzenia jako prywatne?
weekview with weekend calendar pl Widok tygodniowy z weekendem
weekview without weekend calendar pl Widok tygodniowy bez weekendu
which events do you want to see when you enter the calendar. calendar pl Które terminy chcesz widzieæ, gdy uruchamiasz kalendarz?
which of calendar view do you want to see, when you start calendar ? calendar pl Który widok kalendarza chcesz widzieæ, gdy uruchamiasz kalendarz?
whole day calendar pl ca³y dzieñ
wk calendar pl Tyd¼.
work day ends on calendar pl Koniec dnia o
work day starts on calendar pl Pocz±tek dnia o
workdayends calendar pl koniec dnia
year calendar pl Rok
yearly calendar pl Roczny
yearview calendar pl Widok roczny
you do not have permission to add alarms to this event !!! calendar pl Nie masz uprawnieñ aby dodaæ alarm do tego zdarzenia!!!
you do not have permission to delete this alarm !!! calendar pl Nie masz uprawnieñ aby skasowaæ ten alarm!!!
you do not have permission to enable/disable this alarm !!! calendar pl Nie masz uprawnieñ aby w³±czyæ-wy³±czyæ ten alarm!!!
you can either set a year or a occurence, not both !!! calendar pl Mo¿esz ustawiæ albo rok albo pojedyncze wyst±pienie, ale nie oba jednocze¶nie!
you can only set a year or a occurence !!! calendar pl Mo¿esz ustawiæ tylko rok lub pojedyncze wyst±pienie!
you do not have permission to read this record! calendar pl Nie masz uprawnieñ do tego rekordu!!!
you have %1 high priority events on your calendar today. common pl W dzisiejszym kalendarzu masz %1 zdarzeñ z wysokim priorytetem.
you have 1 high priority event on your calendar today. common pl W dzisiejszym kalendarzu masz jedno zdarzenie z wysokim priorytetem.
you have a meeting scheduled for %1 calendar pl Masz spotkanie zaplanowane na %1
you have not entered a title calendar pl Nie poda³e¶/a¶ tytu³u
you have not entered a valid date calendar pl Nie poda³e¶/a¶ poprawnej daty
you have not entered participants calendar pl Nie poda³e¶/a¶ uczestników
you must enter one or more search keywords calendar pl Musisz podaæ jedno lub wiêcej s³ów kluczowych
you have been disinvited from the meeting at %1 calendar pl Twoje zaproszenie na spotkanie %1 zosta³o wycofane
you need to select an ical file first calendar pl Musisz wpierw wybraæ iCal
you need to set either a day or a occurence !!! calendar pl Musisz ustawiæ dzieñ lub pojawienie siê!!!
your meeting scheduled for %1 has been canceled calendar pl Twoje spotkanie zaplanowane na %1 zosta³o odwo³ane
your meeting that had been scheduled for %1 has been rescheduled to %2 calendar pl Twoje spotkanie zaplanowane na %1 zosta³o przesuniête na %2
your suggested time of <b> %1 - %2 </b> conflicts with the following existing calendar entries: calendar pl Twój zaproponowany czas <B> %1 - %2 </B> jest w konflikcie z nastêpuj±cymi wpisami w kalendarzu:

View File

@ -0,0 +1,32 @@
<?php
/**************************************************************************\
* eGroupWare SiteMgr - Web Content Management *
* http://www.egroupware.org *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id: class.module_calendar.inc.php 19554 2005-11-02 14:37:42Z ralfbecker $ */
class module_calendar extends Module
{
function module_calendar()
{
$this->arguments = array();
$this->title = lang('Calendar');
$this->description = lang('This module displays the current month');
}
function get_content(&$arguments,$properties)
{
if (!is_object($GLOBALS['egw']->jscalendar))
{
$GLOBALS['egw']->jscalendar =& CreateObject('phpgwapi.jscalendar');
}
return $GLOBALS['egw']->jscalendar->flat('#');
}
}

View File

@ -62,12 +62,13 @@
</rows>
</grid>
</template>
<template id="calendar.edit.participants" template="" lang="" group="0" version="1.3.001">
<grid width="100%" height="200" overflow="auto">
<template id="calendar.edit.participants" template="" lang="" group="0" version="1.3.002">
<grid width="100%" height="200" overflow="auto" id="participants">
<columns>
<column width="95"/>
<column/>
<column/>
<column disabled="@hide_status_recurrence"/>
<column/>
<column/>
</columns>
@ -76,11 +77,12 @@
<description value="New"/>
<vbox options="0,0">
<menulist>
<menupopup type="select-account" options="User or group,both" id="account"/>
<menupopup type="select-account" options="User or group,both,,10" id="account" statustext="User or group"/>
</menulist>
<link-entry id="resource" options="@cal_resources"/>
</vbox>
<int options="1,,3" id="quantity"/>
<description/>
<button label="Add" id="add"/>
<description/>
</row>
@ -88,17 +90,19 @@
<description value="Type"/>
<description value="Participants"/>
<description value="Quantity"/>
<description value="All future"/>
<description value="Status"/>
<description value="Delete"/>
<description value="Actions"/>
</row>
<row valign="top">
<description id="${row}[app]"/>
<description rows="1" cols="2" id="${row}[title]" no_lang="1"/>
<int id="${row}[quantity]" options="1,,3"/>
<checkbox id="${row}[status_recurrence]" align="center"/>
<menulist>
<menupopup id="${row}[status]" no_lang="1" onchange="1"/>
</menulist>
<checkbox rows="1" cols="2" id="delete[$row_cont[uid]]" align="center"/>
<button rows="1" cols="2" id="delete[$row_cont[uid]]" align="center" label="Delete" onchange="1" image="delete"/>
</row>
</rows>
</grid>
@ -136,7 +140,7 @@
<description value="Exceptions"/>
<button id="button[exception]" label="@exception_label" statustext="Create an exception for the given date" no_lang="1"/>
</vbox>
<grid>
<grid id="recur_exception">
<columns>
<column/>
<column/>
@ -197,15 +201,15 @@
<description value="before the event"/>
<hbox>
<menulist>
<menupopup type="select-number" options=",0,7" id="new_alarm[days]"/>
<menupopup type="select-number" options=",0,7" id="new_alarm[days]" statustext="days"/>
</menulist>
<description options=",,,new_alarm[days]" value="days"/>
<menulist>
<menupopup type="select-number" id="new_alarm[hours]" options=",0,23"/>
<menupopup type="select-number" id="new_alarm[hours]" options=",0,23" statustext="hours"/>
</menulist>
<description options=",,,new_alarm[hours]" value="hours"/>
<menulist>
<menupopup type="select-number" id="new_alarm[mins]" options=",0,55,5"/>
<menupopup type="select-number" id="new_alarm[mins]" options=",0,55,5" statustext="Minutes"/>
</menulist>
<description options=",,,new_alarm[mins]" value="Minutes"/>
<menulist>
@ -216,7 +220,7 @@
</row>
<row valign="top" disabled="!@alarm">
<description value="Alarms"/>
<grid>
<grid id="alarm">
<columns>
<column/>
<column/>
@ -247,7 +251,7 @@
</rows>
</grid>
</template>
<template id="calendar.edit" template="" lang="" group="0" version="1.3.002">
<template id="calendar.edit" template="" lang="" group="0" version="1.3.003">
<grid width="100%">
<columns>
<column width="100"/>
@ -302,7 +306,7 @@
<hbox span="2">
<button label="Save" id="button[save]" statustext="saves the changes made"/>
<button id="button[apply]" label="Apply" statustext="apply the changes"/>
<button id="button[cancel]" label="Cancel" onclick="window.close();" statustext="Close the window"/>
<button id="button[cancel]" label="Cancel" statustext="Close the window" onclick="window.close();"/>
<menulist>
<menupopup id="action" statustext="Execute a further action for this entry" options="Actions..." onchange="this.form.submit(); this.value='';"/>
</menulist>

View File

@ -1,10 +1,108 @@
account '%1' not found !!! emailadmin pl Konto '%1' nie zosta³o znalezione!
add new email address: emailadmin pl Dodaj nowy adres poczty elektronicznej:
add profile emailadmin pl Dodaj profil
alternate email address emailadmin pl alternatywny adres email
email address emailadmin pl adres email
admin dn emailadmin pl DN (nazwa wyró¿niaj±ca) administratora
admin password emailadmin pl Has³o administratora
admin username emailadmin pl Nazwa u¿ytkownika konta administratora
advanced options emailadmin pl Ustawienia zaawansowane
alternate email address emailadmin pl Alternatywny adres email
any application emailadmin pl Dowolna aplikacja
any group emailadmin pl Dowolna grupa
bad login name or password. emailadmin pl Z³a nazwa u¿ytkownika lub has³o
bad or malformed request. server responded: %s emailadmin pl Nieprawid³owe lub ¼le skonstruowane ¿±dane. Serwer odpowiedzia³: %s
bad request: %s emailadmin pl Nieprawid³owe ¿±danie: %s
can be used by application emailadmin pl Mo¿e byæ u¿ywane przez aplikacjê
can be used by group emailadmin pl Mo¿e byc u¿ywane przez grupê
connection dropped by imap server. emailadmin pl Po³±czenie zerwane przez serwer IMAP
could not complete request. reason given: %s emailadmin pl Nie uda³o siê zrealizowaæ ¿±dania. Powód: %s
could not open secure connection to the imap server. %s : %s. emailadmin pl Nie uda³o siê stworzyæ bezpiecznego po³±czenia do serwera IMAP. %s : %s.
cram-md5 or digest-md5 requires the auth_sasl package to be installed. emailadmin pl CRAM-MD5 lub DIGEST-MD5 wymagaj±, aby pakiet Auth_SASL (Perl) by³ zainstalowany
cyrus imap server emailadmin pl Serwer IMAP Cyrus
cyrus imap server administration emailadmin pl Administracja serwerem IMAP Cyrus
default emailadmin pl domy¶lny
deliver extern emailadmin pl dostarczanie na zewn±trz
do you really want to delete this profile emailadmin pl Czy na pewno chcesz usun±æ ten profil?
domainname emailadmin pl Nazwa domeny
edit email settings emailadmin pl Edytuj ustawienia poczty elektronicznej
email account active emailadmin pl Konto poczty aktywne
email address emailadmin pl Adres poczty elektronicznej
email settings common pl Ustawienia poczty elektronicznej
emailadmin emailadmin pl Poczta Elektroniczna - Administracja
enable cyrus imap server administration emailadmin pl aktywuj administracjê serwerem IMAP Cyrus
enable sieve emailadmin pl aktywuj sito (Sieve)
encryption settings emailadmin pl ustawienia szyfrowania
enter your default mail domain (from: user@domain) emailadmin pl Wprowad¼ domy¶ln± domenê pocztow± (z u¿ytkownik@domena)
error connecting to imap server. %s : %s. emailadmin pl B³±d po³±czenia do serwera IMAP. %s : %s
error connecting to imap server: [%s] %s. emailadmin pl B³±d po³±czenia do serwera IMAP. [%s] %s
forward also to emailadmin pl Prze¶lij równie¿ do
forward email's to emailadmin pl Prze¶lij wiadomo¶ci do
forward only emailadmin pl Prze¶lij tylko
global options emailadmin pl Ustawienia globalne
if using ssl or tls, you must have the php openssl extension loaded. emailadmin pl Je¿eli korzystasz z SSL lub TLS, musisz zapewniæ obs³ugê OpenSSL w PHP.
imap admin password admin pl Has³o administratora IMAP
imap admin user admin pl Login administratora IMAP
imap c-client version < 2001 emailadmin pl Wersja C-Client IMAP < 2001
imap server closed the connection. emailadmin pl Serwer IMAP zakoñczy³ po³±czenie.
imap server closed the connection. server responded: %s emailadmin pl Serwer IMAP zakoñczy³ po³±czenie. Jego odpowied¼: %s
imap server hostname or ip address emailadmin pl Nazwa hosta lub IP serwera IMAP
imap server logintyp emailadmin pl Sposób logowania do serwera IMAP
imap server port emailadmin pl Port serwera IMAP
imap/pop3 server name emailadmin pl Nazwa serwera IMAP/POP3
in mbyte emailadmin pl w megabajtach
ldap basedn emailadmin pl Bazowy DN w LDAP
ldap server emailadmin pl Serwer LDAP
ldap server accounts dn emailadmin pl DN dla kont w LDAP
ldap server admin dn emailadmin pl DN administratora w LDAP
ldap server admin password emailadmin pl Has³o administratora serwera LDAP
ldap server hostname or ip address emailadmin pl Nazwa hosta lub IP serwera LDAP
ldap settings emailadmin pl Ustawienia LDAP
leave empty for no quota emailadmin pl zostaw puste aby wy³±czyæ quota
mail settings admin pl Ustawienia poczty elektronicznej
name of organisation emailadmin pl Nazwa lub organizacja
no alternate email address emailadmin pl brak zapasowego adresu e-mail
no encryption emailadmin pl brak szyfrowania
no forwarding email address emailadmin pl brak adresu poczty przesy³anej
no message returned. emailadmin pl Nie otrzymano wiadomo¶ci.
no supported imap authentication method could be found. emailadmin pl Nie znaleziono obs³ugiwanej metody autentykacji dla IMAP
order emailadmin pl Porz±dek
organisation emailadmin pl Organizacja
pop3 server hostname or ip address emailadmin pl Nazwa hosta lub IP serwera POP3
pop3 server port emailadmin pl Port serwera POP3
postfix with ldap emailadmin pl Postfix z LDAP
profile access rights emailadmin pl prawa dostêpu do profilu
profile list emailadmin pl Lista profili
profile name emailadmin pl Nazwa Profilu
qouta size in mbyte emailadmin pl rozmiar quoty w megabajtach
quota settings emailadmin pl ustawnienia quoty
remove emailadmin pl Usuñ
select type of imap/pop3 server emailadmin pl Wybierz rodzaj serwera IMAP/POP3
select type of smtp server emailadmin pl Wybierz rodzaj serwera SMTP
server settings emailadmin pl Ustawienia serwera
smtp authentication emailadmin pl Autentykacja SMTP
smtp options emailadmin pl Opcje SMTP
smtp server name emailadmin pl Nazwa serwera SMTP
smtp settings emailadmin pl Ustawienia SMTP
smtp-server hostname or ip address emailadmin pl Nazwa hosta lub IP serwera SMTP
smtp-server port emailadmin pl Port serwera SMTP
standard emailadmin pl Standard
standard imap server emailadmin pl Standardowy serwer IMAP
standard pop3 server emailadmin pl Standardowy serwer POP3
standard smtp-server emailadmin pl Standardowy serwer SMTP
the imap server does not appear to support the authentication method selected. please contact your system administrator. emailadmin pl Serwer IMAP nie obs³uguje wskazanej metody autentykacji. Proszê skontaktowaæ siê z administratorem.
this php has no imap support compiled in!! emailadmin pl Interpreter PHP nie posiada obs³ugi IMAP!
to use a tls connection, you must be running a version of php 5.1.0 or higher. emailadmin pl Aby skorzystaæ z po³±czenia TLS, musisz posiadaæ wersjê PHP 5.1.0 lub wy¿sz±.
unexpected response from server to authenticate command. emailadmin pl Niespodziewana odpowied¼ serwera na polecenie AUTHENTICATE.
unexpected response from server to digest-md5 response. emailadmin pl Niespodziewana odpowied¼ serwera na zapytanie Digest-MD5
unexpected response from server to login command. emailadmin pl Niespodziewana odpowied¼ serwera na polecenie LOGIN.
unknown imap response from the server. server responded: %s emailadmin pl Nieznana odpowied¼ z serwera IMAP. Serwer przes³a³: %s
unsupported action '%1' !!! emailadmin pl Operacja nieobs³ugiwana '%1'!
update current email address: emailadmin pl Uaktualnij bie¿±cy adres pocztowy
use ldap defaults emailadmin pl Skorzystaj z domy¶lnych warto¶ci LDAP
use smtp auth emailadmin pl Skorzystaj z autentykacji SMTP
use tls authentication emailadmin pl Skorzystaj z autentykacji TLS
use tls encryption emailadmin pl Skorzystaj z szyfrowania TLS
user can edit forwarding address emailadmin pl U¿ytkownik mo¿e zmieniaæ adres przekazywania
username (standard) emailadmin pl login (standardowo)
username@domainname (virtual mail manager) emailadmin pl login@domena (wirtualny zarz±dca kont)
users can define their own emailaccounts emailadmin pl U¿ytkownicy mog± definiowaæ swoje w³asne konta poczty elektronicznej
virtual mail manager emailadmin pl Wirtualny Serwer Pocztowy - zarz±dca

View File

@ -0,0 +1,263 @@
<?php
/**
* eGroupWare eTemplate Extension - AJAX Select Widget
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package etemplate
* @subpackage extensions
* @link http://www.egroupware.org
* @author Nathan Gray <nathangray@sourceforge.net>
* @version $Id$
*/
/**
* AJAX Select Widget
*
* Using AJAX, this widget allows a type-ahead find similar to a ComboBox, where as the user enters information,
* a drop-down box is populated with the n closest matches. If the user clicks on an item in the drop-down, that
* value is selected.
* n is the maximum number of results set in the user's preferences.
* The user is restricted to selecting values in the list.
* This widget can get data from any function that can provide data to a nextmatch widget.
* This widget is generating html, so it does not work (without an extra implementation) in an other UI
*/
class ajax_select_widget
{
var $public_functions = array(
'pre_process' => True,
'post_process' => True
);
var $human_name = 'AJAX Select'; // this is the name for the editor
function ajax_select_widget($ui='')
{
switch($ui)
{
case '':
case 'html':
$this->ui = 'html';
break;
default:
echo "UI='$ui' not implemented";
}
return 0;
}
/**
* pre-processing of the extension
*
* This function is called before the extension gets rendered
*
* @param string $name form-name of the control
* @param mixed &$value value / existing content, can be modified
* @param array &$cell array with the widget, can be modified for ui-independent widgets
* @param array &$readonlys names of widgets as key, to be made readonly
* @param mixed &$extension_data data the extension can store persisten between pre- and post-process
* @param object &$tmpl reference to the template we belong too
* @return boolean true if extra label is allowed, false otherwise
*/
function pre_process($name,&$value,&$cell,&$readonlys,&$extension_data,&$tmpl)
{
//echo "<p>ajax_select_widget::pre_process('$name',$value," . print_r($cell, true) . "," . print_r($extension_data, true) . ")</p>\n";
// Get Options
if(!is_array($cell['size'])) {
list(
$options['get_rows'],
$options['get_title'],
$options['id_field'],
$options['template'],
$options['filter'],
$options['filter2']
) = explode(',', $cell['size']);
} else {
$options = $cell['size'];
}
if(is_array($value)) {
$options = array_merge($options, $value);
}
if(!$options['template']) {
$options['template'] = 'etemplate.ajax_select_widget.row';
}
$onchange = ($cell['onchange'] ? $cell['onchange'] : 'false');
// Set current value
if(!is_array($value)) {
$current_value = $value;
} elseif($value[$options['id_field']]) {
$current_value = $value[$options['id_field']];
}
list($title_app, $title_class, $title_method) = explode('.', $options['get_title']);
if($title_app && $title_class) {
if (is_object($GLOBALS[$title_class])) { // use existing instance (put there by a previous CreateObject)
$title_obj =& $GLOBALS[$title_class];
} else {
$title_obj =& CreateObject($title_app . '.' . $title_class);
}
}
if(!is_object($title_obj) || !method_exists($title_obj,$title_method)) {
echo "$entry_app.$entry_class.$entry_method is not a valid method for getting the title";
} elseif($current_value) {
$title = $title_obj->$title_method($current_value);
}
// Check get_rows method
list($get_rows_app, $get_rows_class, $get_rows_method) = explode('.', $options['get_rows']);
if($get_rows_app && $get_rows_class) {
if (is_object($GLOBALS[$get_rows_class])) { // use existing instance (put there by a previous CreateObject)
$get_rows_obj =& $GLOBALS[$get_rows_class];
} else {
$get_rows_obj =& CreateObject($get_rows_app . '.' . $get_rows_class);
}
if(!is_object($get_rows_obj) || !method_exists($get_rows_obj, $get_rows_method)) {
echo "$get_rows_app.$get_rows_class.$get_rows_method is not a valid method for getting the rows";
}
}
// Set up widget
$cell['type'] = 'template';
$cell['size'] = $cell['name'];
$value = array('value' => $current_value, 'search' => $title);
$widget =& new etemplate('etemplate.ajax_select_widget');
$widget->no_onclick = True;
$cell['obj'] = &$widget;
// Save options for post_processing
$extension_data = $options;
$extension_data['required'] = $cell['required'];
// xajax
$GLOBALS['egw_info']['flags']['include_xajax'] = True;
// JavaScript
if(!is_object($GLOBALS['egw']->js)) {
$GLOBALS['egw']->js =& CreateObject('phpgwapi.javascript');
}
$options = $GLOBALS['egw']->js->convert_phparray_jsarray("options['$name']", $options, true);
$GLOBALS['egw']->js->set_onload("if(!options) { var options = new Object();}\n $options;\n ajax_select_widget_setup('$name', '$onchange', options['$name']); ");
$GLOBALS['egw']->js->validate_file('', 'ajax_select', 'etemplate');
return True; // no extra label
}
function post_process($name,&$value,&$extension_data,&$loop,&$tmpl,$value_in)
{
//echo "<p>ajax_select_widget.post_process: $name = "; _debug_array($value_in);
if(!is_array($value_in)) {
$value_in = array();
}
// They typed something in, but didn't choose a result
if(!$value_in['value'] && $value_in['search']) {
list($get_rows_app, $get_rows_class, $get_rows_method) = explode('.', $extension_data['get_rows']);
if($get_rows_app && $get_rows_class) {
if (is_object($GLOBALS[$get_rows_class])) { // use existing instance (put there by a previous CreateObject)
$get_rows_obj =& $GLOBALS[$get_rows_class];
} else {
$get_rows_obj =& CreateObject($get_rows_app . '.' . $get_rows_class);
}
if(!is_object($get_rows_obj) || !method_exists($get_rows_obj, $get_rows_method)) {
echo "$get_rows_app.$get_rows_class.$get_rows_method is not a valid method for getting the rows";
} else {
$query = $extension_data + $value_in;
$count = $get_rows_obj->$get_rows_method($query, $results);
if($count == 1) {
$value = $results[0][$extension_data['id_field']];
echo 'Match found';
return true;
} else {
$GLOBALS['egw_info']['etemplate']['validation_errors'][$name] = lang("More than 1 match for '%1'",$value_in['search']);
$loop = true;
return false;
}
}
}
} elseif (!$value_in['value'] && !$value_in['search']) {
$value = null;
$loop = $extension_data['required'];
return !$extension_data['required'];
} else {
$value = $value_in['value'];
$loop = false;
return true;
}
}
function change($id, $value, $set_id, $query) {
$base_id = substr($id, 0, strrpos($id, '['));
$result_id = ($set_id ? $set_id : $base_id . '[results]');
$response = new xajaxResponse();
if($query['get_rows']) {
list($app, $class, $method) = explode('.', $query['get_rows']);
$this->bo = CreateObject($app . '.' . $class);
unset($query['get_rows']);
} else {
return $response->getXML();
}
// Expand lists
foreach($query as $key => $row) {
if(strpos($row, ',')) {
$query[$key] = explode(',', $row);
}
// sometimes it sends 'null' (not null)
if($row == 'null') {
unset($query[$key]);
}
}
$query['search'] = $value;
if(is_object($this->bo)) {
$count = $this->bo->$method($query, $result_list);
}
if(is_array($count)) {
$count = count($result_list);
}
$response->addScript("remove_ajax_results('$result_id')");
if($count > 0) {
$response->addScript("add_ajax_result('$result_id', '', '', '" . lang('Select') ."');");
$count = 0;
if(!$query['template'] || $query['template'] == 'etemplate.ajax_select_widget.row') {
$query['template'] = 'etemplate.ajax_select_widget.row';
}
foreach($result_list as $key => &$row) {
if(!is_array($row)) {
continue;
}
if($query['id_field'] && $query['get_title']) {
if($row[$query['id_field']]) {
$row['title'] = ExecMethod($query['get_title'], $row[$query['id_field']]);
}
}
$data = ($query['nextmatch_template']) ? array(1=>$row) : $row;
$widget =& CreateObject('etemplate.etemplate', $query['template']);
$html = addslashes(str_replace("\n", '', $widget->show($data)));
$row['title'] = htmlspecialchars(addslashes($row['title']));
$response->addScript("add_ajax_result('$result_id', '${row[$query['id_field']]}', '" . $row['title'] . "', '$html');");
$count++;
if($count > $GLOBALS['egw_info']['user']['preferences']['common']['maxmatchs']) {
$response->addScript("add_ajax_result('$result_id', '', '" . lang("%1 more...", (count($result_list) - $count)) . "');");
break;
}
}
} else {
$response->addScript("add_ajax_result('$result_id', '', '', '" . lang('No matches found') ."');");
}
return $response->getXML();
}
}
?>

View File

@ -712,7 +712,8 @@
foreach($new as $k => $v)
{
if (!is_array($v) || !isset($old[$k]))
if (!is_array($v) || !isset($old[$k]) || // no array or a new array
isset($v[0]) && isset($v[count($v)-1])) // or no associative array, eg. selecting multiple accounts
{
$old[$k] = $v;
}

View File

@ -164,7 +164,18 @@
}
if ($value['m'] && strchr($this->dateformat,'M') !== false)
{
$value['M'] = substr(lang(adodb_date('F',$value['m'])),0,3);
static $month = array('','January','February','March','April','Mai','June','July','August','September','October','November','December');
static $substr;
if (is_null($substr)) $substr = function_exists('mb_substr') ? 'mb_substr' : 'substr';
static $chars_shortcut;
if (is_null($chars_shortcut)) $chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end
$value['M'] = lang(substr($month[$value['m']],0,3)); // check if we have a translation of the short-cut
if ($substr($value['M'],-1) == '*') // if not generate one by truncating the translation of the long name
{
$value['M'] = $chars_shortcut > 0 ? $substr(lang($month[$value['m']]),0,$chars_shortcut) :
$substr(lang($month[$value['m']]),$chars_shortcut);
}
}
if ($readonly) // is readonly
{

View File

@ -211,7 +211,7 @@
$cell['no_lang'] = True;
break;
case 'select-account': // options: #rows,{accounts(default)|both|groups|owngroups},{0(=lid)|1(default=name)|2(=lid+name))}
case 'select-account': // options: #rows,{accounts(default)|both|groups|owngroups},{0(=lid)|1(default=name)|2(=lid+name),expand-multiselect-rows)}
//echo "<p>select-account widget: name=$cell[name], type='$type', rows=$rows, readonly=".(int)($cell['readonly'] || $readonlys)."</p>\n";
if($type == 'owngroups')
{
@ -233,7 +233,8 @@
{
if (!is_object($GLOBALS['egw']->uiaccountsel))
{
$GLOBALS['egw']->uiaccountsel =& CreateObject('phpgwapi.uiaccountsel');
require_once(EGW_API_INC.'/class.uiaccountsel.inc.php');
$GLOBALS['egw']->uiaccountsel =& new uiaccountsel;
}
$help = (int)$cell['no_lang'] < 2 ? lang($cell['help']) : $cell['help'];
$onFocus = "self.status='".addslashes(htmlspecialchars($help))."'; return true;";
@ -247,8 +248,9 @@
$onlyPrint = $onlyPrint ? implode('<br />',$onlyPrint) : lang((int)$rows < 0 ? 'all' : $rows);
$noPrint_class = ' class="noPrint"';
}
if (($rows > 0 || $type3) && substr($name,-2) != '[]') $name .= '[]';
$value = $GLOBALS['egw']->uiaccountsel->selection($name,'eT_accountsel_'.str_replace(array('[','][',']'),array('_','_',''),$name),
$value,$type,$rows > 0 ? $rows : 0,False,' onfocus="'.$onFocus.'" onblur="'.$onBlur.'"'.$noPrint_class,
$value,$type,$rows > 0 ? $rows : ($type3 ? -$type3 : 0),False,' onfocus="'.$onFocus.'" onblur="'.$onBlur.'"'.$noPrint_class,
$cell['onchange'] == '1' ? 'this.form.submit();' : $cell['onchange'],
!empty($rows) && 0+$rows <= 0 ? lang($rows < 0 ? 'all' : $rows) : False);
if ($cell['noprint'])

View File

@ -1146,8 +1146,8 @@
if ($this->java_script() && ($cell['onchange'] != '' || $img && !$readonly) && !$cell['needed']) // use a link instead of a button
{
$onclick = ($onclick ? preg_replace('/^return(.*);$/','if (\\1) ',$onclick) : '').
(((string)$cell['onchange'] === '1' || $img && !$onclick) ?
"return submitit($this->name_form,'$form_name');" : $cell['onchange']).'; return false;';
(((string)$cell['onchange'] === '1' || $img) ?
"return submitit($this->name_form,'".addslashes($form_name)."');" : $cell['onchange']).'; return false;';
if (!$this->html->netscape4 && substr($img,-1) == '%' && is_numeric($percent = substr($img,0,-1)))
{

234
etemplate/js/ajax_select.js Normal file
View File

@ -0,0 +1,234 @@
<!--
/**
* Javascript file for AJAX select widget
*
* @author Nathan Gray <nathangray@sourceforge.net>
*
* @param widget_id the id of the ajax_select_widget
* @param onchange function to call if the value of the select widget is changed
* @param options the query object containing callback and settings
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package etemplate
* @subpackage extensions
* @link http://www.egroupware.org
*
* @version $Id$
*/
-->
//xajaxDebug = 1;
function ajax_select_widget_setup(widget_id, onchange, options) {
if(onchange) {
if(onchange == 1) {
onchange = function() {submitit(this.form, this.value);};
} else {
eval("onchange = function(e) { " + onchange + ";}");
}
var value = document.getElementById(widget_id + '[value]');
if(value) {
if(value.addEventListener) {
value.addEventListener('change', onchange, true);
} else {
var old = (value.onchange) ? value.onchange : function() {};
value.onchange = function() {
old();
onchange;
};
}
}
}
var widget = document.getElementById(widget_id + '[search]');
if(widget) {
widget.form.disableautocomplete = true;
widget.form.autocomplete = 'off';
if(widget.addEventListener) {
widget.addEventListener('keyup', change, true);
widget.addEventListener('blur', hideBox, false);
} else {
widget.onkeyup = change;
widget.onblur = hideBox;
}
// Set results
var results = document.createElement('div');
results.id = widget_id + '[results]';
results.className = 'resultBox';
results.style.position = 'absolute';
results.style.zIndex = 50;
results.options = options;
results.innerHTML = "";
widget.parentNode.appendChild(results);
}
var value = document.getElementById(widget_id + '[value]');
if(value) {
value.style.display = 'none';
}
}
function change(e, value) {
if(!e) {
var e = window.event;
}
if(e.target) {
var target = e.target;
} else if (e.srcElement) {
var target = e.srcElement;
}
if(target) {
if (target.nodeType == 3) { // defeat Safari bug
target = target.parentNode;
}
var id = target.id;
var value = target.value;
} else if (e) {
var id = e;
if(value) {
var value = value;
} else {
var value = e.value;
}
var set_id = id.substr(0, id.lastIndexOf('['));
}
var base_id = id.substr(0, id.lastIndexOf('['));
if(document.getElementById(base_id + '[results]')) {
set_id = base_id + '[results]';
} else {
set_id = base_id + '[search]';
}
var query = document.getElementById(set_id).options;
if(document.getElementById(base_id + '[filter]')) {
query.filter = document.getElementById(base_id + '[filter]').value;
}
// Hide selectboxes for IE
if(document.all) {
var selects = document.getElementsByTagName('select');
for(var i = 0; i < selects.length; i++) {
selects[i].style.visibility = 'hidden';
}
}
xajax_doXMLHTTP("etemplate.ajax_select_widget.change", id, value, set_id, query);
}
/* Remove options from a results box
* @param id - The id of the select
*/
function remove_ajax_results(id) {
if(document.getElementById(id)) {
var element = document.getElementById(id);
if (element.tagName == 'DIV') {
element.innerHTML = '';
}
}
}
/* Add an option to a result box
* @param id - The id of the result box
* @param key - The key of the option
* @param value - The value of the option
* @param row - The html for the row to display
*/
function add_ajax_result(id, key, value, row) {
var resultbox = document.getElementById(id);
if(resultbox) {
if (resultbox.tagName == 'DIV') {
var base_id = resultbox.id.substr(0, resultbox.id.lastIndexOf('['));
var search_id = base_id + '[search]';
var value_id = base_id + '[value]';
resultbox.style.display = 'block';
var result = document.createElement('div');
result.className = (resultbox.childNodes.length % 2) ? 'row_on' : 'row_off';
if(key) {
result.value = new Object();
result.value.key = key;
result.value.value = value;
result.value.search_id = search_id;
result.value.value_id = value_id;
result.innerHTML = row;
// when they click, add that item to the value hidden textbox
if(result.addEventListener) {
result.addEventListener('click', select_result, true);
} else {
result.onclick = select_result;
}
} else {
result.innerHTML += row + "<br />";
}
resultbox.appendChild(result);
}
}
}
function select_result(e) {
// when they click, add that item to the value textbox & call onchange()
if(!e) {
var e = window.event;
}
if(e.target) {
var target = e.target;
} else if (e.srcElement) {
var target = e.srcElement;
}
while(!target.value && target != document) {
target = target.parentNode;
}
var value = document.getElementById(target.value.value_id);
var search = document.getElementById(target.value.search_id);
if(value) {
value.value = target.value.key;
}
if(search) {
search.value = target.value.value;
try {
value.onchange(e);
} catch (err) {
//no onchange;
var event = document.createEvent('HTMLEvents');
event.initEvent('change', true, true);
value.dispatchEvent(event);
}
}
}
function hideBox(e) {
if(!e) {
var e = window.event;
}
if(e.target) {
var target = e.target;
} else if (e.srcElement) {
var target = e.srcElement;
}
if(target) {
if (target.nodeType == 3) { // defeat Safari bug
target = target.parentNode;
}
}
var set_id = target.id.substr(0, target.id.lastIndexOf('[')) + '[results]';
setTimeout("document.getElementById('" + set_id + "').style.display = 'none'", 200);
var selects = document.getElementsByTagName('select');
// Un-hide select boxes for IE
if(document.all) {
for(var i = 0; i < selects.length; i++) {
selects[i].style.visibility = 'visible';
}
}
}

View File

@ -1,15 +1,13 @@
/**************************************************************************\
* eGroupWare - EditableTemplates - javascript support functions *
* http://www.egroupware.org *
* Written by Ralf Becker <RalfBecker@outdoor-training.de> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
/**
* eGroupWare eTemplate Extension - AJAX Select Widget
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package etemplate
* @subpackage api
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker@outdoor-training.de>
* @version $Id$
*/
function submitit(form,name)
{
@ -71,6 +69,20 @@ function activate_tab(tab,all_tabs,name)
document.getElementById(t).style.display = t == tab ? 'inline' : 'none';
document.getElementById(t+'-tab').className = 'etemplate_tab'+(t == tab ? '_active th' : ' row_on');
}
// activate FCK in newly activated tab for Gecko browsers
if (!document.all)
{
var t = document.getElementById(tab);
var inputs = t.getElementsByTagName('input');
for (i = 0; i < inputs.length;i++) {
editor = FCKeditorAPI.GetInstance(inputs[i].name);
if (editor && editor.EditorDocument && editor.EditMode == FCK_EDITMODE_WYSIWYG) {
editor.SwitchEditMode();
editor.SwitchEditMode();
break;
}
}
}
if (name) {
set_element(document.eTemplate,name,tab);
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,269 @@
%1 (%2 new) messages writen for application '%3' and languages '%4' etemplate pl %1 (z czego %2 nowych) Komunikatów zapisanych dla Aplikacji '%3' i Jêzyków '%4'
%1 etemplates deleted etemplate pl Usuniêto %1 e-Szablonów
%1 etemplates for application '%2' dumped to '%3' etemplate pl Zrzucono %1 e-Szablonów dla aplikacji '%2' do '%3'
%1 etemplates found etemplate pl Znaleziono %1 e-Szablonów
%1 matches on search criteria etemplate pl %1 spe³niaj±cych kryteria wyszukiwania
%1 new etemplates imported for application '%2' etemplate pl Zaimportowano %1 nowych e-Szablonów dla aplikacji '%2'
%s disabled etemplate pl %s wy³±czono
%s needed etemplate pl %s wymagane
%s notranslation etemplate pl %s bez t³umaczenia
%s onchange etemplate pl %s onChange (JS)
%s readonly etemplate pl %s tylko do odczytu
'%1' has an invalid format !!! etemplate pl '%1' jest w nieprawid³owym formacie!
'%1' is not a valid date !!! etemplate pl '%1' nie jest dat± w poprawnym formacie!
'%1' is not a valid floatingpoint number !!! etemplate pl '%1' nie jest poprawn± liczb± zmiennoprzecinkow±!
'%1' is not a valid integer !!! etemplate pl '%1' nie jest poprawn± liczb± ca³kowit±!
a pattern to be searched for etemplate pl wzorzec do wyszukania
accesskey etemplate pl Klawisz dostêpu
accesskeys can also be specified with an & in the label (eg. &name) etemplate pl Klawisz dostêpu mo¿e byæ równie¿ okre¶lony przez znak '&' w etykiecie (np. &Nazwa)
account contactdata etemplate pl Dane kontakowe dla konta
add a new column (after the existing ones) etemplate pl Dodaj now± kolumnê (za istniej±cymi)
add a new entry of the selected application etemplate pl Dodaj nowy wpis dla wybranej aplikacji
add a new multi-column index etemplate pl Dodaj nowy indeks wielokolumnowy
add column etemplate pl Dodaj kolumnê
add index etemplate pl Dodaj indeks
add new etemplate pl Dodaj nowy
add table etemplate pl Dodaj tablicê
advanced search etemplate pl Wyszukiwanie zaawansowane
align etemplate pl Wyrównanie
alignment of label and input-field in table-cell etemplate pl wyrównanie etykiety i pola wprowadzania w komórce tabeli
alignment of the v/hbox containing table-cell etemplate pl wyrównanie V/H Box, który zawiera komórkê tabeli
all days etemplate pl wszystkie dni
all operations save the template! etemplate pl wszystkie operacje prowadz± do zapisu wzorca
am etemplate pl przed po³udniem
an indexed column speeds up querys using that column (cost space on the disk !!!) etemplate pl kolumna indeksowana przyspiesza wyszukiwanie na tej kolumnie (zabiera przestrzeñ dyskow±!)
application etemplate pl Aplikacja
application name needed to write a langfile or dump the etemplates !!! etemplate pl Nazwa aplikacji, potrzebna w celu zapisania pliku jêzykowego lub zrzucenia e-Szablonów!
applies the changes made etemplate pl zatwierdza wykonane zmiany
applies the changes to the given version of the template etemplate pl zatwierdza wykonane zmiany dla podanej wersji szablonu
as default etemplate pl jako domy¶lny
attach etemplate pl Do³±cz
attach file etemplate pl do³±cz plik
border etemplate pl Ramka
cancel etemplate pl Anuluj
cant delete the only column of a grid !!! etemplate pl Nie mo¿na usun±æ jedynej kolumny z siatki!
cant delete the only row in a grid !!! etemplate pl Nie mo¿na usun±æ jedynego wiersza z siatki!
category etemplate pl Kategoria
cells etemplate pl Komórki
center etemplate pl Wy¶rodkowanie
changed etemplate pl Zmieniono
class etemplate pl Klasa
class, valign etemplate pl klasa, w pionie
click here to attach the file etemplate pl kliknij tutaj, aby do³±czyæ plik
click here to create the link etemplate pl kliknij tutaj, aby stworzyæ odno¶nik
click here to start the search etemplate pl kliknij tutaj, aby rozpocz±æ wyszukiwanie
click here to upload the file etemplate pl kliknij tutaj, aby przes³aæ plik
click to order after that criteria etemplate pl kliknij, aby uporz±dkowaæ dane wed³ug tego kryterium
closes the window without saving the changes etemplate pl zamyka okno bez zachowywania zmian
column... etemplate pl Kolumna...
columnname etemplate pl Nazwa kolumny
comment etemplate pl Komentarz
confirm etemplate pl zatwierd¼
contact etemplate pl Kontakt
contact field to show etemplate pl Pole kontaktu do wy¶wietlenia
contact fields etemplate pl Pola kontaktu
contains etemplate pl zawiera
create a new table for the application etemplate pl Tworzy now± tabelê dla aplikacji
css class for the table-tag etemplate pl klasa CSS dla znacznika tablicy
css properties etemplate pl ustawienia CSS
css-styles etemplate pl style CSS
custom etemplate pl niestandardowy
custom fields etemplate pl pola niestandardowe
custom javascript for onchange etemplate pl niestandardowy kod JS dla zdarzenia onChange
cut etemplate pl Wytnij
date+time etemplate pl Data+Czas
datum etemplate pl Data
day etemplate pl Dzieñ
days etemplate pl dni
db ensures that every row has a unique value in that column etemplate pl DBMS (baza danych) zapewnia, ¿e ka¿dy wiersz bêdzie posiada³ unikaln± warto¶æ w tej kolumnie
db-tools etemplate pl Narzêdzia bazodanowe
default etemplate pl Domy¶lnie
delete a single entry by passing the id. etemplate pl Usuñ jeden wpis wed³ug podanego id.
delete column etemplate pl Usuñ kolumnê
delete index etemplate pl Usuñ indeks
delete the spezified etemplate etemplate pl Usuñ wskazny e-Szablon
delete this column etemplate pl usuñ t± kolumnê
delete this etemplate etemplate pl usuñ ten e-Szablon
delete this file etemplate pl Usuñ ten plik
delete this row etemplate pl Usuñ ten wierwsz
delete whole column (can not be undone!!!) etemplate pl Usuñ ca³± kolumnê (nie mo¿na cofn±æ!)
deletes this column etemplate pl Usuñ t± kolumnê
deletes this index etemplate pl Usuñ ten indeks
discard changes etemplate pl porzuæ zmiany
documentation etemplate pl Dokumentacja
doesn't matter etemplate pl bez znaczenia
drop a table - this can not be undone etemplate pl Usuñ tabelê - czynno¶æ nie mo¿e byæ cofniêta!
drop table etemplate pl Usuñ tabelê
dump4setup etemplate pl ZrzuæDoSetup
duration etemplate pl Czas trwania
edit etemplate pl Edytuj
edit the etemplate spez. above etemplate pl Edytuj e-Szablon wskazany powy¿ej
edit... etemplate pl Edytuj...
editable templates - db-tools etemplate pl Edytor Szablonów - narzêdzia bazodanowe
editable templates - delete template etemplate pl Edytor Szablonów - usuñ szablon
editable templates - editor etemplate pl Edytor Szablonów - edytor
editable templates - search etemplate pl Edytor Szablonów - wyszukiwanie
editable templates - show template etemplate pl Edytor Szablonów - poka¿ szablon
enable javascript onchange submit etemplate pl aktywuj przes³anie formularza poprzez JS na onChange
enter a search pattern etemplate pl Podaje wzorzec wyszukiwania
enter filename to upload and attach, use [browse...] to search for it etemplate pl Podaj nazwê pliku do za³adowania i do³±czenia, u¿yj [Przegl±daj...] aby go wyszukaæ
enter the new version number here (> old_version), empty for no update-file etemplate pl Podaj nowy numer wersji (musi byæ wiêkszy ni¿ aktualny), pusta warto¶æ je¿eli nie chcesz aktualizowaæ pliku
enter the new version number here (has to be > old_version) etemplate pl Podaj nowy numer wersji (musi byæ wiêkszy ni¿ aktualny)
entry saved etemplate pl Wpis zachowany
error: template not found !!! etemplate pl B³±d: wzorzec nie znaleziony!
error: webserver is not allowed to write into '%1' !!! etemplate pl B³±d: demon serwera WWW nie mo¿e zapisywaæ do katalogu '%1'!
error: while saving !!! etemplate pl B³±d: podczas zapisywania!
error: writing file (no write-permission for the webserver) !!! etemplate pl B³±d: zapisywanie pliku nie powiod³o siê (brak uprawnieñ zapisu dla serwera WWW)!
etemplate common pl e-Szablon
etemplate '%1' imported, use save to put it in the database etemplate pl e-Szablon '%1' zaimportowano, u¿yj 'Zapisz' aby umie¶ciæ go w bazie danych
etemplate '%1' written to '%2' etemplate pl e-Szablon '%1' zapisano do '%2'
etemplate editor etemplate pl e-Szablon - edytor
etemplate reference etemplate pl e-Szablon - informator
etemplate tutorial etemplate pl e-Szablon - samouczek
exchange this row with the one above etemplate pl zamieñ ten wiersz z jego poprzednikiem
exchange this two columns etemplate pl zamieñ te dwie kolumny
export the loaded etemplate into a xml-file etemplate pl eksportuj za³adowany e-Szablon do pliku XML
export xml etemplate pl Eksportuj do XML
extensions loaded: etemplate pl Za³adowano rozszerzenia:
field etemplate pl Pole
field must not be empty !!! etemplate pl Powy¿sze pole nie mo¿e byæ puste!
file etemplate pl Plik
file contains more than one etemplate, last one is shown !!! etemplate pl Plik zawiera wiêcej ni¿ jeden e-Szablon - pokazany jest ostatni z nich!
file writen etemplate pl Plik zosta³ zapisany
floating point etemplate pl Liczba zmiennoprzecinkowa
foreign key etemplate pl Klucz obcy
formatted text (html) etemplate pl Tekst sformatowany (HTML)
go to the first entry etemplate pl id¼ do pierwszego wpisu
go to the last entry etemplate pl id¼ do ostatniego wpisu
go to the next page of entries etemplate pl id¼ do nastêpnej strony wpisów
go to the previous page of entries etemplate pl id¼ do poprzedniej strony wpisów
grid etemplate pl Siatka
grid column attributes etemplate pl Atrybuty kolumn siatki
grid row attributes etemplate pl Atrybuty wierszy siatki
height etemplate pl Wysoko¶æ
height, disabled etemplate pl Wysoko¶æ, wy³±czono
help etemplate pl Pomoc
hour etemplate pl Godzina
hours etemplate pl godziny
how many entries should the list show etemplate pl Jak du¿o wpisów powinna pokazywaæ lista
html etemplate pl HTML
image etemplate pl Obrazek
import etemplate pl Importuj
import an etemplate from a xml-file etemplate pl Importuj e-Szablon z pliku XML
import table-definitions from existing db-table etemplate pl Importuj definicjê tabel z istniej±cych tabel bazy danych
import xml etemplate pl Importuj z XML
increment version to not overwrite the existing template etemplate pl powiêksz numer wersji, aby nie nadpisaæ istniej±cego szablonu
indexed etemplate pl Indeksowana
indexoptions etemplate pl Opcje indeksu
insert a column before etemplate pl wstaw kolumnê przed
insert a column behind etemplate pl wstaw kolumnê po
insert a row above etemplate pl wstaw wiersz przed
insert a row below etemplate pl wstaw wierwsz po
insert a widget before etemplate pl wstaw element przed
insert a widget behind etemplate pl wstaw element po
insert new column behind this one etemplate pl wstaw now± kolumnê za bie¿±c±
insert new column in front of all etemplate pl wstaw now± kolumnê na pocz±tku
insert new row after this one etemplate pl wstaw nowy wiersz za bie¿±cym
insert new row in front of first line etemplate pl wstaw nowy wiersz na pocz±tku
integer etemplate pl Liczba ca³kowita
key etemplate pl Klucz
label etemplate pl Etykieta
lang etemplate pl Jêzyk
last etemplate pl Ostatni
link etemplate pl Odno¶nik
load this template into the editor etemplate pl za³aduj ten szablon do edytora
middle etemplate pl Wy¶rodkowany
minute etemplate pl Minuta
minutes etemplate pl minuty
month etemplate pl miesi±c
multicolumn indices etemplate pl Indeksy wielokolumnowe
name etemplate pl Nazwa
name of other table where column is a key from etemplate pl nazwa innej tabeli, w której kolumna jest kluczem
name of table to add etemplate pl Nazwa tabeli do dodania
name of the etemplate, should be in form application.function[.subtemplate] etemplate pl nazwa e-Szablonu powinna byæ w formie: application.function[.subTemplate]
new search etemplate pl Nowe wyszukiwanie
new table created etemplate pl Utworzono now± tabelê
newer version '%1' exists !!! etemplate pl nowsza wersja '%1' istnieje!
no filename given or selected via browse... etemplate pl nie podano nazwy pliku i nie wybrano jej
not null etemplate pl NOT NULL
nothing etemplate pl nic
nothing found - try again !!! etemplate pl Nic nie znaleziono - spróbuj ponownie.
nothing in clipboard to paste !!! etemplate pl Schowek pusty - nie mo¿na wkleiæ.
nothing matched search criteria !!! etemplate pl Brak elementów spe³niaj±cych kryteria.
of etemplate pl z
onchange etemplate pl onChange (JS)
onclick etemplate pl onClick (JS)
options etemplate pl Opcje
order to navigating by tab key through the form etemplate pl Porz±dek nawigacji klawiszem 'TAB' w formularzu
overflow etemplate pl Przepe³nienie
padding etemplate pl Wype³nienie
parent is a '%1' !!! etemplate pl nadrzêdny jest '%1'!
paste etemplate pl Wklej
path etemplate pl ¦cie¿ka
please enter table-name first !!! etemplate pl Proszê wpierw wprowadziæ nazwê tabeli!
pm etemplate pl po po³udniu
popup etemplate pl Okno pop-up
precision etemplate pl Dok³adno¶æ (d³ugo¶æ)
primary key etemplate pl Klucz g³ówny
primary key for the table, gets automaticaly indexed etemplate pl Klucz g³ówny dla tabeli, zostaje automatycznie indeksowany
read etemplate pl Odczytaj
read a list of entries. etemplate pl Odczytaj lstê wpisów.
read a single entry by passing the id and fieldlist. etemplate pl Odczytaj pojedynczy wpis, podaj±c ID oraz listê pól
read etemplate from database (for the keys above) etemplate pl odczytaj e-Szablon z bazy danych (dla powy¿szych kluczy)
readonly etemplate pl tylko do odczytu
remove row (can not be undone!!!) etemplate pl usuñ wiersz (nie mo¿na cofn±æ!)
remove this link (not the entry itself) etemplate pl usuñ ten odno¶nik (ale nie wpis)
row... etemplate pl Wiersz...
save selected columns as default preference for all users. etemplate pl Zachowaj wybrane kolumny w formie domy¶lnej preferencji dla wszystkich u¿ytkowników.
save the changes made and close the window etemplate pl Zachowuje zmiany i zamyka okno
scale etemplate pl Skala
select a primary contact, to show in the list etemplate pl Wybierz podstawowy kontakt, który bêdzie pokazywany na li¶cie
select access etemplate pl Wybierz rodzaj dostêpu
select account etemplate pl Wybierz konto
select day of week etemplate pl wybierz dzieñ tygodnia
select language etemplate pl Wybierz jêzyk
select priority etemplate pl Wybierz priorytet
select which accounts to show etemplate pl wybierz konta, które maj± byæ pokazane
select which values to show etemplate pl wybierz warto¶ci, które maj± byæ pokazane
select year etemplate pl Wybierz rok
should the form be submitted or any custom javascript be executed etemplate pl Czy formularz powinien byæ przes³any czy bêdzie wykonywany kod JavaScript?
show etemplate pl Poka¿
show (no save) etemplate pl Poka¿ (bez zapisu)
show values etemplate pl Poka¿ warto¶ci
showing etemplate pl Wy¶wietlono
submit form etemplate pl prze¶lij formularz
submitbutton etemplate pl Przycisk przes³ania formularza
swap etemplate pl zamieñ
swap widget with next one etemplate pl zamieñ obiekt z kolejnym
swap with next column etemplate pl zamieñ z nastêpn± kolumn±
swap with next row etemplate pl zamieñ z nastêpnym wierszem
switch to a parent widget etemplate pl skocz to obiektu nadrzêdnego
switch to an other widgets of that container etemplate pl skocz do innych obiektów z tego kontenera
tabindex etemplate pl Indeks porz±dku (TAB)
table unchanged, no write necessary !!! etemplate pl Tabale nie zosta³a zmieniona, zapis nie jest wymagany!
tablename etemplate pl Nazwa tabeli
tabs etemplate pl Zak³adki
template etemplate pl Szablon
template deleted etemplate pl Szablon usuniêto
template saved etemplate pl Szablon zapisano
time etemplate pl Czas
to start the db-tools etemplate pl aby uruchomiæ narzêdzie bazodanowe
to start the etemplate editor etemplate pl aby uruchomiæ edytor e-Szablonów
to start the search etemplate pl aby uruchomiæ wyszukiwanie
today etemplate pl Dzisiaj
type of the column etemplate pl typ kolumny
unique etemplate pl Unikalna
valign etemplate pl w pionie
value etemplate pl Warto¶æ
value has to be at least '%1' !!! etemplate pl Warto¶æ musi byæ przynajmniej '%1'!
value has to be at maximum '%1' !!! etemplate pl Warto¶æ musi byæ co najwy¿ej '%1'!
version etemplate pl Wersja
weekend etemplate pl weekend
widget copied into clipboard etemplate pl Obiekt skopiowano do schowka
width etemplate pl Szeroko¶æ
width of column (in % or pixel) etemplate pl szeroko¶æ kolumny (w procentach lub pikselach)
working days etemplate pl dni robocze
write langfile etemplate pl Zapisz plik jêzyka
write tables etemplate pl Zapisz tabele
xslt template etemplate pl Szablon XSLT
year etemplate pl Rok

View File

@ -386,7 +386,7 @@ class uiinfolog
elseif ($own_referer === '')
{
$own_referer = $GLOBALS['egw']->common->get_referer();
if (strstr($own_referer,'menuaction=infolog.uiinfolog.edit'))
if (strpos($own_referer,'menuaction=infolog.uiinfolog.edit') !== false)
{
$own_referer = $GLOBALS['egw']->session->appsession('own_session','infolog');
}
@ -532,7 +532,7 @@ class uiinfolog
$pref = 'nextmatch-infolog.index.rows'.($values['nm']['filter2']=='all'?'-details':'');
foreach(array('info_used_time_info_planned_time','info_datemodified','info_owner_info_responsible') as $name)
{
$values['main']['no_'.$name] = strstr($this->prefs[$pref],$name) === false;
$values['main']['no_'.$name] = strpos($this->prefs[$pref],$name) === false;
}
}
$values['nm']['header_right'] = 'infolog.index.header_right';
@ -764,7 +764,7 @@ class uiinfolog
$this->link->link('infolog',$info_id,$content['link_to']['to_id']);
$content['link_to']['to_id'] = $info_id;
}
if ($info_link_id && strstr($info_link_id,':') !== false) // updating info_link_id if necessary
if ($info_link_id && strpos($info_link_id,':') !== false) // updating info_link_id if necessary
{
list($app,$id) = explode(':',$info_link_id);
$link = $this->link->get_link('infolog',$info_id,$app,$id);

View File

@ -12,7 +12,7 @@
70% infolog pl 70%
80% infolog pl 80%
90% infolog pl 90%
<b>file-attachments via symlinks</b> instead of uploads and retrieval via file:/path for direct lan-clients infolog pl <b>za³±czniki poprzez symlinks</b> zamiast ³adowania i pobierania poprzez file:/path dla bezpo¶rednich klientów w sieci
<b>file-attachments via symlinks</b> instead of uploads and retrieval via file:/path for direct lan-clients infolog pl <b>za³±czniki poprzez odno¶niki symboliczne (symlink)</b> zamiast ³adowania i pobierania poprzez file:/path dla bezpo¶rednich klientów w sieci
a short subject for the entry infolog pl krótki temat tego wpisu
abort without deleting infolog pl Anuluj bez kasowania
accept infolog pl Akceptuj
@ -36,6 +36,7 @@ apply the changes infolog pl Zastosuj zmiany
are you shure you want to delete this entry ? infolog pl Na pewno usun±æ ten wpis?
attach a file infolog pl Do³±cz plik
attach file infolog pl Do³±cz plik
attension: no contact with address %1 found. infolog pl Uwaga: nie znaleziono kontaktu z adresem %1.
back to main list infolog pl Wróæ do g³ównej listy
billed infolog pl rozliczony
both infolog pl Oba
@ -47,7 +48,8 @@ category infolog pl Kategoria
change the status of an entry, eg. close it infolog pl Zmieñ status wpisu, np. zakoñcz go
charset of file infolog pl Kodowanie pliku (charset)
check to set startday infolog pl check to set startday
click here to create the link infolog pl kliknij tutaj aby stworzyæ link
check to specify custom contact infolog pl Zaznacz, aby okre¶liæ niestandardowy kontakt
click here to create the link infolog pl kliknij tutaj aby stworzyæ odno¶nik
click here to start the search infolog pl kliknij tutaj aby rozpocz±æ szukanie
close infolog pl Zamknij
comment infolog pl Komentarz
@ -55,6 +57,7 @@ completed infolog pl Wykonany
configuration infolog pl Konfiguracja
confirm infolog pl Potwierdzenie
contact infolog pl Kontakt
copy your changes to the clipboard, %1reload the entry%2 and merge them. infolog pl Kopiuje Twoje zmiany do schowka, %1od¶wie¿a zawarto¶æ wpisu%2 i ³±czy je ze sob±.
create new links infolog pl Tworzy nowe linki
creates a new field infolog pl stwórz nowe pole
creates a new status with the given values infolog pl tworzy nowy status o podanej warto¶ci
@ -64,14 +67,15 @@ csv-fieldname infolog pl Nazwa pola CVS
csv-filename infolog pl Nazwa pliku CVS
csv-import common pl Import CVS
custom infolog pl W³asne
custom contact-address, leave empty to use information from most recent link infolog pl W³asne dane adresowe dla kontaktu, zostaw puste aby u¿yc informacji z dodawanego linku
custom contact-information, leave emtpy to use information from most recent link infolog pl W³asna informacja dla kontaktu, zostaw puste aby u¿yc informacji z dodawanego linku
custom contact-address, leave empty to use information from most recent link infolog pl W³asne dane adresowe dla kontaktu, zostaw puste aby u¿yæ informacji z dodawanego linku
custom contact-information, leave emtpy to use information from most recent link infolog pl W³asna informacja dla kontaktu, zostaw puste aby u¿yæ informacji z dodawanego linku
custom fields infolog pl Pola w³asne
custom fields, typ and status common pl Typ i status pola w³asnego
custom regarding infolog pl Custom regarding
custom status for typ infolog pl W³asny status dla typu
customfields infolog pl Polaw³asne
date completed infolog pl Data wykonania
date completed (leave it empty to have it automatic set if status is done or billed) infolog pl Data wykonania (pozostaw puste aby zosta³o wype³nione automatycznie przy zmianie statusu na "zakoñczony"
datecreated infolog pl Data utworzenia
dates, status, access infolog pl daty, statusy i dostêp
days infolog pl dni
@ -89,7 +93,8 @@ deletes this status infolog pl kasuje ten status
description infolog pl Opis
determines the order the fields are displayed infolog pl okre¶la kolejno¶æ wy¶wietlania pól
disables a status without deleting it infolog pl wy³±cza status bez kasowania go
do you want a confirmation of the responsible on: accepting, finishing the task or both infolog pl czy chcesz potwierdzenia osoby odpowiedzialnej do: akceptacji, zakoñczenia zadania lub obbydwu?
do you want a confirmation of the responsible on: accepting, finishing the task or both infolog pl czy chcesz potwierdzenia osoby odpowiedzialnej do: akceptacji, zakoñczenia zadania lub obydwu?
do you want to see custome infolog types in the calendar? infolog pl Czy chcesz ogl±daæ niestandardowe typy Dziennika CRM w kalendarzu?
don't show infolog infolog pl NIE pokazuj InfoLog
done infolog pl Gotowe
download infolog pl Pobierz
@ -97,6 +102,7 @@ duration infolog pl Czas trwania
each value is a line like <id>[=<label>] infolog pl ka¿da warto¶c jest lini±, jak <id>[=<nazwa>]
edit infolog pl Edycja
edit or create categories for ingolog infolog pl Edytuj lub twórzy kategorie dla CRM Dziennik
edit rights (full edit rights incl. making someone else responsible!) infolog pl edytuj uprawnienia (pe³ne prawa edycji zawieraj± m.in. prawo wyznaczenia innej osoby odpowiedzialnej!)
edit status infolog pl Edytuj status
edit the entry infolog pl Edytuj wpis
edit this entry infolog pl Edytuj ten wpis
@ -104,10 +110,12 @@ empty for all infolog pl puste dla wszystkich
enddate infolog pl Koniec
enddate can not be before startdate infolog pl Data zakoñczenia nie mo¿e byæ wcze¶niejsza od daty rozpoczêcia
enter a custom contact, leave empty if linked entry should be used infolog pl wprowad¼ kontakt; zostaw puste, je¿eli maj± byæ u¿yte dane podlinkowanego kontaktu
enter a custom phone/email, leave empty if linked entry should be used infolog pl wprowad¼ telefon/email; zostaw puste, je¿eli maj± byæ u¿yte dane podlinkowanego kontaktu
enter a textual description of the log-entry infolog pl wprowadx tekstowy opis lugu wpisu
enter a custom phone/email, leave empty if linked entry should be used infolog pl wprowad¼ telefon/e-mail; zostaw puste, je¿eli maj± byæ u¿yte dane podlinkowanego kontaktu
enter a textual description of the log-entry infolog pl wprowad¼ tekstowy opis logu wpisu
enter the query pattern infolog pl Wprowad¼ wzorzec zapytania
entry and all files infolog pl Wej¶cie i wszystkie pliki
error: saving the entry infolog pl B³±d przy zapisywaniu zadania
error: the entry has been updated since you opened it for editing! infolog pl B³±d: zadanie zosta³o zaktualizowane odk±d otworzy³e¶ je do edycji!
existing links infolog pl Istniej±ce linki
fax infolog pl Fax
fieldseparator infolog pl Separator pól
@ -115,8 +123,11 @@ finish infolog pl Koniec
for which types should this field be used infolog pl dla jakich typów to pole bêdzie uzywane
from infolog pl Od
general infolog pl Ogólnie
group owner for infolog pl W³a¶ciciel grupowy dla
high infolog pl wysoki
id infolog pl id
if a type has a group owner, all entries of that type will be owned by the given group and not the user who created it! infolog pl Je¿eli typ ma w³a¶ciciela grupowego, wszystkie zadania tego typu bêd± w³asno¶ci± okre¶lonej grupy ZAMIAST u¿ytkownika, który je utworzy³!
if not set, the line with search and filters is hidden for less entries then "max matches per page" (as defined in your common preferences). infolog pl Je¿eli nie zaznaczone, wiersz z opcjami wyszukiwania oraz filtrami jest ukrywany dla mniejszej liczby zadañ ni¿ "po ile wy¶wietlaæ na stronie" (zgodnie z warto¶ci± ze wspólnych ustawieñ aplikacji).
import infolog pl Import
import next set infolog pl importuj nastepny zestaw
info log common pl CRM Dziennik
@ -129,6 +140,7 @@ infolog - new subproject infolog pl CRM Dziennik - Nowy podprojekt
infolog - subprojects from infolog pl CRM Dziennik - Podprojekt z
infolog entry deleted infolog pl Wpis nfoLog skasowany
infolog entry saved infolog pl Wpis InfoLog zapisany
infolog filter for the main screen infolog pl Filtr dziennika na stronê g³ówn±
infolog list infolog pl CRM Dziennik lista
infolog preferences common pl CRM Dziennik preferencje
infolog-fieldname infolog pl CRM Dziennik - Nazwa pola
@ -136,6 +148,7 @@ invalid filename infolog pl Niepoprawna nazwa pliku
label<br>helptext infolog pl Etykieta<br>Tekst pomocy
last changed infolog pl Ostatnia zmiana
last modified infolog pl Ostatnio modyfikowany
leave it empty infolog pl zostaw puste
leave without saveing the entry infolog pl cofnij bez zapisywania wpisu
leaves without saveing infolog pl cofnij bez zapisywania
length<br>rows infolog pl D³ugo¶æ<br>Linie
@ -150,9 +163,11 @@ low infolog pl niski
max length of the input [, length of the inputfield (optional)] infolog pl maksymalna d³ugo¶æ wprowadzanego tekstu [, d³ugo¶æ pola (opcjonalnie)]
name must not be empty !!! infolog pl Nazwa nie mo¿e byæ pusta!!!
name of new type to create infolog pl nazwa nowego tworzonego typu
never hide search and filters infolog pl Nigdy nie ukrywaj pól wyszukiwania i filtrów
new name infolog pl nowa nazwa
new search infolog pl Nowe wyszukiwanie
no - cancel infolog pl Nie - Anuluj
no describtion, links or attachments infolog pl brak opisu, odno¶ników lub za³±czników
no details infolog pl bez szczegó³ów
no entries found, try again ... infolog pl nie znaleziono wpisów, spróbuj jeszcze raz
no filter infolog pl Bez filtra
@ -164,9 +179,10 @@ not assigned infolog pl Nie przypisano
not-started infolog pl nie rozpoczêty
note infolog pl Notatka
number of records to read (%1) infolog pl Liczba rekordów do wczytania (%1)
number of row for a multiline inputfield or line of a multi-select-box infolog pl ilo¶æ wierszy dla pól ³adowania plików lub linii multi-select-box-a
number of row for a multiline inputfield or line of a multi-select-box infolog pl ilo¶æ wierszy dla pól sk³adaj±cych siê z wielu linijek lub zespo³u boksów wielokrotnego wyboru
offer infolog pl oferta
ongoing infolog pl W toku
only for details infolog pl Tylko dla szczegó³ów
only the attachments infolog pl tylko za³±czniki
only the links infolog pl tylko linki
open infolog pl otwarte
@ -178,9 +194,11 @@ own open infolog pl w
own overdue infolog pl w³asne przeterminowane
own upcoming infolog pl w³asne nadchodz±ce
path on (web-)serverside<br>eg. /var/samba/share infolog pl ¶cie¿ka na (web-)serwerze<br>np. /var/samba/Share
path to user and group files has to be outside of the webservers document-root!!! infolog pl Scie¿ka do u¿ytkownika i grupy MUSI BYÆ POZA rootem dokumentów www (document-root)!!!
path to user and group files has to be outside of the webservers document-root!!! infolog pl ¦cie¿ka do u¿ytkownika i grupy MUSI BYÆ POZA rootem dokumentów www (document-root)!!!
pattern for search in addressbook infolog pl wzorzec poszukiwania w ksi±¿ce adresowej
pattern for search in projects infolog pl wzorzec poszukiwania w projektach
percent completed infolog pl Stopieñ zaawansowania
permission denied infolog pl Dostêp zabroniony
phone infolog pl Rozmowa telefoniczna
phone/email infolog pl Telefon/Email
phonecall infolog pl Telefon
@ -193,11 +211,13 @@ project infolog pl Projekt
project settings: price, times infolog pl Ustawienia projektu: cena, terminy
re: infolog pl Odp:
read one record by passing its id. infolog pl Odczytaj jeden rekord przekazuj±c jego id.
reg. expr. for local ip's<br>eg. ^192\.168\.1\. infolog pl reg. expr. dla lokalnych IP<br>eg. ^192\.168\.1\.
read rights (default) infolog pl prawda odczytu (domy¶lne)
reg. expr. for local ip's<br>eg. ^192\.168\.1\. infolog pl wyra¿enie regularne dla lokalnych IP<br>np. ^192\.168\.1\.
remark infolog pl Przypomnienie
remove this link (not the entry itself) infolog pl Usuñ ten link (ale nie wpis)
responsible infolog pl Osoba odpowiedzialna
returns a list / search for records. infolog pl Pokazuje listê wyszukanych rekordów
rights for the responsible infolog pl Uprawnienia do osoby odpowiedzialnej
save infolog pl Zapisz
saves the changes made and leaves infolog pl zapisuje zmiany i wychodzi
saves this entry infolog pl Zapisujê ten wpis
@ -208,37 +228,50 @@ select a category for this entry infolog pl wybierz kategori
select a price infolog pl Wybierz cenê
select a priority for this task infolog pl wybierz priorytet dla tego zadania
select a project infolog pl Wybierz projekt
select a responsible user: a person you want to delegate this task infolog pl wybierz osobe odpowiedzialn±: osobê, któr± delegujesz do tego zadania
select a responsible user: a person you want to delegate this task infolog pl wybierz osobê odpowiedzialn±: osobê, któr± delegujesz do tego zadania
select a typ to edit it's status-values or delete it infolog pl wybierz typ, którego statusy-warto¶ci chcesz edytowaæ lub skasowaæ.
select an app to search in infolog pl Wybierz Aplikacjê aby w niej szukaæ
select an entry to link with infolog pl Wybierz wpis z którym po³±czysz
select to filter by owner infolog pl wybierz aby sortowaæ po w³a¶cicielu
select to filter by responsible infolog pl wybierz aby sortowaæ po osobie odpowiedzialnej
sets the status of this entry and its subs to done infolog pl Ustaw stan wpisu i jego wpisów podrzêdnych na "gotowy".
should infolog show subtasks, -calls or -notes in the normal view or not. you can always view the subs via there parent. infolog pl Czy Dziennik CRM ma w domy¶lnym widoku wy¶wietlaæ wszystkie Zadania, Rozmowy i Notatki podrzêdne? Mo¿esz zawsze dotrzeæ do nich poprzez ich <i>rodzica</i>.
should infolog show the links to other applications and/or the file-attachments in the infolog list (normal view when you enter infolog). infolog pl Czy Dziennik CRM powinien pokazywaæ odno¶niki do innych aplikacji oraz/lub za³±czone pliki na li¶cie zadañ (domy¶lny widok gdy uruchamiany jest Dziennik CRM)?
should infolog show up on the main screen and with which filter. works only if you dont selected an application for the main screen (in your preferences). infolog pl Czy Dziennik CRM powinien pokazywaæ zadania na g³ównym ekranie a je¿eli tak, to z jakim filtrem. Dzia³a tylko, je¿eli nie wybrano aplikacji na g³ówny ekran (we wspólnych ustawieniach).
should infolog use full names (surname and familyname) or just the loginnames. infolog pl Czy CRM - Dziennik ma u¿ywaæ pe³nych danych osobowych (imiê, nazwisko), czy tylko loginów.
should this entry only be visible to you and people you grant privat access via the acl infolog pl czy ten wpis ma byæ widoczny tylko przez Ciebie i innych, którym zapewnisz dostêp porzez ACL
should the calendar show custom types too infolog pl Czy pokazywaæ osobiste typy w kalendarzu
should the infolog list show a unique numerical id, which can be used eg. as ticket id. infolog pl Czy na li¶cie zadañ Dziennika CRM pokazywaæ unikalny identyfikator numeryczny, który mo¿e byæ u¿ywany np. jako numer kolejny zadania?
should the infolog list show the column "last modified". infolog pl Czy na li¶cie zadañ Dziennika CRM pokazywaæ kolumnê "ostatnio zmodyfikowany"?
should the infolog list show the percent done only for status ongoing or two separate icons. infolog pl Czy na li¶cie zadañ Dziennika CRM pokazywaæ stopieñ zaawansowania tylko dla zadañ "w toku", czy zawsze dwie osobne ikony?
should this entry only be visible to you and people you grant privat access via the acl infolog pl czy ten wpis ma byæ widoczny tylko przez Ciebie i innych, którym zapewnisz dostêp poprzez ACL
show a column for used and planned times in the list. infolog pl Czy pokazywaæ kolumnê z wykorzystanym oraz planowanym czasem na li¶cie zadañ?
show full usernames infolog pl Wy¶wietlaj pe³n± nazwê u¿ytkownika
show in the infolog list infolog pl Poka¿ listê CRM Dziennik
show last modified infolog pl Poka¿ ostatni zmodyfikowany
show status and percent done separate infolog pl Poka¿ osobno status i stopieñ zaawansowania
show ticket id infolog pl Poka¿ identyfikator
show times infolog pl Poka¿ terminy
small view infolog pl widok uproszczony
start a new search, cancel this link infolog pl zacznij nowe wyszukiwanie, anuluj ten link
startdate infolog pl Pocz±tek
startdate enddate infolog pl Data pocz±tku, data zakoñczenia
startdate for new entries infolog pl Data rozpoczêcia dla nowych zadañ
startrecord infolog pl Pocz±tkowy rekord
status infolog pl Status
status ... infolog pl Status ...
sub infolog pl Podrz.
sub-entries become subs of the parent or main entries, if there's no parent infolog pl Zadani s± podrzêdne wobec zadañ, z których je utworzono lub g³ównych zadañ, je¿eli zadania z których je utworzono nie istniej±.
subject infolog pl Temat
task infolog pl Zadanie
test import (show importable records <u>only</u> in browser) infolog pl Import testowy (pokazuje importowane rekordy <u>tylko</u> w przegl±darce!)
the name used internaly (<= 10 chars), changeing it makes existing data unavailible infolog pl nazwa u¿yta wewntêtrznie (<= 10 znaków), zmiana spowoduje niedostêpno¶æ istniej±cych danych
the name used internaly (<= 20 chars), changeing it makes existing data unavailible infolog pl nazwa u¿yta wewntêtrznie (<= 20 znaków), zmiana spowoduje niedostêpno¶æ istniej±cych danych
the name used internaly (<= 10 chars), changeing it makes existing data unavailible infolog pl nazwa u¿yta wewnêtrznie (<= 10 znaków), zmiana spowoduje niedostêpno¶æ istniej±cych danych
the name used internaly (<= 20 chars), changeing it makes existing data unavailible infolog pl nazwa u¿yta wewnêtrznie (<= 20 znaków), zmiana spowoduje niedostêpno¶æ istniej±cych danych
the text displayed to the user infolog pl tekst wy¶wietlany u¿ytkownikowi
this is the filter infolog uses when you enter the application. filters limit the entries to show in the actual view. there are filters to show only finished, still open or futures entries of yourself or all users. infolog pl Ten filtr jest domy¶lnie u¿ywany przez CRM Dziennik po wej¶ciu do aplikacji. Filtry ograniczaj± ilo¶æ wpisów w bie¿±cym widoku. Dostepne filtry pokazuj± tylko zakoñczone, wci±¿ otwarte lub nadchodz±ce wydarzenia, Twoje lub wszystkich u¿ytkowników.
til when should the todo or phonecall be finished infolog pl do kiedy powinno byæ zakoñczone Dadanie lub Rozmowa tel.
times infolog pl Terminy
to many might exceed your execution-time-limit infolog pl zbyt wiele mo¿e spowodowaæ przekroczenie czasu wykonywania
to what should the startdate of new entries be set. infolog pl Jak± warto¶æ ustawiæ jako datê pocz±tkow± dla nowych zadañ?
today infolog pl Dzisiaj
todays date infolog pl Dzisiejsza data
todo infolog pl Do zrobienia
@ -247,11 +280,13 @@ typ infolog pl Typ
typ '%1' already exists !!! infolog pl Typ %1 ju¿ istnieje !!!
type infolog pl Typ
type ... infolog pl Typ ..
type of customfield infolog pl Typ pola dodatkowego
type of the log-entry: note, phonecall or todo infolog pl Typ wpisu: Notatka, Rozmowa tel. lub Zadanie
unlink infolog pl Od³±cz
upcoming infolog pl nadchodz±ce
urgency infolog pl pilno¶æ
urgent infolog pl pilne
used time infolog pl wykorzystany czas
valid path on clientside<br>eg. \\server\share or e:\ infolog pl poprawna ¶cie¿ka po stronie u¿ytkownika<br>np. \\Server\Share lub e:\
values for selectbox infolog pl Warto¶ci selectboxa
view all subs of this entry infolog pl Zoabcz wszystkie podrzêdne dla tego wpisu
@ -261,9 +296,12 @@ view subs infolog pl zobacz podrz
view the parent of this entry and all his subs infolog pl Zoabcz rodzica tego wpisu i wszystkie wpisy podrzêdne
view this linked entry in its application infolog pl zoabcz podlinkowany wpis w jego aplikacji (np. w Ksi±¿ce Adresowej dla kontaktu)
when should the todo or phonecall be started, it shows up from that date in the filter open or own open (startpage) infolog pl kiedy zadanie lub telefon powinno wystartowaæ, to pokazuje z tej daty w filtrze otwartym lub jego otwartym (strona startowa)
which additional fields should the responsible be allowed to edit without having edit rights?<br />status, percent and date completed are always allowed. infolog pl Które dodatkowe pola powinna móc edytowaæ osoba odpowiedzialna nie posiadaj±c praw edycji? <br />Status, stopieñ zaawansowania oraz data wykonania s± zawsze mo¿liwe do edycji.
which implicit acl rights should the responsible get? infolog pl Które prawa ACL powinna otrzymaæ niejawnie osoba odpowiedzialna?
will-call infolog pl zadzwoni
write (add or update) a record by passing its fields. infolog pl Zapisz (dodaj lub uaktualnij) zapis przez przechodzenie po jego polach
yes - delete infolog pl Tak - Usuñ
yes - delete including sub-entries infolog pl Tak - Usuñ wraz z podrzêdnymi
you can't delete one of the stock types !!! infolog pl Nie mo¿esz usun±æ jesdnego z typów!!!
you have entered an invalid ending date infolog pl Poda³e¶ niepoprawn± datê zakoñczenia
you have entered an invalid starting date infolog pl Poda³e¶ niepoprawn± datê rozpoczêcia

View File

@ -83,10 +83,16 @@ class jscalendar
$date = adodb_date($this->dateformat,$ts = adodb_mktime(12,0,0,$month,$day,$year));
if (strpos($this->dateformat,'M') !== false)
{
static $substr;
if (is_null($substr)) $substr = function_exists('mb_substr') ? 'mb_substr' : 'substr';
static $chars_shortcut;
if (is_null($chars_shortcut)) $chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end
$short = lang(adodb_date('M',$ts)); // check if we have a translation of the short-cut
if (substr($short,-1) == '*') // if not generate one by truncating the translation of the long name
if ($substr($short,-1) == '*') // if not generate one by truncating the translation of the long name
{
$short = substr(lang(adodb_date('F',$ts)),0,(int) lang('3 number of chars for month-shortcut'));
$short = $chars_shortcut > 0 ? $substr(lang(adodb_date('F',$ts)),0,$chars_shortcut) :
$substr(lang(adodb_date('F',$ts)),$chars_shortcut);
}
$date = str_replace(adodb_date('M',$ts),$short,$date);
}

View File

@ -136,7 +136,7 @@
if(!isset($this->ldapServerInfo[$host])) {
//error_log("no ldap server info found");
$ldapbind = ldap_bind($this->ds, $GLOBALS['egw_info']['server']['ldap_root_dn'], $GLOBALS['egw_info']['server']['ldap_root_pw']);
$ldapbind = @ldap_bind($this->ds, $GLOBALS['egw_info']['server']['ldap_root_dn'], $GLOBALS['egw_info']['server']['ldap_root_pw']);
$filter='(objectclass=*)';
$justthese = array('structuralObjectClass','namingContexts','supportedLDAPVersion','subschemaSubentry');
@ -208,14 +208,13 @@
$ldapServerInfo = $this->ldapServerInfo[$host];
}
if(!ldap_bind($this->ds, $dn, $passwd)) {
if(!@ldap_bind($this->ds, $dn, $passwd)) {
if(is_object($GLOBALS['egw']->log)) {
$GLOBALS['egw']->log->message('F-Abort, Failed binding to LDAP server');
$GLOBALS['egw']->log->commit();
}
printf("<b>Error: Can't bind to LDAP server: %s!</b><br>",$dn);
echo function_backtrace(1);
printf("<b>Error: Can't bind to LDAP server: %s!</b> %s<br />",$dn,function_backtrace(1));
return False;
}

View File

@ -82,22 +82,28 @@ class uiaccountsel extends accounts
* @param array/int $selected user-id or array of user-id's which are already selected
* @param string $use 'accounts', 'groups', 'owngroups', 'both' or app-name for all accounts with run-rights.
* If an '+' is appended to the app-name, one can also select groups with run-rights for that app.
* @param int $lines number of lines for multiselection or 0 for a single selection
* @param int $lines > 1 number of lines for multiselection, 0 for a single selection,
* < 0 or 1(=-4) single selection which can be switched to a multiselection by js abs($lines) is size
* (in that case accounts should be an int or contain only 1 user-id)
* @param int/array $not user-id or array of user-id's not to display in selection, default False = display all
* @param string $options additional options (e.g. style)
* @param string $onchange javascript to execute if the selection changes, eg. to reload the page
* @param array/bool/string $select array with id's as keys or values. If the id is in the key and the value is a string,
* it gets appended to the user-name. Or false if the selectable values for the selectbox are determined by use.
* Or a string which gets added as first Option with value=0, eg. lang('all'), can also be specified in the array with key ''
* Or a string which gets added as first Option with value='', eg. lang('all'), can also be specified in the array with key ''
* @param boolean $nohtml if true, returns an array with the key 'selected' as the selected participants,
* and with the key 'participants' as the participants data as would fit in a select.
* @return string/array string with html for !$nohtml, array('selected' => $selected,'participants' => $select)
*/
function selection($name,$element_id,$selected,$use='accounts',$lines=0,$not=False,$options='',$onchange='',$select=False,$nohtml=false)
{
//echo "<p align=right>uiaccountsel::selection('$name',".print_r($selected,True).",'$use',$lines,$not,'$options','$onchange',".print_r($select,True).") account_selection=$this->account_selection</p>\n";
//echo "<p align=right>uiaccountsel::selection('$name',".print_r($selected,True).",'$use',rows=$lines,$not,'$options','$onchange',".print_r($select,True).") account_selection=$this->account_selection</p>\n";
$multi_size=4;
if ($lines < 0)
{
$multi_size = abs($lines);
$lines = 1;
}
if ($this->account_selection == 'none') // dont show user-selection at all!
{
return $this->html->input_hidden($name,$selected);
@ -237,7 +243,7 @@ class uiaccountsel extends accounts
));
$popup_options = 'width=600,height=400,toolbar=no,scrollbars=yes,resizable=yes';
$app = $GLOBALS['egw_info']['flags']['currentapp'];
if ($lines <= 1 && $use != 'groups' && $use != 'owngroups' && $account_sel != 'groupmembers' && $account_sel != 'selectbox')
if ($lines <= 1 && $this->account_selection == 'popup' || !$lines && $this->account_selection == 'primary_group')
{
if (!$lines)
{
@ -273,17 +279,29 @@ class uiaccountsel extends accounts
//echo "<p>html::select('$name',".print_r($selected,True).",".print_r($select,True).",True,'$options')</p>\n";
$html = $this->html->select($name,$selected,$select,True,$options.' id="'.$element_id.'"',$lines > 1 ? $lines : 0);
if ($lines > 0 && ($this->account_selection == 'popup' || $this->account_selection == 'primary_group'))
if ($lines > 0 && $this->account_selection == 'popup' || $lines > 1 && $this->account_selection == 'primary_group')
{
$html .= $this->html->submit_button('search','Search',"window.open('$link','uiaccountsel','$popup_options'); return false;",false,
' title="'.$this->html->htmlspecialchars($lines > 1 ? lang('search or select accounts') : lang('search or select multiple accounts')).'"',
'users','phpgwapi');
$js = "window.open('$link','uiaccountsel','$popup_options'); return false;";
$html .= $this->html->submit_button('search','Search accounts',$js,false,
' title="'.$this->html->htmlspecialchars(lang('Search accounts')).'"','search','phpgwapi');
$need_js_popup = True;
}
if ($lines == 1 && $this->account_selection == 'selectbox')
elseif ($lines == 1 || $lines > 0 && $this->account_selection == 'primary_group')
{
$html .= '<a href="#" onclick="'."if (selectBox = document.getElementById('$element_id')) { selectBox.size=4; selectBox.multiple=true; } return false;".'">'.
$this->html->image('phpgwapi','users',lang('select multiple accounts')).'</a>';
$js = "if (selectBox = document.getElementById('$element_id')) if (!selectBox.multiple) {selectBox.size=$multi_size; selectBox.multiple=true; if (selectBox.options[0].value=='') selectBox.options[0] = null;";
if (!in_array($this->account_selection,array('groupmembers','selectbox'))) // no popup!
{
$js .= " this.src='".$GLOBALS['egw']->common->image('phpgwapi','search')."'; this.title='".
$this->html->htmlspecialchars(lang('Search accounts'))."';} else {window.open('$link','uiaccountsel','$popup_options');";
$need_js_popup = True;
}
else
{
$js .= " this.style.display='none'; selectBox.style.width='100%';";
}
$js .= "} return false;";
$html .= $this->html->submit_button('search','Select multiple accounts',$js,false,
' title="'.$this->html->htmlspecialchars(lang('Select multiple accounts')).'"','users','phpgwapi');
}
if($need_js_popup && !$GLOBALS['egw_info']['flags']['uiaccountsel']['addOption_installed'])
{
@ -293,20 +311,17 @@ function addOption(id,label,value,do_onchange)
selectBox = document.getElementById(id);
for (i=0; i < selectBox.length; i++) {
'.// check existing entries if they're already there and only select them in that case
' if (selectBox.options[i].value == value) {
selectBox.options[i].selected = true;
break;
}
'.// check existing entries for an entry starting with a comma, marking a not yet finished multiple selection
' else if (value.slice(0,1) == "," && selectBox.options[i].value.slice(0,1) == ",") {
selectBox.options[i].value = value;
selectBox.options[i].text = "'.lang('multiple').'";
selectBox.options[i].title = label;
' if (selectBox.options[i].value == value) {
selectBox.options[i].selected = true;
break;
}
}
if (i >= selectBox.length) {
if (!do_onchange) {
if (selectBox.length && selectBox.options[0].value=="") selectBox.options[0] = null;
selectBox.multiple=true;
selectBox.size='.$multi_size.';
}
selectBox.options[selectBox.length] = new Option(label,value,false,true);
}
if (selectBox.onchange && do_onchange) selectBox.onchange();

View File

@ -255,11 +255,13 @@ foreach($day2int as $name => $n)
Calendar._SDN = new Array
(<?php // short day names
static $substr;
if(is_null($substr)) $substr = function_exists('mb_substr') ? 'mb_substr' : 'substr';
$chars_shortcut = (int) lang('3 number of chars for day-shortcut'); // < 0 to take the chars from the end
foreach($day2int as $name => $n)
{
echo "\n \"".($chars_shortcut > 0 ? substr(lang($name),0,$chars_shortcut) :
substr(lang($name),$chars_shortcut)).'"'.($n < 6 ? ',' : '');
echo "\n \"".($chars_shortcut > 0 ? $substr(lang($name),0,$chars_shortcut) :
$substr(lang($name),$chars_shortcut)).'"'.($n < 6 ? ',' : '');
}
?>);
Calendar._SDN_len = <?php echo abs((int) lang('3 number of chars for day-shortcut')); ?>;
@ -276,13 +278,13 @@ foreach($monthnames as $n => $name)
Calendar._SMN = new Array
(<?php // short month names
$monthnames = array('January','February','March','April','May','June','July','August','September','October','November','December');
$chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end
foreach($monthnames as $n => $name)
{
$short = lang(substr($name,0,3)); // test if our lang-file have a translation for the english short with 3 chars
if (substr($short,-1) == '*') // else create one by truncating the full translation to x chars
if ($substr($short,-1) == '*') // else create one by truncating the full translation to x chars
{
$chars_shortcut = (int)lang('3 number of chars for month-shortcut'); // < 0 to take the chars from the end
$short = $chars_shortcut > 0 ? substr(lang($name),0,$chars_shortcut) : substr(lang($name),$chars_shortcut);
$short = $chars_shortcut > 0 ? $substr(lang($name),0,$chars_shortcut) : $substr(lang($name),$chars_shortcut);
}
echo "\n \"".$short.'"'.($n < 11 ? ',' : '');
}

View File

@ -191,42 +191,20 @@
* into their equivalent 'charset entity'. Charset entities enumerated this way
* are independent of the charset encoding used to transmit them, and all XML
* parsers are bound to understand them.
*
* @author Eugene Pivnev
*/
function xmlrpc_encode_entities($data)
{
$length = strlen($data);
$escapeddata = "";
for($position = 0; $position < $length; $position++)
{
$character = substr($data, $position, 1);
$code = Ord($character);
switch($code)
{
case 34:
$character = "&quot;";
break;
case 38:
$character = "&amp;";
break;
case 39:
$character = "&apos;";
break;
case 60:
$character = "&lt;";
break;
case 62:
$character = "&gt;";
break;
default:
if($code < 32 || $code > 159)
{
$character = ("&#".strval($code).";");
}
break;
}
$escapeddata .= $character;
$convmap = array(0, 0x1F, 0, 0xFFFF, 0x80, 0xFFFF, 0, 0xFFFF);
$encoding = $GLOBALS['egw']->translation->system_charset;
mb_regex_encoding($encoding);
$pattern = array('<', '>', '"', '\'');
$replacement = array('&lt;', '&gt;', '&quot;', '&#39;');
for ($i=0; $i<sizeof($pattern); $i++) {
$data = mb_ereg_replace($pattern[$i], $replacement[$i], $data);
}
return $escapeddata;
return mb_encode_numericentity($data, $convmap, $encoding);
}
function xmlrpc_entity_decode($string)

View File

@ -61,6 +61,8 @@ Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) {
ar[--i] = Calendar._DN[i].substr(0, Calendar._SDN_len);
}
Calendar._SDN = ar;
}
if (typeof Calendar._SMN == "undefined") {
// table of short month names
if (typeof Calendar._SMN_len == "undefined")
Calendar._SMN_len = 3;
@ -1438,7 +1440,8 @@ Calendar.prototype.parseDate = function (str, fmt) {
var y = 0;
var m = -1;
var d = 0;
var a = str.split(/\W+/);
// var a = str.split(/\W+/); does not work with multibyte chars, eg. german umlauts under utf-8
var a = str.split(/[./-]/);
if (!fmt) {
fmt = this.dateFormat;
}

View File

@ -500,8 +500,7 @@ saudi arabia common de SAUDI ARABIEN
save common de Speichern
search common de Suchen
search %1 '%2' common de Suche %1 '%2'
search or select accounts common de Suchen und auswählen von Benutzern
search or select multiple accounts common de Suchen und auswählen von mehreren Benutzern
search accounts common de Benutzer suchen
section common de Sektion
select common de Auswählen
select all %1 %2 for %3 common de Alles auswählen %1 %2 von %3
@ -657,6 +656,5 @@ your search returned %1 matchs common de Ihre Suche ergab %1 Treffer
your search returned 1 match common de Ihre Suche ergab einen Treffer
your session could not be verified. login de Ihre Sitzung konnte nicht verifiziert werden.
your settings have been updated common de Ihre Einstellungen wurden aktualisiert
yugoslavia common de JUGOSLAVIEN
zambia common de ZAMBIA
zimbabwe common de ZIMBABWE

View File

@ -538,8 +538,7 @@ savant2 version differs from savant2 wrapper. <br/>this version: %1 <br/>savants
save common en Save
search common en Search
search %1 '%2' common en Search %1 '%2'
search or select accounts common en Search or select accounts
search or select multiple accounts common en search or select multiple accounts
search accounts common en Search accounts
second common en second
section common en Section
select common en Select

Binary file not shown.

After

Width:  |  Height:  |  Size: 1023 B

View File

@ -7,22 +7,8 @@
{
openerSelectBox = opener.document.getElementById(id);
if (multiple && openerSelectBox) {
select = '';
for(i=0; i < openerSelectBox.length; i++) {
with (openerSelectBox.options[i]) {
if (selected || openerSelectBox.selectedIndex == i) {
select += (value.slice(0,1)==',' ? '' : ',')+value;
}
}
}
select += (select ? ',' : '')+value;
opener.addOption(id,label,value,0);
opener.addOption(id,'{lang_multiple}',select,0);
}
else {
opener.addOption(id,label,value,!multiple);
}
opener.addOption(id,label,value,!multiple);
selectBox = document.getElementById('uiaccountsel_popup_selection');
if (selectBox) {
for (i=0; i < selectBox.length; i++) {
@ -60,7 +46,7 @@
selectBox = document.getElementById('uiaccountsel_popup_selection');
for (i=0; i < openerSelectBox.length; i++) {
with (openerSelectBox.options[i]) {
if (selected && value.slice(0,1) != ',') {
if (selected && value != '') {
selectBox.options[selectBox.length] = new Option(text,value);
}
}

View File

@ -68,7 +68,7 @@ class bo_resources
$order_by = $query['order'] ? $query['order'].' '. $query['sort'] : '';
$start = (int)$query['start'];
$rows = $this->so->search($criteria,$read_onlys,$order_by,'','',$empty=False,$op='OR',$start,$filter,$join='',$need_full_no_count=false);
$rows = $this->so->search($criteria,$read_onlys,$order_by,'','%',$empty=False,$op='OR',$start,$filter,$join='',$need_full_no_count=false);
$nr = $this->so->total;
// we are called to serve bookable resources (e.g. calendar-dialog)

View File

@ -305,6 +305,15 @@
echo '<br />';
echo lang('You should either uninstall and then reinstall it, or attempt manual repairs') . '.';
}
elseif(get_var('deleted',Array('GET')))
{
echo '"' . $app_title . '" ' . lang('is broken') . ' ';
echo lang('because its sources are missing') . '!';
echo '<br />';
echo lang('However the tables are still in the database') . '.';
echo '<br />';
echo lang('You should either install the sources or uninstall it, to get rid of the tables') . '.';
}
elseif (!$version)
{
if($setup_info[$resolve]['enabled'])
@ -486,9 +495,18 @@
$setup_tpl->set_var('instalt',lang('Not Completed'));
$setup_tpl->set_var('install','&nbsp;');
$setup_tpl->set_var('remove',$key == 'phpgwapi' ? '&nbsp;' : '<input type="checkbox" name="remove[' . $value['name'] . ']" />');
$setup_tpl->set_var('upgrade','<input type="checkbox" name="upgrade[' . $value['name'] . ']" />');
$setup_tpl->set_var('resolution','<a href="applications.php?resolve=' . $value['name'] . '&version=True">' . lang('Possible Solutions') . '</a>');
$status = lang('Version Mismatch') . ' - ' . $value['status'];
if ($value['version'] == 'deleted')
{
$setup_tpl->set_var('upgrade','&nbsp;');
$setup_tpl->set_var('resolution','<a href="applications.php?resolve=' . $value['name'] . '&deleted=True">' . lang('Possible Solutions') . '</a>');
$status = lang('Sources deleted/missing') . ' - ' . $value['status'];
}
else
{
$setup_tpl->set_var('upgrade','<input type="checkbox" name="upgrade[' . $value['name'] . ']" />');
$setup_tpl->set_var('resolution','<a href="applications.php?resolve=' . $value['name'] . '&version=True">' . lang('Possible Solutions') . '</a>');
$status = lang('Version Mismatch') . ' - ' . $value['status'];
}
break;
case 'D':
$setup_tpl->set_var('bg_color','FFCCCC');
@ -497,9 +515,17 @@
$setup_tpl->set_var('instimg','dep.png');
$setup_tpl->set_var('instalt',lang('Dependency Failure'));
$setup_tpl->set_var('install','&nbsp;');
$setup_tpl->set_var('remove','&nbsp;');
if ($values['currentver'])
{
$setup_tpl->set_var('remove',$key == 'phpgwapi' ? '&nbsp;' : '<input type="checkbox" name="remove[' . $value['name'] . ']" />');
$setup_tpl->set_var('resolution','<a href="applications.php?resolve=' . $value['name'] . '">' . lang('Possible Solutions') . '</a>');
}
else
{
$setup_tpl->set_var('remove','&nbsp;');
$setup_tpl->set_var('resolution','&nbsp;');
}
$setup_tpl->set_var('upgrade','&nbsp;');
$setup_tpl->set_var('resolution','<a href="applications.php?resolve=' . $value['name'] . '">' . lang('Possible Solutions') . '</a>');
$status = lang('Dependency Failure') . ':' . $depstring . $value['status'];
break;
case 'P':

View File

@ -883,9 +883,10 @@
!$GLOBALS['egw']->accounts->ds)
{
printf("<b>Error: Error connecting to LDAP server %s!</b><br>",$GLOBALS['egw_info']['server']['ldap_host']);
exit;
return false;
}
}
return true;
}
/**
@ -966,7 +967,7 @@
*/
function accounts_exist()
{
$this->setup_account_object();
if (!$this->setup_account_object()) return false;
$accounts = $GLOBALS['egw']->accounts->search(array(
'type' => 'accounts',

View File

@ -49,8 +49,17 @@
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->applications_table,'*',false,__LINE__,__FILE__);
while(@$GLOBALS['egw_setup']->db->next_record())
{
$setup_info[$GLOBALS['egw_setup']->db->f('app_name')]['currentver'] = $GLOBALS['egw_setup']->db->f('app_version');
$setup_info[$GLOBALS['egw_setup']->db->f('app_name')]['enabled'] = $GLOBALS['egw_setup']->db->f('app_enabled');
$app = $GLOBALS['egw_setup']->db->f('app_name');
if (!isset($setup_info[$app])) // app source no longer there
{
$setup_info[$app] = array(
'name' => $app,
'tables' => $GLOBALS['egw_setup']->db->f('app_tables'),
'version' => 'deleted',
);
}
$setup_info[$app]['currentver'] = $GLOBALS['egw_setup']->db->f('app_version');
$setup_info[$app]['enabled'] = $GLOBALS['egw_setup']->db->f('app_enabled');
}
/* This is to catch old setup installs that did not have phpgwapi listed as an app */
$tmp = @$setup_info['phpgwapi']['version']; /* save the file version */

View File

@ -92,6 +92,7 @@ because it depends upon setup de weil es abh
because it is not a user application, or access is controlled via acl setup de weil es keine Benutzer-Anwendung ist, oder der Zugriff über ACL kontrolliert wird
because it requires manual table installation, <br />or the table definition was incorrect setup de weil es manuelle Installation der Tabelle erfordert, <br />oder die Tabellen-definition war nicht korrekt
because it was manually disabled setup de weil es manuell ausgeschaltet wurde
because its sources are missing setup de weil die Quelldateien fehlen
because of a failed upgrade or install setup de weil eine Aktualisierung oder eine Installation fehlgeschlug
because of a failed upgrade, or the database is newer than the installed version of this app setup de weil eine Aktualisierung fehlschlug, oder die Datenbank ist neuer als die installierte Version dieser Applikation
because the enable flag for this app is set to 0, or is undefined setup de weil der verfügbar-Eintrag für diese Applikation auf 0 gesetzt oder undefiniert ist
@ -270,6 +271,7 @@ host,{imap | pop3 | imaps | pop3s},[domain],[{standard(default)|vmailmgr = add d
host/ip domain controler setup de Hostname / IP des Domain Controler
hostname/ip of database server setup de Hostname/IP des Datenbank-Servers
hour (0-24) setup de Stunde (0-24)
however the tables are still in the database setup de Wie auch immer, die Tabellen sind noch immer in der Datenbank
however, the application is otherwise installed setup de Wie auch immer, die Anwendung ist ansonsten installiert
however, the application may still work setup de Wie auch immer, die Anwendung mag denoch funktionieren
if no acl records for user or any group the user is a member of setup de Wenn es keinen ACL-Eintrag für einen Benutzer oder eine Gruppe, der er angehört gibt
@ -488,6 +490,7 @@ skip the installation tests (not recommended) setup de Installationstests
smtp server hostname or ip address setup de SMTP Server Hostname oder IP Adresse
smtp server port setup de SMTP Server Port
some or all of its tables are missing setup de Einige oder alle Tabellen fehlen
sources deleted/missing setup de Quellen gelöscht/fehlen
sql encryption type setup de SQL-Verschlüsselungstyp für das Passwort (Vorgabe MD5)
standard (login-name identical to egroupware user-name) setup de Standard (Loginname identisch zu eGroupWare Benutzername)
standard mailserver settings (used for mail authentication too) setup de Standard Mailserver Einstellungen (werden auch für die Mail Authentifizierung benutzt)
@ -579,6 +582,7 @@ view setup de Anzeigen
virtual mail manager (login-name includes domain) setup de Virtual Mail Manager (Loginname enthalten Domain)
warning! setup de Warnung!
we can proceed setup de Wir können fortfahren
we could not determine the version of %1, please make sure it is at least %2 setup de Wir konnten die Version von %1 nicht ermitteln, bitte stellen Sie sicher das sie mindestens %2 ist.
we will automatically update your tables/records to %1 setup de Wir werden Ihre Tabellen/Einträge automatisch zu %1 aktualisieren
we will now run a series of tests, which may take a few minutes. click the link below to proceed. setup de Wir werden jetzt eine Serie von Tests durchführen. Das kann ein paar Minuten dauern. Klicken sie auf den folgenden Link um Fortzufahren.
welcome to the egroupware installation setup de Herzlich willkommen zur eGroupWare Installation
@ -618,6 +622,7 @@ you need to configure egroupware: setup de Sie m
you need to fix the above errors, before the configuration file header.inc.php can be written! setup de Sie müssen die obigen Fehler beheben, bevor die Konfigurationsdatei header.inc.php gespeichert werden kann!
you need to save the settings you made here first! setup de Sie müssen die hier vorgenommenen Einstellungen zuerst speichern!
you need to select your current charset! setup de Sie müssen Ihren aktuellen Zeichensatz auswählen!
you should either install the sources or uninstall it, to get rid of the tables setup de Sie sollten entweder die Quellen installieren oder die Anwendung deinstallieren, um die Tabellen los zu werden.
you should either uninstall and then reinstall it, or attempt manual repairs setup de Sie sollten entweder de- und neuinstallieren, oder manuelle Reparaturen versuchen
you will not be able to log into egroupware using php sessions: "session could not be verified" !!! setup de Sie werden sich NICHT mit PHP Sitzungen in die eGroupWare einlogen: "Ihre Sitzung konnte nicht verifiziert werden" !!!
you're using an old configuration file format... setup de Sie verwenden ein altes Format der Konfigurationsdatei ...
@ -632,6 +637,7 @@ your files directory '%1' %2 setup de Ihr Dateiverzeichnis '%1' %2
your header admin password is not set. please set it now! setup de Ihr Headerverwaltungspasswort wurde NICHT gesetzt. Bitte setzen Sie es jetzt!
your header.inc.php needs upgrading. setup de Ihre header.inc.php muss aktualisiert werden.
your header.inc.php needs upgrading.<br /><blink><b class="msg">warning!</b></blink><br /><b>make backups!</b> setup de Ihre header.inc.php muss aktualisiert werden.<br /><blink><b class="msg">WARNUNG!</b></blink><br /><b>MACHEN SIE EINE SICHERUNG!</b>
your installed version of %1 is %2, required is at least %3, please run: setup de Ihre installierte Version von %1 ist %2, benötigt wir mindestens %3, bitte führen Sie folgenden Befehl aus:
your php installation does not have appropriate gd support. you need gd library version 1.8 or newer to see gantt charts in projects. setup de Ihre PHP Installation hat nicht die benötigte GD Unterstützung. Die Anwendung Projekte benötigen die GD Bibliothek in der Version 1.8 um Gantcharts anzeigen zu können.
your tables are current setup de Ihre Tabellen sind aktuell
your tables will be dropped and you will lose data setup de Ihre Tabellen werden gelöscht werden und Sie werden alle Daten verlieren!

View File

@ -92,6 +92,7 @@ because it depends upon setup en because it depends upon
because it is not a user application, or access is controlled via acl setup en because it is not a user application, or access is controlled via acl
because it requires manual table installation, <br />or the table definition was incorrect setup en because it requires manual table installation, <br />or the table definition was incorrect
because it was manually disabled setup en because it was manually disabled
because its sources are missing setup en because its sources are missing
because of a failed upgrade or install setup en because of a failed upgrade or install
because of a failed upgrade, or the database is newer than the installed version of this app setup en because of a failed upgrade, or the database is newer than the installed version of this app
because the enable flag for this app is set to 0, or is undefined setup en because the enable flag for this app is set to 0, or is undefined
@ -268,6 +269,7 @@ host,{imap | pop3 | imaps | pop3s},[domain],[{standard(default)|vmailmgr = add d
host/ip domain controler setup en Host/IP Domain controler
hostname/ip of database server setup en Hostname/IP of database server
hour (0-24) setup en hour (0-24)
however the tables are still in the database setup en However the tables are still in the database
however, the application is otherwise installed setup en However, the application is otherwise installed
however, the application may still work setup en However, the application may still work
if no acl records for user or any group the user is a member of setup en If no ACL records for user or any group the user is a member of
@ -486,6 +488,7 @@ skip the installation tests (not recommended) setup en Skip the installation tes
smtp server hostname or ip address setup en SMTP server hostname or IP address
smtp server port setup en SMTP server port
some or all of its tables are missing setup en Some or all of its tables are missing
sources deleted/missing setup en Sources deleted/missing
sql encryption type setup en SQL encryption type for passwords (default - md5)
standard (login-name identical to egroupware user-name) setup en standard (login-name identical to eGroupWare user-name)
standard mailserver settings (used for mail authentication too) setup en Standard mailserver settings (used for Mail authentication too)
@ -577,6 +580,7 @@ view setup en View
virtual mail manager (login-name includes domain) setup en Virtual mail manager (login-name includes domain)
warning! setup en Warning!
we can proceed setup en We can proceed
we could not determine the version of %1, please make sure it is at least %2 setup en We could not determine the version of %1, please make sure it is at least %2
we will automatically update your tables/records to %1 setup en We will automatically update your tables/records to %1
we will now run a series of tests, which may take a few minutes. click the link below to proceed. setup en We will now run a series of tests, which may take a few minutes. Click the link below to proceed.
welcome to the egroupware installation setup en Welcome to the eGroupWare Installation
@ -616,6 +620,7 @@ you need to configure egroupware: setup en You need to configure eGroupWare:
you need to fix the above errors, before the configuration file header.inc.php can be written! setup en You need to fix the above errors, before the configuration file header.inc.php can be written!
you need to save the settings you made here first! setup en You need to save the settings you made here first!
you need to select your current charset! setup en You need to select your current charset!
you should either install the sources or uninstall it, to get rid of the tables setup en You should either install the sources or uninstall it, to get rid of the tables
you should either uninstall and then reinstall it, or attempt manual repairs setup en You should either uninstall and then reinstall it, or attempt manual repairs
you will not be able to log into egroupware using php sessions: "session could not be verified" !!! setup en You will NOT be able to log into eGroupWare using PHP sessions: "session could not be verified" !!!
you're using an old configuration file format... setup en You're using an old configuration file format...
@ -630,6 +635,7 @@ your files directory '%1' %2 setup en Your files directory '%1' %2
your header admin password is not set. please set it now! setup en Your header admin password is NOT set. Please set it now!
your header.inc.php needs upgrading. setup en Your header.inc.php needs upgrading.
your header.inc.php needs upgrading.<br /><blink><b class="msg">warning!</b></blink><br /><b>make backups!</b> setup en Your header.inc.php needs upgrading.<br /><blink><b class="msg">WARNING!</b></blink><br /><b>MAKE BACKUPS!</b>
your installed version of %1 is %2, required is at least %3, please run: setup en Your installed version of %1 is %2, required is at least %3, please run:
your php installation does not have appropriate gd support. you need gd library version 1.8 or newer to see gantt charts in projects. setup en Your PHP installation does not have appropriate GD support. You need gd library version 1.8 or newer to see Gantt charts in projects.
your tables are current setup en Your tables are current
your tables will be dropped and you will lose data setup en Your tables will be dropped and you will lose data !!

View File

@ -2,8 +2,11 @@
2 years ago timesheet pl 2 lata temu
3 years ago timesheet pl 2 lata temu
actions timesheet pl Dzia³ania
all projects timesheet pl Wszystkie projekty
both: allow to use projectmanager and free project-names admin pl Częściowa: zezwalaj na używanie Menadżera Projektów jak również dowolnych nazw projektów
by timesheet pl przez
create new links timesheet pl Utwórz nowe odsy³acze
creating new entry timesheet pl Tworzenie nowego wpisu
delete this entry timesheet pl Usuñ ten wpis
edit this entry timesheet pl Edytuj ten wpis
empty if identical to duration timesheet pl pusty jesli identyczny jak czas trwania
@ -13,6 +16,7 @@ entry saved timesheet pl Wpis zachowany
error deleting the entry!!! timesheet pl B³±d przy usuwaniu wpisu !!!
error saving the entry!!! timesheet pl B³±d przy zachowywaniu wpisu !!!
existing links timesheet pl Istniej±ce odsy³acze
full: use only projectmanager admin pl Pełna: zezwalaj tylko na nazwy z Menadżera Projektów
general timesheet pl Ogólnie
last modified timesheet pl Ostatnio zmodyfikowany
last month timesheet pl Ostatni miesi±c
@ -21,8 +25,12 @@ last year timesheet pl Ostatni rok
leave it empty for a full week timesheet pl Pozostaw pusty na ca³y tydzieñ
links timesheet pl Odsy³acze
no details timesheet pl bez szczegó³ów
no project timesheet pl Żaden projekt
none: use only free project-names admin pl Żadna: używaj nazw niezależnych od Menadżera Projektów
or endtime timesheet pl lub czas zakończenia
permission denied!!! timesheet pl Dostêp zabroniony !!!
price timesheet pl Cena
projectmanager integration admin pl Integracja z Menadżerem projektów
quantity timesheet pl Ilo¶æ
save & new timesheet pl Zapisz & Nowy
saves the changes made timesheet pl Zapisz poczynione zmiany
@ -30,6 +38,8 @@ saves this entry and add a new one timesheet pl Zachowaj ten wpis i dodaj nowy
select a price timesheet pl Wybierz cen±
select a project timesheet pl Wybierz projekt
start timesheet pl Pocz±tek
starttime timesheet pl Czas rozpoczęcia
starttime has to be before endtime !!! timesheet pl Czas rozpoczęcia musi być wcześniejszy niż czas zakończenia!
sum %1: timesheet pl Suma %1:
this month timesheet pl Bie¿±cy miesi±c
this week timesheet pl Bie¿±cy tydzieñ