Compare commits

...

121 Commits
master ... 14.1

Author SHA1 Message Date
Ralf Becker
4e3723fd68 quote order column in backup and always quote "index" as it seems to be one of very little names not automatic recogniced in MySQL 2015-03-30 08:29:40 +00:00
Ralf Becker
5cc84ffe50 fix PHP Fatal error: Call to undefined method egw_customfields::get_customfields() 2015-03-09 16:12:06 +00:00
Ralf Becker
5db0e5c6e6 harden ldap auth, by removing \000 bytes, causing passwords to be not empty by php, but empty to c libaries 2015-02-17 22:26:31 +00:00
Ralf Becker
68ec2e8f30 fix PHP Fatal error: Cannot pass parameter 3 by reference 2015-02-16 08:31:24 +00:00
Ralf Becker
336072f8d2 fix PHP Fatal error: Call to undefined function is_stream() stalling WebDAV 2015-02-15 00:14:12 +00:00
Ralf Becker
00e706cdfb read attachment data from etemplate request, use tmpname only to identify it 2015-02-14 20:12:20 +00:00
Ralf Becker
f12f47aa4a move code for html or javascript content-type headers from webdav to html class and use it for attachments too 2015-02-14 19:33:53 +00:00
Ralf Becker
fa914a5d60 remove not needed dhtmlx samples 2015-02-14 17:17:44 +00:00
Ralf Becker
35729b291c removed not used remote administration, use json serialization for new admin_cmd data and (secured) json_php_unserialize for existing data 2015-02-14 17:06:19 +00:00
Ralf Becker
c27c74e94d * ImportExport: links supposed to open in admin did not show admin sidebox with tree 2015-02-11 09:44:08 +00:00
Ralf Becker
c62b555241 Changelog for 14.1.20150210 2015-02-10 09:34:43 +00:00
Ralf Becker
eb1e45e31e revert jQuery back to 1.11.0 from previous upgrade to 1.11.2, as it broke to many things, specially calendar day-view with multiple participants 2015-02-10 09:31:30 +00:00
Klaus Leithoff
af74997588 skip activesync debug.txt on filebackup (, if activated) 2015-02-06 14:38:50 +00:00
Ralf Becker
171064c0c1 * Calendar: fixed deleting exceptions while editing a series 2015-02-06 09:48:20 +00:00
Ralf Becker
0ee55af1bd remove no longer working preferences link 2015-02-06 09:09:55 +00:00
Ralf Becker
71e5e2939e fix PHP Fatal error: Using $this when not in object context 2015-02-04 11:19:31 +00:00
Ralf Becker
13b60fe0d7 fix calendar_groupdav::isParticipant() called with NULL, caused by recurring event starts in future behind horizont 2015-02-04 10:38:59 +00:00
Ralf Becker
0316d68bec fix egw_db::name_quote() to deal correctly with expressions like "table.column", to fix reported SQL error in projectmanager 2015-02-03 13:19:42 +00:00
Klaus Leithoff
3abb719bfa mail add anf fix missing translations in mail-prefs 2015-02-03 12:34:48 +00:00
Ralf Becker
ea9e56ce36 * all apps: updated jQuery and jQuery-ui to version 1.11.2 fixing eg. some UI glitches in FireFox
- rename window.$ window.$j at the very end of jquery.js
- download custom jquery-ui containing everything, but with selected redmond theme
- removed not used smoothnes theme and removed version from redmond/jquery-ui.css
2015-02-03 09:46:59 +00:00
Ralf Becker
54e465e6c0 revert accidently commited file 2015-02-03 09:44:28 +00:00
Ralf Becker
7c48fc0e03 * Calendar: fix not working tooltip (showing html tags) in year-view 2015-02-03 09:42:51 +00:00
Ralf Becker
aaaa25e43b no need to write empty usernames, store empty passwords without encrypting them as "", because mcrypt will give a warning and returning just false otherwise 2015-01-30 13:33:56 +00:00
Ralf Becker
ded6d098fb * Backup: backing up bool columns now for all databases as 1 or 0, but understanding PostgreSQL "t" or "f" too 2015-01-30 12:49:01 +00:00
Ralf Becker
a78f2c874b * Admin: fix not working setting of ACL for account-selection "select-box with primary group and search", data from contains no selection 2015-01-30 11:30:03 +00:00
Ralf Becker
01902cc40e fix not working clearing of cache for files backend 2015-01-29 13:57:18 +00:00
Ralf Becker
c6505acdc6 * Calendar/CalDAV: fixed synced events still contained deleted exceptions 2015-01-29 13:32:57 +00:00
Nathan Gray
eea3190f4c Check to make sure found resource is an array instead of a column flag.
Fixes fatal error when deleting a category.
2015-01-27 22:45:28 +00:00
Nathan Gray
c5cbc573f8 If recur end date could not be parsed, handle it as missing. 2015-01-27 21:58:47 +00:00
Ralf Becker
d057db1607 * Calendar/CalDAV: fixed not synced recurrences, because invitation was to a group only or first recurrence was an exception 2015-01-27 18:11:40 +00:00
Klaus Leithoff
45c3daf713 fix typo preventing ics parsing 2015-01-27 13:09:20 +00:00
Klaus Leithoff
167116e1b0 * Sieve: coping with a dbmail bug in some versions of the Server. Server using formal syntax being reserved for client->server communication 2015-01-27 12:08:20 +00:00
Ralf Becker
891f46328d changes suggested on lists for a correct Brasilian translation 2015-01-26 12:13:50 +00:00
Ralf Becker
95917e3fd2 fixed a couple more broken placeholders in Brasilian translation 2015-01-24 10:03:26 +00:00
Hadi Nategh
d6d506103f Fix edit_setting dialog in filemanager not being resized correctly 2015-01-23 15:38:12 +00:00
Klaus Leithoff
362f97fb5b add default cat (set in pref) to infologs that are created from mails 2015-01-23 14:30:00 +00:00
Ralf Becker
ddd37756a2 using recommended lowercase protocol "mailto:" in ATTENDEE or ORGANIZER iCal properties 2015-01-23 09:45:49 +00:00
Ralf Becker
66894d5f0d using recommended lowercase protocol "mailto:" in CalDAV:calendar-user-address-set 2015-01-23 09:40:19 +00:00
Ralf Becker
b249f7c4c7 fixed wrong translation, parameters must be written as "%1" (not "% 1"!) 2015-01-23 09:25:24 +00:00
Ralf Becker
6f3c2c286f Changelog for 14.1.20150121 2015-01-21 20:49:20 +00:00
Ralf Becker
be592bb8c4 pending French translations from our translation server 2015-01-21 14:28:52 +00:00
Ralf Becker
da31446897 fixed not saved comment on an existing file/attachment 2015-01-20 17:37:04 +00:00
Ralf Becker
f5871177c8 for group-invitations we need to check memberships of $user too 2015-01-20 14:57:56 +00:00
Klaus Leithoff
f5e9f6b55a fix for problem preventing async-vacation to be run properly 2015-01-20 14:32:57 +00:00
Ralf Becker
d371fc76ce * Calendar/CalDAV/eSync: fixed not synced events constructed from exceptions
removed cal_recurrence filter in read, as cal_reference and cal_recurence is always used together for exceptions, but cal_recurrence was not allways reset to 0
2015-01-20 13:49:42 +00:00
Ralf Becker
7e9dcd422e * WebDAV: fixed not working range requests causing eg. direct playing of video files to fail
plus IDE warning fixes from trunk
2015-01-17 17:33:05 +00:00
Ralf Becker
791e03b44a * Backup: fixed broken backup of tables without an auto index 2015-01-15 16:34:57 +00:00
Hadi Nategh
5c36b0b810 * All application: Fix unintentional dragging happens while user tries to do scrolling over a draggable item in FF(e.g. scrolling over an scrollable infolog entry) 2015-01-14 16:36:55 +00:00
Hadi Nategh
3790f8f12d Give more room for input field in duration widget 2015-01-14 09:24:21 +00:00
Hadi Nategh
85eab7c6a1 Fix attachments box in mail preview for F.F 2015-01-13 13:44:59 +00:00
Hadi Nategh
29666faaeb Bind hover handler in file upload widget on input element as input always is on top and transparent 2015-01-13 13:41:03 +00:00
Ralf Becker
539477a0e3 Changelog for 14.1.20150113 2015-01-13 08:29:35 +00:00
Ralf Becker
a3919ddba8 pending translations from our translation server 2015-01-12 11:59:52 +00:00
Ralf Becker
3c88fadba0 fixed not working seek in stream-wrapper, caused by sw interface uses true/false while fseek uses 0/-1 2015-01-10 13:05:33 +00:00
Ralf Becker
61b140328d modernized login- and start-message editing a bit 2015-01-09 19:00:13 +00:00
Klaus Leithoff
83fb3fc05d respect/return none, if configured in foldersettings 2015-01-09 14:12:58 +00:00
Ralf Becker
45048d7500 * Univention: allow installation on backup DC too (master was working before) 2015-01-09 11:01:10 +00:00
Ralf Becker
1945463c6d * Mail: fix for Horde_Imap_Client-2.26.0 requiring Horde_Mail-2.5.1 requring Horde_Idna-1.0.1 which stalls our autoloader by calling spl_autoload_register 2015-01-09 10:47:38 +00:00
Hadi Nategh
90d468c9dd Correct stored toolbar's preferences with the wrong id 2015-01-08 14:30:23 +00:00
Hadi Nategh
d2945ce3b0 Return clone of preference object as we don't want direct reference to original object 2015-01-08 14:27:35 +00:00
Ralf Becker
294546bf2d allow to unset a preference by calling egw.set_preference(app,name) 2015-01-08 13:13:33 +00:00
Nathan Gray
24e60d83e4 Fix some bugs in ACL:
- Allow to remove access to all application, previously could not remove the final app
2015-01-07 18:01:25 +00:00
Nathan Gray
193a5c49e7 Fix some bugs in ACL:
- Remove 'all applications' as an ACL option
2015-01-07 16:37:38 +00:00
Ralf Becker
1f7d2964c9 remove no longer usable emailadmin index (use "mail account" context menu on users or groups) 2015-01-07 08:51:29 +00:00
Hadi Nategh
2a43aea1e2 Do not show out dated vacation in vacation notice 2015-01-07 08:49:17 +00:00
Hadi Nategh
3258b766f4 Call the vacation notice refresh for the active profile when the mail app gets loaded 2015-01-07 08:48:25 +00:00
Nathan Gray
9f867d3632 Remove extra empty column 2014-12-19 15:54:22 +00:00
Hadi Nategh
7c9a9640e4 Add focus back to search input field after clicking on cross icon 2014-12-19 14:42:58 +00:00
Ralf Becker
da98232811 fixed 14.1 build files to cater for jdots and pixelegg now in public svn 2014-12-19 12:24:36 +00:00
Ralf Becker
85e0e870f7 fixed 14.1 build files to cater for jdots and pixelegg now in public svn 2014-12-19 12:24:04 +00:00
Ralf Becker
6101f31ce0 fixed offset in async-service patch 2014-12-19 12:21:36 +00:00
Ralf Becker
887493f06c Changelog for 14.1.20141219 2014-12-19 12:06:04 +00:00
Klaus Leithoff
8852bb1a77 fix change of date (sorting) problem when/after copying/moving messages 2014-12-19 11:45:16 +00:00
Hadi Nategh
6a90480548 Fix mail display printing multipage style for jdots 2014-12-19 11:20:00 +00:00
Hadi Nategh
3b5087753d Get the mail rows text-overflow ellipsis working 2014-12-19 10:15:32 +00:00
Hadi Nategh
39f0559936 Missing code from commit #51096 2014-12-19 10:12:59 +00:00
Hadi Nategh
13d77d8eb8 Fix styling of mail display print view for jdots 2014-12-19 09:58:49 +00:00
Hadi Nategh
6541a4193f No border for popupMainDiv 2014-12-19 09:58:11 +00:00
Hadi Nategh
1ce0b96de0 Do not set margin on popupMainDiv as resize handler will take care of margins 2014-12-19 09:57:46 +00:00
Hadi Nategh
861ea3ca8f Add span.et2_button_text to be able to give button style to span 2014-12-19 09:57:23 +00:00
Hadi Nategh
2917358efe Fix styling of mail compose and display for jdots 2014-12-19 09:56:41 +00:00
Hadi Nategh
64e8c427ab Fix a tags in nextmatch take fullWidth of parent and causing not be able select next match row on free space area 2014-12-19 09:38:43 +00:00
Hadi Nategh
50fc723810 Fix taglist lack of styling in jdots 2014-12-19 09:36:51 +00:00
Hadi Nategh
e39f2accc9 Remove max-height from mail tree in order to fix the issue mail tree gets scrollbar after expantion. 2014-12-19 09:30:12 +00:00
Hadi Nategh
0992e72cda Stop taglist's ancestor change event from bubbling on taglist 2014-12-19 09:28:09 +00:00
Hadi Nategh
36d971867f Set vacation addresses with all aliases if there's nothing set for the first time 2014-12-19 09:27:21 +00:00
Hadi Nategh
ec5e5080c6 Bind onchange handlers of taglist options only to magicsuggest selectionchange, avoid unwanted triggered inputWidget parent change 2014-12-19 09:26:29 +00:00
Hadi Nategh
7134b9716e Convert ambiguous column to tablename.column name 2014-12-19 09:25:14 +00:00
Hadi Nategh
6670964d01 Show some attachment files in progress on visible bottom part of compose dialog 2014-12-19 08:43:01 +00:00
Ralf Becker
1ab93cf856 make sure admin tree displays following toplevel order: admin, user, groups, apps by returning admin hooks first, despite alphabetical sorting of apps 2014-12-19 07:49:24 +00:00
Ralf Becker
7f63eb36af fix not working click on virtual structure (eg. "/apps/addressbook/$all"), because it uses mime "egw/addressbook" 2014-12-18 13:47:04 +00:00
Klaus Leithoff
f46358f45a catch possible failure on examineMailbox call; more debug; handle uid reported but no data to be gathered: as a message is deleted from server but cache still reporting its existance ; may happen on QRESYNC with No permanent modsequences 2014-12-18 13:42:27 +00:00
Ralf Becker
a8fb9082e9 reload framework if (custom-)template-color changes 2014-12-18 11:09:03 +00:00
Ralf Becker
cd67495c8b checking sieve enabled on imap-server object not account, so imap plugins can overwrite eg. always set this 2014-12-18 11:01:59 +00:00
Ralf Becker
aacc0caa7b * all apps: preserving for current user unavailable categories (eg. private categories of other user) when editing entries 2014-12-17 13:58:33 +00:00
Ralf Becker
345dd2b573 * all apps: suppressing private (or removed) custom-fields from history log 2014-12-17 12:01:01 +00:00
Nathan Gray
72330607d4 Make sure event spans multiple days before removing nights, fixes late/overnight events giving negative time. 2014-12-16 19:45:52 +00:00
Nathan Gray
30f35f01fa - Use link registry to open notification links
- Fix mark all notifications as read on popup close
2014-12-16 19:38:22 +00:00
Nathan Gray
f2d6cfdf0a Fix files selected from filemanager before entry is saved do not show in link list until entry is saved. 2014-12-16 19:35:59 +00:00
Hadi Nategh
ccc3a4037b Clear intervals assigned to window after submit compose dialog 2014-12-16 10:27:40 +00:00
Klaus Leithoff
fc45c392c3 * API/CKEditor: update to version 4.4.3 2014-12-16 09:26:01 +00:00
Nathan Gray
1ddcb2dd2d Only require one radiobox to be set, checked by ID 2014-12-15 20:55:32 +00:00
Ralf Becker
5c5def1219 fix categories in admin sometimes change color after search 2014-12-15 17:46:43 +00:00
Ralf Becker
7e95b71af4 we need to clear stat-cache again, after restoring original user, as eg. eACL is stored in session 2014-12-15 16:59:25 +00:00
Ralf Becker
fc19b296ff check if allow_url_fopen = On 2014-12-15 14:30:45 +00:00
Ralf Becker
e64c2f164d fix pear upgrade (not update) command given as instructions to user 2014-12-15 10:34:24 +00:00
Ralf Becker
9c007151d7 * EMailAdmin: disable certificate validation for Sieve, which is enabled by default in PHP 5.6 2014-12-14 12:11:39 +00:00
Ralf Becker
ee807027af move defining of (deprecated) SEP constant to common functions, as there are cases where it gets used before defined 2014-12-13 09:54:14 +00:00
Ralf Becker
b64e336546 need to be root for mounting 2014-12-12 16:58:16 +00:00
Ralf Becker
c13b45bc41 button to mount /etemplates 2014-12-12 15:54:59 +00:00
Ralf Becker
2f7d27f56a * Mail: update title of compose window with subject 2014-12-12 15:29:46 +00:00
Ralf Becker
3433e2bf13 * Filemanager: fixed directory creation in vfs root (you need root permisstions of cause) 2014-12-12 15:06:52 +00:00
Klaus Leithoff
bdb79987a1 make id a sortable column 2014-12-12 13:57:26 +00:00
Ralf Becker
a75843d7fd statcache need to be updated on chmod, chown or chgrp 2014-12-12 13:46:09 +00:00
Klaus Leithoff
b733595ea1 enable searching for text with umlauts 2014-12-12 13:34:54 +00:00
Ralf Becker
dc5ff9cf3e * Filemanager: fixed clicking on favorites in select popup 2014-12-12 09:49:36 +00:00
Hadi Nategh
70751405de Set the bodydescription to empty if it is not visible 2014-12-11 16:39:44 +00:00
Ralf Becker
3b2d97877a removed not existing background 2014-12-05 09:49:46 +00:00
Ralf Becker
fdb6ece069 backport of r3389: moving addressbook index photo to addressbook and use app.css (width:100%; height:auto) 2014-12-03 10:37:22 +00:00
Nathan Gray
0caf6d14d9 Set textarea height from rows attribute 2014-12-01 16:14:31 +00:00
Ralf Becker
e67470ae66 do not limit width of messages, centering is now done in egw.message via javascript 2014-11-21 16:17:55 +00:00
1804 changed files with 45763 additions and 96750 deletions

View File

@ -8,7 +8,7 @@
* @link http://www.egroupware.org
* @author Cornelius Weiss <nelius@cwtech.de>
* @copyright Cornelius Weiss <nelius@cwtech.de>
* @version $Id$
* @version $Id: class.egw_addressbook_record.inc.php 22827 2006-11-10 15:35:35Z nelius_weiss $
*/
/**
@ -74,8 +74,7 @@ class addressbook_egw_record implements importexport_iface_egw_record
* @return array complete record as associative array
*/
public function get_record_array() {
// do not return binary jpeg, it messes up json data
return array_diff_key($this->contact, array('jpegphoto' => true));
return $this->contact;
}
/**
@ -106,22 +105,6 @@ class addressbook_egw_record implements importexport_iface_egw_record
return $this->identifier ? $this->identifier : $this->id;
}
/**
* Gets the URL icon representitive of the record
* This could be as general as the application icon, or as specific as a contact photo
*
* @return string Full URL of an icon, or appname/icon_name
*/
public function get_icon() {
$ui = new addressbook_ui();
// Type as default
$label = $icon = null;
$ui->type_icon($this->owner, $this->private, $this->tid, $icon, $label);
// Specific photo
return $this->jpegphoto ? egw_framework::link('/index.php',$ui->photo_src($this->identifier,$this->jpegphoto)):$icon;
}
/**
* saves record into backend
*
@ -139,7 +122,7 @@ class addressbook_egw_record implements importexport_iface_egw_record
* @return string dst_identifier
*/
public function copy ( $_dst_identifier ) {
unset($_dst_identifier); // not used, but required by function signature
}
/**
@ -150,7 +133,7 @@ class addressbook_egw_record implements importexport_iface_egw_record
* @return string dst_identifier
*/
public function move ( $_dst_identifier ) {
unset($_dst_identifier); // not used, but required by function signature
}
/**
@ -170,3 +153,4 @@ class addressbook_egw_record implements importexport_iface_egw_record
}
} // end of egw_addressbook_record
?>

View File

@ -1,123 +0,0 @@
<?php
/*
* Egroupware - Addressbook - A portlet for displaying a list of entries
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package addressbook
* @subpackage home
* @link http://www.egroupware.org
* @author Nathan Gray
* @version $Id$
*/
/**
* The addressbook_list_portlet uses a nextmatch / favorite
* to display a list of entries.
*/
class addressbook_favorite_portlet extends home_favorite_portlet
{
/**
* Construct the portlet
*
*/
public function __construct(Array &$context = array(), &$need_reload = false)
{
$context['appname'] = 'addressbook';
// Let parent handle the basic stuff
parent::__construct($context,$need_reload);
$ui = new addressbook_ui();
$this->context['template'] = 'addressbook.index.rows';
$this->context['sel_options'] = array();
foreach($ui->content_types as $tid => $data)
{
$this->context['sel_options']['tid'][$tid] = $data['name'];
}
$this->nm_settings += array(
'get_rows' => 'addressbook_favorite_portlet::get_rows',
// Use a different template so it can be accessed from client side
'template' => 'addressbook.index.rows',
'default_cols' => 'n_fileas_n_given_n_family_n_family_n_given_org_name_n_family_n_given_n_fileas,'.
'tel_work_tel_cell_tel_home,url_email_email_home',
);
}
public function exec($id = null, etemplate_new &$etemplate = null)
{
$ui = new addressbook_ui();
$this->context['sel_options']['filter'] = $this->context['sel_options']['owner'] = $ui->get_addressbooks(EGW_ACL_READ,lang('All'));
$this->context['sel_options']['filter2'] = $ui->get_lists(EGW_ACL_READ,array('' => lang('none')));
$this->nm_settings['actions'] = $ui->get_actions($this->nm_settings['col_filter']['tid'], $this->nm_settings['org_view']);
parent::exec($id, $etemplate);
}
/**
* Override from addressbook to clear the app header
*
* @param type $query
* @param type $rows
* @param type $readonlys
* @return integer Total rows found
*/
public static function get_rows(&$query, &$rows, &$readonlys)
{
$ui = new addressbook_ui();
$total = $ui->get_rows($query, $rows, $readonlys);
unset($GLOBALS['egw_info']['flags']['app_header']);
return $total;
}
/**
* Here we need to handle any incoming data. Setup is done in the constructor,
* output is handled by parent.
*
* @param type $id
* @param etemplate_new $etemplate
*/
public static function process($values = array())
{
parent::process($values);
$ui = new addressbook_ui();
if (is_array($values) && !empty($values['nm']['action']))
{
if (!count($values['nm']['selected']) && !$values['nm']['select_all'])
{
egw_framework::message(lang('You need to select some entries first'));
}
else
{
// Some processing to add values in for links and cats
$multi_action = $values['nm']['action'];
$success = $failed = $action_msg = null;
if ($ui->action($values['nm']['action'],$values['nm']['selected'],$values['nm']['select_all'],
$success,$failed,$action_msg,$values['do_email'] ? 'email' : 'index',$msg,$values['nm']['checkboxes']))
{
$msg .= lang('%1 contact(s) %2',$success,$action_msg);
egw_json_response::get()->apply('egw.message',array($msg,'success'));
foreach($values['nm']['selected'] as &$id)
{
$id = 'addressbook::'.$id;
}
// Directly request an update - this will get addressbook tab too
egw_json_response::get()->apply('egw.dataRefreshUIDs',array($values['nm']['selected']));
}
elseif(is_null($msg))
{
$msg .= lang('%1 entries %2, %3 failed because of insufficent rights !!!',$success,$action_msg,$failed);
egw_json_response::get()->apply('egw.message',array($msg,'error'));
}
elseif($msg)
{
$msg .= "\n".lang('%1 entries %2, %3 failed.',$success,$action_msg,$failed);
egw_json_response::get()->apply('egw.message',array($msg,'error'));
}
unset($values['nm']['action']);
unset($values['nm']['select_all']);
}
}
}
}

View File

@ -72,10 +72,9 @@ class addressbook_hooks
if ($GLOBALS['egw_info']['server']['contact_repository'] != 'ldap')
{
$file['Custom fields'] = egw::link('/index.php',array(
'menuaction' => 'admin.customfields.index',
'menuaction' => 'admin.customfields.edit',
'appname' => $appname,
'use_private'=> 1,
'ajax' => 'true'
));
}
if ($location == 'admin')
@ -115,6 +114,26 @@ class addressbook_hooks
'xmlrpc' => True,
'admin' => False,
);
if ($GLOBALS['egw_info']['server']['hide_birthdays'] != 'yes') // calendar config
{
/* disabled until we have a home app again
$settings['mainscreen_showbirthdays'] = array(
'type' => 'select',
'label' => 'Show birthday reminders on main screen',
'name' => 'mainscreen_showbirthdays',
'help' => 'Displays a remider for birthdays on the startpage (page you get when you enter eGroupWare or click on the homepage icon).',
'values' => array(
0 => lang('No'),
1 => lang('Yes, for today and tomorrow'),
3 => lang('Yes, for the next three days'),
7 => lang('Yes, for the next week'),
14=> lang('Yes, for the next two weeks'),
),
'xmlrpc' => True,
'admin' => False,
'default'=> 3,
);*/
}
if ($GLOBALS['egw_info']['server']['contact_repository'] != 'ldap')
{
$settings['private_addressbook'] = array(

View File

@ -33,11 +33,6 @@ class addressbook_import_contacts_csv extends importexport_basic_import_csv {
*/
protected $tracking;
/**
* @var boolean If import file has no type, it can generate a lot of warnings.
* Users don't like this, so we only warn once.
*/
private $type_warned = false;
/**
* imports entries according to given definition object.
@ -61,6 +56,7 @@ class addressbook_import_contacts_csv extends importexport_basic_import_csv {
$this->lookups['tid'][$tid] = $data['name'];
}
// set contact owner
$contact_owner = isset( $_definition->plugin_options['contact_owner'] ) ?
$_definition->plugin_options['contact_owner'] : $this->user;
@ -126,12 +122,7 @@ class addressbook_import_contacts_csv extends importexport_basic_import_csv {
// Do not import into non-existing type, warn and change
if(!$record->tid || !$this->lookups['tid'][$record->tid])
{
// Avoid lots of warnings about type (2 types are contact and deleted)
if(!$this->type_warned || count($this->lookups['tid']) == 2 )
{
$this->warnings[$import_csv->get_current_position()] = lang('Unknown type %1, imported as %2',$record->tid,lang($this->lookups['tid']['n']));
$this->type_warned = true;
}
$this->warnings[$import_csv->get_current_position()] = lang('Unknown type %1, imported as %2',$record->tid,lang($this->lookups['tid']['n']));
$record->tid = 'n';
}

View File

@ -349,7 +349,7 @@ class addressbook_ui extends addressbook_bo
* @param string $org_view=null
* @return array see nextmatch_widget::get_actions()
*/
public function get_actions($tid_filter=null, $org_view=null)
private function get_actions($tid_filter=null, $org_view=null)
{
// we have no org view (view of one org has context menu like regular "add contacts" view, as it shows contacts
if (!isset($this->org_views[(string) $org_view]))
@ -884,7 +884,7 @@ window.egw_LAB.wait(function() {
{
if (!$msg) $msg = lang('%1 contact(s) %2',$success,$action_msg);
$response->addScript("alert('".addslashes($msg)."')");
$response->addScript('egw(window).close();');
$response->addScript('window.close();');
}
}
@ -1741,12 +1741,6 @@ window.egw_LAB.wait(function() {
$label = $owner == $this->user ? lang('personal') : common::grab_owner_name($owner);
}
// show tid icon for tid!='n' AND only if one is defined
if ($tid != 'n' && common::image('addressbook',$this->content_types[$tid]['name']))
{
$icon = common::image('addressbook',$this->content_types[$tid]['name']);
}
// Legacy - from when icons could be anywhere
if ($tid != 'n' && $this->content_types[$tid]['options']['icon'])
{
$icon = $this->content_types[$tid]['options']['icon'];
@ -1777,11 +1771,6 @@ window.egw_LAB.wait(function() {
{
case 'save':
case 'apply':
if ($content['presets_fields'])
{
// unset the duplicate_filed after submit because we don't need to warn user for second time about contact duplication
unset($content['presets_fields']);
}
if ($content['delete_photo'])
{
$content['jpegphoto'] = null;
@ -2060,9 +2049,7 @@ window.egw_LAB.wait(function() {
{
if (!empty($content[$field]))
{
//Set the presets fields in content in order to be able to use them later in client side for checking duplication only on first time load
// after save/apply we unset them
$content['presets_fields'][]= $field;
egw_framework::set_onload("app.addressbook.check_value(document.getElementById('exec[$field]'),0);");
break;
}
}

View File

@ -0,0 +1,117 @@
<?php
/**
* Addressbook - birthday reminder on home-page
*
* @package addressbook
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
if ($GLOBALS['egw_info']['user']['apps']['addressbook'] &&
($days = $GLOBALS['egw_info']['user']['preferences']['addressbook']['mainscreen_showbirthdays']) &&
$GLOBALS['egw_info']['server']['hide_birthdays'] != 'yes')
{
echo "\n<!-- Birthday info -->\n";
if (!(int) $days) $days = 1; // old pref
$contacts = new addressbook_bo();
$month_start = date('-m-',$contacts->now_su);
$bdays =& $contacts->search(array('bday' => $month_start),array('id','n_family','n_given','bday'),'n_given,n_family','','%');
// search accounts too, if not stored in accounts repository
$extra_accounts_search = $contacts->account_repository == 'ldap' && !is_null($contacts->so_accounts) &&
!$GLOBALS['egw_info']['user']['preferences']['addressbook']['hide_accounts'];
if ($extra_accounts_search && ($bdays2 = $contacts->search(array('bday' => $month_start),array('id','n_family','n_given','bday'),
'n_given,n_family','','%',false,'AND',false,array('owner' => 0))))
{
$bdays = !$bdays ? $bdays2 : array_merge($bdays,$bdays2);
}
if (($month_end = date('-m-',$contacts->now_su+$days*24*3600)) != $month_start)
{
if (($bdays2 =& $contacts->search(array('bday' => $month_end),array('id','n_family','n_given','bday'),'n_given,n_family','','%')))
{
$bdays = !$bdays ? $bdays2 : array_merge($bdays,$bdays2);
}
// search accounts too, if not stored in accounts repository
if ($extra_accounts_search && ($bdays2 = $contacts->search(array('bday' => $month_end),array('id','n_family','n_given','bday'),
'n_given,n_family','','%',false,'AND',false,array('owner' => 0))))
{
$bdays = !$bdays ? $bdays2 : array_merge($bdays,$bdays2);
}
}
unset($bdays2); unset($extra_accounts_search);
unset($month_start); unset($month_end);
if ($bdays)
{
$portalbox = CreateObject('phpgwapi.listbox',
Array(
'title' => lang('Birthdays'),
'primary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'secondary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'tertiary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'width' => '100%',
'outerborderwidth' => '0',
'header_background_image' => $GLOBALS['egw']->common->image($GLOBALS['egw']->common->get_tpl_dir('phpgwapi'),'bg_filler')
)
);
$app_id = $GLOBALS['egw']->applications->name2id('addressbook');
$GLOBALS['portal_order'][] = $app_id;
foreach(Array(
'up' => Array('url' => '/set_box.php', 'app' => $app_id),
'down' => Array('url' => '/set_box.php', 'app' => $app_id),
'close' => Array('url' => '/set_box.php', 'app' => $app_id),
'question' => Array('url' => '/set_box.php', 'app' => $app_id),
'edit' => Array('url' => '/set_box.php', 'app' => $app_id)
) as $key => $contactue)
{
$portalbox->set_controls($key,$contactue);
}
$portalbox->data = Array();
foreach($bdays as $contact) $buff[$contact['id']] = $contact;
$bdays=$buff;
for($n = 0; $n <= $days; ++$n)
{
$day = date('-m-d',$contacts->now_su+$n*24*3600);
foreach($bdays as $contact)
{
if(substr($contact['bday'],-6) == $day)
{
if (!$ab_lang_loaded++) $GLOBALS['egw']->translation->add_app('addressbook');
switch($n)
{
case 0:
$text = lang("Today is %1's birthday!", $contact['n_given'].' '.$contact['n_family']);
break;
case 1:
$text = lang("Tomorrow is %1's birthday.", $contact['n_given'].' '.$contact['n_family']);
break;
default:
list($y,$m,$d) = explode('-',$contact['bday']);
if ($GLOBALS['egw_info']['server']['hide_birthdays'] == 'dateonly') $y = '';
$text = lang("In %1 days (%2) is %3's birthday.",$n,
$GLOBALS['egw']->common->dateformatorder($y,$m,$d,true),
$contact['n_given'].' '.$contact['n_family']);
break;
}
$portalbox->data[] = array(
'text' => $text,
'link' => $GLOBALS['egw']->link('/index.php','menuaction=addressbook.addressbook_ui.view&contact_id=' . $contact['id'])
);
}
}
}
if(count($portalbox->data))
{
echo $portalbox->draw();
}
unset($portalbox);
unset($days); unset($day);
unset($n); unset($y); unset($m); unset($d);
}
unset($contacts); unset($bdays);
echo "\n<!-- Birthday info -->\n";
}

View File

@ -48,11 +48,6 @@ app.classes.addressbook = AppJS.extend(
*/
et2_ready: function(et2, name)
{
// r49769 let's CRM view run under currentapp == "addressbook", which causes
// app.addressbook.et2_ready called before app.infolog.et2_ready and therefore
// app.addressbook.et2 would point to infolog template, if we not stop here
if (name.match(/^infolog\./)) return;
// call parent
this._super.apply(this, arguments);
@ -71,14 +66,6 @@ app.classes.addressbook = AppJS.extend(
window.app.infolog = new window.app.classes.infolog();
}
}
// Call check value if the AB got opened with presets
if (window.location.href.match(/&presets\[email\]/g) && content.presets_fields)
{
for(var i=0;i< content.presets_fields.length;i++)
{
this.check_value(this.et2.getWidgetById(content.presets_fields),0);
}
}
break;
}
@ -581,14 +568,14 @@ app.classes.addressbook = AppJS.extend(
if(!index)
{
alert('Could not find index');
egw(window).close();
window.close();
return false;
}
var nm = index.widgetContainer.getWidgetById('nm');
if(!index)
{
window.opener.egw.message('Could not find list', 'error');
egw(window).close();
window.close();
return false;
}
// Reset filters first
@ -804,15 +791,5 @@ app.classes.addressbook = AppJS.extend(
}, this).sendRequest();
break;
}
},
/**
* Get title in order to set it as document title
* @returns {string}
*/
getWindowTitle: function()
{
var widget = this.et2.getWidgetById('n_fn');
if(widget) return widget.options.value;
}
});

View File

@ -275,6 +275,7 @@ phone numbers common bg Телефонни номера
photo addressbook bg Снимка
please enter a name for that field ! addressbook bg Моля въведете име за това поле!
please select only one category addressbook bg Моля, изберете само една категория
please update the templatename in your customfields section! addressbook bg Моля, обновете името на шаблона в секцията за полете по избор!
postal common bg Пощенски
pref addressbook bg предп.
preferred email address to use in distribution lists addressbook bg Предпочитан e-mail адрес за пощенски списъци
@ -353,6 +354,7 @@ verification addressbook bg Проверка
view linked infolog entries addressbook bg Покзване на свързаните записи от Дневника
warning!! ldap is valid only if you are not using contacts for accounts storage! admin bg ВНИМАНИЕ! LDAP е валиден избор само ако НЕ използвате контактите за съхранение и на потребителските акаунти!
warning: all contacts found will be deleted! addressbook bg ВНИМАНИЕ! Всички намерени контакти ще бъдат изтрити!
warning: template "%1" not found, using default template instead. addressbook bg ВНИМАНИЕ: Не е намерен шаблон "%1". Използва се шаблона по подразбиране.
weekday addressbook bg Ден от седмицата
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 bg Как да се изобразяват връзките към Адресния указател в другите приложения? Празните стойности ще бъдат игнорирани. Ако промените тази настройка следва да излезете и влезете в системата отново.
where to add the email address addressbook bg къде да се добави E-Mail адрес

View File

@ -182,7 +182,6 @@ exports contacts from your addressbook into a csv file. csv means 'comma seperat
extra addressbook cs Extra
extra private addressbook cs Extra soukromé
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook cs nepodařilo se změnit %1 členů organizace (nedostatečná práva) !!!
favorites addressbook cs Oblíbené
fax addressbook cs Fax
fax number common cs Faxové číslo
field %1 has been added ! addressbook cs Položka %1 byla přidána.
@ -299,6 +298,7 @@ phone numbers common cs Telefonní čísla
photo addressbook cs Fotografie
please enter a name for that field ! addressbook cs Zadejte prosím název pro tuto položku!
please select only one category addressbook cs Vyberte prosím jen jednu kategorii
please update the templatename in your customfields section! addressbook cs Zaktualizujte prosím název šablony ve Vaší sekci uživatelsky definovaných položek!
postal common cs PSČ
pref addressbook cs preferovaný
preferred email address to use in distribution lists addressbook cs Preferovaná e-mailová adresa pro použití v distribučních seznamech
@ -395,6 +395,7 @@ verification addressbook cs Ověření
view linked infolog entries addressbook cs Zobrazit odkazované záznamy v InfoLogu
warning!! ldap is valid only if you are not using contacts for accounts storage! admin cs VAROVÁNÍ!! LDAP je použitelný jen v případě, že NEpoužíváte kontakty pro ukládání uživatelských účtů!
warning: all contacts found will be deleted! addressbook cs VAROVÁNÍ: Všechny kontakty budou smazány!
warning: template "%1" not found, using default template instead. addressbook cs VAROVÁNÍ: Šablona "%1" nebyla nalezena, bude použita výchozí.
weekday addressbook cs Pracovní den
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 cs Co mají odkazy na adresář zobrazovat v ostatních aplikacích. Prázdné hodnoty budou vynechány. Pokud změníte toto nastavení, musíte se znovu přihlásit!
where to add the email address addressbook cs kam přidat e-mailovou adresu

View File

@ -105,7 +105,6 @@ contact repository admin es-es Repositorio de contactos
contact saved addressbook es-es Se ha guardado la entrada
contact settings admin es-es Configuración de los contactos
contactform addressbook es-es Formulario de contacto
contacts common es-es contactos
contacts and account contact-data to ldap admin es-es Contactos y datos del contacto y la cuenta en LDAP
contacts and account contact-data to sql admin es-es contactos y datos del contacto de la cuenta a SQL
contacts to ldap admin es-es Contactos en LDAP
@ -124,7 +123,6 @@ csv-filename addressbook es-es Archivo CSV
custom addressbook es-es Personalizado
custom etemplate for the contactform addressbook es-es Plantilla personalizada para el formulario del contacto
custom fields addressbook es-es Campos personalizados
data exchange settings addressbook es-es Opciones para intercambio de datos
debug output in browser addressbook es-es Depurar salida en el navegador
default addressbook es-es predeterminado
default address format addressbook es-es Formato predeterminado de las drecciones
@ -192,7 +190,6 @@ exports contacts from your addressbook into a csv file. csv means 'comma seperat
extra addressbook es-es Extra
extra private addressbook es-es Extra privado
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook es-es Fallo al cambiar %1 miembros de la organización ¡No tiene privilegios suficientes!
favorites addressbook es-es Favoritos
fax addressbook es-es Fax
fax number common es-es Número de fax
field %1 has been added ! addressbook es-es ¡El campo %1 ha sido añadido!
@ -208,7 +205,6 @@ freebusy uri addressbook es-es URI para disponibilidad
full name addressbook es-es Nombre completo
general admin es-es General
general fields: addressbook es-es Campos generales:
general settings addressbook es-es Opciones generales
geo addressbook es-es GEO
global categories addressbook es-es Categorías globales
grant addressbook access common es-es Conceder acceso a la libreta de direcciones
@ -228,7 +224,6 @@ home state addressbook es-es Provincia de residencia
home street addressbook es-es Domicilio personal
home zip code addressbook es-es Código postal
how many contacts should non-admins be able to export admin es-es Cuántos contactos deben poder exportar usuarios que no son administradores
html link to the current record addressbook es-es Enlace HTML al registro actual
icon addressbook es-es Icono
if accounts are already in ldap admin es-es si las cuentas ya están en LDAP
ignore first line addressbook es-es Ignorar la primera línea
@ -261,14 +256,11 @@ ldif addressbook es-es LDIF
line 2 addressbook es-es Línea 2
link title for contacts show addressbook es-es Título del enlace para mostrar contactos
links addressbook es-es Enlaces
links and attached files addressbook es-es Enlaces y ficheros adjuntos
links to specified application. example: {{links/infolog}} addressbook es-es Enlaces a la aplicación especificada. Ejemplo: {{links/infolog}}
list all categories addressbook es-es Lista de todas las categorías
list all customfields addressbook es-es Lista de todos los campos personalizados
list already exists! addressbook es-es ¡La lista ya existe!
list created addressbook es-es Se ha creado la lista
list creation failed, no rights! addressbook es-es Falló la creación de lista. No tiene privilegios suficientes.
list of files linked to the current record addressbook es-es Lista de ficheros vinculados al registro actual
load vcard addressbook es-es Cargar VCard
location addressbook es-es Ubicación
locations addressbook es-es ubicaciones
@ -315,6 +307,7 @@ phone numbers common es-es Números de teléfono
photo addressbook es-es Fotografía
please enter a name for that field ! addressbook es-es Por favor, introduzca un nombre para ese campo
please select only one category addressbook es-es Por favor, seleccione sólo una categoría
please update the templatename in your customfields section! addressbook es-es ¡Por favor, actualice el nombre de la plantilla en la sección de campos personalizados!
postal common es-es Postal
pref addressbook es-es pref
preferred email address to use in distribution lists addressbook es-es Dirección de correo electrónica preferida para usar en las listas de distribución
@ -380,14 +373,12 @@ that field name has been used already ! addressbook es-es El nombre del campo ya
the anonymous user has probably no add rights for this addressbook. addressbook es-es El usuario anónimo probablemente no tiene derechos de añadir para esta libreta de direcciones.
the anonymous user needs add rights for it! addressbook es-es ¡El usuario anónimo necesita derechos de añadir para esto!
the anonymous user needs read it! addressbook es-es ¡El usuario anónimo necesita leerlo!
the following document-types are supported: addressbook es-es Los siguientes tipos de documentos están soportados:
there was an error saving your data :-( addressbook es-es Ocurrió un error al guardar los datos
this module displays a contactform, that stores direct into the addressbook. addressbook es-es Este módulo muestra un formulario de contacto que se guarda directamente en la libreta de direcciones.
this module displays block from a adddressbook group. addressbook es-es Este módulo muestra el bloque de un grupo de libreta de direcciones
this person's first name was not in the address book. addressbook es-es El primer nombre de esta persona no estaba en la libreta de direcciones.
this person's last name was not in the address book. addressbook es-es El apellido de esta persona no estaba en la libreta de direcciones.
timezone addressbook es-es Zona horaria
titles of any entries linked to the current record, excluding attached files addressbook es-es Títulos de cualquier entrada vinculada al registro actual, excluyendo los ficheros adjuntos
to many might exceed your execution-time-limit addressbook es-es a cuánto puede exceder el tiempo límite de ejecución
today is %1's birthday! common es-es ¡Hoy es el cumpleaños de %1!
tomorrow is %1's birthday. common es-es ¡Mañana es el cumpleaños de %1!
@ -414,6 +405,7 @@ verification addressbook es-es Verificación
view linked infolog entries addressbook es-es Ver las entradas del Registro que estén vinculadas
warning!! ldap is valid only if you are not using contacts for accounts storage! admin es-es ¡Atención! ¡LDAP es valido sólo si no está usando contactos para almacenar las cuentas!
warning: all contacts found will be deleted! addressbook es-es ATENCIÓN: ¡Se borrarán todos los contactos encontrados!
warning: template "%1" not found, using default template instead. addressbook es-es AVISO: No se encontró la plantilla "%1". Se usa la plantilla predeterminada en su lugar.
weekday addressbook es-es Día semanal
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 es-es Qué deben mostrar los enlaces a la libreta de direcciones en otras aplicaciones. Los valores vacíos se ignorarán. Es necesario volver a iniciar la sesión si se cambia esta opción.
where to add the email address addressbook es-es dónde añadir la dirección de correo electrónico
@ -442,6 +434,5 @@ you must select a vcard. (*.vcf) addressbook es-es Debe seleccionar una tarjeta
you must select at least 1 column to display addressbook es-es Debe seleccionar al menos una columna para mostrar
you need to select a distribution list addressbook es-es Necesita seleccionar una lista de distribución
you need to select some contacts first addressbook es-es Necesita seleccionar antes algunos contactos
you need to select some entries first addressbook es-es Necesita seleccionar antes algunas entradas
zip code common es-es Código postal
zip_note addressbook es-es <p><b>Nota:</b> El fichero puede ser un fichero zip conteniendo ficheros .csv, .vcf o .ldif. Sin embargo, no mezcle los tipos cada vez que importe.

View File

@ -91,6 +91,7 @@ charset for the vcard export addressbook fi vCard -viennissä käytettävä merk
charset of file addressbook fi Tiedoston merkistö
check all addressbook fi Valitse kaikki
choose an icon for this contact type admin fi Valitse kuvake tälle yhteystietotyypille
choose export options addressbook fi Valitse Vienti asetukset
choose owner of imported data addressbook fi Valitse omistaja tuoduille tiedoille
chosse an etemplate for this contact type admin fi Valitse eMallipohja tälle yhteystietotyypille
city common fi Kaupunki
@ -113,7 +114,6 @@ contact repository admin fi Yhteystietojen varasto
contact saved addressbook fi Yhteystieto tallennettu
contact settings admin fi Yhteystiedot - asetukset
contactform addressbook fi Yhteystietokaavake
contacts common fi Osoitteet
contacts and account contact-data to ldap admin fi Yhteystiedot ja käyttäjätilien yhteystiedot LDAP:iin
contacts and account contact-data to sql admin fi Yhteystiedot ja käyttäjätilien yhteystiedot SQL:ään
contacts to ldap admin fi Yhteystiedot LDAP:iin
@ -203,7 +203,6 @@ exports contacts from your addressbook into a csv file. csv means 'comma seperat
extra addressbook fi Lisätiedot
extra private addressbook fi Yksityiset tiedot
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook fi %1 organisaation jäsen(ien) muutos epäonnistui (Puutteelliset oikeudet) !!!
favorites addressbook fi Suosikit
fax addressbook fi Faksi
fax number common fi Faksinumero
field %1 has been added ! addressbook fi Kenttä %1 on lisätty!
@ -332,6 +331,7 @@ phone numbers common fi Puhelinnumerot
photo addressbook fi Kuva
please enter a name for that field ! addressbook fi Anna kentän nimi!
please select only one category addressbook fi Valitse vain yksi kategoria
please update the templatename in your customfields section! addressbook fi Päivitä mallipohjan nimi lisäkentissä!
postal common fi Postal
pref addressbook fi Oletus
preferred email address to use in distribution lists addressbook fi Ensisijainen sähköpostiosoite käytettäväksi jakelulistoilla.
@ -400,7 +400,6 @@ that field name has been used already ! addressbook fi Kentän nimi on jo käyt
the anonymous user has probably no add rights for this addressbook. addressbook fi Tuntemattomalla käyttäjällä ei ole lisäämiseen tarvittavia ACL-oikeuksia tässä osoitekirjassa.
the anonymous user needs add rights for it! addressbook fi Tuntematon käyttäjä tarvitsee lisäämiseen tarvittavat ACL-oikeudet!
the anonymous user needs read it! addressbook fi Tuntematon käyttäjä tarvitsee lukemiseen tarvittavat ACL-oikeudet!
the following document-types are supported: addressbook fi Seuraavat tiedostotyypit ovat tuettuja:
the zip extension is needed, to insert contact data in openoffice or msoffice documents. addressbook fi Zip extension vaaditaan OpenOffice ja MSOffice tiedostoille (yhteystietojen syöttämiseen).
there was an error saving your data :-( addressbook fi Virhe tallennettaessa!
this module displays a contactform, that stores direct into the addressbook. addressbook fi Tämä moduuli näyttää yhteydenottokaavakkeen, mikä varastoi osoitteen suoraan osoitekirjaan.
@ -437,6 +436,7 @@ verification addressbook fi Varmentaminen
view linked infolog entries addressbook fi Näytä linkitetyt InfoLog-merkinnät
warning!! ldap is valid only if you are not using contacts for accounts storage! admin fi VAROITUS!! LDAP soveltuu vain, jos sitä ei käytetä käyttäjättilien tallentamiseen!
warning: all contacts found will be deleted! addressbook fi VAROITUS: Kaikki löytyneet osoitteet poistetaan!
warning: template "%1" not found, using default template instead. addressbook fi VAROITUS: Mallipohjaa "%1" ei löytynyt, käyttää oletusmallipohjaa sen sijaan.
weekday addressbook fi Viikonpäivä
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 fi Mitä osoitekirjan linkin tulisi sisältää muissa sovelluksissa esim. InfoLogissa. Tyhjiä kenttiä ei kuitenkaan näytetä. Kirjaudu sisään uudellen, jos muutat tätä asetusta!
where to add the email address addressbook fi Mihin sähköpostiosoite tulisi lisätä?
@ -465,6 +465,5 @@ you must select a vcard. (*.vcf) addressbook fi Valitse vCard -tiedosto. (*.vcf)
you must select at least 1 column to display addressbook fi Valitse ainakin yksi näytettävä sarake
you need to select a distribution list addressbook fi Valitse ensin jakelulista
you need to select some contacts first addressbook fi Valitse ensin joku yhteystieto
you need to select some entries first addressbook fi Valitse merkintä
zip code common fi Postinumero
zip_note addressbook fi <p><b>Huom:</b> Tiedosto voi olla usean .csv-, .vcf- tai .ldif -tiedoston zip-paketti. Älä kuitenkaan tuo useampaa tiedostotyyppiä kerralla.

View File

@ -287,8 +287,7 @@ in %1 days (%2) is %3's birthday. addressbook fr Dans %1 jours (%2) c'est l'anni
income addressbook fr Revenus
infolog addressbook fr InfoLog
insert addressbook fr Insérer
insufficent rights to delete this list! addressbook fr Autorisations insuffisantes pour supprimer cette liste !
insufficent rights to edit this list! addressbook fr Autorisations insuffisantes pour modifier cette list e!
insufficent rights to delete this list! addressbook fr Autorisations insuffisantes pour supprimer cette liste!
international addressbook fr International
internet addressbook fr Internet
label addressbook fr Label
@ -336,15 +335,13 @@ multiple vcard addressbook fr VCard multiples
name for the distribution list addressbook fr Nom de la liste de diffusino
name of current user, all other contact fields are valid too addressbook fr Nom de l'utilisateur courant, tous les autres champs de contacts sont valides aussi
name, address addressbook fr Nom, adresse
new contact submitted by %1 at %2 addressbook fr Nouveau contact soumis par %1 à %2.
new contact submitted by %1 at %2 addressbook fr Nouveau contact soumis de %1 à %2 .
new window opened to edit infolog for your selection addressbook fr Nouvelle fenêtre ouverte pour modifier un infolog.
next date addressbook fr Date de prochain contact
next date addressbook fr Prochain contact
no categories selected addressbook fr Aucune catégorie sélectionnée
no fallback addressbook fr Pas de fallback
no vcard addressbook fr Pas de VCard
number addressbook fr Numéro
number of records to read (%1) addressbook fr Nombre d'enregistrements à lire (%1)
open %1 crm view addressbook fr Ouvrir la vue CRM %1
open email addresses in external mail program addressbook fr Ouvrir les adresses email dans un programme externe
open for editing? addressbook fr Ouvrir en modification ?
open infolog crm view preferences fr Ouvrir la vue CRM de l'Infolog
@ -366,10 +363,11 @@ phone numbers common fr Numéros de téléphone
photo addressbook fr Photo
please enter a name for that field ! addressbook fr SVP entrez un nom pour ce champ !
please select only one category addressbook fr Sélectionnez une seule catégorie !
please update the templatename in your customfields section! addressbook fr Mettre à jour le nom du template dans la session des champs personnalisés.
postal common fr Postal
pref addressbook fr pref
preferred email address to use in distribution lists addressbook fr Adresse email préférée
preferred phone addressbook fr Numéro de téléphone préféré
preferred phone addressbook fr Numéro de téléphone préférentiel
preferred type of email address to add for distribution lists addressbook fr Type d'adresse email préférée pour les listes de diffusion
prefix addressbook fr Préfixe
prevent deleting of contacts admin fr Empecher la suppression de contacts
@ -417,7 +415,6 @@ show infolog entries for this organisation addressbook fr Montre les entrées In
show the contacts of this organisation addressbook fr Montrer les contacts de l'organisation
similar contacts found: addressbook fr Contacts similaires trouvés :
size of popup (wxh, eg.400x300, if a popup should be used) admin fr Taille du popup (LxH, p.ex.400x300, si un popup doit être utilisé)
special addressbook fr Spécial
stadt addressbook fr Ville
start admin fr Début
startrecord addressbook fr Enregistrement de départ
@ -446,7 +443,6 @@ this person's first name was not in the address book. addressbook fr Le prénom
this person's last name was not in the address book. addressbook fr Le nom de cette personne n'était pas dans le carnet d'adresses.
timezone addressbook fr Fuseau horaire
title addressbook fr Titre
titles of any entries linked to the current record, excluding attached files addressbook fr Titres de toutes les entrées liées à l'enregistrement courant, à l'exception des fichiers
to many might exceed your execution-time-limit addressbook fr trop pourrait dépasser votre temps limite d'exécution
today is %1's birthday! common fr Aujourd'hui c'est l'anniversaire de %1 !
tomorrow is %1's birthday. common fr Demain c'est l'anniversaire de %1.
@ -482,6 +478,7 @@ verification addressbook fr Vérification
view linked infolog entries addressbook fr Afficher les entrées liées à InfoLog
warning!! ldap is valid only if you are not using contacts for accounts storage! admin fr ATTENTION!! LDAP est valide seulement si vous n'utilisez PAS les contacts pour le stockage des comptes!
warning: all contacts found will be deleted! addressbook fr AVERTISSEMENT : Tous les contacts trouvés seront supprimés!
warning: template "%1" not found, using default template instead. addressbook fr AVERTISSEMENT : template "%1" introubable, utilisation du template par défaut.
weekday addressbook fr Jour de la semaine
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 fr Que devraient afficher les liens du carnet d'adresses dans les autres applications. Les valeurs vides ne seront pas prises en compte. Vous devez vous reconnecter si vous modifiez ce paramètre!
when viewing a contact, show linked entries from the selected application addressbook fr A l'affichage du contact, afficher les entrées liées sur les applications sélectionnées
@ -513,7 +510,6 @@ you must select a vcard. (*.vcf) addressbook fr Vous devez choisir une vcard. (*
you must select at least 1 column to display addressbook fr Vous devez choisir au moins 1 colonne à afficher
you need to select a distribution list addressbook fr Vous devez choisir une liste de diffusion
you need to select some contacts first addressbook fr Vous devez d'abord choisir les contacts
you need to select some entries first addressbook fr Vous devez d'abord sélectionner des entrées.
zip code common fr Code postal
zip code (private) addressbook fr Code postal (privé)
zip_note addressbook fr <p><b>Note:</b> Le fichier peut être un fichier zip contenant une collection de fichiers .csv, .vcf ou .ldif. C´est pourquoi il est important de ne pas mélanger les types de fichiers lors de l'importation.

View File

@ -158,7 +158,6 @@ exported addressbook hu exportálva
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 hu Kapcsolatok exportálása a Címjegyzékből CSV formátumban. CSV jelentése 'Comma Separated Values'. Az opcióknál kiválasztható más elválasztó karakter is, nem csak a vessző.
extra addressbook hu Extra
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook hu %1
favorites addressbook hu Kedvencek
fax addressbook hu Fax
fax number common hu Fax Szám
field %1 has been added ! addressbook hu %1 mező hozzáadva!
@ -331,6 +330,7 @@ verification addressbook hu Hitelesítés
view linked infolog entries addressbook hu Kapcsolat InfoLog bejegyzések megtekintése
warning!! ldap is valid only if you are not using contacts for accounts storage! admin hu Figyelem!! Az LDAP csak akkor érvényes, ha felhasználói azonosítók tárolására NEM használjuk a kapcsolatokat!
warning: all contacts found will be deleted! addressbook hu FIGYELMEZTETÉS: Az összes fellelhető kapcsolat törlődni fog!
warning: template "%1" not found, using default template instead. addressbook hu FIGYELMEZTETÉS: %1 sablon nem található, helyette az alapértelmezettet használjuk.
weekday addressbook hu Hétköznap
which charset should be used for the csv export. the system default is the charset of this egroupware installation. addressbook hu Milyen karakterkódolást alkalmazzunk CSV exportnál? Az alapértelmezett karakterkódolás az eGroupWare rendszer alapértelmezett karakterkódolásával egyezik meg.
whole query addressbook hu teljes lekérdezés

View File

@ -84,7 +84,6 @@ contact repository admin id Tempat Kontak
contact saved addressbook id Kontak disimpan
contact settings admin id Pengaturan Kontak
contactform addressbook id Formulir kontak
contacts common id kontak
contains addressbook id mengandung
copied addressbook id disalin
copied by %1, from record #%2. addressbook id Disalin oleh %1, dari rekaman #%2.
@ -135,7 +134,6 @@ export selection addressbook id Ekspor pilihan
exported addressbook id diekspor
extra addressbook id Tambahan
extra private addressbook id Privat tambahan
favorites addressbook id Favorit
fax addressbook id Fax
fax number common id Nomor Fax
field %1 has been added ! addressbook id Field %1 telah ditambahkan!

View File

@ -1,15 +1,11 @@
%1 added addressbook it %1 aggiunto
%1 contact(s) %2 addressbook it %1 contatto(i) %2
%1 contact(s) %2, %3 failed because of insufficent rights !!! addressbook it %1 contatto/i %2, %3 fallita a causa di diritti insufficienti !!!
%1 contacts updated (%2 errors). addressbook it %1 contatti aggiornati (%2 errori)
%1 fields in %2 other organisation member(s) changed addressbook it %1 campi in %2 altro/i membro/i dell'organizzazione modificati.
%1 not implemented for %2! addressbook it %1 non implementato per %2!
%1 records imported addressbook it %1 record importati
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook it %1 record letti (non ancora importati, è possibile tornare %2indietro%3 e deselezionare Test Importazione)
%1 starts with '%2' addressbook it %1 inizia con '%2'
%s please calculate the result addressbook it %s per favore calcolare il risultato
(e.g. 1969) addressbook it (es. 1969)
(empty = use global limit, no = no export at all) admin it (vuoto = usa limite globale, no = non esportare nulla)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook it <b>Il tipo di conversione <nessuno> non è stato trovato.</b> Per favore scegliere un tipo di conversione dalla lista
@-eval() is only availible to admins!!! addressbook it @-eval() è disponibile solo agli amministratori!!!
account id addressbook it ID Account
@ -18,67 +14,41 @@ accounts addressbook it Account
actions addressbook it Azioni
add %1 addressbook it Aggiungi %1
add a contact to this organisation addressbook it Aggiungi un contatto a questa organizzazione
add a customfield to link title addressbook it Aggiungi un campo personalizzato al titolo del collegamento
add a new contact addressbook it Aggiungi un nuovo contatto
add a new infolog addressbook it Aggiungi una scheda Attività
add a new list addressbook it Aggiungi elenco
add a single entry by passing the fields. addressbook it Aggiungi un solo elemento passando i campi.
add appointment addressbook it Aggiungi appuntamento
add business email of whole distribution list? addressbook it Aggiungere l'email dell'ufficio di tutta la lista di distribuzione?
add custom field addressbook it Aggiungi campo personalizzato
add customfield to links of addressbook, which displays in other applications. the default value is none customfield. addressbook it Aggiungi campo personalizzato ai collegamenti della rubrica, che vengono mostrati in altre applicazioni. Il predefinito è nessun campo personalizzato.
add emails of whole distribution list? addressbook it Aggiugere gli indirizzi di tutta la lista di distribuzione?
add or delete categories addressbook it Aggiungere o eliminare categorie
add to bcc addressbook it Aggiungere a Ccn:
add to cc addressbook it Aggiungere a Cc:
add to distribution list addressbook it Aggiungi alla lista di distribuzione
add to distribution list: addressbook it Aggiungi alla lista di distribuzione:
add to to addressbook it Aggiungi ad "A:"
added addressbook it Aggiunto
added by synchronisation addressbook it Aggiunto da sincronizzazione
added to distribution list addressbook it Aggiunto alla lista di distribuzione
additional information about using ldap as contact repository admin it Informazione aggiuntiva riguardante l'utilizzo di LDAP come archivio contatti
address book common it Rubrica
address book - vcard in addressbook it Rubrica - VCard in
address book - view addressbook it Rubrica - visualizza
address line 2 addressbook it Indirizzo linea 2
address line 2 (private) addressbook it Indirizzo linea 2 (privato)
address type addressbook it Tipo di indirizzo
addressbook common it Rubrica
addressbook csv export addressbook it Esportazione CSV della Rubrica
addressbook csv import addressbook it Importazione da CSV rubrica
addressbook field addressbook it Campo della Rubrica
addressbook menu addressbook it Menù Rubrica
addressbook of addressbook it Rubrica di
addressbook preferences addressbook it Preferenze Rubrica
addressbook the contact should be saved to addressbook it Rubrica nella quale salvare il contatto
addressbook the contact should be shown addressbook it La rubrica in cui il contatto dovrà essere mostrato
addressbook vcard export addressbook it Esportazione vCard
addressbook vcard import addressbook it Importazione da vCard rubrica
addressbook-fieldname addressbook it Rubrica - Nome del Campo
addvcard addressbook it Aggiungi Vcard
advanced search addressbook it Ricerca avanzata
all contacts addressbook it Tutti i contatti
all in one field addressbook it Tutto in un Campo
allow members of following groups to edit contact-data of accounts addressbook it Permettere ai membri dei seguenti gruppi di modificare i dati di contatto degli account
allow users to maintain their own account-data admin it Permetti agli utenti di gestire i dati del proprio account
alt. csv import addressbook it Importazione CSV Alternativa
always addressbook it Sempre
always addressbook it sempre
apply changes to all members, whose fields have the same previous content addressbook it Applica le modifiche a tutti i membri i cui campi hanno lo stesso contenuto precedente
apply the action on the whole query, not only the shown contacts!!! addressbook it Applica l'azione a tutta la query, NON solo ai contatti mostrati!!!
are you shure you want to delete this contact? addressbook it Vuoi davvero eliminare questo contatto?
are you sure you want to delete this field? addressbook it Vuoi davvero eliminare questo campo?
assistent addressbook it Assistente
assistent phone addressbook it Telefono assistente
assistent phone addressbook it telefono assistente
birthday common it Data di nascita
birthdays common it Compleanni
blank addressbook it Vuoto
blank addressbook it In bianco
business common it Ufficio
business address addressbook it Indirizzo ufficio
business address line 2 addressbook it Indirizzo ufficio riga 2
business address addressbook it Indirizzo Ufficio
business city addressbook it Città Ufficio
business country addressbook it Nazione Ufficio
business country code addressbook it Codice nazione ufficio
business email addressbook it Email Ufficio
business fax addressbook it Fax ufficio
business phone addressbook it Telefono ufficio
@ -88,194 +58,112 @@ business zip code addressbook it CAP ufficio
calendar fields: addressbook it Campi agenda:
calendar uri addressbook it URI Agenda
can be changed via setup >> configuration admin it Può essere modificato tramite Setup >> Configurazione
can't create dn %1 addressbook it Impossibile creare dn %1
car phone addressbook it Telefono veicolare
categorie addressbook it Categoria
categorie added addressbook it Categoria aggiunta.
categorie delete addressbook it Categoria eliminata
categories, notes, ... addressbook it Categorie, Note, ...
category path addressbook it Percorso categoria
category tree admin it Albero categoria
cell phone addressbook it Telefono cellulare
change all organisation members addressbook it modifica tutti i membri dell'organizzazione
charset for the csv export addressbook it Set di caratteri per esportazione CSV
charset for the vcard export addressbook it Set di caratteri per l'esportazione vCard
charset for the vcard import and export addressbook it Set di caratteri per l'esportazione e l'importazione vCard
charset for the csv export addressbook it Set di Caratteri per esportazione CSV
charset of file addressbook it Set di Caratteri del file
check all addressbook it Seleziona tutto
choose an icon for this contact type admin it Scegli un'icona per questo tipo di contatto
choose charset addressbook it Seleziona set di caratteri
choose owner of imported data addressbook it Modifica proprietario dei dati importati
chosse an etemplate for this contact type admin it Scegli un eTemplate per questo tipo di contatto
city common it Città
city (private) addressbook it Città (privato)
cleanup addressbook fields (apply if synchronization creates duplicates) addressbook it Ripulire i campi della rubrica se la sincronizzazione avesse creato duplicati
company common it Società
company name addressbook it Nome società
configuration common it Configurazione
contact common it Contatto
contact application admin it Applicativo Contatti
contact copied addressbook it Contatto copiato
contact data addressbook it Dati di contatto
contact deleted addressbook it Contatto cancellato
contact fields to show addressbook it Campi di contatto da mostrare
contact fields: addressbook it Campi di contatto:
contact id addressbook it ID contatto
contact id cannot be changed by import addressbook it L'ID del contatto non può essere modificato dall'importazione!
contact maintenance admin it Manutenzione contatti
contact modified by %1 at %2 addressbook it Contatto modificato da %1 alle %2
contact not found! addressbook it Contatto non trovato!
contact repository admin it Archivio contatti
contact saved addressbook it Contatto salvato
contact settings admin it Impostazioni Contatto
contactform addressbook it Modulo di contatto
contacts common it Contatti
contacts and account contact-data to ldap admin it Contatti e account a LDAP
contacts and account contact-data to sql admin it Contatti e account a SQL
contacts to ldap admin it Contatti a LDAP
contacts to ldap, account contact-data to sql admin it Contatti a LDAP e dati account a SQL
contacts to ldap admin it contatti a LDAP
contains addressbook it contiene
copied addressbook it Copiato
copied by %1, from record #%2. addressbook it Copiato %1, dal record n.%2.
copy a contact and edit the copy addressbook it Copia un contatto e modifica la copia
copy instead of move addressbook it Copia invece di spostare
copy your changes to the clipboard, %1reload the entry%2 and merge them. addressbook it Copia le tue modifiche negli appunti, %1aggiorna l'inserimento%2 e uniscili.
country common it Nazione
country (private) addressbook it Nazione (privato)
country code addressbook it Codice nazione
country code (private) addressbook it Codice nazione (privato)
create new links addressbook it Crea nuovi collegamenti
created addressbook it Creato
credit addressbook it Credito
crm view list addressbook it Vista elenco CRM
crm-view addressbook it Vista CRM
csv-fieldname addressbook it CSV-Nome del Campo
csv-filename addressbook it CSV-Nome del File
custom addressbook it Personalizzato
custom etemplate for the contactform addressbook it Template personalizzato per il modulo di contatto
custom fields addressbook it Campi Personalizzati
data exchange settings addressbook it Impostazioni di scambio dati
debug output in browser addressbook it Visualizza nel browser
default addressbook it Predefinito
default action on double-click addressbook it Azione predefinita al doppio click
default address format addressbook it Formato indirizzo predefinito
default addressbook for adding contacts addressbook it Rubrica predefinita per l'aggiunta di contatti
default document to insert contacts addressbook it Documento predefinito per l'inserimento di contatti
default file as format addressbook it File predefinito come formato
default filter addressbook it Filtro predefinito
default format for fileas, eg. for new entries. addressbook it Formato predefinito p.es. per nuove voci
default is to open email addresses in egroupware email application, if user has access to it. addressbook it L'azione predefinita è aprire gli indirizzi email nell'applicazione EMail, se l'utente ha diritto di accesso ad essa.
defines which email address (business or home) to use as the preferred one for distribution lists in mail. addressbook it Quale indirizzo email viene utilizzato come preferito nelle liste di distribuzione
delete a single entry by passing the id. addressbook it Elimina un singola voce passando l'ID.
delete selected distribution list! addressbook it Elimina la lista di distribuzione selezionata!
delete this contact addressbook it Elimina questo contatto
delete a single entry by passing the id. addressbook it Cancella un singola voce passando l'ID.
delete this contact addressbook it Cancella questo contatto
delete this organisation including all its contacts addressbook it Cancella questa organizzazione inclusi TUTTI i suoi contatti
deleted addressbook it Eliminato
deletes the photo addressbook it Elimina la foto
deleted addressbook it cancellato
deletes the photo addressbook it Cancella la foto
department common it Dipartimento
departments addressbook it Dipartimenti
directory with documents to insert contacts addressbook it Cartella con documenti in cui inserire contatti
display contact addressbook it Mostra contatto
departments addressbook it dipartimenti
displays a remider for birthdays on the startpage (page you get when you enter egroupware or click on the homepage icon). addressbook it Visualizza un promemoria per i compleanni sulla pagina iniziale (pagina che vedi quando entri in eGroupWare o clicchi sull'icona Home).
distribution list deleted addressbook it La lista di distribuzione è stata rimossa
distribution list renamed addressbook it La lista di distribuzione è stata rinominata
distribution lists addressbook it Liste di distribuzione
distribution lists, ... addressbook it Liste di distribuzione, ...
do you really want to delete this contact? addressbook it Confermi di voler eliminare questo contatto?
do you want a private addressbook, which can not be viewed by users, you grant access to your personal addressbook? addressbook it Vuoi una rubrica privata, che non può essere vista dagli utenti, autorizzi l'accesso alla tua rubrica personale?
do your really want to delete this contact? addressbook it Vuoi davvero eliminare questo contatto?
doesn't matter addressbook it Non importa
do your really want to delete this contact? addressbook it Vuoi davvero eliminare questo contatto
doesn't matter addressbook it non importa
domestic addressbook it Nazionale
don't hide empty columns addressbook it Nascondi colonne vuote
download addressbook it Download
download export file (uncheck to debug output in browser) addressbook it Download del file export (Deseleziona per visualizzarlo nel browser)
download this contact as vcard file addressbook it scarica questo contatto come file vCard
duration addressbook it Durata
each category in its own field addressbook it Ogni categoria nel suo campo
each option in its own field addressbook it Ogni opzione nel suo cao
edit contact addressbook it Modifica contatto
edit custom field addressbook it Modifica campo personalizzato
edit custom fields admin it Modifica campi personalizzati
edit extra account-data in the addressbook admin it Modifica dati-account extra nella rubrica
edit phonenumbers addressbook it Modifica numeri telefonici
edit phonenumbers - addressbook it Modifica Numeri telefonici -
either the configured email addesses are wrong or the mail configuration. addressbook it La configurazione della posta elettronica o gli indirizzi configurati presentano errori.
email & internet addressbook it Email e Internet
email (private) addressbook it Email (privato)
email addresses (comma separated) to send the contact data addressbook it Indirizzi email, separati da virgola, per l'invio dei dati di contatto
empty admin it Vuoto
empty for all addressbook it per tutti vuoto
enable an extra private addressbook addressbook it Abilita una rubrica extra privata
enclosure addressbook it Inclusione
end addressbook it Fine
enter the path to the exported file here addressbook it Inserisci qui il percorso per il file esportato
error deleting the contact !!! addressbook it Errore cancellando il contatto !!!
error saving the contact !!! addressbook it Errore salvando il contatto !!!
error: the entry has been updated since you opened it for editing! addressbook it L'inserimento è stato modificato dall'ultima volta che l'hai aperto per la modifica!
example {{if n_prefix~mr~hello mr.~hello ms.}} - search the field "n_prefix", for "mr", if found, write hello mr., else write hello ms. addressbook it Esempio {{IF n_prefix~Sig~Hello Mr.~Salve Sig.ra.}} - ricerca nel campo "n_prefix", per "Sig", se trovato scrivere "Salve Sig" altrimenti scrivere "Salve Sig.ra"
example {{letterprefixcustom n_prefix title n_family}} - example: mr dr. james miller preferences it Esempio {{LETTERPREFIXCUSTOM n_prefix title n_family}} Esempio: Sig. Dott. Giorgio Rossi
example {{nelf role}} - if field role is not empty, you will get a new line with the value of field role addressbook it Esempio {{NELF role}} - se il campo "Ruolo" non è vuoto, si otterrà una riga con il valore del campo "Ruolo"
example {{nelfnv role}} - if field role is not empty, set a lf without any value of the field addressbook it Esempio {{NELFNV role}} - se il campo non è vuoto, impostare un LF senza alcun valore del campo
existing links addressbook it Collegamenti esistenti
exists addressbook it Esiste
export as csv addressbook it Esporta come CSV
export as vcard addressbook it Esporta come VCard
export contacts addressbook it Esporta Contatti
export definition to use for nextmatch export addressbook it Definizione di esportazione da utilizzare per l'esportazione "nextmatch" (corrispondenza successiva)
export definitition to use for nextmatch export addressbook it Esporta la definizione da utilizzare per la esportazione
export file name addressbook it Esporta nome file
export from addressbook addressbook it Esporta dalla Rubrica
export selection addressbook it Esporta selezione
exported addressbook it esportato
exports contacts from your addressbook into a csv file. addressbook it Esporta i contatti della rubrica in un file CSV
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 it Esporta i contatti della rubrica in un file CSV. CSV significa 'Comma Separated Values' ovvero valori separati da virgola. Si possono scegliere anche separatori diversi.
exports contacts from your addressbook into a vcard file. addressbook it Esporta i contatti della rubrica in file vCard
extra addressbook it Extra
extra encodings addressbook it Codifiche extra
extra private addressbook it Extra privato
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook it Permessi insufficenti per modificare %1 membri dell'organizzazione
favorites addressbook it Preferiti
fax addressbook it Fax
fax (private) addressbook it Fax (privato)
fax number common it Numero Fax
field %1 has been added ! addressbook it Il campo %1 è stato aggiunto!
field %1 has been updated ! addressbook it Il campo %1 è stato aggiornato!
field name addressbook it Nome Campo
fields for the csv export addressbook it Campi per l'esportazione CSV
fields the user is allowed to edit himself admin it Campi che l'utente ha il permesso di modificare
fields to copy when copying an address? admin it Campi da copiare quando si copia un indirizzo
fields to show in address list addressbook it Campi da visualizzare nella lista degli indirizzi
fieldseparator addressbook it Separatore dei campi
for read only ldap admin it Per LDAP di sola lettura
for serial letter use this tag. put the content, you want to repeat between two tags. addressbook it Per una lettera seriale, utilizzare questo tag. Immettere il contenuto che si vuole ripetere tra due tag.
freebusy uri addressbook it URI per Libero/Occupato
full name addressbook it Nome completo
general admin it Generale
general fields: addressbook it Campi generali
general settings addressbook it Impostazioni generali
geo addressbook it GEO
global categories addressbook it Categorie Globali
grant addressbook access common it Permetti accesso alla Rubrica
group %1 addressbook it Gruppo %1
h addressbook it h
hide accounts from addressbook addressbook it Nascondi account utente
hides accounts completly from the adressbook. addressbook it Nascondi completamente gli account degli utenti EPL dalla rubrica.
history logging admin it Registrazione dello storico
home address addressbook it Indirizzo abitazione
home address, birthday, ... addressbook it Indirizzo abitazione, compleanno, ...
home city addressbook it Città abitazione
home country addressbook it Nazione abitazione
home email addressbook it Email abitazione
home email if given, else work email addressbook it Se inserito, email abitazione, altrimenti email ufficio
home phone addressbook it Telefono abitazione
home state addressbook it Provincia abitazione
home street addressbook it Via abitazione
home zip code addressbook it CAP abitazione
how many contacts should non-admins be able to export admin it Quanti contatti dovrebbero essere in grado di esportare gli utenti semplici (non amministratori)?
html link to the current record addressbook it Collegamento HTML al record attuale
home address addressbook it Indirizzo Abitazione
home city addressbook it Città Abitazione
home country addressbook it Nazione Abitazione
home email addressbook it Email Abitazione
home phone addressbook it Telefono Abitazione
home state addressbook it Provincia Abitazione
home street addressbook it Via Abitazione
home zip code addressbook it CAP Abitazione
icon addressbook it Icona
if accounts are already in ldap admin it se gli account sono già in LDAP
ignore first line addressbook it Ignora la prima riga
import addressbook it Importa
import contacts addressbook it Importa Contatti
import csv-file into addressbook addressbook it Importa file CSV nella Rubrica
@ -286,19 +174,12 @@ import from outlook addressbook it Importa da Outlook
import multiple vcard addressbook it Importa Molteplici VCard
import next set addressbook it Import il prossimo set
import_instructions addressbook it In Netscape, apri la rubrica e seleziona <b>Esporta</b> dal menu <b>File</b>. Il file verrà esportato in formato LDIF.<p>O, in Outlook, seleziona la cartella Contatti , seleziona <b>Importa ed esporta...</b> dal menu <b>File</b> ed esporta i contatti nel formato testo separato da virgola (CSV). <p>O, in Palm Desktop 4.0 o superiore, apri l'agenda e seleziona <b>Esporta</b> dal menu <b>File</b>. Il file verrà esportato in formato VCard.
importer's personal addressbook it Personale dell'account importatore
imports contacts into your addressbook from a csv file. csv means 'comma seperated values'. however in the options tab you can also choose other seperators. addressbook it Importa i contatti da file CSV. CSV sta per 'Comma Separated Values' ovvero valori separati da virgola. Nelle opzioni sarà possibile selezionare anche altri separatori.
imports contacts into your addressbook from a vcard file. addressbook it Importa contatti nella tua rubrica da un file vCard.
in %1 days (%2) is %3's birthday. addressbook it Tra %1 giorni (%2) sarà il compleanno di %3.
income addressbook it Entrata
infolog addressbook it Attività
insert addressbook it Inserisci
insufficent rights to delete this list! addressbook it Permessi insufficienti per eliminare questa lista!
insufficent rights to edit this list! addressbook it Permessi insufficienti per modificare questa lista!
international addressbook it Internazionale
internet addressbook it Internet
label addressbook it Etichetta
last date addressbook it Ultima data
last modified addressbook it ultima modifica
last modified by addressbook it ultima modifica di
ldap context for contacts admin it Contesto LDAP per i contatti
@ -306,63 +187,36 @@ ldap host for contacts admin it Server LDAP per i contatti
ldap settings for contacts admin it Impostazioni LDAP per i contatti
ldif addressbook it LDIF
line 2 addressbook it Linea 2
link title for contacts show addressbook it Link per i contatti
links addressbook it Collegamenti
links and attached files addressbook it Collegamenti e file allegati
links to specified application. example: {{links/infolog}} addressbook it Collegamenti alla applicazione specificata. Esempio: {{links/infolog}}
list all categories addressbook it Elenca tutte le categorie
list all customfields addressbook it Elenca tutti i campi personalizzati
list already exists! addressbook it Lista già esistente!
list created addressbook it Lista creata
list creation failed, no rights! addressbook it La creazione della lista è fallita, non ci sono i permessi sufficienti
list of files linked to the current record addressbook it Elenco dei file collegati al record attuale
load vcard addressbook it Carica VCard
location addressbook it Località
locations addressbook it Località
mail vcard addressbook it Invia email vCard
main categories in their own field addressbook it Categorie principale nel loro campo
locations addressbook it località
manage mapping addressbook it Gestisci la mappatura
mark records as private addressbook it Marca i record come privati
merge contacts addressbook it Unisci contatti
merge into first or account, deletes all other! addressbook it L'unione nel primo o account, elimina tutti gli altri!
merged addressbook it Uniti
message after submitting the form addressbook it Messaggio dopo l'invio del modulo
message phone addressbook it Telefono per Messaggi
middle name addressbook it Secondo Nome
migration finished addressbook it Migrazione terminata
migration to ldap admin it Migrazione a LDAP
mobile addressbook it Mobile
mobile phone addressbook it Telefono cellulare
mobile phone (private) addressbook it Telefono cellulare
modem phone addressbook it Telefono modem
mobile phone addressbook it Telefono Mobile
modem phone addressbook it Telefono Modem
more ... addressbook it Altro ...
move to addressbook addressbook it Sposta alla rubrica
moved addressbook it spostato
multiple vcard addressbook it Molteplici VCard
name for the distribution list addressbook it Nome della lista di distribuzione
name of current user, all other contact fields are valid too addressbook it Nome dell'utente corrente, tutti gli altri campi di contatto sono validi pure.
name, address addressbook it Nome, Indirizzo
new contact submitted by %1 at %2 addressbook it Nuovo contatto inviato da %1 alle %2
new window opened to edit infolog for your selection addressbook it Nuova finestra aperta per modificare la scheda di Attività
next date addressbook it Prossima data
no categories selected addressbook it Nessuna categoria selezionata
no fallback addressbook it Nessun fallback
no vcard addressbook it Nessuna VCard
number addressbook it Numero
number of records to read (%1) addressbook it Numero di record da leggere (%1)
open %1 crm view addressbook it Apri %1 in vista CRM
open email addresses in external mail program addressbook it Apri indirizzi email con programmi esterni
open for editing? addressbook it Aprire per la modifica?
open infolog crm view preferences it Apri vista CRM di Attività
open tracking system crm view preferences it Apri vista CRM di Tracking
options for type admin it Opzioni per tipo
organisation addressbook it Organizzazione
organisation addressbook it organizzazione
organisations addressbook it Organizzazioni
organisations by departments addressbook it Organizzazioni per dipartimenti
organisations by location addressbook it Organizzazioni per località
other number addressbook it Altro Numero
other phone addressbook it Altro Telefono
own sorting addressbook it Proprio ordinamento
own sorting addressbook it proprio ordinamento
pager common it Cercapersone
parcel addressbook it Parcel
participants addressbook it Partecipanti
@ -374,137 +228,67 @@ please enter a name for that field ! addressbook it Per favore inserire un nome
please select only one category addressbook it Per favore seleziona solo una categoria
postal common it Postale
pref addressbook it pref
preferred email address to use in distribution lists addressbook it Indirizzo email preferito
preferred phone addressbook it telefono preferito
preferred type of email address to add for distribution lists addressbook it Tipo di emai preferito per le liste di distribuzione
prefix addressbook it Prefisso
prevent deleting of contacts admin it Proteggi i contatti dall'eliminazione
private custom fields addressbook it Campi personalizzati privati
public key addressbook it Chiave Pubblica
publish into groups: addressbook it Pubblica nei gruppi:
read a list / search for entries. addressbook it Leggi un elenco / cerca delle voci.
read a list of entries. addressbook it Leggi un elenco di voci
read a single entry by passing the id and fieldlist. addressbook it Leggi una singola voce passando l'ID e elenco campi.
read only addressbook it Sola lettura
read only addressbook it sola lettura
record access addressbook it Accesso alla scheda
record owner addressbook it Proprietario della scheda
recovered addressbook it Recuperato
region addressbook it Regione
remove from distribution list addressbook it Rimuovi dalla lista di ditribuzione
remove selected contacts from distribution list addressbook it Rimuovi i contatti selezionati dalla lista di distribuzione
removed from distribution list addressbook it Rimosso dalla lista di distribuzione
recovered addressbook it recuperato
repetition addressbook it Ripetizione
replacements for inserting contacts into documents addressbook it Sostituzioni per l'inserimento dei contatti nei documenti
required fields * addressbook it Campi obbligatori *
role addressbook it Ruolo
room addressbook it Stanza
search for '%1' addressbook it Cerca '%1'
search letter addressbook it Cerca per lettera
select a portrait format jpeg photo. it will be resized to 60 pixel width. addressbook it Seleziona una foto jpeg in formato ritratto. Sarà ridimensionata ad una larghezza di 60 pixel.
select a view addressbook it Seleziona una vista
select addressbook type addressbook it Seleziona il tipo di rubrica
select all addressbook it Seleziona tutto
select an action or addressbook to move to addressbook it Seleziona una azione o una rubrica per lo spostamento
select an action or addressbook to move to... addressbook it Seleziona una azione o una rubrica per lo spostamento...
select migration type admin it Seleziona tipo di migrazione
select multiple contacts for a further action addressbook it Seleziona contatti multipli per azioni ulteriori
select phone number as prefered way of contact addressbook it Seleziona il numero di telefono come modalità di contatto preferita
select the type of conversion addressbook it Seleziona il tipo di conversione
select the type of conversion: addressbook it Seleziona il tipo di conversione:
select where you want to store / retrieve contacts admin it Seleziona dove vuoi registrare / recuperare i contatti
selected contacts addressbook it Contatti selezionati
send emailcopy to receiver addressbook it Invia copia al destinatario
send succeeded to %1 common it Inviato con successo a %1
seperator addressbook it Separatore
set full name and file as field in contacts of all users (either all or only empty values) admin it Imposta i campi nome completo e "salva come" nei contatti di tutti gli utenti. Tutti o solo quelli vuoti.
set only full name addressbook it Imposta solo nome completo
should the columns photo and home address always be displayed, even if they are empty. addressbook it Mostrare foto e indirizzo abitazione sempre, anche se le colonne sono vuote
selected contacts addressbook it contatti selezionati
show addressbook it Mostra
show birthday reminders on main screen addressbook it Visualizza i promemoria dei compleanni nella schermata principale
show infolog entries for this organisation addressbook it Mostra tutte le attività per questa organizzazione
show the contacts of this organisation addressbook it Mostra i contatti di questa organizzazione
similar contacts found: addressbook it Contatti simili trovati:
size of popup (wxh, eg.400x300, if a popup should be used) admin it Dimensioni finestra popup: 400x300
special addressbook it Speciale
stadt addressbook it Città
start admin it Inizio
startrecord addressbook it Record Iniziale
state common it Provincia
state (private) addressbook it Stato o provincia (privato)
street common it Via
street (private) addressbook it Via (privato)
subject for email addressbook it Oggeto dell'email
successfully imported %1 records into your addressbook. addressbook it Nella tua rubrica sono state importate con successo %1 schede.
suffix addressbook it Suffisso
tag to mark positions for address labels addressbook it Tagga per marcare le posizioni per le etichette di indirizzo
tel home addressbook it tel abitazione
telephony integration admin it Integrazione telefonia
test import (show importable records <u>only</u> in browser) addressbook it Test importazione (mostra <u>solo</u> record importabili nel browser)
thank you for contacting us. addressbook it Grazie per averci contattato
that field name has been used already ! addressbook it Il nome di campo è già stato utilizzato
the anonymous user has probably no add rights for this addressbook. addressbook it L'utente anonimo non ha permessi di inserimento per questa rubrica
the anonymous user needs add rights for it! addressbook it L'utente anonimo ha bisogno di permessi di inserimento
the anonymous user needs read it! addressbook it L'utente anonimo ha bisogno di permessi di lettura
the following document-types are supported: addressbook it I seguenti tipi di documenti sono supportati:
the zip extension is needed, to insert contact data in openoffice or msoffice documents. addressbook it L'estensione "zip" è necessaria per inserire dati di contatto in documenti OpenOffice o MS Office
there was an error saving your data :-( addressbook it ERRORE durante il salvataggio dei dati!
this module displays a contactform, that stores direct into the addressbook. addressbook it Questo modulo mostra un form di contatto, che salva direttamente nella rubrica!
this module displays block from a adddressbook group. addressbook it Questo modulo mostra un blocco di indirizzi dalla rubrica di gruppo
this person's first name was not in the address book. addressbook it Il nome di questa persona non era nella rubrica.
this person's last name was not in the address book. addressbook it Il cognome di questa persona non era nella rubrica.
timezone addressbook it Fuso orario
title addressbook it Titolo professionale
titles of any entries linked to the current record, excluding attached files addressbook it I titoli delle voci collegate a questa, allegati esclusi
to many might exceed your execution-time-limit addressbook it troppi potrebbero far superare il tempo-limite-esecuzione
today is %1's birthday! common it Oggi è il compleanno di %1!
tomorrow is %1's birthday. common it Domani è il compleanno di %1.
translation addressbook it Traduzione
two of: %1 addressbook it Due di: %1
type addressbook it Tipo
un-delete addressbook it Ripristina
unable to convert "%1" to account id. using plugin setting (%2) for owner. addressbook it Impossibile convertire "%1" all'ID di account. Viene usata l'impostazione (%2) per il proprietario.
unable to delete addressbook it Impossibile eliminare
unable to import into %1, using %2 addressbook it Impossibile importare %1, usando %2
unique id (uid) addressbook it ID univoco (UID)
unique id<br />(to update existing records) addressbook it ID univoco<br /> per l'aggiornamento di voci esistenti
unknown type %1, imported as %2 addressbook it Tipo %1 sconosciuto, importato come %2
update a single entry by passing the fields. addressbook it Aggiorna una singola voce passando i campi.
update fields by edited organisations? admin it Campi di organizzazioni modificate da aggiornare
updated addressbook it Aggiornato
upload or delete the photo addressbook it Carica o cancella la foto
url (business) addressbook it URL (ufficio)
url (private) addressbook it URL (privato)
url to link telephone numbers to (use %1 = number to call, %u = account name, %t = account phone) admin it URL per collegare numeri di telefono. Usare %1 = numero da chiamare, %u = nome account, %t = telefono acccount
use addressbooks "own sorting" attribute addressbook it usare il "proprio ordinamento" della rubrica
use an extra category tab? addressbook it Usa una liguetta extra per le categorie
use an extra tab for private custom fields? admin it Usa una liguetta extra per i campi personalizzati privati
use country list addressbook it Usa la lista delle nazioni
use setup for a full account-migration admin it Usare il setup per una migrazione account completa
use this tag for addresslabels. put the content, you want to repeat, between two tags. addressbook it Usa questo tag per le etichette di indirizzo. Posiziona il contenuto da ripetere, tra due tag.
used for links and for the own sorting of the list addressbook it usato per collegamenti e per il proprio ordinamento della lista
user preference addressbook it Preferenza utente
vcard common it VCard
vcards require a first name entry. addressbook it Le VCard richiedono un valore per il nome.
vcards require a last name entry. addressbook it Le Vcards richiedono un valore per il cognome
verification addressbook it Verifica
view linked infolog entries addressbook it Visualizzare le schede Attività collegate
warning!! ldap is valid only if you are not using contacts for accounts storage! admin it ATTENZIONE!! LDAP è utilizzabile solo se NON stai usando i contatti per la memorizzazione dei dati sugli account!
warning: all contacts found will be deleted! addressbook it ATTENZIONE: Tutti i contatti trovati saranno cancellati!
weekday addressbook it Giorno della settimana
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 it Collegamenti della rubrica, visibili nelle altre applicazioni. I valori vuoti resteranno fuori. Bisognera uscire e accedere di nuovo a EPL se si cambia questa impostazione
when viewing a contact, show linked entries from the selected application addressbook it Quando si visualizza un contatto, mostra le voci collegate dalla applicazione selezionata
where to add the email address addressbook it Dove aggiungere l'indirizzo email
which address format should the addressbook use for countries it does not know the address format. if the address format of a country is known, it uses it independent of this setting. addressbook it Seleziona il formato di indirizzo da usare per Paesi con formati sconosciuti
which addressbook should be selected when adding a contact and you have no add rights to the current addressbook. addressbook it La rubrica da usare per l'aggiunta di contatti, quando non si hanno i permessi per la rubrica corrente
which charset should be used for the csv export. the system default is the charset of this egroupware installation. addressbook it Seleziona un set di caratteri per l'importazione/esportazione CSV
which charset should be used for the vcard export. addressbook it Quale set di caratteri usare per l'esportazione in vCard?
which charset should be used for the vcard import and export. addressbook it Quale set di caratteri usare per l'esportazione e l'importazione di vCard?
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 it Quali campi esportare? Si intendono tutti i campi della rubrica, campi personalizzati inclusi. L'indirizzo di lavoro (ufficio) o dell'abitazione contiene solo nome, azienda e l'indirizzo selezionato.
whole query addressbook it Intera query
work email if given, else home email addressbook it Email ufficio se fornito, altrimenti email personale (abitazione)
work phone addressbook it Telefono ufficio
write (update or add) a single entry by passing the fields. addressbook it Aggiorna o aggiungi una singola voce bypassando i campi.
wrong - try again ... addressbook it Errato - riprovare ...
whole query addressbook it intera query
work phone addressbook it Telefono Ufficio
yes, for the next three days addressbook it Sì, per i prossimi tre giorni
yes, for the next two weeks addressbook it Sì, per le prossime due settimane
yes, for the next week addressbook it Sì, per la prossima settimana
@ -515,13 +299,9 @@ you are not permitted to delete contact %1 addressbook it Non hai il permesso di
you are not permittet to delete this contact addressbook it Non hai il permesso di cancellare questo contatto
you are not permittet to edit this contact addressbook it Non hai il permesso di modificare questo contatto
you are not permittet to view this contact addressbook it Non hai il permesso di visualizzare questo contatto
you can only use ldap as contact repository if the accounts are stored in ldap too! admin it LDAP può essere usato come repository di contatto solo se gli account sono memorizzati anche in LDAP!
you can respond by visiting: addressbook it Puoi rispondere visitando:
you must select a vcard. (*.vcf) addressbook it Devi selezionare una vcard (*.vcf)
you must select at least 1 column to display addressbook it Devi selezionare almeno una colonna da visualizzare
you need to select a distribution list addressbook it Seleziona lista di distribuzione
you need to select some contacts first addressbook it Devi prima selezionare qualche contatto
you need to select some entries first addressbook it Devi prima selezionare alcune voci.
zip code common it CAP
zip code (private) addressbook it CAP (privato)
zip_note addressbook it <p><b>Note:</b> Il file deve essere uno zip contentente file .csv, .vcf, o .ldif. Tuttavia, non mischiare i tipi di file da importare

View File

@ -23,7 +23,6 @@ end addressbook lo ສິ້ນສຸດ
error: the entry has been updated since you opened it for editing! addressbook lo ຂໍ້ຜິດພາດ: ຂໍ້ມູນ/ລາຍການ ໄດ້ຮັບການປັບປຸງຕັ້ງແຕ່ຕອນທ່ານເປີດສໍາລັບການແກ້ໄຂ!!!
existing links addressbook lo ການເຊື່ອມຕໍ່ທີ່ມີຢູ່ແລ້ວ
exists addressbook lo ມີຢູ່ແລ້ວ
favorites addressbook lo ລາຍການທີ່ມັກ
fieldseparator addressbook lo ການແຍກຟີລ
general admin lo ທົ່ວໄປ
global categories addressbook lo ໝວດທົ່ວໄປ

View File

@ -26,7 +26,6 @@ add a single entry by passing the fields. addressbook nl Voeg een enkele invoer
add appointment addressbook nl Voeg een afspraak toe
add business email of whole distribution list? addressbook nl Voeg bedrijfsemail of hele distributielijst toe?
add custom field addressbook nl Aangepast veld toevoegen
add customfield to links of addressbook, which displays in other applications. the default value is none customfield. addressbook nl Voeg aangepast veld toe aan links van adresboek, welke zichtbaar is in andere applicaties. De standaard waarde is geen aangepast veld.
add emails of whole distribution list? addressbook nl Voeg emailadressen van de hele distributie lijst toe?
add or delete categories addressbook nl Toevoegen of verwijderen categoriën
add to bcc addressbook nl Voeg aan BCc toe
@ -109,7 +108,6 @@ choose owner of imported data addressbook nl Kies de eigenaar van de geimporteer
chosse an etemplate for this contact type admin nl Kies een eTemplate voor dit type contact
city common nl Stad
city (private) addressbook nl Stad (prive)
cleanup addressbook fields (apply if synchronization creates duplicates) addressbook nl Verwijder adresboek velden, toepassen wanneer synchronisatie duplicaten aanmaakt
company common nl Bedrijf
company name addressbook nl Bedrijfsnaam
configuration common nl Instelling
@ -154,7 +152,6 @@ csv-filename addressbook nl CSV-Bestandsnaam
custom addressbook nl Aangepast
custom etemplate for the contactform addressbook nl Aangepaste eTemplate voor het contactformulier
custom fields addressbook nl Aangepast velden
data exchange settings addressbook nl Data exchange instellingen
debug output in browser addressbook nl Debug resultaat in browser
default addressbook nl standaard
default action on double-click addressbook nl Standaard actie bij dubbel klikken
@ -164,7 +161,6 @@ default document to insert contacts addressbook nl Standaard document om contact
default file as format addressbook nl Standaard bestand als formaat
default filter addressbook nl Standaard filter
default format for fileas, eg. for new entries. addressbook nl Standaard formaat voor bestanden, bijvoorbeeld voor nieuwe invoer.
default is to open email addresses in egroupware email application, if user has access to it. addressbook nl Standaard is om EMail (berichten) adressen te openen in EGroupware EMail (berichten) applicatie, als de gebruiker er toegang toe heeft.
defines which email address (business or home) to use as the preferred one for distribution lists in mail. addressbook nl Bepaalt welk emailadres (zakelijk of prive) gebruikt moet worden als het voorkeursadres voor distributielijsten in email.
delete a single entry by passing the id. addressbook nl Verwijder een enkel record door het ID. te geven
delete selected distribution list! addressbook nl Verwijder de geselecteerde distributielijst!
@ -200,49 +196,33 @@ edit phonenumbers addressbook nl Telefoonnummers wijzigen
edit phonenumbers - addressbook nl Telefoonnummers wijzigen -
either the configured email addesses are wrong or the mail configuration. addressbook nl Of de ingestelde emailadressen zijn onjuist of de email configuratie is onjuist.
email & internet addressbook nl Email & Internet
email (private) addressbook nl email (prive)
email addresses (comma separated) to send the contact data addressbook nl Emailadressen (kommagescheiden) om de contactgegevens te verzenden
empty admin nl Leeg
empty for all addressbook nl leeg voor allen
enable an extra private addressbook addressbook nl Maak een extra persoonlijk adresboek mogelijk
enclosure addressbook nl Bijgesloten
end addressbook nl Einde
enter the path to the exported file here addressbook nl Geef folder voor het te exporteren bestand hier aan
error deleting the contact !!! addressbook nl Fout bij verwijderen van contact !!!
error saving the contact !!! addressbook nl Fout bij bewaren van contact !!!
error: the entry has been updated since you opened it for editing! addressbook nl Fout: het record is gewijzigd sinds jij bent begonnen met wijzigen!
example {{if n_prefix~mr~hello mr.~hello ms.}} - search the field "n_prefix", for "mr", if found, write hello mr., else write hello ms. addressbook nl Example {{IF n_prefix~Mr~Hello Mr.~Hello Ms.}} - search the field "n_prefix", for "Mr", if found, write Hello Mr., else write Hello Ms.
example {{letterprefixcustom n_prefix title n_family}} - example: mr dr. james miller preferences nl Example {{LETTERPREFIXCUSTOM n_prefix title n_family}} - Example: Mr Dr. James Miller
example {{nelf role}} - if field role is not empty, you will get a new line with the value of field role addressbook nl Example {{NELF role}} - if field role is not empty, you will get a new line with the value of field role
example {{nelfnv role}} - if field role is not empty, set a lf without any value of the field addressbook nl Example {{NELFNV role}} - if field role is not empty, set a LF without any value of the field
existing links addressbook nl Bestaande links
exists addressbook nl Bestaat
export as csv addressbook nl Exporteer als CSV
export as vcard addressbook nl Exporteer als VCard
export contacts addressbook nl Exporteer contacten
export definition to use for nextmatch export addressbook nl Export definitie om te gebruiken bij nextmatch export
export definitition to use for nextmatch export addressbook nl Export definitie om te gebruiken bij nextmatch export
export file name addressbook nl Exporteer bestandsnaam
export from addressbook addressbook nl Exporteer vanuit adresboek
export selection addressbook nl Exporteer selectie
exported addressbook nl geexporteerd
exports contacts from your addressbook into a csv file. addressbook nl Exporteer contacten uit adresboek in CSV bestand formaat
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 nl Exporteert contacten van jouw adresboek in een CSV bestand. CSV betekent 'Komma gescheiden waarden'. Maar in het Opties tabblad kun je ook andere scheidingstekens kiezen.
exports contacts from your addressbook into a vcard file. addressbook nl Exporteer contacten uit uw adresboek in vCard bestand formaat.
extra addressbook nl Extra
extra encodings addressbook nl Extra versleutelen
extra private addressbook nl Extra prive
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook nl wijzigen van %1 organisatie lid/leden mislukte (onvoldoende rechten) !!!
favorites addressbook nl Favorieten
fax addressbook nl Fax
fax (private) addressbook nl fac (prive)
fax number common nl Faxnummer
field %1 has been added ! addressbook nl Veld 1% is toegevoegd !
field %1 has been updated ! addressbook nl Veld 1% bijgewerkt !
field name addressbook nl Veldnaam
fields for the csv export addressbook nl Velden voor de CSV export
fields the user is allowed to edit himself admin nl Velden die de gebruiker zelf mag wijzigen
fields to copy when copying an address? admin nl Velden welke moeten worden gekopieerd als er een adres wordt gekopieerd
fields to show in address list addressbook nl Velden die zichtbaar zijn in adreslijst
fieldseparator addressbook nl Scheidingssymbool velden
for read only ldap admin nl voor alleen-lezen LDAP
@ -251,7 +231,6 @@ freebusy uri addressbook nl Vrij/bezet URI
full name addressbook nl Volledige naam
general admin nl Algemeen
general fields: addressbook nl Algemene velden:
general settings addressbook nl Algemene instellingen
geo addressbook nl GEO
global categories addressbook nl Algemene categoriën
grant addressbook access common nl Geen toegang adresboek
@ -271,10 +250,8 @@ home state addressbook nl Privé Provincie / Staat / Streek
home street addressbook nl Privé Straat
home zip code addressbook nl Privé Postcode
how many contacts should non-admins be able to export admin nl Hoeveel contactpersonen moet een niet-beheerder kunnen exporteren
html link to the current record addressbook nl HTML link naar huidig record
icon addressbook nl Icoon
if accounts are already in ldap admin nl indien accounts reeds in LDAP zitten
ignore first line addressbook nl Negeer eerste regel
import addressbook nl Importeren
import contacts addressbook nl Contacten Importeren
import csv-file into addressbook addressbook nl CSV-bestand importeren naar adresboek
@ -285,16 +262,12 @@ import from outlook addressbook nl Importeren vanuit Outlook
import multiple vcard addressbook nl Importeer Meervoudige VCard
import next set addressbook nl Importeren volgende serie
import_instructions addressbook nl In Netscape, open het adressenboek en selecteer <b>Exporteren</b> in het menu <b>Bestand</b>. Het bestand wordt geexporteerd in het LDIF formaat.<p>Of, in Outlook, selecteer de contacten-folder, kies <b>Importeren en Exporteren...</b> in het menu <b>Bestand</b> en exportoor als komma gescheiden tekst bestand (CSV).<p>Of, in Palm Desktop 4.0 of nieuwer, kies het adresboek en selecteer <b>Exporteren</b> in het menu <b>Bestand</b>, het bestand wordt geëxporteerd in het VCard formaat.
importer's personal addressbook nl Importeer eigen
imports contacts into your addressbook from a csv file. csv means 'comma seperated values'. however in the options tab you can also choose other seperators. addressbook nl Importeert contacten in je adresboek vanuit een CSV bestand. CSV betekent 'Komma gescheiden waarden'. Maar in het Opties tabblad kun je ook andere scheidingstekens kiezen.
imports contacts into your addressbook from a vcard file. addressbook nl Importeer contacten in uw adresboek van een bestand in vCard
in %1 days (%2) is %3's birthday. addressbook nl Over %1 dagen (%2) is %3 jarig.
income addressbook nl Inkomend
in %1 days (%2) is %3's birthday. addressbook nl Over %1 dagen (%2) is %3 jarig.
income addressbook nl Inkomen
infolog addressbook nl InfoLog
insert addressbook nl Voeg toe
insufficent rights to delete this list! addressbook nl Niet genoeg rechten om deze lijst te verwijderen!
international addressbook nl Internationaal
internet addressbook nl Internet
label addressbook nl Label
last date addressbook nl Laatste datum
last modified addressbook nl laatste wijziging
@ -306,22 +279,16 @@ ldif addressbook nl LDIF
line 2 addressbook nl Regel 2
link title for contacts show addressbook nl Linktitel voor contactenweergave
links addressbook nl Links
links and attached files addressbook nl Link naar bijgesloten bestand
links to specified application. example: {{links/infolog}} addressbook nl Verwijst naar een specifieke applicatie. Voorbeeld: {{links/infolog}}
list all categories addressbook nl Toon alle categoriën
list all customfields addressbook nl Toon alle op maat gemaakte velden
list already exists! addressbook nl Lijst bestaat reeds!
list created addressbook nl Lijst aangemaakt
list creation failed, no rights! addressbook nl Lijst aanmaak is mislukt, geen rechten!
list of files linked to the current record addressbook nl Lijs van bestanden gelinkt aan huidig record
load vcard addressbook nl Laad VCard
location addressbook nl Locatie
locations addressbook nl locaties
mail vcard addressbook nl Mail VCard
main categories in their own field addressbook nl Hoofd categorien in hun eigen veld
manage mapping addressbook nl Beheer de mappings
mark records as private addressbook nl Markeer records als privé
merge contacts addressbook nl Voeg contacten samen
merge into first or account, deletes all other! addressbook nl Samenvoegen in eerste of in account, verwijdert alle andere!
merged addressbook nl samengevoegd
message after submitting the form addressbook nl Bericht na verzenden van het formulier
@ -330,11 +297,9 @@ middle name addressbook nl Tweede naam
migration finished addressbook nl Migratie voltooid
migration to ldap admin nl Migratie naar LDAP
mobile addressbook nl Mobiel
mobile phone addressbook nl Mobiele telefoon
mobile phone (private) addressbook nl Mobiele telefoon (prive)
mobile phone addressbook nl Mobilofoon
modem phone addressbook nl Telefoonmodem
more ... addressbook nl Meer ...
move to addressbook addressbook nl Verplaats naar adresboek
moved addressbook nl verplaatst
multiple vcard addressbook nl Meervoudige VCard
name for the distribution list addressbook nl Naam voor de distributielijst
@ -344,14 +309,9 @@ new contact submitted by %1 at %2 addressbook nl Nieuwe contact toegevoegd op %2
new window opened to edit infolog for your selection addressbook nl Nieuw venster geopend waarin de Infolog voor uw selectie bewerkt wordt
next date addressbook nl Volgende datum
no categories selected addressbook nl geen categorieën geselecteerd
no fallback addressbook nl Geen aktie ongedaan maken
no vcard addressbook nl Geen VCard
number addressbook nl Nummer/aantal
number of records to read (%1) addressbook nl Aantal adressen om te lezen (%1)
open email addresses in external mail program addressbook nl Open EMal adres in extern mail (berichten)programma
open for editing? addressbook nl Open voor bewerken ?
open infolog crm view preferences nl Open Infolog CRM beeld
open tracking system crm view preferences nl Open Tracking systeem CRM beeld
options for type admin nl Opties voor type
organisation addressbook nl organisatie
organisations addressbook nl Organisaties
@ -369,14 +329,13 @@ phone numbers common nl Telefoonnummers
photo addressbook nl Foto
please enter a name for that field ! addressbook nl Vul een naam voor dat veld in svp !
please select only one category addressbook nl Kies svp slechts één categorie
please update the templatename in your customfields section! addressbook nl Actualiseer svp de template naam in je aangepaste velden sectie!
postal common nl Postadres
pref addressbook nl voorkeur
preferred email address to use in distribution lists addressbook nl Voorkeurs emailadres tbv distributielijsten
preferred phone addressbook nl voorkeurstelefoon
preferred type of email address to add for distribution lists addressbook nl voorkeurs type van emailadres om toe te voegen aan distributielijsten
prefix addressbook nl Voorvoegsel
prevent deleting of contacts admin nl Voorkom het verwijderen van contacten
private custom fields addressbook nl Eigen aangepaste velden
public key addressbook nl Public Key
publish into groups: addressbook nl Publiceer in groepen:
read a list / search for entries. addressbook nl Lees een lijst / zoek naar records.
@ -385,9 +344,6 @@ read a single entry by passing the id and fieldlist. addressbook nl Lees een rec
read only addressbook nl alleen-lezen
record access addressbook nl Bestandstoegang
record owner addressbook nl Bestand eigenaar
recovered addressbook nl Teruggezet
region addressbook nl Regio
remove from distribution list addressbook nl Verwijder van distributielijst
remove selected contacts from distribution list addressbook nl Verwijder geselecteerde contacten van de distributielijst
removed from distribution list addressbook nl verwijderd van de distributielijst
repetition addressbook nl Herhaling
@ -396,13 +352,11 @@ required fields * addressbook nl verplichte velden *
role addressbook nl Rol
room addressbook nl Kamer
search for '%1' addressbook nl Zoek naar '%1'
search letter addressbook nl Zoek letter
select a portrait format jpeg photo. it will be resized to 60 pixel width. addressbook nl Kies een portretformaat jpeg foto. Het wordt aangepast tot 60 pixels breedte.
select a view addressbook nl Kies een weergave
select addressbook type addressbook nl Kies een adresboek type
select all addressbook nl Alles selecteren
select an action or addressbook to move to addressbook nl Kies een actie of adresboek om te verplaatsen
select an action or addressbook to move to... addressbook nl Selecteer een actie of adresboek om naar te verplaatsen...
select migration type admin nl Kies een migratie type
select multiple contacts for a further action addressbook nl Kies meerdere contacten voor verdere actie
select phone number as prefered way of contact addressbook nl kies een telefoonnummer als een voorkeur tot contact
@ -413,7 +367,6 @@ selected contacts addressbook nl geselecteerde contacten
send emailcopy to receiver addressbook nl Zend een kopie mail naar ontvanger
send succeeded to %1 common nl Zend verzenden gelukt naar %1
seperator addressbook nl Scheidingsteken
set full name and file as field in contacts of all users (either all or only empty values) admin nl Zet volledige naam en 'bestand als'in contacten van alle gebruikers. Of allemaal vullen of allemaal leeg laten
set only full name addressbook nl Geef alleen de volledig naam
should the columns photo and home address always be displayed, even if they are empty. addressbook nl Moeten de kolommen foto en thuisadres altijd worden weergegeven, zelfs als ze leeg zijn?
show addressbook nl Toon
@ -422,7 +375,6 @@ show infolog entries for this organisation addressbook nl InfoLog details van de
show the contacts of this organisation addressbook nl Toon de contacten van deze organisatie
similar contacts found: addressbook nl Zelfde contacten gevonden:
size of popup (wxh, eg.400x300, if a popup should be used) admin nl Afmetingen van de popup (BxH, bijvoorbeeld 400x300, als een popup nodig is)
stadt addressbook nl Plaats
start admin nl Start
startrecord addressbook nl Startbestand
state common nl Provincie / Staat / Streek
@ -442,7 +394,6 @@ the anonymous user has probably no add rights for this addressbook. addressbook
the anonymous user needs add rights for it! addressbook nl De anonieme gebruiker moet hier toevoegrechten voor hebben!
the anonymous user needs read it! addressbook nl De anonieme gebruiker moet hier leesrechten voor hebben!
the following document-types are supported: addressbook nl De volgende document types worden ondersteund :
the zip extension is needed, to insert contact data in openoffice or msoffice documents. addressbook nl Zip extensie is nodig, om contact data te importeren in OpenOffice of MSOffice documenten
there was an error saving your data :-( addressbook nl Er ontstond een fout tijdens het opslaan van uw gegevens :-(
this module displays a contactform, that stores direct into the addressbook. addressbook nl Deze module toont een contact formulier dat gegevens direct opslaat in het adresboek.
this module displays block from a adddressbook group. addressbook nl Deze module toont een blok van een adresboek groep.
@ -450,7 +401,6 @@ this person's first name was not in the address book. addressbook nl De voornaam
this person's last name was not in the address book. addressbook nl De achternaam van deze persoon staat niet het adresboek.
timezone addressbook nl Tijdszone
title addressbook nl functie titel
titles of any entries linked to the current record, excluding attached files addressbook nl Namen van alle invoer gelinked aan huidig record, behalve de bijgesloten bestanden
to many might exceed your execution-time-limit addressbook nl Te veel kan mogelijk uw uitvoertijd van dit programme overschrijden
today is %1's birthday! common nl Vandaag is %1 jarig !
tomorrow is %1's birthday. common nl Morgen is %1 jarig
@ -458,10 +408,8 @@ translation addressbook nl Vertaling
two of: %1 addressbook nl Twee van: %1
type addressbook nl Type
un-delete addressbook nl Verwijderen ongedaan maken
unable to convert "%1" to account id. using plugin setting (%2) for owner. addressbook nl Niet mogelijk om %1 te converteren naar account ID. Gebruik de settings (%2) van de pligin van de eigenaar.
unable to delete addressbook nl Niet mogelijk te verwijderen
unique id (uid) addressbook nl Uniek ID (UID)
unique id<br />(to update existing records) addressbook nl Uniek ID <br /> voor bijwerken bestaand record
update a single entry by passing the fields. addressbook nl Een record bijwerken door de velden te geven
update fields by edited organisations? admin nl Velden van de gewijzigde organisatie bijwerken?
updated addressbook nl Bijgewerkt
@ -474,7 +422,6 @@ use an extra category tab? addressbook nl Een extra categorie tabblad gebruiken?
use an extra tab for private custom fields? admin nl Een extra categorie tabblad gebruiken voor persoonlijke aangepaste velden?
use country list addressbook nl Gebruik Landenlijst
use setup for a full account-migration admin nl gebruik setup voor een volledige accountmigratie
use this tag for addresslabels. put the content, you want to repeat, between two tags. addressbook nl Gebruik deze tag voor adres labels.Plaats de inhoud welke je wilt herhalen tussen twee tags.
used for links and for the own sorting of the list addressbook nl gebruikt voor links en voor eigen sortering van de lijst
user preference addressbook nl Gebrukers voorkeur
vcard common nl VCard
@ -484,15 +431,14 @@ verification addressbook nl Verificatie
view linked infolog entries addressbook nl Gekoppelde InfoLog details bekijken
warning!! ldap is valid only if you are not using contacts for accounts storage! admin nl WAARSCHUWING!! Alleen LDAP gebruiken als het adresboek niet wordt gebruikt om de accounts op te slaan!
warning: all contacts found will be deleted! addressbook nl WAARSCHUWING: Alle gevonden contacten worden verwijderd!
warning: template "%1" not found, using default template instead. addressbook nl WAARSCHUWING: Template "%1" niet gevonden, gebruik de standaard template in plaats hiervan.
weekday addressbook nl Werkdag
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 nl Wat moeten koppelingen aan het adresboek in andere toepassingen moeten weergeven. Lege waardes worden genegeerd. U moet opnieuw inloggen, als u deze instelling wijzigt!
when viewing a contact, show linked entries from the selected application addressbook nl Bij het bekijken van een contact, toon de verbonden invoer van de geselecteerde invoer
where to add the email address addressbook nl waar moet het emailadres toegevoegd worden
which address format should the addressbook use for countries it does not know the address format. if the address format of a country is known, it uses it independent of this setting. addressbook nl Welk adresformaat moet het adresboek gebruiken voor landen waarvan het adresformaat nog niet bekend is. Indien het adresformaat van een land bekend is wordt het ongeacht deze instelling gebruikt.
which addressbook should be selected when adding a contact and you have no add rights to the current addressbook. addressbook nl Welke adresboek moet geselecteerd worden wanneer een contact wordt bijgevoegd EN wanneer u geen toevoegingsrecht heb bij het huidige adresboek.
which charset should be used for the csv export. the system default is the charset of this egroupware installation. addressbook nl Welke karakterset moet gebruikt worden voor de CSV export. De systeem standaard is de karakterset van deze eGroupWare installatie.
which charset should be used for the vcard export. addressbook nl Welke karakterset moet gebruikt worden voor de vCard export
which charset should be used for the vcard import and export. addressbook nl Welke karakterset moet gebruikt worden voor de vCard im - export.
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 nl Welke velden moeten geexporteerd worden. "Alles" betekent elke veld dat in het adresboek is opgeslagen, inclusief de aangepaste velden. "Alleen bedrijf adres of privé adres" betekent dat alleen naam, organisatie en het gekozen adres wordt geexporteerd.
whole query addressbook nl gehele query
work email if given, else home email addressbook nl Zakelijke emailadres indien bekend, ander privé emailadres

View File

@ -109,7 +109,6 @@ contact repository admin pl Repozytorium kontaktu
contact saved addressbook pl Kontakt został zapisany
contact settings admin pl Ustawienia kontaktu
contactform addressbook pl Formularz kontaktu
contacts common pl książka adresowa
contacts and account contact-data to ldap admin pl Kontakty i dane osobiste konta do LDAP
contacts and account contact-data to sql admin pl Kontakty i dane osobiste konta do SQL
contacts to ldap admin pl kontakty do LDAP'a
@ -189,7 +188,6 @@ exports contacts from your addressbook into a csv file. csv means 'comma seperat
extra addressbook pl Dodatkowe
extra private addressbook pl Dodatkowe prywatne
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook pl nie udało się zmienić %1 członków organizacji (brak uprawnień)
favorites addressbook pl Ulubione
fax addressbook pl Faks
fax number common pl Numer faksu
field %1 has been added ! addressbook pl Pole %1 zostało dodane !
@ -306,6 +304,7 @@ phone numbers common pl Numery telefonów
photo addressbook pl Zdjęcie
please enter a name for that field ! addressbook pl Proszę podać nazwę tego pola !
please select only one category addressbook pl Proszę wybrać jedynie jedną kategorię
please update the templatename in your customfields section! addressbook pl Proszę zaktualizować nazwe szablony w sekcji pól własnch!
postal common pl Kod pocztowy
pref addressbook pl pref
preferred email address to use in distribution lists addressbook pl Preferowany adres email do użycia w listach dystrybucyjnych
@ -405,6 +404,7 @@ verification addressbook pl Weryfikacja
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 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!
warning: template "%1" not found, using default template instead. addressbook pl UWAGA: Szablon "%1" nie znaleziony, używam domyślnego szablonu.
weekday addressbook pl dzień tygodnia
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.
where to add the email address addressbook pl gdzie dodać adres email

View File

@ -7,7 +7,6 @@
%1 starts with '%2' addressbook pt-br %1 inicia(m) com '%2'
%s please calculate the result addressbook pt-br %s por favor calcule o resultado
(e.g. 1969) addressbook pt-br (ex. 1969)
(empty = use global limit, no = no export at all) admin pt-br (= Vazias usar limite global, não = nenhuma exportação em tudo)
<b>no conversion type &lt;none&gt; could be located.</b> please choose a conversion type from the list addressbook pt-br <b>O tipo de conversão <Nenhum> não foi encontrado.</b> Escolha um tipo de conversão da lista
@-eval() is only availible to admins!!! addressbook pt-br @-eval() está disponível somente para administradores !!!
account repository admin pt-br Repositório de contas
@ -35,12 +34,10 @@ address line 2 addressbook pt-br Endereço Linha 2
address type addressbook pt-br Tipo de endereço
addressbook common pt-br Livro de Contatos
addressbook csv export addressbook pt-br Exportar Livro de Contatos em CSV
addressbook csv import addressbook pt-br Endereços CSV Import
addressbook menu addressbook pt-br Menu do Livro de Contatos
addressbook preferences addressbook pt-br Preferências do Livro de Contatos
addressbook the contact should be saved to addressbook pt-br Livro de Contatos em que o contato deverá ser salvo
addressbook the contact should be shown addressbook pt-br Livro de Contatos em que o contato deverá ser exibido
addressbook vcard import addressbook pt-br Importação de endereços vCard
addressbook-fieldname addressbook pt-br Livro de Contatos - Nome do Campo
addvcard addressbook pt-br Adicionar VCard
advanced search addressbook pt-br Pesquisa avançada
@ -119,7 +116,6 @@ csv-filename addressbook pt-br CSV-Nome do Arquivo
custom addressbook pt-br Personalizado
custom etemplate for the contactform addressbook pt-br eModelo personalizado para o formulário de contatos
custom fields addressbook pt-br Campos personalizados
data exchange settings addressbook pt-br Configurações de troca de dados
debug output in browser addressbook pt-br Depurar saída no navegador
default addressbook pt-br padrão
default address format addressbook pt-br Formato padrão de endereço
@ -165,18 +161,15 @@ error deleting the contact !!! addressbook pt-br Erro removendo o contato !!!
error saving the contact !!! addressbook pt-br Erro salvando o contato !!!
error: the entry has been updated since you opened it for editing! addressbook pt-br Erro: o registro foi atualizado desde que você o abriu para edição!
existing links addressbook pt-br Links existentes
exists addressbook pt-br Existe
export as csv addressbook pt-br Exportar como CSV
export as vcard addressbook pt-br Exportar como VCard
export contacts addressbook pt-br Exportar contatos
export definition to use for nextmatch export addressbook pt-br Definição Exportar para usar para exportação NextMatch
export file name addressbook pt-br Exportar arquivo
export from addressbook addressbook pt-br Exportar Livro de Contatos
export selection addressbook pt-br Exportar seleção
exported addressbook pt-br exportado
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 pt-br Exporta seu Livro de Contatos em um arquivo CSV. CSV significa 'Comma Seperated Values' (Valores Separados por Vírgula). No entando na guia Opções você também pode escolher outros separadores.
extra addressbook pt-br Extra
extra encodings addressbook pt-br Codificações extras
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook pt-br Falha ao alterar %1 membro(s) da organização (direitos insuficientes) !!!
fax addressbook pt-br Fax
fax number common pt-br Número do Fax
@ -193,7 +186,6 @@ freebusy uri addressbook pt-br URI para disponbilidade
full name addressbook pt-br Nome Completo
general admin pt-br Geral
general fields: addressbook pt-br Campos gerais:
general settings addressbook pt-br Definições gerais
geo addressbook pt-br GEO
global categories addressbook pt-br Categorias Globais
grant addressbook access common pt-br Permitir acesso ao Livro de Contatos
@ -212,7 +204,6 @@ home phone addressbook pt-br Telefone residencial
home state addressbook pt-br Estado
home street addressbook pt-br Rua, Av, Trav., etc.
home zip code addressbook pt-br CEP
html link to the current record addressbook pt-br Link HTML para o registro atual
icon addressbook pt-br Ícone
if accounts are already in ldap admin pt-br se as contas já estiverem em LDAP
import addressbook pt-br Importar
@ -229,7 +220,6 @@ imports contacts into your addressbook from a csv file. csv means 'comma seperat
in %1 days (%2) is %3's birthday. addressbook pt-br Em %1 dia(s) (%2) será aniversário de %3
income addressbook pt-br Renda
infolog addressbook pt-br Tarefas
insert addressbook pt-br Inserir
insufficent rights to delete this list! addressbook pt-br Direitos insuficientes para remover esta lista!
international addressbook pt-br Internacional
label addressbook pt-br Comentário
@ -243,13 +233,11 @@ ldif addressbook pt-br LDIF
line 2 addressbook pt-br Linha 2
link title for contacts show addressbook pt-br Título link para exibição dos contatos
links addressbook pt-br Links
links and attached files addressbook pt-br Links e arquivos anexados
list all categories addressbook pt-br Listar todas as categorias
list all customfields addressbook pt-br Listas todos os campos personalizados
list already exists! addressbook pt-br Lista já existe!
list created addressbook pt-br Lista criada
list creation failed, no rights! addressbook pt-br Criação da lista falhou. Sem direitos suficientes!
list of files linked to the current record addressbook pt-br Lista de arquivos vinculados ao registro atual
load vcard addressbook pt-br Carregar VCard
location addressbook pt-br Localização
locations addressbook pt-br Localizações
@ -295,6 +283,7 @@ phone numbers common pt-br Números de telefone
photo addressbook pt-br Foto
please enter a name for that field ! addressbook pt-br Por favor digite o nome para esse campo!
please select only one category addressbook pt-br Por favor selecione apenas uma categoria!
please update the templatename in your customfields section! addressbook pt-br Por favor, atualize o nome do modelo na seção de seus campos personalizados!
postal common pt-br Cx Postal
pref addressbook pt-br pref
preferred email address to use in distribution lists addressbook pt-br Endereço de email padrão para uso em listas de distribuição
@ -329,7 +318,6 @@ select the type of conversion addressbook pt-br Selecione o tipo de conversão
select the type of conversion: addressbook pt-br Selecione o tipo de conversão:
select where you want to store / retrieve contacts admin pt-br Selecione onde você quer salvar / recuperar contatos
selected contacts addressbook pt-br contatos selecionados
send emailcopy to receiver addressbook pt-br Enviar cópia de e-mail para o receptor
should the columns photo and home address always be displayed, even if they are empty. addressbook pt-br As colunas de fotos e endereço residencial deverão ser exibidas sempre, mesmo se estiverem vazias.
show addressbook pt-br Exibir
show birthday reminders on main screen addressbook pt-br Exibir lembrete de aniversários na tela principal
@ -343,7 +331,6 @@ street common pt-br Rua
subject for email addressbook pt-br Assunto para o e-mail
successfully imported %1 records into your addressbook. addressbook pt-br %1 registro(s) importado(s) para seu Livro de Contatos com sucesso.
suffix addressbook pt-br Sufixo
tag to mark positions for address labels addressbook pt-br Tag para marcar posições para etiquetas de endereço
tel home addressbook pt-br telefone
telephony integration admin pt-br Integração de telefone
test import (show importable records <u>only</u> in browser) addressbook pt-br Testar Importação (mostrar no navegador <u>somente</u> os registros que serão importados)
@ -352,7 +339,6 @@ that field name has been used already ! addressbook pt-br Este nome de campo já
the anonymous user has probably no add rights for this addressbook. addressbook pt-br O usuário anônimo provavelmente não tem permissão para adicionar neste Livro de Contatos.
the anonymous user needs add rights for it! addressbook pt-br O usuário anônimo precisa de permissão para adicioná-lo!
the anonymous user needs read it! addressbook pt-br O usuário anônimo precisa lê-lo!
the following document-types are supported: addressbook pt-br Os seguintes tipos de documentos são suportados:
there was an error saving your data :-( addressbook pt-br Ocorreu um erro ao salvar seus dados :-(
this module displays a contactform, that stores direct into the addressbook. addressbook pt-br Este módulo exibe um formulário de contato, que salva diretamente no Livro de Contatos.
this module displays block from a adddressbook group. addressbook pt-br Este módulo exibe blocos de um Grupo do Livro de Contatos
@ -364,19 +350,16 @@ today is %1's birthday! common pt-br Hoje é o aniversário de %1.
tomorrow is %1's birthday. common pt-br Amanhã é o aniversário de %1.
translation addressbook pt-br Tradução
type addressbook pt-br Tipo
unable to delete addressbook pt-br Não é possível excluir
update a single entry by passing the fields. addressbook pt-br Atualizar uma única entrada informando os campos
update fields by edited organisations? admin pt-br Atualizar campos por organizações editadas
updated addressbook pt-br Atualizado
upload or delete the photo addressbook pt-br Carregar ou remover a foto
url to link telephone numbers to (use %1 = number to call, %u = account name, %t = account phone) admin pt-br URL para linkar números de telefones (use %1 = número a ser chamado, %u = nome da conta, %t = número do telefone)
use addressbooks "own sorting" attribute addressbook pt-br usar catálogos de endereços "possuir classificação" atributo
use an extra category tab? addressbook pt-br Usar uma aba extra para categoria ?
use an extra tab for private custom fields? admin pt-br Usar uma aba extra para campos privados personalizados?
use country list addressbook pt-br Usar lista de países
use setup for a full account-migration admin pt-br usar setup para uma migração de contas completa
used for links and for the own sorting of the list addressbook pt-br usado para links e para a ordem própria da lista
user preference addressbook pt-br Preferência do usuário
vcard common pt-br VCard
vcards require a first name entry. addressbook pt-br VCards requer um primeiro nome.
vcards require a last name entry. addressbook pt-br VCards requerem que o último nome esteja preenchido
@ -384,6 +367,7 @@ verification addressbook pt-br Verificação
view linked infolog entries addressbook pt-br Exibir entradas de Tarefas relacionadas
warning!! ldap is valid only if you are not using contacts for accounts storage! admin pt-br AVISO!! LDAP é válido somente se você não estiver usando contatos para guardar as contas!
warning: all contacts found will be deleted! addressbook pt-br AVISO: Todos os contatos encontrados serão removidos!
warning: template "%1" not found, using default template instead. addressbook pt-br AVISO: Modelo "%1" não encontrado, utilizando modelo padrão.
weekday addressbook pt-br Dia da semana
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 pt-br O que deverá ser exibido pelos links para o Livro de Contatos que estão em outros aplicativos. Valores vazios serão desconsiderados. Você precisará fazer novo login ser alterar esta configuração!
where to add the email address addressbook pt-br onde adicionar o endereço de email

View File

@ -1,4 +1,3 @@
%1 not implemented for %2! addressbook pt % 1 não implementado para% 2!
%1 records imported addressbook pt %1 registos importados
%1 records read (not yet imported, you may go %2back%3 and uncheck test import) addressbook pt %1 registos lidos (ainda por importar: pode %2voltar%3 atrás e desmarcar a opção Importação de Teste)
(e.g. 1969) addressbook pt (ex: 1969)
@ -35,12 +34,10 @@ business state addressbook pt Bairro
business street addressbook pt Rua
business zip code addressbook pt Código postal
car phone addressbook pt Telefone do carro
category tree admin pt Categoria árvore
cell phone addressbook pt Telemóvel
charset of file addressbook pt Charset do ficheiro
check all addressbook pt Marcar todas
choose an icon for this contact type admin pt Escolha um ícone para este tipo de contacto
choose owner of imported data addressbook pt Escolha proprietário de dados importada
chosse an etemplate for this contact type admin pt Escolha um modelo Web para este tipo de contacto
city common pt Cidade
company common pt Empresa
@ -61,7 +58,6 @@ csv-fieldname addressbook pt CSV - Nome do campo
csv-filename addressbook pt CSV - Nome do ficheiro
custom addressbook pt Personalizar
custom fields addressbook pt Personalizar campos
data exchange settings addressbook pt Configurações de troca de dados
debug output in browser addressbook pt Fazer debug do resultado no navegador
default addressbook pt Por omissão
default filter addressbook pt Filtro padrão
@ -85,14 +81,10 @@ end addressbook pt Fim
enter the path to the exported file here addressbook pt Inserir o caminho para o ficheiro exportado aqui
error: the entry has been updated since you opened it for editing! addressbook pt Erro: o registo foi actualizado desde que começou a editar!
existing links addressbook pt Ligações existentes
exists addressbook pt Existe
export contacts addressbook pt Exportar contactos
export definition to use for nextmatch export addressbook pt Definição Exportar para usar para exportação NextMatch
export definitition to use for nextmatch export addressbook pt Definição Exportar para usar para exportação NextMatch
export file name addressbook pt Exportar nome de ficheiro
export from addressbook addressbook pt Exportar do livro de endereços
extra addressbook pt Extra
favorites addressbook pt Favoritos
fax addressbook pt Fax
fax number common pt Número de fax
field %1 has been added ! addressbook pt Campo %1 foi adicionado !
@ -102,13 +94,10 @@ fields to show in address list addressbook pt Campos a exibir na lista de endere
fieldseparator addressbook pt Separador de campos
full name addressbook pt Nome completo
general admin pt Geral
general fields: addressbook pt Campos gerais:
general settings addressbook pt Definições gerais
geo addressbook pt GEO
global categories addressbook pt Categorias gerais
grant addressbook access common pt Permitir acesso ao livro de endereços
h addressbook pt h
history logging admin pt Logging História
home city addressbook pt Cidade
home country addressbook pt País
home email addressbook pt Endereço de correio electrónico
@ -116,7 +105,6 @@ home phone addressbook pt Telefone
home state addressbook pt Bairro
home street addressbook pt Rua
home zip code addressbook pt Código postal
html link to the current record addressbook pt Link HTML para o registro atual
icon addressbook pt Ícone
import addressbook pt Importar
import contacts addressbook pt Importar contactos
@ -130,7 +118,6 @@ import next set addressbook pt Importar o conjunto seguinte
import_instructions addressbook pt No Netscape, abra o Livro de endereços e seleccione <b>Exportar</b> do menu <b>Ficheiro</b>. O ficheiro exportado estará em formato LDIF.<p>No Outlook, seleccione a sua pasta de contactos, seleccione <br>Importar e Exportar...</b> do menu <b>Ficheiro</b> e exporte os seus contactos, separados por vírgulas, num ficheiro de texto (CSV).<br>No Palm Desktop 4.0 ou superior, visite o seu livro de endereços e seleccione <br>Exportar</b> do menu <b>Ficheiro</b>. O ficheiro exportado estará em formado VCard.
income addressbook pt Entrada
infolog addressbook pt Acesso à informação
insert addressbook pt Inserir
international addressbook pt Internacional
label addressbook pt Comentário
last modified addressbook pt última modificação
@ -139,13 +126,10 @@ ldap host for contacts admin pt servidor LDAP para contactos
ldif addressbook pt LDIF
line 2 addressbook pt Linha 2
links addressbook pt Ligações
links and attached files addressbook pt Links e arquivos anexados
list all categories addressbook pt Listar todas as categorias
list all customfields addressbook pt Listar todos os campos personalizados
list of files linked to the current record addressbook pt Lista de arquivos vinculados ao registro atual
load vcard addressbook pt Carregar VCard
location addressbook pt Local
manage mapping addressbook pt Gerenciar mapeamento
mark records as private addressbook pt Marcar registos como privados
message phone addressbook pt Telefone de mensagens
middle name addressbook pt Nome do meio
@ -182,7 +166,6 @@ record owner addressbook pt Dono do registo
repetition addressbook pt Repetição
role addressbook pt Papel
select all addressbook pt Seleccionar tudo
select multiple contacts for a further action addressbook pt Selecionar vários contatos para uma nova acção
select the type of conversion addressbook pt Seleccionar o tipo de conversão
select the type of conversion: addressbook pt Seleccionar o tipo de conversão:
show addressbook pt Exibir
@ -193,11 +176,9 @@ state common pt Bairro
street common pt Rua
successfully imported %1 records into your addressbook. addressbook pt %1 registo(s) importado(s) para o seu livro de endereços com sucesso.
suffix addressbook pt Sufixo
tag to mark positions for address labels addressbook pt Tag para marcar posições para etiquetas de endereço
tel home addressbook pt telefone de casa
test import (show importable records <u>only</u> in browser) addressbook pt Importação de Teste (exibir no navegador <u>apenas</u> os registos importáveis)
that field name has been used already ! addressbook pt Esse nome do campo já existe !
the following document-types are supported: addressbook pt Os seguintes tipos de documentos são suportados:
this person's first name was not in the address book. addressbook pt O primeiro nome desta pessoa não estava no Livro de Endereços
this person's last name was not in the address book. addressbook pt O apelido desta pessoa não foi encontrado no livro de endereços
to many might exceed your execution-time-limit addressbook pt Demasiados podem exceder o seu tempo limite de execução
@ -212,17 +193,13 @@ vcards require a first name entry. addressbook pt VCards requer um primeiro nome
vcards require a last name entry. addressbook pt VCards requer um apelido.
warning!! ldap is valid only if you are not using contacts for accounts storage! admin pt Aviso!! LDAP é válido apenas se não estiver a utilizar contactos para armazenamento de contas!
warning: all contacts found will be deleted! addressbook pt Aviso: Todos os contactos encontrados serão eliminados!
whole query addressbook pt Consulta Whole
work phone addressbook pt Telefone de trabalho
write (update or add) a single entry by passing the fields. addressbook pt Editar (actualizar ou adicionar) um registo único passando os campos.
yes, only admins can purge deleted items admin pt Sim, só os administradores podem remover os itens excluídos
you are not permitted to delete contact %1 addressbook pt Não tem permissões para eliminar o contacto %1
you are not permittet to delete this contact addressbook pt Não tem permissões para eliminar este contacto
you are not permittet to edit this contact addressbook pt Não tem permissões para editar este contacto
you are not permittet to view this contact addressbook pt Não tem permissões para ver este contacto
you can respond by visiting: addressbook pt Você pode responder, visitando
you must select a vcard. (*.vcf) addressbook pt É necessário seleccionar um vcard. (*.vcf)
you must select at least 1 column to display addressbook pt É necessário seleccionar pelo menos uma coluna a apresentar
you need to select some entries first addressbook pt Você precisa selecionar algumas entradas em primeiro lugar.
zip code common pt Código postal
zip_note addressbook pt <p><b>Nota:</b> O ficheiro pode ser um ficheiro .zip com uma colecção de ficheiros .csv, .vcf ou .ldif. No entanto, não misture os tipos de ficheiro por importação.

View File

@ -96,6 +96,7 @@ charset of file addressbook ru Кодировка файла
check all addressbook ru Отметить все
choose an icon for this contact type admin ru Выберите пиктограмму для этого типа контактов
choose charset addressbook ru Выберите кодировку
choose export options addressbook ru Выберите дополнительные параметры экспорта
choose owner of imported data addressbook ru Выберите владельца импортированных данных
chosse an etemplate for this contact type admin ru Выбирите e-Шаблон для этого типа контакта
city common ru Город
@ -118,7 +119,6 @@ contact repository admin ru Хранилище контакта
contact saved addressbook ru Контакт сохранён
contact settings admin ru Установки контакта
contactform addressbook ru Форма контакта
contacts common ru Контакты
contacts and account contact-data to ldap admin ru Контакты и данные контакта для учётной записи в LDAP
contacts and account contact-data to sql admin ru Контакты и контактные данные учётной записи в SQL
contacts to ldap admin ru Контакты в LDAP
@ -138,7 +138,6 @@ csv-filename addressbook ru Имя файла CSV
custom addressbook ru Пользовательский
custom etemplate for the contactform addressbook ru Пользовательский е-Шаблон для формы контактов
custom fields addressbook ru Пользовательские поля
data exchange settings addressbook ru Установки обмена данных
debug output in browser addressbook ru Отладочный вывод в браузере
default addressbook ru По умолчанию
default address format addressbook ru Формат адреса по умолчанию
@ -208,10 +207,8 @@ exported addressbook ru Экспортировано
exports contacts from your addressbook into a csv file. addressbook ru Экспорт контактов из адресной книги в файл формата CSV
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 ru Экспортировать контакты из адресной книги в файл CSV. CSV (Comma Seperated Values) — «Значения, разделенные запятыми». Однако на вкладке параметров можно выбрать и другие разделители.
extra addressbook ru Дополнительно
extra encodings addressbook ru Дополнительные кодировки
extra private addressbook ru Дополнительные личные
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook ru Ошибка при изменении %1 участника(ов) организации (недостаточно прав)!
favorites addressbook ru Избранное
fax addressbook ru Факс
fax number common ru Номер факса
field %1 has been added ! addressbook ru Добавлено поле %1 !
@ -228,7 +225,6 @@ freebusy uri addressbook ru URI занятости
full name addressbook ru Полное имя
general admin ru Общие
general fields: addressbook ru Общие поля:
general settings addressbook ru Основные установки
geo addressbook ru ГЕО
global categories addressbook ru Общие категории
grant addressbook access common ru Предоставить доступ к адресной книге
@ -248,7 +244,6 @@ home state addressbook ru Домашний - регион
home street addressbook ru Домашний - улица
home zip code addressbook ru Домашний почтовый индекс
how many contacts should non-admins be able to export admin ru Сколько контактов может экспортировать не-администратор
html link to the current record addressbook ru HTML-ссылка на запись
icon addressbook ru Пиктограмма
if accounts are already in ldap admin ru Если учётная запись уже в LDAP
ignore first line addressbook ru Не учитывать первую строку
@ -343,6 +338,7 @@ phone numbers common ru Номера телефонов
photo addressbook ru Фото
please enter a name for that field ! addressbook ru Пожалуйста, введите имя поля!
please select only one category addressbook ru Пожалуйста, выберите только одну категорию
please update the templatename in your customfields section! addressbook ru Пожалуйста, измените название шаблона в разделе пользовательских полей!
postal common ru Почтовый
pref addressbook ru Предпочтительный
preferred email address to use in distribution lists addressbook ru Предпочтительный адрес электронной почты
@ -411,7 +407,6 @@ that field name has been used already ! addressbook ru Поле с таким и
the anonymous user has probably no add rights for this addressbook. addressbook ru Анонимный пользователь обычно не имеет прав на добавление записей в эту адресную книгу
the anonymous user needs add rights for it! addressbook ru Для этого анонимному пользователю нужны права на добавление!
the anonymous user needs read it! addressbook ru Анонимный пользователь должен иметь права на чтение!
the following document-types are supported: addressbook ru Поддерживаются следующие типы документов:
the zip extension is needed, to insert contact data in openoffice or msoffice documents. addressbook ru Для вставки контактных данных в документы OpenOffice или MS Office требуется zip-расширение
there was an error saving your data :-( addressbook ru При сохранении данных произошла ошибка
this module displays a contactform, that stores direct into the addressbook. addressbook ru Модуль отображает форму с данными контакта в том виде, как она сохраняется в адресной книге
@ -429,7 +424,6 @@ two of: %1 addressbook ru Два из: %1
type addressbook ru Тип
un-delete addressbook ru Отменить удаление
unable to convert "%1" to account id. using plugin setting (%2) for owner. addressbook ru Невозможно преобразовать "%1" в ID учётной записи. Используйте расширение (%2), установленное для владельца
unable to delete addressbook ru Невозможно удалить
unique id (uid) addressbook ru Уникальный ID (UID)
unique id<br />(to update existing records) addressbook ru Уникальный ID<br /> для обновления существующих записей
update a single entry by passing the fields. addressbook ru Обновление записи при помощи передачи полей
@ -452,6 +446,7 @@ verification addressbook ru Проверка
view linked infolog entries addressbook ru Смотреть связанные записи ИнфоЖурнала
warning!! ldap is valid only if you are not using contacts for accounts storage! admin ru ПРЕДУПРЕЖДЕНИЕ!! LDAP доступен только в случае, если контакты НЕ использовались для хранения учётных записей!
warning: all contacts found will be deleted! addressbook ru ПРЕДУПРЕЖДЕНИЕ: Все найденные контакты будут удалены!
warning: template "%1" not found, using default template instead. addressbook ru ВНИМАНИЕ: Шаблон "%1" не найден, взамен используется шаблон по умолчанию
weekday addressbook ru Рабочий день
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 ru Изображение перехода к адресной книге в других приложениях. Значение «пусто» не допустимо. После изменения данной настройки следует выполнить вход в систему снова
where to add the email address addressbook ru Куда добавлять адреса электронной почты
@ -482,6 +477,5 @@ you must select a vcard. (*.vcf) addressbook ru Вы должны выбрать
you must select at least 1 column to display addressbook ru Вы должны выбрать хотя бы одну колонку для показа
you need to select a distribution list addressbook ru Вы должны выбрать список рассылки
you need to select some contacts first addressbook ru Вы должны сначала выбрать несколько контактов
you need to select some entries first addressbook ru Необходимо сначала выбрать записи.
zip code common ru Почтовый индекс
zip_note addressbook ru Файл может быть zip-архивом файлов .csv, .vcf, или .ldif, однако не смешивайте разные типы при импорте

View File

@ -91,6 +91,7 @@ charset for the vcard export addressbook sk Znaková sada pre export vCard
charset of file addressbook sk Znaková sada súboru
check all addressbook sk Označiť všetko
choose an icon for this contact type admin sk Zvoľte ikonu pre tento typ kontaktu
choose export options addressbook sk Zvoľte možnosti exportu
choose owner of imported data addressbook sk Vyberte vlastníka naimportovaných údajov
chosse an etemplate for this contact type admin sk Zvoľte eŠablónu pre tento typ kontaktu
city common sk Mesto
@ -201,10 +202,8 @@ exported addressbook sk Exportované.
exports contacts from your addressbook into a csv file. addressbook sk Vyexportuje kontakty z adresára do súboru CSV.
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 sk Vyexportuje kontakty z Vášho Adresára do súboru CSV (Comma Separated Values čiže hodnoty oddelené čiarkou). V karte možností môžete zvoliť aj iný oddeľovač než čiarku.
extra addressbook sk Extra
extra encodings addressbook sk Extra kódovania
extra private addressbook sk Extra súkromné
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook sk Nepodarilo sa vykonať zmeny u %1 členov organizácie -nedostatočné práva !!!
favorites addressbook sk Obľúbené
fax addressbook sk Fax
fax number common sk Číslo faxu
field %1 has been added ! addressbook sk Pole %1 bolo pridané
@ -330,6 +329,7 @@ phone numbers common sk Telefónne čísla
photo addressbook sk Fotografia
please enter a name for that field ! addressbook sk Prosím zadajte meno pre toto pole!
please select only one category addressbook sk Prosím, vyberte iba jednu kategóriu
please update the templatename in your customfields section! addressbook sk Prosím aktualizujte názov šablóny v sekcii vlastného poľa!
postal common sk Poštové
pref addressbook sk Titul
preferred email address to use in distribution lists addressbook sk Predvolená E-mailová adresa použitá v distribučných zoznamoch
@ -397,7 +397,6 @@ that field name has been used already ! addressbook sk Takýto názov poľa už
the anonymous user has probably no add rights for this addressbook. addressbook sk Anonymný používateľ pravdepodobne nemá právo pridávať do tohto adresára.
the anonymous user needs add rights for it! addressbook sk Anonymný používateľ by na to potreboval pridať práva!
the anonymous user needs read it! addressbook sk Anonymný používateľ by to potreboval čítať!
the following document-types are supported: addressbook sk Podporované sú nasledovné typy dokumentov:
the zip extension is needed, to insert contact data in openoffice or msoffice documents. addressbook sk Aby bolo možné vložiť kontaktné údaje v dokumentoch OpenOffice alebo MSOffice, je potrebná prípona zip.
there was an error saving your data :-( addressbook sk Pri ukladaní Vašich údajov nastala chyba :-(
this module displays a contactform, that stores direct into the addressbook. addressbook sk Tento modul zobrazuje formulár kontaktu, ktorý ukladá priamo do adresára.
@ -415,7 +414,6 @@ two of: %1 addressbook sk dva z: %1
type addressbook sk Typ
un-delete addressbook sk Obnoviť vymazané
unable to convert "%1" to account id. using plugin setting (%2) for owner. addressbook sk Nepodarila sa konverzia "%1" na ID účtu. Používam nastavenie zásuvného modulu (%2) pre vlastníka.
unable to delete addressbook sk Nedá sa odstrániť
unique id (uid) addressbook sk Jedinečné ID (UID)
unique id<br />(to update existing records) addressbook sk Jedinečné ID<br />(pre aktualizáciu existujúcich záznamov)
update a single entry by passing the fields. addressbook sk Aktualizovať jednotlivý záznam podľa zadaných polí
@ -438,6 +436,7 @@ verification addressbook sk Kontrola
view linked infolog entries addressbook sk Zobraziť pripojené položky Záznamníka
warning!! ldap is valid only if you are not using contacts for accounts storage! admin sk VAROVANIE!! LDAP sa dá použiť jedine ak NEPOUŽÍVATE kontakty na uchovanie používateľských účtov!
warning: all contacts found will be deleted! addressbook sk POZOR: Všetky kontakty budú odstránené!
warning: template "%1" not found, using default template instead. addressbook sk VAROVANIE: Šablóna "%1" sa nenašla, používam namiesto nej predvolenú šablónu.
weekday addressbook sk Deň v týždni
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 sk Čo sa má v iných aplikáciách zobraziť na mieste odkazu na adresár. Prázdne hodnoty sa vynechajú. Ak zmeníte toto nastavenie, musíte sa znovu prihlásiť!
where to add the email address addressbook sk Kde pridať E-mailovú adresu
@ -467,6 +466,5 @@ you must select a vcard. (*.vcf) addressbook sk Musíte vybrať VCard (*.vcf)
you must select at least 1 column to display addressbook sk Musíte vybrať aspoň 1 stĺpec k zobrazeniu.
you need to select a distribution list addressbook sk Najprv musíte vybrať distribučný zoznam
you need to select some contacts first addressbook sk Najprv musíte vybrať nejaké kontakty.
you need to select some entries first addressbook sk Najprv vyberte nejaké položky.
zip code common sk PSČ
zip_note addressbook sk <p><b>Poznámka:</b>Súbor môže byť archív formátu zip s kolekciou súborov .csv, .vcf alebo .ldif. V žiadnom prípade pri importe nemiešajte rôzne typy súborov.

View File

@ -91,6 +91,7 @@ charset for the vcard export addressbook sl Nabor znakov za izvoz vCard
charset of file addressbook sl Kodna tabela datoteke
check all addressbook sl Preveri vse
choose an icon for this contact type admin sl Izberite ikono za to vrsto stika
choose export options addressbook sl Izberite možnosti izvoza
choose owner of imported data addressbook sl Izberite lastnika uvoženih podatkov
chosse an etemplate for this contact type admin sl Izberite eTemplate za to vrsto stika
city common sl Mesto
@ -196,7 +197,6 @@ exports contacts from your addressbook into a csv file. csv means 'comma seperat
extra addressbook sl Dodatno
extra private addressbook sl Posebej zasebno
failed to change %1 organisation member(s) (insufficent rights) !!! addressbook sl Napaka pri spreminjanju %1 članov organizacije (premalo pravic)!
favorites addressbook sl Priljubljene
fax addressbook sl Faks
fax number common sl Faks
field %1 has been added ! addressbook sl Polje %1 je bilo dodano!
@ -319,6 +319,7 @@ phone numbers common sl Telefonske številke
photo addressbook sl Slika
please enter a name for that field ! addressbook sl Prosim, vpišite ime za to polje!
please select only one category addressbook sl Izberite samo eno kategorijo
please update the templatename in your customfields section! addressbook sl Posodobite ime predloge v lastnem izboru polj!
postal common sl Poštni
pref addressbook sl Privzeto
preferred email address to use in distribution lists addressbook sl Privzeti e-naslov za uporabo v distribucijskem seznamu.
@ -421,6 +422,7 @@ verification addressbook sl Potrditev
view linked infolog entries addressbook sl Poglej povezane vnose InfoDnevnika
warning!! ldap is valid only if you are not using contacts for accounts storage! admin sl OPOZORILO!! LDAP je veljaven samo, če ne uporabljate stikov za skladiščenje računov!
warning: all contacts found will be deleted! addressbook sl Opozorilo: vsi najdeni stiki bodo zbrisani!
warning: template "%1" not found, using default template instead. addressbook sl Opozorilo: predloga "%1" ni bila najdena. Ušorabljena bo privzeta predloga.
weekday addressbook sl Delovnik
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 sl Kaj naj povezave do adresarja prikaže v drugih aplikacijah. Prazne vrednosti bodo izpuščene. Če spremenite nastavitve, se morate ponovno prijaviti!
where to add the email address addressbook sl Kje naj se doda e-naslov?

View File

@ -268,6 +268,7 @@ phone numbers common zh-tw 電話號碼
photo addressbook zh-tw 照片
please enter a name for that field ! addressbook zh-tw 請輸入欄位名稱!
please select only one category addressbook zh-tw 請選擇唯一的類別
please update the templatename in your customfields section! addressbook zh-tw 請在自訂欄位區更新樣板名稱!
postal common zh-tw 郵政信箱
pref addressbook zh-tw 主要
preferred phone addressbook zh-tw 偏好聯絡方式
@ -345,6 +346,7 @@ verification addressbook zh-tw 確認
view linked infolog entries addressbook zh-tw 檢視連結的記事資料
warning!! ldap is valid only if you are not using contacts for accounts storage! admin zh-tw 注意只有當您沒有將聯絡人作為帳號儲存時LDAP才會生效
warning: all contacts found will be deleted! addressbook zh-tw 警告:找到的所有聯絡人都會被刪除!
warning: template "%1" not found, using default template instead. addressbook zh-tw 警告:找不到樣板 "%1" ,使用預設樣板替代。
weekday addressbook zh-tw 星期幾
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 zh-tw 在其他程式連結到通訊錄的顯示文字,空白會被忽略,任何的修正必須在重新登入後才會套用!
which address format should the addressbook use for countries it does not know the address format. if the address format of a country is known, it uses it independent of this setting. addressbook zh-tw 通訊錄在不清楚住址格式的國家要使用的住址格式,如果已經知道,它會使用獨立的設定。

View File

@ -271,6 +271,7 @@ phone numbers common zh 电话号码
photo addressbook zh 照片
please enter a name for that field ! addressbook zh 请输入字段名称!
please select only one category addressbook zh 请选择唯一的类别
please update the templatename in your customfields section! addressbook zh 请在自定义字段区更新模板名!
postal common zh 邮政信箱
pref addressbook zh 设为首选
preferred email address to use in distribution lists addressbook zh 分发列表使用的首选电子邮件地址
@ -351,6 +352,7 @@ verification addressbook zh 认证
view linked infolog entries addressbook zh 查看链接的记事条目
warning!! ldap is valid only if you are not using contacts for accounts storage! admin zh 警告只有当您不为联系人账户存储时LDAP才是有效的
warning: all contacts found will be deleted! addressbook zh 警告:找到的所有联系人都会被删除!
warning: template "%1" not found, using default template instead. addressbook zh 警告:未找到模板"%1",将改为使用默认模板。
weekday addressbook zh 星期几
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 zh 如何在其他应用程序中显示链接的通讯簿,空的数值数据将被省略。如果您要修改此设置,您需要重新登录!
where to add the email address addressbook zh 在哪里添加邮件地址

View File

@ -36,6 +36,7 @@ $setup_info['addressbook']['tables'] = array(); // addressbook tables are in th
$setup_info['addressbook']['hooks']['admin'] = 'addressbook_hooks::all_hooks';
$setup_info['addressbook']['hooks']['sidebox_menu'] = 'addressbook_hooks::all_hooks';
$setup_info['addressbook']['hooks']['settings'] = 'addressbook_hooks::settings';
$setup_info['addressbook']['hooks'][] = 'home';
$setup_info['addressbook']['hooks']['deleteaccount'] = 'addressbook.addressbook_bo.deleteaccount';
$setup_info['addressbook']['hooks']['deletegroup'] = 'addressbook.addressbook_bo.deleteaccount';
$setup_info['addressbook']['hooks']['delete_category'] = 'addressbook.addressbook_bo.delete_category';

View File

@ -2,10 +2,32 @@
<!-- $Id$ -->
<overlay>
<template id="addressbook.admin.types" template="" lang="" group="0" version="">
<vbox>
<template id="admin.customfields.types" content="content_types"/>
<button label="Save" id="save"/>
</vbox>
<grid>
<columns>
<column/>
<column/>
<column/>
</columns>
<rows>
<row>
<hbox span="all">
<description value="Options for type " class="header"/>
<description id="type" no_lang="1" font_style="b"/>
<description/>
</hbox>
</row>
<row>
<description value="Icon"/>
<textbox id="icon" size="40"/>
<description value="Choose an icon for this contact type"/>
</row>
<row>
<description value="Template"/>
<textbox id="template" size="40"/>
<description value="Chosse an eTemplate for this contact type"/>
</row>
</rows>
</grid>
<styles>.header{
font-weight: bold;
}</styles>

View File

@ -35,6 +35,7 @@ div#addressbook_view_sidebox img.photo {
* new addressbook.edit
*/
div#addressbook-edit.et2_container {
width: 842px;
}
div.addressbook_edit_general_picture {
position: relative;

View File

@ -54,7 +54,7 @@
</grid>
</template>
<template id="addressbook.edit.general" template="" lang="" group="0" version="1.9.003">
<grid width="100%">
<grid width="100%" height="200">
<columns>
<column width="82"/>
<column width="300"/>
@ -162,7 +162,7 @@
</grid>
</template>
<template id="addressbook.edit.details" template="" lang="" group="0" version="1.9.002">
<grid width="100%" overflow="auto">
<grid width="100%" height="200" overflow="auto">
<columns>
<column disabled="!@cat_tab=Tree"/>
<column disabled="@cat_tab=Tree"/>
@ -171,8 +171,8 @@
<rows>
<row valign="top">
<tree-cat id="cat_id_tree" options="13,,width:99%"/>
<listbox type="select-cat" id="cat_id" rows="13" options=",width:99%"/>
<grid width="100%">
<listbox type="select-cat" id="cat_id" rows="013" options=",width:99%"/>
<grid width="100%" height="200">
<columns>
<column width="80"/>
<column/>
@ -192,7 +192,7 @@
</row>
<row valign="top">
<description for="pubkey" value="Public key"/>
<textbox multiline="true" id="pubkey" rows="4" resize_ratio="0" class="et2_fullWidth"/>
<textbox multiline="true" id="pubkey" rows="4" class="et2_fullWidth"/>
</row>
</rows>
</grid>
@ -201,7 +201,7 @@
</grid>
</template>
<template id="addressbook.edit.home" template="" lang="" group="0" version="1.9.001">
<grid width="100%">
<grid width="100%" height="200">
<columns>
<column width="82"/>
<column width="300"/>
@ -304,7 +304,7 @@
</grid>
</template>
<template id="addressbook.edit.links" template="" lang="" group="0" version="1.9.001">
<grid width="100%" overflow="auto">
<grid width="100%" height="200" overflow="auto">
<columns>
<column/>
</columns>
@ -325,26 +325,26 @@
</grid>
</template>
<template id="addressbook.edit.distribution_list" template="" lang="" group="0" version="1.9.001">
<box width="100%" overflow="auto">
<box height="200" width="100%" overflow="auto">
<description id="distrib_lists" span="all"/>
</box>
</template>
<template id="addressbook.edit.custom" template="" lang="" group="0" version="1.9.001">
<box width="100%" overflow="auto">
<box height="200" width="100%" overflow="auto">
<customfields options="$cont[tid],$cont[no_private_cfs]"/>
</box>
</template>
<template id="addressbook.edit.custom_private" template="" lang="" group="0" version="1.9.001">
<box width="100%" overflow="auto">
<box height="200" width="100%" overflow="auto">
<customfields id="private_cfs" options="$cont[tid],1"/>
</box>
</template>
<template id="addressbook.edit.history" template="" lang="" group="0" version="1.9.001">
<historylog id="history" width="100%" overflow="hidden"/>
<historylog id="history" height="200" width="100%" overflow="hidden"/>
</template>
<template id="addressbook.edit" template="" lang="" group="0" version="1.9.004" class="addressbook_edit">
<template id="addressbook.editname"/>
<grid class="addressbook_edit" border="1" width="100%">
<grid class="addressbook_edit" border="1">
<columns>
<column width="90"/>
<column width="90"/>
@ -394,7 +394,7 @@
<description/>
</row>
<row>
<tabbox id="tabs" span="all" width="100%" tab_height="200">
<tabbox id="tabs" span="all" width="100%">
<tabs>
<tab id="general" label="Organisation"/>
<tab id="home" label="Private" statustext="Home address, Birthday, ..."/>
@ -452,7 +452,7 @@
<button statustext="download this contact as vCard file" label="vCard" id="button[vcard]" image="vcard" background_image="1"/>
<button accesskey="s" label="Save" id="button[save]" class="button_save" image="save" background_image="1"/>
<button label="Apply" id="button[apply]" class="button_apply" image="apply" background_image="1"/>
<button label="Cancel" id="button[cancel]" class="button_cancel" onclick="if($cont[view] || false) return true; window.close(); return false;" image="cancel" background_image="1"/>
<button label="Cancel" id="button[cancel]" class="button_cancel" onclick="if($cont[view] || false) return true; self.close(); return false;" image="cancel" background_image="1"/>
<checkbox statustext="Apply changes to all members, whose fields have the same previous content" label="change all organisation members" id="change_org" span="all"/>
<button align="right" label="Delete" id="button[delete]" class="button_delete" onclick="et2_dialog.confirm(widget,'Do you really want to delete this contact?','Delete')" tabindex="25" image="delete" background_image="1"/>
</hbox>

View File

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<overlay>
<template id="addressbook.home.link" template="" lang="" group="0" version="1.9.001">
<grid>
<columns>
<column width="70"/>
<column/>
</columns>
<rows>
<row span="all">
<hbox height="100px">
<image src="image" class="photo"/>
<vbox>
<description id="n_fn" class="addressbook_sidebox_name"/>
<description id="org_name" class="addressbook_sidebox_org"/>
<description id="org_unit"/>
<description id="adr_one_locality"/>
</vbox>
</hbox>
</row>
<row>
<description span="2" value="Phone numbers" class="addressbook_sidebox_header"/>
</row>
<row>
<description for="tel_work" value="Business"/>
<url-phone id="tel_work" readonly="true"/>
</row>
<row>
<description for="tel_cell" value="Mobile phone"/>
<url-phone id="tel_cell" readonly="true"/>
</row>
<row>
<description for="tel_home" value="Private"/>
<url-phone id="tel_home" readonly="true"/>
</row>
<row>
<description for="tel_fax" value="Fax"/>
<url-phone id="tel_fax" readonly="true"/>
</row>
<row>
<description span="2" value="EMail &amp; Internet" class="addressbook_sidebox_header"/>
</row>
<row>
<description for="email" value="EMail"/>
<url-email id="email" readonly="true"/>
</row>
<row>
<description for="url" value="URL"/>
<url id="url" readonly="true"/>
</row>
</rows>
</grid>
</template>
</overlay>

View File

@ -1,175 +0,0 @@
<?xml version="1.0"?>
<!-- $Id: index.xet 48420 2014-09-03 10:55:56Z ralfbecker $ -->
<overlay>
<template id="addressbook.index.rows" template="" lang="" group="0" version="1.9.005">
<grid width="100%">
<columns>
<column width="20"/>
<column width="40%"/>
<column width="70"/>
<column width="100"/>
<column width="60"/>
<column width="80"/>
<column width="180"/>
<column width="180"/>
<column width="180"/>
<column width="180"/>
<column width="40"/>
<column width="80" disabled="@no_customfields"/>
<column width="60%"/>
<column width="80" disabled="@no_distribution_list"/>
<column width="80"/>
<column width="50"/>
<column width="80"/>
<column width="120"/>
</columns>
<rows>
<row class="th">
<nextmatch-header label="Type" id="type" options="1"/>
<grid spacing="0" padding="0">
<columns>
<column/>
<column/>
</columns>
<rows>
<row disabled="!@order=n_fileas">
<nextmatch-sortheader label="own sorting" id="n_fileas" span="all"/>
</row>
<row disabled="!@order=n_given">
<nextmatch-sortheader label="Firstname" id="n_given"/>
<nextmatch-sortheader label="Name" id="n_family"/>
</row>
<row disabled="!@order=n_family">
<nextmatch-sortheader label="Name" id="n_family"/>
<nextmatch-sortheader label="Firstname" id="n_given"/>
</row>
<row>
<nextmatch-sortheader label="Organisation" id="org_name" span="all"/>
</row>
<row disabled="!@order=/^(org_name|n_fileas|adr_one_postalcode|contact_modified|contact_created|#)/">
<nextmatch-sortheader label="Name" id="n_family"/>
<nextmatch-sortheader label="Firstname" id="n_given" class="leftPad5"/>
</row>
<row disabled="@order=n_fileas">
<nextmatch-sortheader label="own sorting" id="n_fileas" span="all"/>
</row>
</rows>
</grid>
<nextmatch-header label="role" id="role"/>
<nextmatch-header label="Category" id="cat_id"/>
<nextmatch-header label="Photo" id="photo"/>
<nextmatch-header label="Birthday" id="bday"/>
<vbox options="0,0">
<nextmatch-header label="Business address" id="business"/>
<nextmatch-customfilter id="adr_one_countrycode" options="select-country,Country,0,No country selected" class="countrySelect"/>
<nextmatch-sortheader label="zip code" id="adr_one_postalcode"/>
</vbox>
<vbox options="0,0">
<nextmatch-header label="Home address" id="home"/>
<nextmatch-customfilter id="adr_two_countrycode" options="select-country,Country,0,No country selected" class="countrySelect"/>
<nextmatch-sortheader label="zip code" id="adr_two_postalcode"/>
</vbox>
<vbox options="0,0">
<nextmatch-header label="Business phone" id="tel_work"/>
<nextmatch-header label="Mobile phone" id="tel_cell"/>
<nextmatch-header label="Home phone" id="tel_home"/>
<description value="Fax"/>
</vbox>
<vbox options="0,0">
<nextmatch-header label="Url" id="url"/>
<nextmatch-header label="Business email" id="email"/>
<nextmatch-header label="Home email" id="email_home"/>
</vbox>
<nextmatch-header label="Room" id="room"/>
<nextmatch-customfields id="customfields"/>
<nextmatch-header label="Note" id="note"/>
<nextmatch-header label="Distribution lists" id="distribution_list"/>
<nextmatch-header label="Addressbook" id="owner"/>
<nextmatch-sortheader label="ID" id="contact_id"/>
<vbox options="0,0">
<nextmatch-header label="Last date" id="calendar"/>
<nextmatch-header label="Next date" id="calendar"/>
</vbox>
<vbox options="0,0">
<nextmatch-sortheader label="Created" id="contact_created" sortmode="DESC"/>
<nextmatch-sortheader label="Last modified" id="contact_modified" sortmode="DESC"/>
</vbox>
</row>
<row class="$row_cont[cat_id] $row_cont[class]" valign="top">
<image align="center" label="$row_cont[type_label]" src="${row}[type]" no_lang="1"/>
<vbox id="${row}[id]" options="0,0">
<description id="${row}[line1]" no_lang="1"/>
<description id="${row}[line2]" no_lang="1"/>
<description id="${row}[org_unit]" no_lang="1"/>
<description id="${row}[title]" no_lang="1"/>
<description id="${row}[first_org]" no_lang="1"/>
</vbox>
<description id="${row}[role]"/>
<listbox type="select-cat" id="${row}[cat_id]" readonly="true" rows="2"/>
<image src="${row}[photo]" class="iphoto"/>
<date id="${row}[bday]" readonly="true" options="Y-m-d"/>
<vbox options="0,0">
<description id="${row}[adr_one_street]" no_lang="1"/>
<description id="${row}[adr_one_street2]" no_lang="1"/>
<hbox orient="0" options="0,0">
<description id="${row}[adr_one_postalcode]" no_lang="1"/>
<description value=" " id="${row}[adr_one_locality]" no_lang="1" class="leftPad5"/>
<description id="${row}[adr_one_region]" no_lang="1" class="leftPad5"/>
</hbox>
<description id="${row}[adr_one_countryname]" no_lang="1"/>
<menulist>
<menupopup type="select-country" id="${row}[adr_one_countrycode]" readonly="true"/>
</menulist>
</vbox>
<vbox options="0,0">
<description id="${row}[adr_two_street]" no_lang="1"/>
<description id="${row}[adr_two_street2]" no_lang="1"/>
<hbox options="0,0">
<description id="${row}[adr_two_postalcode]" no_lang="1"/>
<description value=" " id="${row}[adr_two_locality]" no_lang="1" class="leftPad5"/>
<description id="${row}[adr_two_region]" no_lang="1" class="leftPad5"/>
</hbox>
<description id="${row}[adr_two_countryname]" no_lang="1"/>
<menulist>
<menupopup type="select-country" id="${row}[adr_two_countrycode]" readonly="true"/>
</menulist>
</vbox>
<vbox options="0,0">
<url-phone id="${row}[tel_work]" readonly="true" class="telNumbers"/>
<url-phone id="${row}[tel_cell]" readonly="true" class="telNumbers"/>
<url-phone id="${row}[tel_home]" readonly="true" class="telNumbers"/>
<url-phone id="${row}[tel_fax]" readonly="true"/>
<description id="${row}[tel_prefered]" no_lang="1" href="$row_cont[tel_prefered_link]" extra_link_target="calling" extra_link_popup="$cont[call_popup]"/>
</vbox>
<vbox options="0,0">
<url id="${row}[url]" readonly="true" class="fixedHeight"/>
<url-email id="${row}[email]" readonly="true" class="fixedHeight"/>
<url-email id="${row}[email_home]" readonly="true" class="fixedHeight"/>
</vbox>
<description id="${row}[room]"/>
<customfields-list id="$row" class="customfields"/>
<textbox multiline="true" id="${row}[note]" no_lang="1" readonly="true"/>
<description id="${row}[distrib_lists]"/>
<menulist>
<menupopup id="${row}[owner]" readonly="true"/>
</menulist>
<description id="${row}[id]" class="contactid"/>
<vbox options="0,0">
<link id="${row}[last_link]"/>
<link id="${row}[next_link]"/>
</vbox>
<vbox options="0,0">
<date-time id="${row}[created]" readonly="true" class="noWrap"/>
<menulist>
<menupopup type="select-account" id="${row}[creator]" readonly="true"/>
</menulist>
<date-time id="${row}[modified]" readonly="true" class="noBreak"/>
<menulist>
<menupopup type="select-account" id="${row}[modifier]" readonly="true"/>
</menulist>
</vbox>
</row>
</rows>
</grid>
</template>
</overlay>

View File

@ -25,8 +25,8 @@
<menulist>
<menupopup align="right" label="Type" id="col_filter[tid]" options="All"/>
</menulist>
<buttononly align="right" label="Advanced search" id="search" onclick="egw(window).openPopup(egw::link('/index.php','menuaction=addressbook.addressbook_ui.search'),'850','440','_blank','addressbook',null,true); return false;"/>
<buttononly align="right" statustext="Add a new contact" label="Add" id="add" onclick="egw(window).openPopup(egw::link('/index.php','menuaction=addressbook.addressbook_ui.edit'),'850','440','_blank','addressbook',null,true); return false;"/>
<buttononly align="right" label="Advanced search" id="search" onclick="window.open(egw::link('/index.php','menuaction=addressbook.addressbook_ui.search'),'_blank','dependent=yes,width=850,height=440,scrollbars=yes,status=yes'); return false;"/>
<buttononly align="right" statustext="Add a new contact" label="Add" id="add" onclick="window.open(egw::link('/index.php','menuaction=addressbook.addressbook_ui.edit'),'_blank','dependent=yes,width=850,height=440,scrollbars=yes,status=yes'); return false;"/>
</row>
</rows>
</grid>

View File

@ -46,6 +46,9 @@ div#addressbook_view_sidebox img.photo {
/**
* new addressbook.edit
*/
div#addressbook-edit.et2_container {
width: 842px;
}
div.addressbook_edit_general_picture {
position: relative;
}
@ -519,6 +522,9 @@ div#addressbook-index img.iphoto {
# #
# #
##############################################*/
div#addressbook-edit.et2_container {
width: 842px;
}
div.addressbook_edit_general_picture img {
top: -4px;
width: 70px;

View File

@ -394,6 +394,7 @@ button#tracker-index-addressbook_add{
##############################################*/
div#addressbook-edit.et2_container {
width: 842px;
}
// person image

View File

@ -5,7 +5,7 @@
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package admin
* @copyright (c) 2009-14 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @copyright (c) 2009-11 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
@ -48,14 +48,13 @@ class admin_accesslog
function __construct()
{
$this->so = new so_sql(self::APP,self::TABLE,null,'',true);
$this->so->timestamps = array('li', 'lo', 'session_dla', 'notification_heartbeat');
$this->so->timestamps = array('li', 'lo', 'session_dla', 'notification_hartbeat');
}
/**
* query rows for the nextmatch widget
*
* @param array $query with keys 'start', 'search', 'order', 'sort', 'col_filter' and
* 'session_list' true: all sessions, false: whole access-log, 'active': only sessions with session-status active (browser, no sync)
* @param array $query with keys 'start', 'search', 'order', 'sort', 'col_filter'
* @param array &$rows returned rows/competitions
* @param array &$readonlys eg. to disable buttons based on acl, not use here, maybe in a derived class
* @return int total number of rows
@ -68,32 +67,23 @@ class admin_accesslog
{
$query['col_filter']['lo'] = null; // not logged out
$query['col_filter'][0] = 'session_dla > '.(int)(time() - $GLOBALS['egw_info']['server']['sessions_timeout']);
switch((string)$query['session_list'])
{
case 'active': // remove status != 'active', eg. CalDAV/eSync
$query['col_filter'][1] = "notification_heartbeat > $heartbeat_limit";
$query['col_filter'][3] = "session_php NOT LIKE '% %'"; // remove blocked, bad login, etc
break;
default:
$query['col_filter'][1] = "(notification_heartbeat IS NULL OR notification_heartbeat > $heartbeat_limit)";
break;
}
$query['col_filter'][1] = "(notification_heartbeat IS NULL OR notification_heartbeat > $heartbeat_limit)";
$query['col_filter'][2] = 'account_id>0';
}
$total = $this->so->get_rows($query,$rows,$readonlys);
$heartbeat_limit_user = egw_time::server2user($heartbeat_limit, 'ts');
$no_kill = !$GLOBALS['egw']->acl->check('current_sessions_access',8,'admin') && !$query['session_list'];
foreach($rows as &$row)
{
$row['sessionstatus'] = 'success';
if ($row['notification_heartbeat'] > $heartbeat_limit_user)
if ($row['notification_heartbeat'] > $heartbeat_limit)
{
$row['sessionstatus'] = 'active';
}
if (stripos($row['session_php'],'blocked') !== false ||
stripos($row['session_php'],'bad login') !== false ||
strpos($row['session_php'],' ') !== false)
strpos($row['sessioin_php'],' ') !== false)
{
$row['sessionstatus'] = $row['session_php'];
}
@ -132,9 +122,9 @@ class admin_accesslog
/**
* Display the access log or session list
*
* @param array $content =null
* @param string $msg =''
* @param boolean $sessions_list =false
* @param array $content=null
* @param string $msg=''
* @param boolean $sessions_list=false
*/
function index(array $content=null, $msg='', $sessions_list=false)
{
@ -195,8 +185,7 @@ class admin_accesslog
@set_time_limit(0); // switch off the execution time limit, as it's for big selections to small
$query['num_rows'] = -1; // all
$all = $readonlys = array();
$this->get_rows($query,$all,$readonlys);
$total = $this->get_rows($query,$all,$readonlys);
$content['nm']['selected'] = array();
foreach($all as $session)
{
@ -209,7 +198,7 @@ class admin_accesslog
}
else
{
$success = $failed = $action = $action_msg = null;
if ($this->action($content['nm']['action'],$content['nm']['selected']
,$success,$failed,$action_msg,$msg))
{ // In case of action success
@ -242,7 +231,7 @@ class admin_accesslog
__LINE__,__FILE__)->fetchColumn();
$tmpl = new etemplate_new('admin.accesslog');
$tmpl->exec('admin.admin_accesslog.index', $content, array(), $readonlys, array(
$tmpl->exec('admin.admin_accesslog.index',$content,$sel_options,$readonlys,array(
'nm' => $content['nm'],
));
}
@ -256,9 +245,10 @@ class admin_accesslog
* @param type $success
* @param int $failed
* @param type $action_msg
* @param type $msg
* @return type number of failed
*/
function action($action,$checked,&$success,&$failed,&$action_msg)
function action($action,$checked,&$success,&$failed,&$action_msg,&$msg)
{
$success = $failed = 0;
//error_log(__METHOD__.'selected:' . array2string($checked). 'action:' . $action);
@ -309,7 +299,7 @@ class admin_accesslog
*/
private static function get_actions($sessions_list)
{
$group = 0;
if ($sessions_list)
{
// error_log(__METHOD__. $sessions_list);
@ -355,11 +345,11 @@ class admin_accesslog
/**
* Display session list
*
* @param array $content =null
* @param string $msg =''
* @param array $content=null
* @param string $msg=''
*/
function sessions(array $content=null, $msg='')
{
return $this->index($content, $msg, true);
return $this->index(null,$msg,true);
}
}

View File

@ -191,7 +191,7 @@ class admin_account
/**
* Delete an account
*
* @param array $content =null
* @param array $content=null
*/
public static function delete(array $content=null)
{

View File

@ -471,7 +471,6 @@ class admin_categories
}
elseif($content['nm']['action'])
{
$appname = $content['nm']['appname'];
// Old buttons
foreach(array('delete') as $button)
{
@ -516,8 +515,6 @@ class admin_categories
{
$msg .= lang('%1 category(s) %2, %3 failed because of insufficent rights !!!',$success,$action_msg,$failed);
}
egw_framework::refresh_opener($msg, 'admin');
$msg = '';
}
}
$content['msg'] = $msg;

View File

@ -124,7 +124,7 @@ abstract class admin_cmd
foreach($data as $name => $value)
{
$this->$name = $name == 'data' && !is_array($value) ? unserialize($value) : $value;
$this->$name = $name == 'data' && !is_array($value) ? json_php_unserialize($value) : $value;
}
//_debug_array($this); exit;
}
@ -243,7 +243,7 @@ abstract class admin_cmd
}
//echo "got: $message\n";
if (($value = unserialize($message)) !== false && $message !== serialize(false))
if (($value = json_php_unserialize($message)) !== false && $message !== serialize(false))
{
$message = $value;
}
@ -304,7 +304,7 @@ abstract class admin_cmd
$vars[$name] = $this->$name;
}
}
$vars['data'] = serialize($this->data); // data is stored serialized
$vars['data'] = json_encode($this->data); // data is stored serialized
admin_cmd::$sql->init($vars);
if (admin_cmd::$sql->save() != 0)
@ -361,7 +361,7 @@ abstract class admin_cmd
{
if (isset($data['data']) && !is_array($data['data']))
{
$data['data'] = unserialize($data['data']);
$data['data'] = json_php_unserialize($data['data']);
}
if (!class_exists($class = $data['type']) || $class == 'admin_cmd')
{

View File

@ -104,16 +104,6 @@ class admin_egw_group_record implements importexport_iface_egw_record
return $this->identifier;
}
/**
* Gets the URL icon representitive of the record
* This could be as general as the application icon, or as specific as a contact photo
*
* @return string Full URL of an icon, or appname/icon_name
*/
public function get_icon() {
return 'group';
}
/**
* saves record into backend
*

View File

@ -105,16 +105,6 @@ class admin_egw_user_record implements importexport_iface_egw_record
return $this->identifier;
}
/**
* Gets the URL icon representitive of the record
* This could be as general as the application icon, or as specific as a contact photo
*
* @return string Full URL of an icon, or appname/icon_name
*/
public function get_icon() {
return 'user';
}
/**
* saves record into backend
*

View File

@ -11,19 +11,10 @@
*/
/**
* Customfields class - manages customfield definitions in egw_config table
*
* The repository name (config_name) is 'customfields'.
*
* Applications can have customfields by sub-type by having a template
* named '<appname>.admin.types'. See admin.customfields.types as an
* example, but the template can even be empty if types are handled by the
* application in another way.
*
* Applications can extend this class to customize the custom fields and handle
* extra information from the above template by extending and implementing
* update() and app_index().
*/
* Custiomfields class - manages customfield definitions in egw_config table
*
* The repository name (config_name) is 'customfields'.
*/
class customfields
{
@ -34,11 +25,6 @@ class customfields
*/
var $appname;
/**
* Allow custom fields to be restricted to certain users/groups
*/
protected $use_private = false;
/**
* userdefiened types e.g. type of infolog
*
@ -47,14 +33,7 @@ class customfields
var $types2 = array();
var $content_types,$fields;
/**
* Currently selected content type (if used by app)
* @var string
*/
protected $content_type = null;
var $public_functions = array(
'index' => true,
'edit' => True
);
/**
@ -64,34 +43,6 @@ class customfields
*/
var $tmpl;
/**
* @var Description of the options or value format for each cf_type
*/
public static $type_option_help = array(
'select' => 'each value is a line like id[=label], or use @path to read options from a file in EGroupware directory',
'radio' => 'each value is a line like id[=label], or use @path to read options from a file in EGroupware directory',
'button' => 'each value is a line like label=[javascript]'
);
/**
* Custom fields can also have length and rows set, but these are't used for all types
* If not set to true here, the field will be disabled when selecting the type
*/
public static $type_attribute_flags = array(
'text' => array('cf_len' => true, 'cf_rows' => true),
'float' => array('cf_len' => true),
'label' => array('cf_values' => true),
'select' => array('cf_len' => false, 'cf_rows' => true, 'cf_values' => true),
'date' => array('cf_len' => true, 'cf_rows' => false),
'date-time' => array('cf_len' => true, 'cf_rows' => false),
'select-account' => array('cf_len' => false, 'cf_rows' => true),
'htmlarea' => array('cf_len' => true, 'cf_rows' => true),
'button' => array('cf_values' => true),
'ajax_select' => array('cf_values' => true),
'radio' => array('cf_values' => true),
'checkbox' => array('cf_values' => true),
);
/**
* Constructor
*
@ -104,118 +55,114 @@ class customfields
$this->fields = egw_customfields::get($this->appname,true);
$this->content_types = config::get_content_types($this->appname);
}
$this->so = new so_sql('phpgwapi','egw_customfields',null,'',true);
}
/**
* List custom fields
* Edit/Create Custom fields with type
*
* @author Ralf Becker <ralfbecker-AT-outdoor-training.de>
* @param array $content Content from the eTemplate Exec
*/
public function index($content = array())
function edit($content = null)
{
// determine appname
$this->appname = $this->appname ? $this->appname : ($_GET['appname'] ? $_GET['appname'] : ($content['appname'] ? $content['appname'] : false));
$this->appname = $_GET['appname'] ? $_GET['appname'] : ($content['appname'] ? $content['appname'] : false);
if(!$this->appname) die(lang('Error! No appname found'));
$this->use_private = !isset($_GET['use_private']) || (boolean)$_GET['use_private'] || $content['use_private'];
// Read fields, constructor doesn't always know appname
$this->fields = egw_customfields::get($this->appname,true);
translation::add_app('infolog'); // til we move the translations
$this->tmpl = new etemplate_new();
// do we manage content-types?
if($this->tmpl->read($this->appname.'.admin.types')) $this->manage_content_types = true;
$this->fields = egw_customfields::get($this->appname,true);
$this->tmpl->read('admin.customfields');
// do we manage content-types?
$test = new etemplate_new();
if($test->read($this->appname.'.admin.types')) $this->manage_content_types = true;
// Handle incoming - types, options, etc.
if($this->manage_content_types)
{
if(count($this->content_types) == 0)
{
$this->content_types = config::get_content_types($this->appname);
}
$this->content_types = config::get_content_types($this->appname);
if (count($this->content_types)==0)
{
// if you define your default types of your app with the search_link hook, they are available here, if no types were found
$this->content_types = (array)egw_link::get_registry($this->appname,'default_types');
}
// Set this now, we need to know it for updates
$this->content_type = $content['content_types']['types'] ? $content['content_types']['types'] : (array_key_exists(0,$this->content_types) ? $this->content_types[0] : key($this->content_types));
// Common type changes - add, delete
if($content['content_types']['delete'])
{
$this->delete_content_type($content);
}
elseif($content['content_types']['create'])
{
if($new_type = $this->create_content_type($content))
{
$content['content_types']['types'] = $this->content_type = $new_type;
}
unset($content['content_types']['create']);
unset($content['content_types']['name']);
}
// No common type change and type didn't change, try an update
elseif($this->content_type && is_array($content) && $this->content_type == $content['old_content_type'])
{
$this->update($content);
//error_log( array2string($this->content_types));
}
}
// Custom field deleted from nextmatch
if($content['nm']['action'] == 'delete')
elseif (!($this->tmpl instanceof etemplate_widget))
{
foreach($this->fields as $name => $data)
$this->tmpl->children[0]['data'][2]['A']['disabled'] = true;
$this->tmpl->children[0]['data'][3]['A']['disabled'] = true;
}
elseif(method_exists($this->tmpl, 'disableElement'))
{
// et2
$this->tmpl->disableElement('content_types', true);
}
if (is_array($content))
{
//echo '<pre style="text-align: left;">'; print_r($content); echo "</pre>\n";
if($this->manage_content_types)
{
if(in_array($data['id'],$content['nm']['selected']))
$this->content_type = $content['content_types']['types'];
}
if($content['content_types']['delete']) $this->delete_content_type($content);
elseif($content['content_types']['create']) $this->create_content_type($content);
elseif($content['fields']['delete']) $this->delete_field($content);
elseif($content['fields']['create']) $this->create_field($content);
else
{
list($action) = @each($content['button']);
switch($action)
{
unset($this->fields[$name]);
default:
if (!$content['fields']['create'] && !$content['fields']['delete'])
{
break; // type change
}
case 'save':
case 'apply':
$this->update($content);
if ($action != 'save')
{
break;
}
//fall through
case 'cancel':
egw::redirect_link('/index.php', array('menuaction'=>'admin.admin_ui.index','ajax'=>'true'), 'admin');
}
}
// save changes to repository
$this->save_repository();
}
$content['nm']= $GLOBALS['egw']->session->appsession('customfield-index','admin');
if (!is_array($content['nm']))
else
{
// Initialize nextmatch
$content['nm'] = array(
'get_rows' => 'admin.customfields.get_rows',
'no_cat' => 'true',
'no_filter' => 'true',
'no_filter2' => 'true',
'row_id' => 'cf_id',
'order' => 'cf_order',// IO name of the column to sort
'sort' => 'ASC',// IO direction of the sort: 'ASC' or 'DESC'
'actions' => $this->get_actions()
);
if($this->manage_content_types)
{
$content_types = array_keys($this->content_types);
$this->content_type = $content_types[0];
}
$content['use_private'] = !isset($_GET['use_private']) || (boolean)$_GET['use_private'];
}
$content['nm']['appname'] = $this->appname;
$content['nm']['use_private'] = $this->use_private;
$GLOBALS['egw_info']['flags']['app_header'] = $GLOBALS['egw_info']['apps'][$this->appname]['title'].' - '.lang('Custom fields');
$sel_options = array();
$readonlys = array();
// Set up sub-types
if($this->manage_content_types)
{
$content['content_types']['app-name'] = $this->appname;
foreach($this->content_types as $type => $entry)
{
if(!is_array($entry))
{
$this->content_types[$type] = array('name' => $entry);
$entry = $this->content_types[$type];
}
$this->types2[$type] = $entry['name'];
}
$sel_options['types'] = $sel_options['cf_type2'] = $this->types2;
$content['type_template'] = $this->appname . '.admin.types';
$content['content_types']['appname'] = $this->appname;
$content_types = array_keys($this->content_types);
$content['content_types']['options-types'] = $this->types2;
$sel_options['types'] = $this->types2;
if($this->tmpl instanceof etemplate_widget)
{
}
else
{
$this->tmpl->children[0]['data'][3]['A']['name'] = $this->appname.'.admin.types';
$this->tmpl->children[0]['data'][3]['A']['size'] = 'content_type_options';
}
$content['content_type_options'] = $this->content_types[$this->content_type]['options'];
$content['content_type_options']['type'] = $this->types2[$this->content_type];
$content['content_type_options']['type'] = $this->content_types[$this->content_type]['name'];
if ($this->content_types[$this->content_type]['non_deletable'])
{
$content['content_types']['non_deletable'] = true;
@ -229,241 +176,52 @@ class customfields
// Hide the whole line if you can't add or delete
$content['content_types']['no_edit_types'] = true;
}
// do NOT allow to delete original contact content-type for addressbook,
// as it only creates support problems as users incidently delete it
if ($this->appname == 'addressbook' && $this->content_type == 'n')
{
$readonlys['content_types']['delete'] = true;
}
$content['nm']['type2'] = true;
}
else
{
// Disable content types
$this->tmpl->disableElement('content_types', true);
}
$preserve = array(
'appname' => $this->appname,
'use_private' => $this->use_private,
'old_content_type' => $this->content_type
);
// Allow extending app a change to change content before display
static::app_index($content, $sel_options, $readonlys, $preserve);
// Make sure app css gets loaded, extending app might cause et2 to miss it
egw_framework::includeCSS('admin','app');
$GLOBALS['egw_info']['flags']['app_header'] = $GLOBALS['egw_info']['apps'][$this->appname]['title'].' - '.lang('Custom fields');
// Some logic to make sure extending class (if there is one) gets called
// when etemplate2 comes back instead of parent class
$exec = get_class() == get_called_class() ? 'admin.customfields.index' : $this->appname . '.' . get_called_class() . '.index';
$this->tmpl->exec($exec,$content,$sel_options,$readonlys,$preserve);
}
/**
* Edit/Create Custom fields with type
*
* @author Ralf Becker <ralfbecker-AT-outdoor-training.de>
* @param array $content Content from the eTemplate Exec
*/
function edit($content = null)
{
$cf_id = $_GET['cf_id'] ? (int)$_GET['cf_id'] : (int)$content['cf_id'];
// determine appname
$this->appname = $this->appname ? $this->appname : ($_GET['appname'] ? $_GET['appname'] : ($content['cf_app'] ? $content['cf_app'] : false));
if(!$this->appname)
{
if($cf_id && $this->so)
{
$content = $this->so->read($cf_id);
$this->appname = $content['cf_app'];
}
}
if(!$this->appname)
{
die(lang('Error! No appname found'));
}
$this->use_private = !isset($_GET['use_private']) || (boolean)$_GET['use_private'] || $content['use_private'];
// Read fields, constructor doesn't always know appname
$this->fields = egw_customfields::get($this->appname,true);
// Update based on info returned from template
if (is_array($content))
{
list($action) = @each($content['button']);
switch($action)
{
case 'delete':
$this->so->delete($cf_id);
egw_framework::refresh_opener('Saved', 'admin', $cf_id /* Conflicts with accounts 'delete'*/);
egw_framework::window_close();
break;
case 'save':
case 'apply':
if (!empty($content['cf_values']))
{
$values = array();
foreach(explode("\n",$content['cf_values']) as $line)
{
list($var,$value) = explode('=',trim($line),2);
$var = trim($var);
$values[$var] = empty($value) ? $var : $value;
}
$content['cf_values'] = $values;
}
$update_content = array();
foreach($content as $key => $value)
{
if(substr($key,0,3) == 'cf_')
{
$update_content[substr($key,3)] = $value;
}
}
egw_customfields::update($update_content);
egw_framework::refresh_opener('Saved', 'admin', $cf_id, 'edit');
if ($action != 'save')
{
break;
}
//fall through
case 'cancel':
egw_framework::window_close();
}
}
else
{
$content['use_private'] = !isset($_GET['use_private']) || (boolean)$_GET['use_private'];
}
// do we manage content-types?
$test = new etemplate_new();
if($test->read($this->appname.'.admin.types')) $this->manage_content_types = true;
$this->tmpl = new etemplate_new();
$this->tmpl->read('admin.customfield_edit');
translation::add_app('infolog'); // til we move the translations
$GLOBALS['egw_info']['flags']['app_header'] = $GLOBALS['egw_info']['apps'][$this->appname]['title'].' - '.lang('Custom fields');
$sel_options = array();
$readonlys = array();
//echo 'customfields=<pre style="text-align: left;">'; print_r($this->fields); echo "</pre>\n";
$content['cf_order'] = (count($this->fields)+1) * 10;
$content['use_private'] = $this->use_private;
if($cf_id)
$content['fields'] = array('use_private' => $content['use_private']);
$n = 0;
foreach($this->fields as $name => $data)
{
$content = array_merge($content, $this->so->read($cf_id));
$this->appname = $content['cf_app'];
if($content['cf_private'])
if(!is_array($data))
{
$content['cf_private'] = explode(',',$content['cf_private']);
$data = array();
$data['label'] = $name;
$data['order'] = ($n+1) * 10;
}
}
$content['cf_values'] = json_decode($content['cf_values'], true);
if (is_array($content['cf_values']))
{
$values = '';
foreach($content['cf_values'] as $var => $value)
if (is_array($data['values']))
{
$values .= (!empty($values) ? "\n" : '').$var.'='.$value;
$values = '';
foreach($data['values'] as $var => $value)
{
$values .= (!empty($values) ? "\n" : '').$var.'='.$value;
}
$data['values'] = $values;
}
$content['cf_values'] = $values;
$content['fields'][++$n] = (array)$data + array(
'name' => $name
);
$preserv_fields[$n]['old_name'] = $name;
$readonlys['fields']["create$name"] = True;
}
$content['fields'][++$n] = array('name'=>'','order' => 10 * $n); // new line for create
if($this->manage_content_types) $content['fields']['type2'] = 'enable';
// Show sub-type row, and get types
if($this->manage_content_types)
{
if(count($this->content_types) == 0)
{
$this->content_types = config::get_content_types($this->appname);
}
if (count($this->content_types)==0)
{
// if you define your default types of your app with the search_link hook, they are available here, if no types were found
$this->content_types = (array)egw_link::get_registry($this->appname,'default_types');
}
foreach($this->content_types as $type => $entry)
{
$this->types2[$type] = is_array($entry) ? $entry['name'] : $entry;
}
$sel_options['cf_type2'] = $this->types2;
}
else
{
$content['no_types'] = true;
}
$readonlys['fields']["delete[]"] = True;
//echo '<p>uicustomfields.edit(content = <pre style="text-align: left;">'; print_r($content); echo "</pre>\n";
//echo 'readonlys = <pre style="text-align: left;">'; print_r($readonlys); echo "</pre>\n";
$sel_options['type2'] = $this->types2 + array('tmpl' => 'template');
// Include type-specific value help
$content['options'] = lang(self::$type_option_help);
$content['statustext'] = $content['options'][$content['cf_type']];
$content['attributes'] = self::$type_attribute_flags;
// Start disabled, but don't set read-only as that changes the widget to readonly
$this->tmpl->setElementAttribute('cf_len', 'disabled', true);
$this->tmpl->setElementAttribute('cf_rows', 'disabled', true);
foreach(array('cf_len','cf_rows','cf_values') as $field)
// do NOT allow to delete original contact content-type for addressbook,
// as it only creates support problems as users incidently delete it
if ($this->appname == 'addressbook' && $this->content_type == 'n')
{
$this->tmpl->setElementAttribute($field, 'disabled', !self::$type_attribute_flags[$content['cf_type']][$field]);
$readonlys['content_types']['delete'] = true;
}
$this->tmpl->exec('admin.customfields.edit',$content,$sel_options,$readonlys,array(
'cf_id' => $cf_id,
'cf_app' => $this->appname,
'use_private' => $this->use_private,
),2);
}
/**
* Allow extending apps a change to interfere and add content to support
* their custom template. This is called right before etemplate->exec().
*/
protected function app_index(&$content, &$sel_options, &$readonlys)
{
// This is just a stub.
}
/**
* Get actions / context menu for index
*
* Changes here, require to log out, as $content['nm'] get stored in session!
*
* @return array see nextmatch_widget::egw_actions()
*/
protected function get_actions()
{
$actions = array(
'open' => array( // does edit if allowed, otherwise view
'caption' => 'Open',
'default' => true,
'allowOnMultiple' => false,
'url' => 'menuaction=admin.customfields.edit&cf_id=$id&use_private='.$this->use_private,
'popup' => '500x380',
'group' => $group=1,
'disableClass' => 'th',
),
'add' => array(
'caption' => 'Add',
'url' => 'menuaction=admin.customfields.edit&appname='.$this->appname.'&use_private='.$this->use_private,
'popup' => '500x380',
'group' => $group,
),
'delete' => array(
'caption' => 'Delete',
'confirm' => 'Delete this entry',
'confirm_multiple' => 'Delete these entries',
'group' => ++$group,
'disableClass' => 'rowNoDelete',
),
);
return $actions;
'fields' => $preserv_fields,
'appname' => $this->appname,
'use_private' => $content['use_private'],
));
}
function update_fields(&$content)
@ -540,6 +298,7 @@ class customfields
function update(&$content)
{
$this->update_fields($content);
$this->content_types[$this->content_type]['options'] = $content['content_type_options'];
// save changes to repository
$this->save_repository();
@ -582,30 +341,17 @@ class customfields
}
}
/**
* Validate and create a new content type
*
* @param array $content
* @return string|boolean New type ID, or false for error
*/
function create_content_type(&$content)
{
$new_name = trim($content['content_types']['name']);
$new_type = false;
if (empty($new_name))
if (empty($new_name) || isset($this->fields[$new_name]))
{
$this->tmpl->set_validation_error('content_types[name]','You have to enter a name, to create a new type!!!');
$content['error_msg'] .= empty($new_name) ?
lang('You have to enter a name, to create a new type!!!') :
lang("type '%1' already exists !!!",$new_name);
}
else
{
foreach($this->content_types as $letter => $type)
{
if($type['name'] == $new_name)
{
$this->tmpl->set_validation_error('content_types[name]',lang("type '%1' already exists !!!",$new_name));
return false;
}
}
// search free type character
for($i=97;$i<=122;$i++)
{
@ -621,7 +367,6 @@ class customfields
$this->content_types[$new_type] = array('name' => $new_name);
$this->save_repository();
}
return $new_type;
}
/**
@ -663,30 +408,4 @@ class customfields
return config::get_content_types($this->appname);
}
/**
* Get list of customfields for the nextmatch
*/
public function get_rows(&$query, &$rows, &$readonlys)
{
$rows = array();
$query['col_filter']['cf_app'] = $query['appname'];
$total = $this->so->get_rows($query, $rows, $readonlys);
unset($query['col_filter']['cf_app']);
foreach($rows as &$row)
{
$row['cf_values'] = json_decode($row['cf_values'], true);
if (is_array($row['cf_values']))
{
$values = '';
foreach($row['cf_values'] as $var => $value)
{
$values .= (!empty($values) ? "\n" : '').$var.'='.$value;
}
$row['cf_values'] = $values;
}
}
return $total;
}
}

View File

@ -1,6 +1,6 @@
<?php
/**
* EGgroupware admin - Timed Asynchron Services
* eGgroupWare admin - Timed Asynchron Services
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
@ -59,7 +59,7 @@ class uiasyncservice
{
echo '<p><b>'.lang("You have no email address for your user set !!!")."</b></p>\n";
}
elseif (!$async->set_timer($times,'test','admin.uiasyncservice.test',$GLOBALS['egw_info']['user']['account_email']))
elseif (!$async->set_timer($times,'test','admin.uiasyncservice.test',(array)$GLOBALS['egw_info']['user']['account_email']))
{
echo '<p><b>'.lang("Error setting timer, wrong syntax or maybe there's one already running !!!")."</b></p>\n";
}
@ -93,7 +93,11 @@ class uiasyncservice
if (isset($_POST['asyncservice']) && $_POST['asyncservice'] != $GLOBALS['egw_info']['server']['asyncservice'])
{
config::save_value('asyncservice', $GLOBALS['egw_info']['server']['asyncservice']=$_POST['asyncservice'], 'phpgwapi');
$config =& CreateObject('phpgwapi.config','phpgwapi');
$config->read_repository();
$config->value('asyncservice',$GLOBALS['egw_info']['server']['asyncservice']=$_POST['asyncservice']);
$config->save_repository();
unset($config);
}
if (!$async->only_fallback)
{
@ -185,6 +189,7 @@ class uiasyncservice
}
echo '<p><input type="submit" name="update" value="'.lang('Update').'"></p>'."\n";
echo "</form>\n";
}
function test($to)

View File

@ -95,6 +95,9 @@ app.classes.admin = AppJS.extend(
self._hide_navbar.call(self);
}
);
// Register app refresh now that iframe is available
register_app_refresh('admin',jQuery.proxy(this.refresh,this));
}
break;
@ -158,28 +161,6 @@ app.classes.admin = AppJS.extend(
switch(_app)
{
case 'admin':
// if iframe is used --> refresh it
var iframe_node = this.iframe ? this.iframe.getDOMNode() : undefined;
var iframe_url = iframe_node ? iframe_node.contentDocument.location.href : undefined;
if (_id && iframe_url != 'about:blank')
{
var refresh_done = false;
// Try for intelligent et2 refresh inside iframe
if(iframe_node && iframe_node.contentWindow && iframe_node.contentWindow.etemplate2)
{
var templates = iframe_node.contentWindow.etemplate2.getByApplication('admin');
for(var i = 0; i < templates.length; i++)
{
templates[i].refresh(_msg,_app,_id,_type);
refresh_done = true;
}
}
if (!refresh_done) // --> reload iframe
{
this.load(iframe_url);
}
return false; // --> no regular refresh
}
// invalidate client-side account-cache
this.egw.invalidate_account(_id, _type);
// group deleted, added or updated
@ -217,6 +198,73 @@ app.classes.admin = AppJS.extend(
}
},
/**
* Special handling for egw_refresh() in admin, to refresh the iframe when
* the framework detects a simple refresh can be used (same URL).
*
* All parameters ignored.
*
* @param {string} _msg Message to display
* @param {string} _app Application being refreshed, should be 'admin'
* @param {string} _id Unique record ID.
* @param {string} _type Type of refresh. Either 'edit', 'delete',
* 'add' or null
*/
refresh: function(_msg, _app, _id, _type)
{
var refresh_done = false;
// group deleted, added or updated
if (_app === 'admin' && _id < 0)
{
var tree = this.et2.getWidgetById('tree');
switch(_type)
{
case 'delete':
tree.deleteItem('/groups/'+_id, false);
break;
default: // add, update, edit, null
tree.refreshItem('/groups');
break;
}
}
// Try for intelligent et2 refresh inside iframe
var node = _app && _id && this.iframe ? this.iframe.getDOMNode(this.iframe) : null;
if(node && node.contentWindow && node.contentWindow.etemplate2)
{
var templates = node.contentWindow.etemplate2.getByApplication('admin');
for(var i = 0; i < templates.length; i++)
{
templates[i].refresh(_msg,_app,_id,_type);
refresh_done = true;
}
}
// update of account list eg. from addressbook.edit
if(!refresh_done && _app == 'admin' && _id)
{
var templates = etemplate2.getByApplication('admin');
for(var i = 0; i < templates.length; i++)
{
templates[i].refresh(_msg,_app,_id,_type);
refresh_done = true;
}
}
// update iframe
if (!refresh_done && framework)
{
var app = framework.getApplicationByName(_app);
if (app && app.browser && app.browser.currentLocation)
{
this.linkHandler(app.browser.currentLocation);
}
}
},
/**
* Hide navbar for idots template
*
@ -399,37 +447,35 @@ app.classes.admin = AppJS.extend(
// Determine which application we're running as
var app = egw.app_name(); // can be either admin or preferences!
if (app != 'admin') app = 'preferences';
// Get by ID, since this.et2 isn't always the ACL list
var et2 = etemplate2.getById('admin-acl').widgetContainer;
var className = app+'_acl';
var acl_rights = {};
var readonlys = {acl: {}};
// Select options are already here, just pull them and pass along
sel_options = jQuery.extend({}, et2.getArrayMgr('sel_options').data||{}, {
'apps': et2.getArrayMgr('sel_options').getEntry('filter2')
sel_options = jQuery.extend({}, this.et2.getArrayMgr('sel_options').data||{}, {
'apps': this.et2.getArrayMgr('sel_options').getEntry('filter2')
},sel_options);
// Remove 'All applications'
delete sel_options.apps[''];
// Some defaults
if(et2 && et2.getWidgetById('nm'))
if(this.et2 && this.et2.getWidgetById('nm'))
{
// This is which checkboxes are available for each app
var acl_rights = et2.getWidgetById('nm').getArrayMgr('content').getEntry('acl_rights')||{};
var acl_rights = this.et2.getWidgetById('nm').getArrayMgr('content').getEntry('acl_rights')||{};
if(!content.acl_appname)
{
// Pre-set appname to currently selected
content.acl_appname = et2.getWidgetById('filter2').getValue()||"";
content.acl_appname = this.et2.getWidgetById('filter2').getValue()||"";
}
if(!content.acl_account)
{
content.acl_account = et2.getWidgetById('nm').getArrayMgr('content').getEntry('account_id');
content.acl_account = this.et2.getWidgetById('nm').getArrayMgr('content').getEntry('account_id');
}
if(!content.acl_location)
{
content.acl_location = et2.getWidgetById('filter').getValue() == 'run' ? 'run' : null;
content.acl_location = this.et2.getWidgetById('filter').getValue() == 'run' ? 'run' : null;
}
// If no admin rights, change UI to not allow adding access to apps
if(content.acl_location == 'run' && !egw.user('apps')['admin'])
@ -589,9 +635,7 @@ app.classes.admin = AppJS.extend(
{
// Avoid the window / framework / app and just refresh the etemplate
// Framework will try to refresh the opener
// Get by ID, since this.et2 isn't always the ACL list
var et2 = etemplate2.getById('admin-acl').widgetContainer;
et2.getInstanceManager().refresh(_data.msg, this.appname,_data.ids,_data.type);
this.et2.getInstanceManager().refresh(_data.msg, this.appname,_data.ids,_data.type);
},
/**

View File

@ -1,5 +1,3 @@
acl added. admin bg Списъкът за контрол на достъпа е добавен.
acl deleted. admin bg Списъкът за контрол на достъпа е изтрит.
actions admin bg Действия
activate admin bg Активиране
admins admin bg Администратори
@ -23,13 +21,13 @@ description can not exceed 255 characters in length ! admin bg Описание
determines the order the fields are displayed admin bg определя реда за показване на полетата
disable admin bg Забранява
down admin bg надолу
each value is a line like <id>[=<label>] admin bg всяка стойност е ред във формат <id>[=<label>]
email address admin bg E-Mail адрес
enable admin bg позволява
enter your default mail domain ( from: user@domain ) admin bg Въведете e-mail домейн по подразбиране (От: user@domain)
enter your smtp server hostname or ip address admin bg Въведете името или IP адреса на SMTP сървъра
enter your smtp server port admin bg Въведете порта на SMTP сървъра
full name admin bg Име
general admin bg Общи
global categories common bg Глобални категории
icon admin bg Икона
leave without saveing the entry admin bg изход без запис
@ -37,6 +35,7 @@ leaves without saveing admin bg изход без запис
length<br>rows admin bg Дължина<br>Редове
mail settings admin bg Настройки на пощата
manage mapping admin bg Управление на съответствията
max length of the input [, length of the inputfield (optional)] admin bg макс. дължина на входа[, дължнина на вх.поле (опция)]
modified admin bg Редактирано
name must not be empty !!! admin bg Името трябва да бъде попълнено!!!
new name admin bg ново име
@ -47,11 +46,9 @@ one week admin bg една седмица
order admin bg Ред
permission denied admin bg Не е позволено
permission denied !!! admin bg Достъпът отказан !!!
permission denied!!! admin bg Достъпът отказан!!!
permissions admin bg Права
re-enter password admin bg Въведете отново паролата
remove admin bg премахване
rights admin bg Права
saves the changes made and leaves admin bg запазва направените промени и излиза
saves this entry admin bg Запазва записа
start admin bg Старт

View File

@ -129,7 +129,6 @@ delete this user admin ca esborrar aquest usuari
deleted admin ca eliminat
deletes this field admin ca esborra aquest camp
deliver extern admin ca lliura extern
deny access admin ca Denegar accés
deny access to access log admin ca Denegar accés al registre d'accesos
deny access to application registery admin ca Denegar accés al registre d'aplicacions
deny access to applications admin ca Denegar accés a les aplicacions
@ -158,6 +157,8 @@ do you want to delete all global subcategories ? admin ca Voleu esborrar totes l
do you want to move all global subcategories one level down ? admin ca Voleu moure totes les subcategories globals un nivell cap avall?
document root (default) admin ca Arrel del document (predetermidada)
down admin ca avall
each value is a line like <id>[=<label>] admin ca cada valor és una línia com <id>[=<etiqueta>]
each value is a line like id[=label] admin ca cada valor és una línia com id[=etiqueta]
edit account admin ca Editar compte
edit application admin ca Editar aplicació
edit email settings admin ca edita les preferències de correu
@ -223,7 +224,6 @@ forward also to admin ca reenviar també a
forward emails to admin ca reenviar correu a
forward only admin ca reenviar només
full name admin ca Nom complet
general admin ca General
global categories common ca Categories Globals
group ? admin ca grup ?
group has been added common ca Grup afegit
@ -286,6 +286,7 @@ mail settings admin ca Configuracions de Correu
main email-address admin ca Adreça de Correu Principal
main screen message admin ca Missatge de la Pantalla Principal
manager admin ca Gestor
max length of the input [, length of the inputfield (optional)] admin ca longitud màxima de l'entrada [, longitud del camp de text (opcional)]
maximum account id (e.g. 65535 or 1000000) admin ca Màxim id de compte (ex. 65535 o 1000000)
maximum entries in click path history admin ca Nombre màxim d'entrades a l'historial de pulsacions de rutes
members admin ca Membres
@ -348,7 +349,6 @@ remove all users from this group ? admin ca Esborrar tots els usuaris d'aquest g
return to admin mainscreen admin ca tornar a la pantalla principal d'administració
return to view account admin ca Tornar a veure compte
route all mails to admin ca Direcciona tots els Correus a
rows admin ca Files
run asynchronous services admin ca Executar serveis asíncrons
save the category admin ca guardar la categoria
save the category and return back to the list admin ca guardar la categoria i tornar a la llista

View File

@ -23,8 +23,6 @@ account list admin cs Seznam účtů
account permissions admin cs Práva účtu
account preferences admin cs Předvolby účtu
account-id's have to be integers! admin cs ID účtů musí být celá kladná čísla!
acl added. admin cs ACL byly přidány.
acl deleted. admin cs ACL byly smazány.
acl manager admin cs Správce ACL
acl rights common cs ACL práva
action admin cs Akce
@ -160,7 +158,6 @@ delete this user admin cs smazat tohoto uživatele
deleted admin cs smazáno
deletes this field admin cs smaže tuto položku
deliver extern admin cs doručit extern
deny access admin cs Zakázat přístup
deny access to access log admin cs Zablokovat přístup k přístupovému protokolu
deny access to application registery admin cs Zablokovat přístup do registru aplikací
deny access to applications admin cs Zablokovat přístup k aplikacím
@ -189,6 +186,8 @@ do you want to delete all global subcategories ? admin cs Chcete smazat všechny
do you want to move all global subcategories one level down ? admin cs Chcete přesunout všechny globální podkategorie o jednu úroveň níže ?
document root (default) admin cs Kořenový adresář dokumentů (výchozí)
down admin cs dolů
each value is a line like <id>[=<label>] admin cs každá hodnota je řádek ve tvaru <id>[=<label>]
each value is a line like id[=label] admin cs každá hodnota je řádek ve tvaru id[=label]
edit account admin cs Editovat účet
edit application admin cs Editovat aplikaci
edit email settings admin cs editovat nastavení e-mailu
@ -266,7 +265,6 @@ forward also to admin cs přeposlat také na
forward emails to admin cs přeposlat e-maily na
forward only admin cs jen přeposlat
full name admin cs Celé jméno
general admin cs Obecné
global categories common cs Globální kategorie
go directly to admin menu, returning here the next time you click on administration. admin cs Jít přímo do administračního menu; sem se vrátíte jakmile příště kliknete na administraci.
governmental: incl. state or municipal authorities or services admin cs Vládní: včetně státních nebo obecních úřadů a služeb
@ -350,6 +348,7 @@ main email-address admin cs Hlavní e-mailová adresa
main screen message admin cs Zpráva na hlavní obrazovce
manage mapping admin cs Spravovat mapování
manager admin cs Správce
max length of the input [, length of the inputfield (optional)] admin cs maximální délka vstupu (volitelné)
maximum account id (e.g. 65535 or 1000000) admin cs Maximální id účtu (např. 65535 nebo 1000000)
maximum entries in click path history admin cs Maximální počet záznamů v historii kliknutí
members admin cs Členové
@ -402,7 +401,6 @@ percent of users that logged out admin cs Procento odhlášených uživatelů
percent this user has logged out admin cs Procento odhlášení tohoto uživatele
permission denied admin cs Přístup zamítnut
permission denied !!! admin cs Přístup zamítnut !!!
permission denied!!! admin cs Přístup zamítnut!!!
permissions admin cs Oprávnění
permissions this group has admin cs Oprávnění této skupiny
personal: eg. within a family admin cs Osobní: např. v rámci rodiny
@ -431,9 +429,7 @@ remove all users from this group ? admin cs Odstranit všechny uživatele z tét
requested admin cs Požadovaný
return to admin mainscreen admin cs návrat na hlavní stránku administrace
return to view account admin cs Návrat na zobrazení účtu
rights admin cs Práva
route all mails to admin cs Směrovat všechny zprávy na
rows admin cs Ŕádky
rpm or debian package admin cs RPM nebo balíček Debianu
run asynchronous services admin cs Spustit asynchronní služby
save the category admin cs uložit katergorii

View File

@ -133,6 +133,7 @@ do you also want to delete all global subcategories ? admin da Vil du også slet
do you want to delete all global subcategories ? admin da Vil du slette alle globale underkategorier?
do you want to move all global subcategories one level down ? admin da Vil du flytte alle globale underkategorier et tak ned?
down admin da ned
each value is a line like <id>[=<label>] admin da hver værdi er en linie som <id>[=<label>]
edit account admin da Redigér konto
edit application admin da Redigér applikation
edit email settings admin da redigere e-mail indstillingerne
@ -191,7 +192,6 @@ force selectbox admin da Tving Selectboks
forward also to admin da videresend også til
forward only admin da videresend kun
full name admin da Fulde Navn
general admin da Generelt
global categories common da Globale Kategorier
group ? admin da gruppe?
group has been added common da Gruppen er tilføjet
@ -250,6 +250,7 @@ loginid admin da LoginID
mail settings admin da Post indstillinger
main screen message admin da Startside besked
manager admin da Håndtering
max length of the input [, length of the inputfield (optional)] admin da maks længde af inputtet [længde af input feltet (valg frit)]
maximum account id (e.g. 65535 or 1000000) admin da Maksimum konto id (f.eks. 65535 eller 10000000)
maximum entries in click path history admin da Maksimum antal i klik sti historie
message has been updated admin da beskeden er opdateret
@ -302,7 +303,6 @@ remove all users from this group admin da Fjern alle brugere fra denne gruppe
remove all users from this group ? admin da Fjern alle brugere fra denne gruppe?
return to admin mainscreen admin da gå tilbage til admin startside
return to view account admin da Tilbage til konto visning
rows admin da Rækker
save the category admin da gem kategorien
save the category and return back to the list admin da gem kategorien og vend tilbage til listen
saves the changes made and leaves admin da gem ændringerne og afslut

View File

@ -67,7 +67,6 @@ add new application admin de Neue Anwendung hinzufügen
add peer server admin de Server zu Serververbund hinzufügen
add sub-category admin de Unterkategorie hinzufügen
add user admin de Neuen Benutzer erstellen
add user or group admin de Benutzer oder Gruppen eingeben
admin email admin de E-Mail-Administration
admin email addresses (comma-separated) to be notified about the blocking (empty for no notify) admin de E-Mail-Adressen der Administratoren (mit Komma getrennt) die über eine Sperre benachrichtigt werden sollen ('leer' für keine Benachrichtigung)
admin name admin de Name des Administrators
@ -116,12 +115,11 @@ attribute accountstatus explained admin de Dies betrifft das Attribut <b>-accoun
attribute mail explained admin de Dies betrifft das Attribut <b><i>-mail-</i></b> aus dem CORE Schema. Dieses Attribut darf nicht leer sein und wird gleichzeitig als E-Mail-Adresse innerhalb eGW verwendet.
attribute mailalternateaddress explained admin de Dies betrifft das Attribut <b>-mailAlternateAddress-</b> aus dem QMAIL Schema. Das experimentelle Schema verwendet dies auch als Alias für mailLocalAddress.
attribute mailforwardingaddress explained admin de Dies betrifft das Attribut <b>-mailForwardingAddress-</b> aus dem QMAIL Schema. Darf nicht leer sein. Der Begriff mailRoutingAddress wurde hierfür früher als Alias verwendet.
attributes admin de Einstellungen
authentication / accounts admin de Benutzerauthentifizierung / Benutzerkonten
auto create account records for authenticated users admin de Automatisch Benutzerkonten für authentifizierte Benutzer anlegen
available placeholders admin de Verfügbare Platzhalter
back to the list admin de zurück zur Liste
backup directory %1 mounted as %2 admin de Datensicherungsverzeichnis %1 unter %2 gemountet
backup directory %1 mounted as %2 admin de Datensicherungsverzeichnis %1 unter %2 gemounted
bi-dir passthrough admin de Weiterleitung in beide Richtungen
bi-directional admin de beide Richtungen
bottom admin de unten
@ -232,7 +230,6 @@ disable minifying of javascript and css files admin de Komprimierung von Javascr
disable wysiwyg-editor admin de WYSIWYG Editor (formatierter Text) abschalten
disabled (not recomended) admin de abgeschaltet (nicht empfohlen)
display admin de anzeigen
displayed length of input field (set rows=1 to limit length) admin de angezeigte Länge des Eingabefelds (setze Zeilen=1 um die Eingabe zu beschränken)
do not delete the category and return back to the list admin de Kategorie NICHT löschen und zurück zur Liste gehen
do you also want to delete all global subcategories ? admin de Wollen Sie auch alle globalen Unterkategorien löschen?
do you want to delete all global subcategories ? admin de Möchten Sie alle globale Unterkategorien löschen?
@ -240,8 +237,8 @@ do you want to move all global subcategories one level down ? admin de Wollen Si
document root (default) admin de Wurzelverzeichnis des Webservers (Vorgabe)
down admin de unten
download csv admin de CSV herunterladen
each value is a line like id[=label], or use @path to read options from a file in egroupware directory admin de jeder Wert ist eine Zeile im Format Wert[=Anzeige], oder benutzen Sie @Pfad um die Optionen aus einer Datei aus dem EGroupware Verzeichnis zu lesen
each value is a line like label=[javascript] admin de jeder Wert ist eine Zeile im Format Anzeige[=Javascript]
each value is a line like <id>[=<label>] admin de jeder Wert ist ein Zeile <id>[=<label>]
each value is a line like id[=label] admin de jeder Wert ist eine Zeile id[=label]
edit account admin de Benutzerkonto bearbeiten
edit application admin de Anwendung bearbeiten
edit email settings admin de E-Mail-Einstellungen bearbeiten
@ -405,7 +402,6 @@ leave the group untouched and return back to the list admin de Gruppe unverände
leave unchanged admin de unverändert lassen
leave without saveing the entry admin de beendet ohne den Eintrag zu speichern
leaves without saveing admin de beendet ohne zu speichern
length admin de Länge
length<br>rows admin de Länge<br>Zeilen
limit global category to members of a certain group admin de Beschränkt die global Kategorie auf der Mitglieder einer bestimmten Gruppe
limit to members of admin de beschränken auf Mitglieder von
@ -429,6 +425,7 @@ main email-address admin de Stamm-E-Mail-Adresse
main screen message admin de Nachricht der Startseite
manage mapping admin de Feldzuordnung verwalten
manager admin de Manager
max length of the input [, length of the inputfield (optional)] admin de maximale Länge für die Ausgabe [. Länge des Feldes (optional)]
maximum account id (e.g. 65535 or 1000000) admin de Maximum für Benutzer-ID (z.B. 65535 oder 1000000)
maximum entries in click path history admin de Max. Anzahl Einträge in der Click-Path-Historie
members admin de Mitglieder
@ -533,7 +530,6 @@ return to admin mainscreen admin de zum Administrationsmenü zurückkehren
return to view account admin de Zurück zum Anzeigen des Benutzerkontos
rights admin de Rechte
route all mails to admin de Alle E-Mails senden an
rows admin de Zeilen
rpm or debian package admin de RPM oder Debian Pakete
run admin de Ausführen
run asynchronous services admin de Asynchrone Dienste ausführen
@ -640,7 +636,6 @@ two months admin de zwei Monate
two weeks admin de zwei Wochen
type '%1' already exists !!! admin de Typ '%1' existiert bereits !!!
type of customfield admin de Typ des Benutzerdefinierten Feldes
type of field admin de Feldtyp
under windows you need to install the asyncservice %1manually%2 or use the fallback mode. fallback means the jobs get only checked after each page-view !!! admin de Unter Windows muß der asynchrone Service %1von Hand%2 installiert werden oder es wird nur die Ausweichmöglichkeit benutzt. Bei der Ausweichmöglichkeit werden die Jobs nur nach jedem Seitenaufbau überprüft!!!
unknown account: %1 !!! admin de Unbekanntes Benutzerkonto: %1 !!!
unknown command %1! admin de Unbekannter Befehl %1 !

View File

@ -152,6 +152,8 @@ do you want to delete all global subcategories ? admin el Θέλεις να δι
do you want to move all global subcategories one level down ? admin el Θέλεις να μετακινήσεις όλες τις γενικές υποκατηγορίες ένα επίπεδο κάτω?
document root (default) admin el Document root
down admin el κάτω
each value is a line like <id>[=<label>] admin el κάθε τιμή είναι μία γραμμή σαν <id>[=<label>]
each value is a line like id[=label] admin el κάθε τιμή είναι μία γραμμή σαν id[=label]
edit account admin el Επεξεργασία λογαριασμού
edit application admin el Επεξεργασία εφαρμογής
edit email settings admin el επεξεργασία ρυθμίσεων email
@ -214,7 +216,6 @@ forward also to admin el προώθηση επίσης στο
forward emails to admin el προώθηση των emails στο
forward only admin el μόνο προώθηση
full name admin el Πλήρες όνομα
general admin el Γενικά
global categories common el Γενικές κατηγορίες
group ? admin el ομαδα ?
group has been added common el Ομάδα προστέθηκε
@ -277,6 +278,7 @@ mail settings admin el Ρυθμίσεις μηνυμάτων
main email-address admin el Κύρια Διεύθυνση Email
main screen message admin el Μήνυμα κύριας οθόνης
manager admin el Διαχειριστής
max length of the input [, length of the inputfield (optional)] admin el μέγιστο μήκος για την εισαγωγή, [μήκος του πεδίου εισαγωγής (κατ'επιλογήν)]
maximum account id (e.g. 65535 or 1000000) admin el Μέγιστος αριθμός id λογαριασμών (π.χ. 65535 ή 1000000)
maximum entries in click path history admin el Μέγιστος αριθμός εισόδων στο click path ιστορικό
message has been updated admin el το μήνυμα έχει ενημερωθεί
@ -336,7 +338,6 @@ remove all users from this group ? admin el Θα διαγράψετε όλους
return to admin mainscreen admin el Επιστροφή στην κύρια οθόνη του admin
return to view account admin el Επιστροφή στην εμφάνηση του λογαριασμού
route all mails to admin el Δρομολογήστε όλα τα Μηνύματα στο
rows admin el Γραμμές
run asynchronous services admin el Τρέξτε Ασύνχρονες υπηρεσίες
save the category admin el σώστε την κατηγορία
save the category and return back to the list admin el σώστε την κατηγορία και επιστρέψτε πίσω στη λίστα

View File

@ -67,7 +67,6 @@ add new application admin en Add new application
add peer server admin en Add Peer Server
add sub-category admin en Add sub category
add user admin en Add user
add user or group admin en Add user or group
admin email admin en Admin email
admin email addresses (comma-separated) to be notified about the blocking (empty for no notify) admin en Admin email addresses, comma-separated, to be notified about the blocked user accounts and IP. Empty = no notification.
admin name admin en Admin name
@ -116,7 +115,6 @@ attribute accountstatus explained admin en This handles the attribute <b><i>-acc
attribute mail explained admin en This handles the attribute <b><i>-mail-</i></b> from the QMAIL schema and should never be empty. It is also the eGW internal email field.
attribute mailalternateaddress explained admin en This handles the attribute <b><i>-mailAlternateAddress-</i></b> from the QMAIL schema and can be handled as virtual maps or aliases.
attribute mailforwardingaddress explained admin en This handles the attribute <b><i>-mailForwardingAddress-</i></b> from QMAIL Schema and must not be empty if assigned.
attributes admin en Attributes
authentication / accounts admin en Authentication | Accounts
auto create account records for authenticated users admin en Auto create account records for authenticated users.
available placeholders admin en Available placeholders
@ -232,7 +230,6 @@ disable minifying of javascript and css files admin en Disable minifying of java
disable wysiwyg-editor admin en Disable WYSIWYG-editor
disabled (not recomended) admin en Disabled (not recommended)
display admin en Display
displayed length of input field (set rows=1 to limit length) admin en displayed length of input field (set rows=1 to limit length)
do not delete the category and return back to the list admin en Do NOT delete the category and return back to the list
do you also want to delete all global subcategories ? admin en Do you also want to delete all global sub categories?
do you want to delete all global subcategories ? admin en Do you want to delete all global sub categories?
@ -240,8 +237,8 @@ do you want to move all global subcategories one level down ? admin en Do you wa
document root (default) admin en Document root (default)
down admin en Down
download csv admin en Download CSV
each value is a line like id[=label], or use @path to read options from a file in egroupware directory admin en each value is a line like id[=label], or use @path to read options from a file in EGroupware directory
each value is a line like label=[javascript] admin en each value is a line like label=[javascript]
each value is a line like <id>[=<label>] admin en Each value is a line like <id>[=<label>]
each value is a line like id[=label] admin en Each value is a line like id[=label]
edit account admin en Edit account
edit application admin en Edit application
edit email settings admin en Edit email settings
@ -405,7 +402,6 @@ leave the group untouched and return back to the list admin en Leave the group u
leave unchanged admin en Leave unchanged
leave without saveing the entry admin en Leave without saving the entry
leaves without saveing admin en Leaves without saving
length admin en Length
length<br>rows admin en Length<br>Rows
limit global category to members of a certain group admin en Limit global category to members of a certain group.
limit to members of admin en Limit to members of
@ -429,6 +425,7 @@ main email-address admin en Main email address
main screen message admin en Main screen message
manage mapping admin en Manage mapping
manager admin en Manager
max length of the input [, length of the inputfield (optional)] admin en Max length of the input [, length of the input field (optional)]
maximum account id (e.g. 65535 or 1000000) admin en Maximum account id, e.g. 65535 or 1000000
maximum entries in click path history admin en Maximum entries in click path history
members admin en Members
@ -533,7 +530,6 @@ return to admin mainscreen admin en Return to admin main screen
return to view account admin en Return to view account
rights admin en Rights
route all mails to admin en Route all Mails to
rows admin en Rows
rpm or debian package admin en RPM or Debian package
run admin en run
run asynchronous services admin en Run Asynchronous services
@ -640,7 +636,6 @@ two months admin en Two months
two weeks admin en Two weeks
type '%1' already exists !!! admin en Type '%1' already exists!
type of customfield admin en Type of custom field
type of field admin en Type of field
under windows you need to install the asyncservice %1manually%2 or use the fallback mode. fallback means the jobs get only checked after each page-view !!! admin en Under windows you need to install the async service %1manually%2 or use the fallback mode. Fallback means the jobs get only checked after each page view!
unknown account: %1 !!! admin en Unknown account: %1 !
unknown command %1! admin en Unknown command %1!

View File

@ -198,7 +198,6 @@ delete this user admin es-es borrar este usuario
deleted admin es-es borradas
deletes this field admin es-es borra este campo
deliver extern admin es-es entrega externa
deny access admin es-es Denegar acceso
deny access to access log admin es-es Denegar acceso al registro de accesos
deny access to application registery admin es-es Denegar acceso al registro de aplicaciones
deny access to applications admin es-es Denegar acceso a aplicaciones
@ -232,6 +231,8 @@ do you want to move all global subcategories one level down ? admin es-es ¿Dese
document root (default) admin es-es Raíz de los documentos (Document root) (predeterminado)
down admin es-es Abajo
download csv admin es-es Descargar CSV
each value is a line like <id>[=<label>] admin es-es cada valor es una línea como <id>[=<etiqueta>]
each value is a line like id[=label] admin es-es cada valor es una línea como id[=label]
edit account admin es-es Editar cuenta
edit application admin es-es Editar aplicación
edit email settings admin es-es editar configuración de correo
@ -320,7 +321,6 @@ forward also to admin es-es reenviar también a
forward emails to admin es-es reenviar correos a
forward only admin es-es reenviar solamente
full name admin es-es Nombre completo
general admin es-es General
global categories common es-es Categorías globales
go directly to admin menu, returning here the next time you click on administration. admin es-es Ir directamente al menú de administración, volviendo aquí la próxima vez que pulse en administración.
governmental: incl. state or municipal authorities or services admin es-es Gubernamental: incluye estado o autoridades municipales o servicios
@ -415,6 +415,7 @@ main email-address admin es-es Dirección de correo principal
main screen message admin es-es Mensaje de la pantalla principal
manage mapping admin es-es Gestión de mapeos
manager admin es-es Administrador
max length of the input [, length of the inputfield (optional)] admin es-es longitud máxima de la entrada [, longitud del campo de entrada (opcional)]
maximum account id (e.g. 65535 or 1000000) admin es-es Id máximo de cuenta (ej. 65535 o 1000000)
maximum entries in click path history admin es-es Número máximo de entradas en la ruta del historial de pulsar con el ratón
members admin es-es Miembros
@ -515,9 +516,7 @@ removing access for groups may cause problems for data in this category. are yo
requested admin es-es Requerido
return to admin mainscreen admin es-es volver a la pantalla principal de administración
return to view account admin es-es Volver a ver cuenta
rights admin es-es Derechos
route all mails to admin es-es dirigir todos los correos a
rows admin es-es Filas
rpm or debian package admin es-es Paquete RPM o Debian
run admin es-es ejecutar
run asynchronous services admin es-es Ejecutar servicios asíncronos

View File

@ -73,7 +73,6 @@ delete this group admin et kustuta see grupp
delete this user admin et kustuta see kasutaja
deleted admin et kustutatud
deletes this field admin et kustutab selle välja
deny access admin et Keela Ligipääs
deny access to access log admin et Keela ligipääs külastus logile
deny access to application registery admin et Keela ligipääs rakenduse registrile
deny access to applications admin et Keela ligipääs rakendustele
@ -92,6 +91,7 @@ do you want to delete all global subcategories ? admin et Kas tahad kustutada k
do you want to move all global subcategories one level down ? admin et Kas tahad liigutada kõik globaalsed alamkategooriad üks level alla ?
document root (default) admin et Dokument root (vaikimisi)
down admin et alla
each value is a line like <id>[=<label>] admin et iga väärtus on rida nagu <id>[=<label>]
edit account admin et Muuda kontot
edit application admin et Muuda rakendust
edit email settings admin et muuda email setinguid
@ -123,7 +123,6 @@ error: %1 not found or other error !!! admin et Viga: %1 ei leitud või muu viga
expires admin et Aegub
field '%1' already exists !!! admin et Väli '%1' eksisteerib juba !!!
full name admin et Täis nimi
general admin et Üldine
global categories common et Globaalsed Kategooriad
group ? admin et grupp ?
group list admin et Gruppi nimekiri
@ -172,7 +171,6 @@ password for smtp-authentication admin et Parool SMTP-audentimiseks
path information admin et Teekonna informatsioon
permission denied admin et Õigused puuduvad
permission denied !!! admin et Õigused puuduvad !!!
permission denied!!! admin et Ligipääs keelatud !!!
permissions admin et Õigused
phpinfo admin et PHP informatsioon
please enter a name admin et Palun sisesta nimi

View File

@ -162,7 +162,6 @@ file space must be an integer admin eu Fitxategiaren espazioa oso bat izan behar
for the times above admin eu goran aipatutako orduetan
force selectbox admin eu Aukeraketa koadroa indartu
full name admin eu Izen osoa
general admin eu Orokorra
global categories common eu Kategoria orokorrak
group ? admin eu taldea?
group has been added common eu Taldea gehitua izan da
@ -247,7 +246,6 @@ percent of users that logged out admin eu Saioa utzi duten erabiltzaile portzent
percent this user has logged out admin eu Erabiltzaile honek saioa utzi duen portzentajea
permission denied admin eu Baimena ukatuta
permission denied !!! admin eu Baimena ukatua!
permission denied!!! admin eu Baimena ukatuta!
permissions admin eu Baimenak
permissions this group has admin eu Talde honek dituen baimenak
phpinfo admin eu PHP informazioa

View File

@ -120,7 +120,6 @@ delete this user admin fa حذف این کاربر
deleted admin fa حذف شد
deletes this field admin fa حذف این فیلد
deliver extern admin fa حمل خارجی
deny access admin fa دسترسی ممنوع
deny access to access log admin fa ممنوعیت دسترسی به ثبت دسترسی
deny access to application registery admin fa ممنوعیت دسترسی به ثبات کاربرد
deny access to applications admin fa ممنوعیت دسترسی به کاربردها
@ -148,6 +147,8 @@ do you also want to delete all global subcategories ? admin fa آیا میخوا
do you want to delete all global subcategories ? admin fa آیا میخواهید همه زیر دسته های عمومی را هم حذف کنید؟
do you want to move all global subcategories one level down ? admin fa آیا میخواهید که همه زیر دسته های عمومی را تا یک سطح پایینترحذف کنید؟
down admin fa پائین
each value is a line like <id>[=<label>] admin fa هر مقدار در یک خط مثل [<id>[=<label>
each value is a line like id[=label] admin fa هر مقدار در یک خط مثل [id[=label
edit account admin fa ویراستن حساب
edit application admin fa ویراستن کاربرد
edit email settings admin fa ویراستن تنظیمات رایانامه
@ -205,7 +206,6 @@ forward also to admin fa پیش سو به
forward emails to admin fa پیش سوی رایانامه به
forward only admin fa فقط پیش سو
full name admin fa نام کامل
general admin fa عمومی
global categories common fa دسته های عمومی
group ? admin fa گروه؟
group has been added common fa گروه اضافه شد
@ -266,6 +266,7 @@ mail settings admin fa تنظیمات رایانامه
main email-address admin fa نشانی رایانامه اصلی
main screen message admin fa پیام صفحه اصلی
manager admin fa مدیر
max length of the input [, length of the inputfield (optional)] admin fa حداکثر اندازه ورودی [طول فیلد ورودی] (دلخواه)
maximum account id (e.g. 65535 or 1000000) admin fa حداکثر شناسه حساب (مثلا:65535 یا 1000000)
maximum entries in click path history admin fa حداکثر ورودیها در مسیر تاریخچه
members admin fa اعضا
@ -303,7 +304,6 @@ percent of users that logged out admin fa درصد کاربرانی که خار
percent this user has logged out admin fa درصدی که این کاربر خارج شده
permission denied admin fa دسترسی ممنوع
permission denied !!! admin fa دسترسی غیر ممکن!!!
permission denied!!! admin fa دسترسی ممنوع!!!
permissions admin fa مجورها
permissions this group has admin fa مجوزهایی که این گروه دارد
phpinfo admin fa اطلاعات PHP
@ -324,7 +324,6 @@ remove all users from this group ? admin fa همه کاربران از این گ
return to admin mainscreen admin fa بازگشت به صفحه اصلی مدیر
return to view account admin fa بازگشت برای دیدن حساب
route all mails to admin fa همه رایانامه ها را مسیر دهی کن به
rows admin fa سطور
run asynchronous services admin fa اجرای خدمات ناهماهنگ
save the category admin fa ذخیره دسته
save the category and return back to the list admin fa ذخیره دسته و بازگشت به فهرست

View File

@ -28,8 +28,6 @@ account list admin fi Käyttäjätilit
account permissions admin fi Käyttäjätilien oikeudet
account preferences admin fi Käyttäjätilien asetukset
account-id's have to be integers! admin fi Käyttäjätilien ID täytyy olla kokonaisluku!
acl added. admin fi Käyttöoikeus lisätty.
acl deleted. admin fi Käyttöoikeus poistettu.
acl manager admin fi ACL -hallinta
acl rights common fi ACL -oikeudet
action admin fi Toimenpide
@ -167,7 +165,6 @@ delete this user admin fi Poista tämä käyttäjä
deleted admin fi Poistettu
deletes this field admin fi Poista tämä kenttä
deliver extern admin fi Deliver extern
deny access admin fi Estä käyttöoikeus
deny access to access log admin fi Estä pääsy käyttölokiin
deny access to application registery admin fi Estä pääsy sovellusrekisteriin
deny access to applications admin fi Estä pääsy sovelluksiin
@ -199,6 +196,8 @@ do you want to move all global subcategories one level down ? admin fi Haluatko
document root (default) admin fi Tiedostojen juurihakemisto (oletus)
down admin fi Alas
download csv admin fi Lataa CSV
each value is a line like <id>[=<label>] admin fi Jokainen arvo on rivillä kuten <id>[=<label>]
each value is a line like id[=label] admin fi Jokainen arvo on rivillä kuten id[=label]
edit account admin fi Muokkaa käyttäjätiliä
edit application admin fi Muokkaa sovellusta
edit email settings admin fi Muokkaa sähköpostin asetuksia
@ -282,7 +281,6 @@ forward also to admin fi Välitä eteenpäin myös
forward emails to admin fi Eteenpäin välitetyt sähköpostit
forward only admin fi Välitä vain eteenpäin
full name admin fi Koko nimi
general admin fi Yleinen
global categories common fi Yleiset kategoriat
governmental: incl. state or municipal authorities or services admin fi Hallituksellinen: Sisältää osavaltioiden ja paikallishallinnot ja palvelut
grant admin fi Myönnä
@ -370,6 +368,7 @@ main email-address admin fi Pääsähköpostiosoite
main screen message admin fi Päänäytön viesti
manage mapping admin fi Valitse kentät
manager admin fi Hallinnoija
max length of the input [, length of the inputfield (optional)] admin fi Max. sisällön pituus [,sisältökenttä pituus (valinnainen)]
maximum account id (e.g. 65535 or 1000000) admin fi Suurin tunnus-id (esim. 65535 tai 1000000)
maximum entries in click path history admin fi Navigointihistorian maksimikoko
members admin fi Jäsenet
@ -431,7 +430,6 @@ percent of users that logged out admin fi Uloskirjautuneiden käyttäjien osuus
percent this user has logged out admin fi Tämä käyttäjä on lopettanut istunnon
permission denied admin fi Pääsy estetty
permission denied !!! admin fi Pääsy estetty!
permission denied!!! admin fi Pääsy estetty!
permissions admin fi Oikeudet
permissions this group has admin fi Tämän ryhmän oikeudet
personal: eg. within a family admin fi Kotitaloudet
@ -459,9 +457,7 @@ remove all users from this group ? admin fi Poistetaanko kaikki käyttäjät tä
requested admin fi Vaadittu
return to admin mainscreen admin fi Takaisin hallinnan päänäyttöön
return to view account admin fi Palaa käyttäjätilin tietoihin
rights admin fi ACL -oikeudet
route all mails to admin fi Reititä kaikki viestit
rows admin fi Rivit
rpm or debian package admin fi RPM tai Debian paketti
run asynchronous services admin fi Suorita ajastetut palvelut
save the category admin fi Tallenna kategoria

View File

@ -1,6 +1,5 @@
%1 - %2 of %3 user accounts admin fr %1 - %2 de %3 comptes utilisateurs
%1 - %2 of %3 user groups admin fr %1 - %2 de %3 groupes utilisateurs
%1 access to other data admin fr %1 accès aux données des autres
%1 acl entries deleted. admin fr %1 entrées ACL supprimées.
%1 acl records of not (longer) existing accounts deleted. admin fr %1 droits d'accès de comptes inexistants supprimés.
%1 categories of not (longer) existing accounts deleted. admin fr %1 catégories de comptes inexistants supprimées
@ -115,7 +114,6 @@ attribute accountstatus explained admin fr Ceci modifie l'attribut <b><i>account
attribute mail explained admin fr Ceci modifie l'attribut <b><i>-mail-</b></i> du schéma QMAIL. Cet attribut doit toujours être renseigné, c'est aussi le champ de l'adresse de courriel interne de eGW.
attribute mailalternateaddress explained admin fr Ceci modifie l'attribut <b><i>-mailAlternateAddress-</i></b> (adresse de messagerie alternative) du schéma QMAIL. Cela peut être utilisé comme un alias ou un adressage virtuel.
attribute mailforwardingaddress explained admin fr Ceci modifie l'attribut <b><i>-mailForwardingAddress-</i></b> (adresse de routage de messagerie) du schéma QMAIL. En cas d'utilisation de cette valeur, elle ne peut être vide.
attributes admin fr Attributs
authentication / accounts admin fr Authentification / Comptes
auto create account records for authenticated users admin fr Créer automatiquement les enregistrements de comptes pour les utilisateurs authentifiés
available placeholders admin fr Mots clés disponibles
@ -238,6 +236,8 @@ do you want to move all global subcategories one level down ? admin fr Voulez-vo
document root (default) admin fr Racine des documents (défaut)
down admin fr Bas
download csv admin fr Télécharger en CSV
each value is a line like <id>[=<label>] admin fr Chaque valeur est une ligne comme <id>[=<label>]
each value is a line like id[=label] admin fr Chaque valeur est une ligne comme id[=<label>]
edit account admin fr Modifier le compte
edit application admin fr Modifier l'application
edit email settings admin fr Paramétrage des emails
@ -424,6 +424,7 @@ main email-address admin fr Adresse email principale
main screen message admin fr Message de l'écran principal
manage mapping admin fr Gestion des correspondances
manager admin fr Gestionnaire
max length of the input [, length of the inputfield (optional)] admin fr Longueur maximum de l'entrée [, longueur du champ de saisi (optionnel)]
maximum account id (e.g. 65535 or 1000000) admin fr Numéro de compte maximum (p.e. 65535 ou 1000000)
maximum entries in click path history admin fr Nombre maximal d'entrées dans l'historique des clics sur les liens
members admin fr Membres
@ -527,7 +528,6 @@ return to admin mainscreen admin fr Revenir à l'écran principal d'administrati
return to view account admin fr Revenir à l'affichage du compte
rights admin fr Droits
route all mails to admin fr Livrer tous les emails à
rows admin fr Lignes
rpm or debian package admin fr Paquet RPM ou Debian
run admin fr exécuter
run asynchronous services admin fr Exécuter les Services asynchrones
@ -634,7 +634,6 @@ two months admin fr Deux mois
two weeks admin fr Deux semaines
type '%1' already exists !!! admin fr Le type '%1' existe déjà !
type of customfield admin fr Type de champ personnalisé
type of field admin fr Type de champ
under windows you need to install the asyncservice %1manually%2 or use the fallback mode. fallback means the jobs get only checked after each page-view !!! admin fr Sous windows vous devez installer les services asynchrones %1manuellement%2 ou utiliser le mode "fallback". "Fallback" veut dire que les travaux ne sont vérifiés qu'après chaque affichage de page !!!
unknown account: %1 !!! admin fr Compte inconnu: %1 !
unknown command %1! admin fr Commande inconnue %1 !

View File

@ -114,7 +114,6 @@ delete this user admin hr obriši ovog korisnika
deleted admin hr Obrisano
deletes this field admin hr obriši ova polja
deliver extern admin hr deliver extern
deny access admin hr Deny Access
deny access to access log admin hr Uskrati pristup evidenciji pristupa
deny access to application registery admin hr Uskrati pristup registru aplikacija
deny access to applications admin hr Uskrati pristup aplikacijama
@ -141,6 +140,7 @@ do you also want to delete all global subcategories ? admin hr Želite li obrisa
do you want to delete all global subcategories ? admin hr Želite li obrisati i sve globalne podkategorije ?
do you want to move all global subcategories one level down ? admin hr Želite li pomaknuti sve globalne podkategorije za jedan nivo prema dolje ?
down admin hr dolje
each value is a line like <id>[=<label>] admin hr each value is a line like <id>[=<label>]
edit account admin hr Uredi korisnički račun
edit application admin hr Uredi aplikaciju
edit email settings admin hr edit email settings
@ -258,6 +258,7 @@ loginid admin hr LoginID
mail settings admin hr Postavke pošte
main screen message admin hr Poruka glavnog ekrana
manager admin hr Upravitelj
max length of the input [, length of the inputfield (optional)] admin hr max length of the input [, length of the inputfield (optional)]
maximum account id (e.g. 65535 or 1000000) admin hr Najveći indetitet korisničkog računa (npr. 65535 ili 1000000)
maximum entries in click path history admin hr Maximum entries in click path history
message has been updated admin hr poruka je obnovljena
@ -315,7 +316,6 @@ remove all users from this group admin hr Ukloni sve korisnike iz ove grupe
remove all users from this group ? admin hr Da uklonim sve korisnike iz ove grupe?
return to admin mainscreen admin hr povratak na glavnu stranicu admin
return to view account admin hr Return to view account
rows admin hr Retci
run asynchronous services admin hr Run Asynchronous services
save the category admin hr spremi kategoriju
save the category and return back to the list admin hr spremi kategoriju i vrati se na listu

View File

@ -17,8 +17,6 @@ account list admin hu Azonosítók listája
account permissions admin hu Azonosító jogosultságai
account preferences admin hu Azonosító beállításai
account-id's have to be integers! admin hu Felhasználói azonosító egész szám kell legyen!
acl added. admin hu hozzáférés engedélyezve
acl deleted. admin hu hozzáférés törölve
acl manager admin hu ACL kezelő
acl rights common hu ACL jogok
action admin hu Művelet
@ -166,6 +164,8 @@ do you want to delete all global subcategories ? admin hu Biztosan törlésre ke
do you want to move all global subcategories one level down ? admin hu Biztosan szeretné egy szinttel lejjebb vinni az összes globális alkategóriát?
document root (default) admin hu Dokumentum főkönyvtár (alapértelmezett)
down admin hu Le
each value is a line like <id>[=<label>] admin hu minden érték egy sor, ehhez hasonlóan: <id>[=<címke>]
each value is a line like id[=label] admin hu minden érték egy sor, ehhez hasonlóan: id[=címke]
edit account admin hu Azonosító szerkesztése
edit application admin hu Alkalmazás módosítása
edit email settings admin hu email beállítások szerkesztése
@ -233,7 +233,6 @@ forward also to admin hu továbbítsd ide is
forward emails to admin hu email továbbítása ide
forward only admin hu csak továbbküldés
full name admin hu Teljes Neve
general admin hu Általános
global categories common hu Globális kategóriák
group ? admin hu csoport?
group has been added common hu A csoport hozzáadása megtörtént
@ -296,6 +295,7 @@ mail settings admin hu eMail beállítások
main email-address admin hu Fő emailcím
main screen message admin hu Főképernyőn megjelenő szöveg
manager admin hu Manager
max length of the input [, length of the inputfield (optional)] admin hu a beviteli mező maximális hossza (opcionális)
maximum account id (e.g. 65535 or 1000000) admin hu Legnagyobb felhasználói azonosító (pl. 65535 vagy 1000000)
maximum entries in click path history admin hu Útvonal látogatottság bejegyzések maximális száma
members admin hu Résztvevők
@ -336,7 +336,6 @@ percent of users that logged out admin hu Rendesen kijelentkezett felhasználók
percent this user has logged out admin hu Jelenlegi felhasználó rendes kijelentkezése %-ban
permission denied admin hu Hozzáférés megtagadva
permission denied !!! admin hu Hozzáférés megtagadva!!!
permission denied!!! admin hu Hozzáférés megtagadva!!!
permissions admin hu Jogok
permissions this group has admin hu A csoport jogosultságai
phpinfo admin hu PHP információk
@ -358,9 +357,7 @@ remove all users from this group admin hu Csoport összes felhasználójának t
remove all users from this group ? admin hu Összes felhasználó eltávolítása ebből a csoportból?
return to admin mainscreen admin hu visszatérés az adminisztrációs főképernyőre
return to view account admin hu Visszatérés a hozzáférések megjelenítéséhez
rights admin hu Hozzáférés
route all mails to admin hu Összes email irányítása ide:
rows admin hu Sorok
run asynchronous services admin hu Feladat ütemező futtatása
save the category admin hu Kategória mentése
save the category and return back to the list admin hu Kategória mentése és visszatérés a listához

View File

@ -12,8 +12,6 @@ account has been updated common id Akoun telah dikinikan
account list admin id Daftar Akoun
account permissions admin id Ijin-ijin Akoun
account preferences admin id Kesukaan Akoun
acl added. admin id ACL ditambakan.
acl deleted. admin id ACL dihapus.
acl manager admin id Manajer ACL
acl rights common id Hak-hak ACL
action admin id Tindakan
@ -106,7 +104,6 @@ delete this user admin id hapus pengguna ini
deleted admin id terhapus
deletes this field admin id hapus field ini
deliver extern admin id deliver extern
deny access admin id Deny Access
description can not exceed 255 characters in length ! admin id Panjang uraian tidak boleh melebihi 255 karakter!
determines the order the fields are displayed admin id menentukan urutan field ditampilkan
disable admin id Disable
@ -115,6 +112,7 @@ disabled (not recomended) admin id disabled (not recomended)
display admin id Tampilan
document root (default) admin id Document root (default)
down admin id turun
each value is a line like <id>[=<label>] admin id setiap nilai adalah sebuah baris seperti <id>[=<label>]
edit account admin id Edit akoun
edit application admin id Edit aplikasi
edit email settings admin id edit pengaturan email
@ -145,7 +143,6 @@ false admin id false
file space admin id File space
forward only admin id Hanya Forward
full name admin id Nama Lengkap
general admin id Umum
global categories common id Kategori Global
group ? admin id kelompok?
group has been added common id Kelompok telah dibuat
@ -241,7 +238,6 @@ peer server list admin id Peer server list
peer servers admin id Peer servers
permission denied admin id Ijin ditolak
permission denied !!! admin id Ijin ditolak !!!
permission denied!!! admin id Ijin ditolak!!!
permissions admin id Perijinan
personal: eg. within a family admin id Personal: eg. within a family
php version admin id PHP Version
@ -258,8 +254,6 @@ quota size in mbyte admin id ukuran kuota dalam MByte
re-enter password admin id Masukan-ulang password
remove admin id buang
requested admin id Diminta
rights admin id Hak
rows admin id Rows
save the category admin id simpan kategori ini
saves the changes made and leaves admin id simpan perubahan dan tinggalkan
saves this entry admin id Simpan entri ini

View File

@ -67,7 +67,6 @@ add new application admin it Aggiungi nuova applicazione
add peer server admin it Aggiungi Peer Server
add sub-category admin it Aggiungi sotto-categoria
add user admin it Aggiungi utente
add user or group admin it Aggiungi utente o gruppo
admin email admin it Email Amministratore
admin email addresses (comma-separated) to be notified about the blocking (empty for no notify) admin it Indirizzo e-mail dell'amministratore (separato da virgole) che sarà avvisato del blocco (vuoto per nessun avviso)
admin name admin it Nome Amministratore
@ -116,7 +115,6 @@ attribute accountstatus explained admin it Questo gestisce l'attributo <b><i>-ac
attribute mail explained admin it Questo gestisce l'attributo <b><i>-mail-</i></b> dallo schema QMAIL e non deve mai essere vuoto. Esso è anche il campo interno di email di eGW.
attribute mailalternateaddress explained admin it Questo gestisce l'attributo <b><i>-mailAlternateAddress-</i></b> dallo schema QMAIL e può essere gestito come mappe virtuali o alias.
attribute mailforwardingaddress explained admin it Questo gestisce l'attributo <b><i>-mailForwardingAddress-</i></b> dallo schema QMAIL e non deve essere vuoto se assegnato.
attributes admin it Attributi
authentication / accounts admin it Autenticazione / Account
auto create account records for authenticated users admin it Crea automaticamente gli account per gli utenti autenticati
available placeholders admin it Variabili disponibili
@ -232,7 +230,6 @@ disable minifying of javascript and css files admin it Disabilita la compression
disable wysiwyg-editor admin it disabilita editor WYSIWYG
disabled (not recomended) admin it disabilitato (non consigliato)
display admin it Visualizza
displayed length of input field (set rows=1 to limit length) admin it lunghezza del campo di inserimento (impostare righe=1 per limitare la lunghezza)
do not delete the category and return back to the list admin it NON eliminare la categoria e torna alla lista
do you also want to delete all global subcategories ? admin it Vuoi eliminare anche tutte le sotto-categorie globali ?
do you want to delete all global subcategories ? admin it Vuoi cancellare tutte le sotto-categorie globali ?
@ -240,8 +237,8 @@ do you want to move all global subcategories one level down ? admin it Vuoi spos
document root (default) admin it Directory di default del webserver
down admin it Giù
download csv admin it Scarica CSV
each value is a line like id[=label], or use @path to read options from a file in egroupware directory admin it ogni valore è una riga come id[=label], oppure usare @percorso per le opzioni di lettura da un file nella directory EPL
each value is a line like label=[javascript] admin it ogni valore è una riga come label=[javascript]
each value is a line like <id>[=<label>] admin it ogni valore è una linea come <id>[=<label>]
each value is a line like id[=label] admin it ogni valore è una linea come id[=label]
edit account admin it Modifica account
edit application admin it Modifica Applicazione
edit email settings admin it Modifica impostazioni email
@ -336,8 +333,6 @@ go directly to admin menu, returning here the next time you click on administrat
governmental: incl. state or municipal authorities or services admin it Governativo: incluse autorità o servizi municipali
grant admin it Consenti
group #%1 must have negative sign! admin it Il gruppo #%1 deve avere segno negativo!
group %1 %2 admin it Gruppo %1 %2
group '%1' deleted. admin it Gruppo '%1' eliminato
group ? admin it Gruppo ?
group csv export admin it Esportazione gruppi CSV
group csv import admin it Esportazione gruppi CSV
@ -405,7 +400,6 @@ leave the group untouched and return back to the list admin it Lascia i gruppi i
leave unchanged admin it Lascia inalterato
leave without saveing the entry admin it Esci senza salvare la voce
leaves without saveing admin it esce senza salvare
length admin it Lunghezza
length<br>rows admin it Lunghezza<br>Righe
limit global category to members of a certain group admin it Limita la categoria globale ai soli membri di un certo gruppo.
limit to members of admin it Limita ai membri di
@ -429,6 +423,7 @@ main email-address admin it Indirizzo email Principale
main screen message admin it Messaggio nella schermata principale
manage mapping admin it Gestisci la mappatura
manager admin it Manager
max length of the input [, length of the inputfield (optional)] admin it lunghezza massima del input [, length of the inputfield (optional)]
maximum account id (e.g. 65535 or 1000000) admin it ID massimo per l'account (es. 65535 or 100000, etc.)
maximum entries in click path history admin it Voci massime cliccando nella history dei path
members admin it Membri
@ -451,8 +446,7 @@ new password [ leave blank for no change ] admin it Nuova password [ Lascia in b
next run admin it Prossima esecuzione
no algorithms available admin it nessun algoritmo disponibile
no alternate email address admin it nessun indirizzo email alternativo
no default account found! admin it Nessun account predefinito trovato!
no jobs in the database !!! admin it Nessun job nel database!
no jobs in the database !!! admin it Nessun job nel database !!!
no login history exists for this user admin it Non esiste una cronologia di login per questo utente
no matches found admin it Nessuna corrispondenza trovata.
no modes available admin it nessuna modalità disponibile
@ -509,7 +503,6 @@ please enter a name admin it Per favore inserisci un nome
please enter a name for that server ! admin it Per favore inserisci un nome per quel server
please run setup to become current admin it Per favore lancia il setup
please select admin it Per favore selezionare
please submit (or postpone) statistic first admin it Per favore inviare i dati statistici adesso, o rimandare, prima di continuare
postfix with ldap admin it Postfix con LDAP
postpone for admin it Rimanda per
preferences admin it Preferenze
@ -533,7 +526,6 @@ return to admin mainscreen admin it ritorna alla pagina principale di amministra
return to view account admin it Ritorna alla visualizzazone dell'account
rights admin it Diritti
route all mails to admin it Indirizza tutte le mail a
rows admin it Righe
rpm or debian package admin it Pacchetto RPM o Debian
run admin it esegui
run asynchronous services admin it Esegui lo Schedulatore
@ -640,7 +632,6 @@ two months admin it Due mesi
two weeks admin it Due settimane
type '%1' already exists !!! admin it il tipo '%1' esiste già !!!
type of customfield admin it Tipo di campo personalizzato
type of field admin it Tipo di campo
under windows you need to install the asyncservice %1manually%2 or use the fallback mode. fallback means the jobs get only checked after each page-view !!! admin it Sotto windows devi installare lo schedulatore %1manualmente%2 o usare la modalità fallback. Fallback significa che i lavori vengono controllati solo dopo ogni vista pagina !!!
unknown account: %1 !!! admin it Account ignoto: %1 !
unknown command %1! admin it Comando %1 ignoto !
@ -691,8 +682,8 @@ you can not use --dry-run together with --skip-checks! admin it Non è possibile
you can only change the hash, if you set a random password or currently use plaintext passwords! admin it Puoi cambiare solo l'hash, se impostassi una pasword casuale o se usassi attualmente password di testo semplice.
you have entered an invalid expiration date admin it Hai inserito una data di scadenza non valida
you have no email address for your user set !!! admin it Non hai inserito un indirizzo email per il tuo utente!
you have to enter a name, to create a new field!!! admin it Devi inserire un nome, per creare un nuovo campo!
you have to enter a name, to create a new type!!! admin it Devi inserire un nome, per creare un nuovo tipo!
you have to enter a name, to create a new field!!! admin it Devi inserire un nome, per creare un nuovo campo!!!
you have to enter a name, to create a new type!!! admin it Devi inserire un nome, per creare un nuovo tipo!!!
you must add at least 1 permission or group to this account admin it Devi aggiungere almeno 1 permesso o gruppo a questo account
you must enter a group name. admin it Devi inserire un nome di gruppo
you must enter a lastname admin it Devi inserire un cognome

View File

@ -115,7 +115,6 @@ delete this user admin iw מחק משתמש זה
deleted admin iw נמחקו
deletes this field admin iw מוחק את השדה הזה
deliver extern admin iw מסירה חיצונית
deny access admin iw חסום גישה
deny access to access log admin iw מנע גישה ליומן הגישה
deny access to application registery admin iw מנע גישה לרישום היישומים
deny access to applications admin iw מנע גישה ליישומים
@ -257,6 +256,7 @@ loginid admin iw זיהוי כניסה
mail settings admin iw הגדרות דואר
main screen message admin iw מסר של מסך הראשי
manager admin iw מנהל
max length of the input [, length of the inputfield (optional)] admin iw ([אורך הקלט המירבי [, אורך שדה הקלט (אופציונאלי
maximum account id (e.g. 65535 or 1000000) admin iw (זיהוי חשבון מירבי (לדוגמא: 65535 או 10000000
maximum entries in click path history admin iw כמות הרשומות המירבי בהסטוריה של הקלקות
message has been updated admin iw המסר עודכן
@ -313,7 +313,6 @@ remove all users from this group admin iw הסר את כל המשתמשים מק
remove all users from this group ? admin iw ?להסיר את כל המשתמשים מקבוצה זו
return to admin mainscreen admin iw חזרה למסך הראשי של ניהול
return to view account admin iw חזרה לתצוגת חשבון
rows admin iw שורות
run asynchronous services admin iw הרץ שירותים א-סנכרונים
save the category admin iw שמור את הקטגוריה
save the category and return back to the list admin iw שמור את הקטגוריה וחזור לרשימה

View File

@ -54,7 +54,6 @@ delete application admin ja アプリケーション削除
delete category admin ja カテゴリ削除
delete group admin ja グループ削除
delete peer server admin ja 対等サーバ削除
deny access admin ja アクセス不可
deny access to applications admin ja アプリケーションの制限
deny access to current sessions admin ja セッションの制限
deny access to global categories admin ja グローバルカテゴリの制限

View File

@ -110,7 +110,6 @@ delete this group admin ko 그룹 삭제
delete this user admin ko 사용자 삭제
deleted admin ko 삭제됨
deletes this field admin ko 이 필드 삭제
deny access admin ko 접근 금지
deny access to access log admin ko 거부된 접근을 접근 로그로
deny access to application registery admin ko 거부된 접근을 응용프로그램 레지스트리로
deny access to applications admin ko 거부된 접근을 응용프로그램으로
@ -186,7 +185,6 @@ for the times above admin ko 위와 같은 시간
for the times below (empty values count as '*', all empty = every minute) admin ko 이하와 같은 시간 (빈 값은 '*'로 처리되고, 모두 비어있으면 매 분마다입니다)
force selectbox admin ko 강제 선택박스
full name admin ko 이름
general admin ko 일반
global categories common ko 전역 카테고리
group ? admin ko 그룹 ?
group has been added common ko 그룹이 추가되었습니다
@ -294,7 +292,6 @@ remove all users from this group admin ko 이 그룹의 모든 사용자를 삭
remove all users from this group ? admin ko 이 그룹의 모든 사용자를 삭제?
return to admin mainscreen admin ko 관리자 주화면으로 돌아가기
return to view account admin ko 계정 보기로 돌아가기
rows admin ko 줄
run asynchronous services admin ko 비동기 서비스 실행
save the category admin ko 카테고리 저장
save the category and return back to the list admin ko 카테고리를 저장하고 목록으로 돌아가기

View File

@ -23,8 +23,6 @@ account list admin lo ລາຍການບັນຊີ
account permissions admin lo ສິດທິບັນຊີຜູ້ໃຊ້
account preferences admin lo ການຕັ້ງຄ່າບັນຊີ
account-id's have to be integers! admin lo ລະຫັດຂອງບັນຊີຈະຕ້ອງເປັນຕົວເລກຈໍານວນຖ້ວນ!
acl added. admin lo ໄດ້ເພີ່ມ ACL.
acl deleted. admin lo ໄດ້ລຶບ ACL.
acl manager admin lo ຜູ້ຈັດການ ACL
acl rights common lo ສິດທິ ACL
action admin lo ປະຕິບັດ
@ -183,6 +181,8 @@ do you also want to delete all global subcategories ? admin lo ທ່ານຍ
do you want to delete all global subcategories ? admin lo ທ່ານຕ້ອງການທີ່ຈະລຶບໝວດຍ່ອຍທົ່ວໄປທັງໝົດບໍ່?
do you want to move all global subcategories one level down ? admin lo ທ່ານຕ້ອງການຍ້າຍໝວດຍ່ອຍທົ່ວໄປ ທັງໝົດລົງໜຶ່ງລະດັບບໍ່?
document root (default) admin lo ເອກະສານຕົ້ນສະບັບ(ຄ່າເລີ່ມຕົ້ນ)
each value is a line like <id>[=<label>] admin lo ແຕ່ລະລາຄ່າເປັນໜຶ່ງແຖວ <id>[=<label>]
each value is a line like id[=label] admin lo ແຕ່ລະລາຄ່າເປັນໜຶ່ງແຖວ id[=label]
edit account admin lo ແກ້ໄຂບັນຊີ
edit application admin lo ແກ້ໄຂ ແອັບພຼິເຄຊັນ
edit email settings admin lo ແກ້ໄຂການຕັ້ງຄ່າ email
@ -259,7 +259,6 @@ force selectbox admin lo ຕ້ອງເລືອກເອົາ
forward also to admin lo ສົ່ງຕໍ່ໄປຫາ
forward emails to admin lo ສົ່ງເມລໃຫ້ນີ້ໃຫ້ຄົນອື່ນຕໍ່
forward only admin lo ສົ່ງຕໍ່ເທົ່ານັ້ນ
general admin lo ທົ່ວໄປ
global categories common lo ໝວດທົ່ວໄປ
go directly to admin menu, returning here the next time you click on administration. admin lo ໄປທີ່ເມນູຜູ້ຄຸ້ມຄອງລະບົບ, ກັບຄືນມາໜ້ານີ້ຫຼັງຈາກກົດທີ່ ການບໍລິຫານ(administration)
governmental: incl. state or municipal authorities or services admin lo ລັດທະບານ: ລວມມີໜ່ວຍງານຫຼືເທດສະບານຫຼືໜ່ວຍງານບໍລິການ
@ -341,6 +340,7 @@ mail settings admin lo ຕັ້ງຄ່າ mail
main email-address admin lo ທີ່ຢູ່ email ຫຼັກ
main screen message admin lo ຂໍ້ຄວາມໜ້າຈໍຫຼັກ
manager admin lo ຜູ້ຈັດການ
max length of the input [, length of the inputfield (optional)] admin lo ຄວາມຍາວສູງສຸດຂອງການປ້ອນຂໍ້ຄວາມ[, ຄວາມຍາວຂອງພື້ນທີ່ຂໍ້ຄວາມ(ຖ້າມີ)]
maximum account id (e.g. 65535 or 1000000) admin lo ຈໍານວນ ID ບັບຊີສູງສຸດ(ເຊັ່ນ: 65535 ຫຼື 1000000)
maximum entries in click path history admin lo ຄ່າສູງສຸດຂອງປະຫວັດພາດເກັບຟາຍທີ່ໄດ້ກົດ
message has been updated admin lo ຂໍ້ຄວາມໄດ້ຮັບການປັບປຸງແລ້ວ
@ -419,7 +419,6 @@ remove all users from this group ? admin lo ລຶບຜູ້ໃຊ້ງານ
requested admin lo ການຮ້ອງຂໍ
return to admin mainscreen admin lo ກັບຄືນໜ້າຜູ້ເບີ່ງແຍງລະບົບ
return to view account admin lo ກັບຄືນສູ່ໜ້າສະແດງບັນຊີ
rights admin lo ສິດທິ
route all mails to admin lo ເສັ້ນທາງເມລ ທັງໝົດໄປຍັງ
rpm or debian package admin lo RPM ຫຼື Debian package
run asynchronous services admin lo ເປີດບໍລິການ Asynchronous

View File

@ -115,7 +115,6 @@ delete this group admin lv izdzēst šo grupu
delete this user admin lv izdzēst šo lietotāju
deleted admin lv Izdzēsts
deletes this field admin lv dzēš šo lauku
deny access admin lv Liegt pieeju
deny access to access log admin lv Liegt pieeju piekļuves logam
deny access to application registery admin lv Liegt pieeju aplikācijas reģistrēšanai
deny access to applications admin lv Liegt pieeju aplikācijām
@ -142,6 +141,7 @@ do you also want to delete all global subcategories ? admin lv Vai vēlies dzēs
do you want to delete all global subcategories ? admin lv Vai vēlies dzēst visas vispārējas apakšgrupas?
do you want to move all global subcategories one level down ? admin lv Vai vēlies pārvietot visas vispārējas apakšgrupas vienu līmeni zemāk?
down admin lv lejā
each value is a line like <id>[=<label>] admin lv katra vēr'tiba ir līniija kā <id>[=<iezīme>]
edit account admin lv Rediģēt kontu
edit application admin lv Rediģēt aplikāciju
edit email settings admin lv rediģēt e-pasta uzstādījumus
@ -199,7 +199,6 @@ for the times below (empty values count as '*', all empty = every minute) admin
forward also to admin lv pārsūtīt arī
forward only admin lv tikai pārsūtīt
full name admin lv Pilns vārds
general admin lv Vispārējs
global categories common lv Vispārējas (global) kategorijas
group ? admin lv grupa?
group has been added common lv Grupa tika pievienota
@ -257,6 +256,7 @@ loginid admin lv Autorizācijas ID
mail settings admin lv Sūtījumu uzstādījumi
main screen message admin lv Galvenā loga ziņojums
manager admin lv Pārvaldnieks
max length of the input [, length of the inputfield (optional)] admin lv ievades datu maksimālais garums[, ievades lauka garums (pēc izvēles)]
maximum account id (e.g. 65535 or 1000000) admin lv Maksimālais kontu ID (piem.65535 vai 1000000)
members admin lv Locekļi
message has been updated admin lv ziņojums tika atjaunināts
@ -307,7 +307,6 @@ remove all users from this group admin lv Izmest visus lietotājus no šīs grup
remove all users from this group ? admin lv Vai izmest visus lietotājus no šīs grupas?
return to admin mainscreen admin lv Atgriezties uz administratora galveno logu
return to view account admin lv Atgriezties, lai redzētu kontu
rows admin lv Rindas
run asynchronous services admin lv Palaist asinhronos pakalpojumus
save the category admin lv Saglabāt kategoriju
save the category and return back to the list admin lv Saglabāt kategoriju un atgriezties uz sarakstu

View File

@ -12,7 +12,6 @@
(to install new applications use<br><a href="setup/" target="setup">setup</a> [manage applications] !!!) admin nl (Gebruik <a href="setup/" target="setup">Setup</a>[Beheer toepassingen] om nieuwe toepassingen te installeren.)
- type admin nl - type
accesslog and bruteforce defense admin nl Toegangslogboek en bescherming procesvermogen
account admin nl Account
account %1 %2 admin nl Account %1 %2
account '%1' deleted. admin nl Account '%1' verwijderd.
account active admin nl Account actief
@ -24,8 +23,6 @@ account list admin nl Accountlijst
account permissions admin nl Toegangsrechten account
account preferences admin nl Voorkeuren account
account-id's have to be integers! admin nl Account-ids moeten integers zijn!
acl added. admin nl ACL toegevoegd.
acl deleted. admin nl ACL verwijderd.
acl manager admin nl ACL-beheerder
acl rights common nl ACL-rechten
action admin nl Actie
@ -155,7 +152,6 @@ delete this user admin nl deze gebruiker verwijderen
deleted admin nl verwijderd
deletes this field admin nl verwijdert dit veld
deliver extern admin nl extern afleveren
deny access admin nl Toegang weigeren
deny access to access log admin nl Toegang tot toegangslogboek weigeren
deny access to application registery admin nl Toegang tot toepassingsregister weigeren
deny access to applications admin nl Toegang tot toepassingen weigeren
@ -184,6 +180,8 @@ do you want to delete all global subcategories ? admin nl Wilt u alle globale s
do you want to move all global subcategories one level down ? admin nl Wilt u alle globale subcategorieën een niveau naar beneden verplaatsen?
document root (default) admin nl Document root (standaard)
down admin nl omlaag
each value is a line like <id>[=<label>] admin nl iedere waarde is een regel zoals <id>[=<label>]
each value is a line like id[=label] admin nl iedere waarde is een regel zoals id[=label]
edit account admin nl Account bewerken
edit application admin nl Toepassing bewerken
edit email settings admin nl email instellingen bewerken
@ -243,7 +241,6 @@ error saving to db: admin nl Fout bij opslaan in database:
error setting timer, wrong syntax or maybe there's one already running !!! admin nl Fout bij het zetten van de timer. verkeerde syntax of misschien draait er al een timer!
error! no appname found admin nl Fout! geen appname gevonden
error: %1 not found or other error !!! admin nl Fout: %1 niet gevonden of een ander fout!
exists admin nl Bestaat
expires admin nl Verloopt
explanation of ldapman admin nl Deze module is getest voor POSTFIX, LDAP, Courier-IMAP en vereist de schema's CORE en QMAIL (OID7914). Meer details over het gebruik en configureren van dit systeem is te vinden in README.ldapman in de doc map van ADMIN.
failed to change password. admin nl Wachtwoord kan niet worden gewijzigd.
@ -259,7 +256,6 @@ forward also to admin nl ook doorsturen naar
forward emails to admin nl stuurt emails door naar
forward only admin nl alleen doorsturen
full name admin nl Volledige naam
general admin nl Algemeen
global categories common nl Algemene Categorieën
grant admin nl Sta toe
group ? admin nl groep?
@ -330,6 +326,7 @@ main email-address admin nl Hoofd emailadres
main screen message admin nl Boodschap op startpagina
manage mapping admin nl Beheer de mappings
manager admin nl Manager
max length of the input [, length of the inputfield (optional)] admin nl max lengte van de invoer [, lengte van het invoerveld (optioneel)]
maximum account id (e.g. 65535 or 1000000) admin nl Max. account id (bijv. 65535 of 100000)
maximum entries in click path history admin nl Max. aantal records in klikpad-historie
members admin nl Deelnemers
@ -374,7 +371,6 @@ percent of users that logged out admin nl Percentage gebruikers dat uitlogt
percent this user has logged out admin nl Percentage dat deze gebruiker uitgelogd heeft
permission denied admin nl Toestemming geweigerd
permission denied !!! admin nl Toestemming geweigerd !!!
permission denied!!! admin nl Toegang geweigerd!!!
permissions admin nl Toestemmingen
permissions this group has admin nl Toestemmingen van deze groep
phpinfo admin nl PHP informatie
@ -399,9 +395,7 @@ remove all users from this group admin nl Alle gebruikers uit deze groep verwijd
remove all users from this group ? admin nl Alle gebruikers uit deze groep verwijderen?
return to admin mainscreen admin nl terug naar de startpagina van beheer
return to view account admin nl Terug naar accountweergave
rights admin nl Rechten
route all mails to admin nl Routeer alle emails naar
rows admin nl Rijen
run asynchronous services admin nl Asynchrone services uitvoeren
save the category admin nl De categorie opslaan
save the category and return back to the list admin nl De categorie opslaan en teruggaan naar de lijst

View File

@ -118,7 +118,6 @@ delete this user admin no slett denne brukere
deleted admin no slettet
deletes this field admin no sletter dette feltet
deliver extern admin no lever eksternt
deny access admin no Nekte adgang
deny access to access log admin no Nekt tilgang til tilgangslogg
deny access to application registery admin no Nekt tilgang til applikasjonsregister
deny access to applications admin no Nekt tilgang til applikasjoner
@ -146,6 +145,7 @@ do you also want to delete all global subcategories ? admin no Vil du også slet
do you want to delete all global subcategories ? admin no Vil du slette alle globale underkategorier?
do you want to move all global subcategories one level down ? admin no Vil du flytte alle globale underkategorier ett steg ned?
down admin no ned
each value is a line like <id>[=<label>] admin no hver verdi er en linje som <id>[=<label>]
edit account admin no Rediger konto
edit application admin no Rediger applikasjon
edit email settings admin no Rediger e-mail oppsett
@ -207,7 +207,6 @@ force selectbox admin no Tving frem Selectbox
forward also to admin no videresend også til
forward only admin no bare videresend
full name admin no Fullt Navn
general admin no Generell
global categories common no Globale kategorier
group ? admin no gruppe?
group has been added common no Gruppen er lagt til
@ -267,6 +266,7 @@ mail settings admin no Epost innstillinger
main email-address admin no E-mailadresse på forsiden
main screen message admin no Melding på hovedside
manager admin no Manager
max length of the input [, length of the inputfield (optional)] admin no maks. lengde på innslag [,feltlengde (valgfri)]
maximum account id (e.g. 65535 or 1000000) admin no Maksimal kontoID (f.eks. 65535 eller 100000)
members admin no Medlemmer
message has been updated admin no meldingen er oppdatert
@ -304,7 +304,6 @@ percent of users that logged out admin no Prosent av brukere som logget ut
percent this user has logged out admin no Prosent denne brukeren har logget ut
permission denied admin no Ingen tilgang
permission denied !!! admin no Adgang nektet !
permission denied!!! admin no Adgang nektes!
permissions admin no Tillatelser
permissions this group has admin no Tillatelser denne gruppen har
phpinfo admin no PHP informasjon
@ -327,7 +326,6 @@ remove all users from this group ? admin no Fjerne alle brukere fra denne gruppe
return to admin mainscreen admin no returner til admin hovedside
return to view account admin no Returner for å se konto
route all mails to admin no Send alle mail til
rows admin no Rader
run asynchronous services admin no Kjør asonkrone serviser
save the category admin no lagre kategorien
save the category and return back to the list admin no lagre kategorien og returner til listen

View File

@ -24,8 +24,6 @@ account list admin pl Lista kont
account permissions admin pl Prawa do konta
account preferences admin pl Ustawienia konta
account-id's have to be integers! admin pl ID konta musi być liczbą!
acl added. admin pl Dodano ACL.
acl deleted. admin pl Usunięto ACL.
acl manager admin pl Meneder ACL
acl rights common pl Prawa ACL
action admin pl Czynność
@ -161,7 +159,6 @@ delete this user admin pl usuń tego użytkownika
deleted admin pl skasowany
deletes this field admin pl usuwa to pole
deliver extern admin pl dostarczaj gdzie indziej
deny access admin pl Odmów dostępu
deny access to access log admin pl Odmów dostępu do dziennika dostępu
deny access to application registery admin pl Odmów dostępu do rejestru aplikacji
deny access to applications admin pl Odmów dostępu do aplikacji
@ -190,6 +187,8 @@ do you want to delete all global subcategories ? admin pl Czy chcesz usunąć ws
do you want to move all global subcategories one level down ? admin pl Czy przenieść wszystkie podkategorie o jeden poziom w dół?
document root (default) admin pl Katalog główny serwera WWW (domyślnie)
down admin pl w dół
each value is a line like <id>[=<label>] admin pl każda wartość jest linią jak <id>[=<label>]
each value is a line like id[=label] admin pl każda wartość jest linią jak <id>[=label]
edit account admin pl Edytuj konto użytkownika
edit application admin pl Edycja aplikacji
edit email settings admin pl edytuj ustawienia emaila
@ -268,7 +267,6 @@ forward also to admin pl prześlij także do
forward emails to admin pl prześlij maile dalej do
forward only admin pl tylko przesyłaj dalej
full name admin pl Pełna nazwa
general admin pl Główne
global categories common pl Kategorie globalne
go directly to admin menu, returning here the next time you click on administration. admin pl Przy powrocie do storny administracji przejdź bezpośrednio do menu administracyjnego.
governmental: incl. state or municipal authorities or services admin pl Rządowe: instytucje państwowe, lokalne, etc.
@ -352,6 +350,7 @@ main email-address admin pl Główny adres mailowy
main screen message admin pl Wiadomość na stronie gwnej
manage mapping admin pl Zarządzaj mapowaniem
manager admin pl Menedżer
max length of the input [, length of the inputfield (optional)] admin pl maksymalna długość danych [,długość pola (opcjonalnie)]
maximum account id (e.g. 65535 or 1000000) admin pl Maksymalny ID konta (np: 65535 lub 100000)
maximum entries in click path history admin pl Maksymlna ilość zapamiętanych kliknięć
members admin pl Członkowie
@ -404,7 +403,6 @@ percent of users that logged out admin pl Procent wylogowanych użytkowników
percent this user has logged out admin pl Procent wylogowań tego użytkownika
permission denied admin pl Dostęp zabroniony
permission denied !!! admin pl Dostęp wzbroniony !!!
permission denied!!! admin pl Dostęp zabroniony !!!
permissions admin pl Uprawnienia
permissions this group has admin pl Uprawnienia grupy
personal: eg. within a family admin pl Osobiste: np. w rodzinie
@ -433,9 +431,7 @@ remove all users from this group ? admin pl Usuń wszystkich użytkownikw z grup
requested admin pl Żądany
return to admin mainscreen admin pl powrót do głównej strony administracji
return to view account admin pl Wróć do wyświetlania konta
rights admin pl Prawa
route all mails to admin pl Przesyłaj maile do
rows admin pl Wiersze
rpm or debian package admin pl Paczka RPM albo Debian
run asynchronous services admin pl Uruchom usługi asynchroniczne
save the category admin pl zapisz kategorię

View File

@ -22,8 +22,6 @@ account list admin pt-br Lista de contas
account permissions admin pt-br Permissões da conta
account preferences admin pt-br Preferências da conta
account-id's have to be integers! admin pt-br Id da conta deve ser número inteiro!
acl added. admin pt-br ACL adicionada
acl deleted. admin pt-br ACL removida.
acl manager admin pt-br Administração de Regras de Acesso (ACL)
acl rights common pt-br Permissões de Acesso
action admin pt-br Ação
@ -152,7 +150,6 @@ delete this user admin pt-br remover este usuário
deleted admin pt-br removido
deletes this field admin pt-br Remover este campo
deliver extern admin pt-br entrega externa
deny access admin pt-br Negar acesso
deny access to access log admin pt-br Negar acesso ao registro de acessos
deny access to application registery admin pt-br Negar acesso ao registro de aplicativos
deny access to applications admin pt-br Negar acesso aos aplicativos
@ -181,6 +178,8 @@ do you want to delete all global subcategories ? admin pt-br Deseja remover toda
do you want to move all global subcategories one level down ? admin pt-br Deseja mover todas as subcategorias globais para um nível abaixo?
document root (default) admin pt-br Pasta raiz (padrão)
down admin pt-br baixo
each value is a line like <id>[=<label>] admin pt-br cada valor é uma linha como <id>[=<label>]
each value is a line like id[=label] admin pt-br cada valor é uma linha como id[=label]
edit account admin pt-br Editar conta
edit application admin pt-br Editar Aplicativo
edit email settings admin pt-br Editar configurações de e-mail
@ -240,7 +239,6 @@ error saving to db: admin pt-br Erro salvando no banco de dados:
error setting timer, wrong syntax or maybe there's one already running !!! admin pt-br Erro configurando timer, sintaxe errada ou talvez já exista um sendo executado !!!
error! no appname found admin pt-br Erro: Nome de aplicativo não encontrado
error: %1 not found or other error !!! admin pt-br Erro: %1 não encrontrado ou outro erro não definido !!!
exists admin pt-br Existe
expires admin pt-br Expira
explanation of ldapman admin pt-br Até o momento, este módulo foi testado para POSTFIX, LDAP, Courier-IMAP e precisa dos esquemas CORE e QMAIL (OID7914). Mais detalhes, sobre como usar e configurar este sistema, pode ser encontrato no arquivo README.ldapman na pasta doc de ADMIN.
failed to change password. admin pt-br Erro ao moudar a senha.
@ -256,7 +254,6 @@ forward also to admin pt-br encaminhar também para
forward emails to admin pt-br encaminhar e-mails para
forward only admin pt-br apenas encaminhar
full name admin pt-br Nome Completo
general admin pt-br Geral
global categories common pt-br Categorias globais
grant admin pt-br Conceder
group ? admin pt-br grupo?
@ -327,6 +324,7 @@ main email-address admin pt-br E-Mail principal
main screen message admin pt-br Mensagem da tela principal
manage mapping admin pt-br Gerenciar mapeamento
manager admin pt-br Gerenciador
max length of the input [, length of the inputfield (optional)] admin pt-br tamanho máximo da entrada [, tamanho do campo de entrada (opcional)]
maximum account id (e.g. 65535 or 1000000) admin pt-br id máximo para contas (Exemplo: 65535 ou 1000000)
maximum entries in click path history admin pt-br Máximo de entradas no histórico de caminho de cliques
members admin pt-br Membros
@ -369,7 +367,6 @@ percent of users that logged out admin pt-br Percentual de usuários que descone
percent this user has logged out admin pt-br Percentagem de vezes que este usuário desconectou
permission denied admin pt-br Permissão negada
permission denied !!! admin pt-br Permissão negada !!!
permission denied!!! admin pt-br Permissão negada !!
permissions admin pt-br Permissões
permissions this group has admin pt-br Permissões do grupo
phpinfo admin pt-br Informações do PHP
@ -394,9 +391,7 @@ remove all users from this group admin pt-br Remover todos os usuários deste gr
remove all users from this group ? admin pt-br Remover todos os usuários desse grupo?
return to admin mainscreen admin pt-br retornar à tela principal da Administração
return to view account admin pt-br retornar à visualização da conta
rights admin pt-br Direitos
route all mails to admin pt-br Remeter todos e-mails para
rows admin pt-br Fileiras
run asynchronous services admin pt-br Executar Serviços Assícronos
save the category admin pt-br salvar a categoria
save the category and return back to the list admin pt-br salvar a categoria e retornar à lista
@ -487,7 +482,6 @@ unknown command %1! admin pt-br Comando desconhecido %1!
unknown option %1 admin pt-br Opção desconhecida %1
up admin pt-br para cima
updated admin pt-br atualizado
usage admin pt-br uso
use cookies to pass sessionid admin pt-br Usar cookies para transmitir id de sessão
use pure html compliant code (not fully working yet) admin pt-br Usar código HTML puro (não funciona totalmente ainda)
use theme admin pt-br Usar tema

View File

@ -127,7 +127,6 @@ delete this user admin pt eliminar este utilizador
deleted admin pt eliminado/a
deletes this field admin pt eliminar este campo
deliver extern admin pt Entrega externa
deny access admin pt Negar acesso
deny access to access log admin pt Negar acesso ao registo de acessos
deny access to application registery admin pt Negar acesso ao registo de aplicações
deny access to applications admin pt Negar acesso às aplicações
@ -155,6 +154,8 @@ do you also want to delete all global subcategories ? admin pt Deseja eliminar t
do you want to delete all global subcategories ? admin pt Deseja eliminar todas as subcategorias gerais ?
do you want to move all global subcategories one level down ? admin pt Deseja mover todas as subcategorias gerais para um nível mais abaixo ?
down admin pt baixo
each value is a line like <id>[=<label>] admin pt cada valor é uma linha como <id>[=<etiqueta>]
each value is a line like id[=label] admin pt cada valor é uma linha como <id>[=etiqueta]
edit account admin pt Editar conta
edit application admin pt Editar aplicações
edit email settings admin pt Editar definições do correio electrónico
@ -204,7 +205,6 @@ error canceling timer, maybe there's none set !!! admin pt Erro ao cancelar cron
error setting timer, wrong syntax or maybe there's one already running !!! admin pt Erro ao activar cronómetro: sintaxe incorrecta ou já existe um em execução !!!
error! no appname found admin pt Erro! Nenhum nome de aplicação encontrado
error: %1 not found or other error !!! admin pt Erro: %1 não encontrado ou outro erro !!!
exists admin pt Existe
expires admin pt Expira
explanation of ldapman admin pt Até ao momento, este módulo foi testado para POSTFIX, LDAP, Courier-IMAP e necessita de schemas CORE e QMAIL (OID7914). Para mais informações sobre a utilização e configuração deste sistema, consulte o ficheiro README.Idapman na pasta de documentos de ADMIN.
failed to change password. admin pt Não foi possível alterar a senha.
@ -220,7 +220,6 @@ forward also to admin pt reencaminha também para
forward emails to admin pt reencaminhar mensagens para
forward only admin pt reencaminhar apenas
full name admin pt Nome completo
general admin pt Geral
global categories common pt Categorias gerais
group ? admin pt grupo ?
group has been added common pt O grupo foi adicionado
@ -280,8 +279,8 @@ loginid admin pt ID do utilizador
mail settings admin pt Configurações do correio electrónico
main email-address admin pt Endereço de correio electrónico principal
main screen message admin pt Mensagem da página inicial
manage mapping admin pt Gerenciar mapeamento
manager admin pt Gestor
max length of the input [, length of the inputfield (optional)] admin pt comprimento máximo [, comprimento do campo (opcional)]
maximum account id (e.g. 65535 or 1000000) admin pt ID máximo para contas (Exemplo: 65535 ou 1000000)
maximum entries in click path history admin pt Número máximo de registos ao clicar no histórico
members admin pt Membros
@ -321,7 +320,6 @@ percent of users that logged out admin pt Percentagem de utilizadores que saíra
percent this user has logged out admin pt Percentagem das saídas deste utilizador
permission denied admin pt Permissão negada
permission denied !!! admin pt Permissão negada !!!
permission denied!!! admin pt Permissão negada!!!
permissions admin pt Permissões
permissions this group has admin pt Permissões do grupo
phpinfo admin pt Informações do PHP
@ -344,7 +342,6 @@ remove all users from this group ? admin pt Deseja remover todos os utilizadores
return to admin mainscreen admin pt voltar ao ecrã de administração
return to view account admin pt Voltar à visualização de conta
route all mails to admin pt Encaminhar todas as mensagens para
rows admin pt Linhas
run asynchronous services admin pt Executar serviços assíncronos
save the category admin pt guardar a categoria
save the category and return back to the list admin pt guardar a categoria e voltar à lista

View File

@ -18,7 +18,6 @@
(to install new applications use<br><a href="setup/" target="setup">setup</a> [manage applications] !!!) admin ru Для установки новых приложений используйте<br><a href="setup/" target="setup">Установка</a> [Управление приложениями]!
- type admin ru - тип
accesslog and bruteforce defense admin ru Журнал доступа и защита от взлома подбором
account admin ru Учетная запись
account "%1" has no email address --> not notified! admin ru Учётная запись «%1» не имеет E-mail адреса и поэтому не получает извещений!
account "%1" has no plaintext password! admin ru Учётная запись «%1» не имеет plaintext пароля
account %1 %2 admin ru Учётная запись %1 %2
@ -32,8 +31,6 @@ account list admin ru Список учётных записей
account permissions admin ru Разрешения учётной записи
account preferences admin ru Настройки учётной записи
account-id's have to be integers! admin ru Идентификаторы учётных записей должны быть целыми числами!
acl added. admin ru Права доступа ACL добавлены.
acl deleted. admin ru Права доступа ACL удалены.
acl manager admin ru Менеджер ACL
acl rights common ru Права ACL
action admin ru Действие
@ -186,7 +183,6 @@ delete this user admin ru Удалить этого пользователя
deleted admin ru Удалено
deletes this field admin ru Удалить это поле
deliver extern admin ru Доставка извне
deny access admin ru Отменить доступ
deny access to access log admin ru Закрыть доступ к журналу доступа
deny access to application registery admin ru Закрыть доступ к реестру приложений
deny access to applications admin ru Закрыть доступ к приложениям
@ -219,6 +215,8 @@ do you want to move all global subcategories one level down ? admin ru Вы хо
document root (default) admin ru Корневой каталог документов (по умолчанию)
down admin ru Вниз
download csv admin ru Загрузить CSV
each value is a line like <id>[=<label>] admin ru Каждое значение это строка вида <идентификатор>[=<метка>]
each value is a line like id[=label] admin ru Каждое значение это строка вида <идентификатор>[=<метка>]
edit account admin ru Редактировать учётную запись
edit application admin ru Редактировать приложение
edit email settings admin ru Редактировать настройки e-mail
@ -305,7 +303,6 @@ forward also to admin ru Перенаправить также на
forward emails to admin ru Перенаправить почту на
forward only admin ru Только перенаправить
full name admin ru Полное имя
general admin ru Общие
global categories common ru Общие категории
go directly to admin menu, returning here the next time you click on administration. admin ru Перейти прямо в меню администрирования, возвращаясь сюда при следующем клике на Администратор
governmental: incl. state or municipal authorities or services admin ru Государственные, включая федеральные и местные органы власти или службы
@ -398,6 +395,7 @@ main email-address admin ru Основной адрес электронной
main screen message admin ru Сообщение главной страницы
manage mapping admin ru Управлять сопоставлением
manager admin ru Менеджер
max length of the input [, length of the inputfield (optional)] admin ru Максимальная длина строки ввода [, длина поля ввода (необязательно)]
maximum account id (e.g. 65535 or 1000000) admin ru Максимальный идентификатор учётной записи (например: 65535 или 1000000)
maximum entries in click path history admin ru Максимальное количество записей в истории пути кликов
members admin ru Участники
@ -462,7 +460,6 @@ percent of users that logged out admin ru Процент неподключён
percent this user has logged out admin ru Процент этого пользователя, когда он не подключён
permission denied admin ru Доступ запрещён
permission denied !!! admin ru Доступ запрещён!
permission denied!!! admin ru Доступ запрещен!!!
permissions admin ru Разрешения
permissions this group has admin ru Разрешения, которые есть у этой группы
personal: eg. within a family admin ru Личное. Например: для семьи
@ -494,9 +491,7 @@ removing access for groups may cause problems for data in this category. are yo
requested admin ru Запрошен
return to admin mainscreen admin ru Вернуться к главной странице приложения «Администратор»
return to view account admin ru Вернуться к просмотру учётных записей
rights admin ru Права
route all mails to admin ru Направлять всю почту к
rows admin ru Ряды
rpm or debian package admin ru Пакеты RPM или Debian
run asynchronous services admin ru Запустить асинхронные сервисы
save the category admin ru Записать категорию

View File

@ -15,7 +15,6 @@
(to install new applications use<br><a href="setup/" target="setup">setup</a> [manage applications] !!!) admin sk (Pre nainštalovanie nových aplikácií použite<br><a href="setup/" target="setup">Inštalátor</a> [Správa aplikácií] !!!)
- type admin sk - typ
accesslog and bruteforce defense admin sk Prístupové záznamy a Ochrana proti útoku hrubou silou
account admin sk Účet
account "%1" has no email address --> not notified! admin sk Účet "%1" nemá emailovú adresu --> nedostal pripomienku!
account "%1" has no plaintext password! admin sk Účet "%1" nemá heslo v čistom texte!
account %1 %2 admin sk Účet %1 %2
@ -29,8 +28,6 @@ account list admin sk Zoznam účtov
account permissions admin sk Prístupové oprávnenia účtu
account preferences admin sk Predvoľby účtu
account-id's have to be integers! admin sk ID účtov musia byť celé čísla!
acl added. admin sk ACL bolo pridané.
acl deleted. admin sk ACL bolo odstránené.
acl manager admin sk Správa prístupov (ACL)
acl rights common sk Prístupové práva (ACL)
action admin sk Akcia
@ -178,7 +175,6 @@ delete this user admin sk odstráň tohto používateľa
deleted admin sk Odstránené
deletes this field admin sk odstráni túto položku
deliver extern admin sk doručiť extern
deny access admin sk Zakáž prístup
deny access to access log admin sk Zakáž prístup do prístupových záznamov
deny access to application registery admin sk Zakáž prístup do registrov aplikácie
deny access to applications admin sk Zakáž prístup do aplikácií
@ -210,6 +206,8 @@ do you want to move all global subcategories one level down ? admin sk Chcete pr
document root (default) admin sk Koreňový adresár dokumentov
down admin sk Dole
download csv admin sk Stiahnuť CSV
each value is a line like <id>[=<label>] admin sk každá hodnota je riadok ako <id>[=<label>]
each value is a line like id[=label] admin sk každá hodnota je riadok ako <id>[=<label>]
edit account admin sk Upraviť účet
edit application admin sk Upraviť aplikáciu
edit email settings admin sk upraviť nastavenia E-mailu
@ -295,7 +293,6 @@ forward also to admin sk Preposlať ešte (komu)
forward emails to admin sk Preposlať správy (komu)
forward only admin sk Iba preposlať
full name admin sk Plné meno
general admin sk Všeobecné
global categories common sk Globálne kategórie
go directly to admin menu, returning here the next time you click on administration. admin sk Choďte priamo do správcovskej ponuky, vrátite sa sem ďalším kliknutím na Správu.
governmental: incl. state or municipal authorities or services admin sk Úradné: vrátane štátnej správy, samosprávy alebo ich služieb...
@ -385,6 +382,7 @@ main email-address admin sk Hlavná E-mailová adresa
main screen message admin sk Text správy hlavnej stránky
manage mapping admin sk Správa mapovania
manager admin sk Správca
max length of the input [, length of the inputfield (optional)] admin sk Maximálna dĺžka vstupu [, dĺžka vstupného poľa (nepovinné)]
maximum account id (e.g. 65535 or 1000000) admin sk Maximálne ID účtu (napr. 65535 alebo 1000000)
maximum entries in click path history admin sk Maximálny počet záznamov v histórii kliknutí
members admin sk Členovia
@ -448,7 +446,6 @@ percent of users that logged out admin sk Koľko percent používateľov sa odhl
percent this user has logged out admin sk Na koľko percent sa odhlasoval tento používateľ
permission denied admin sk Prístup bol odmietnutý
permission denied !!! admin sk Prístup bol odmietnutý!!!
permission denied!!! admin sk Prístup bol odmietnutý !!!
permissions admin sk Oprávnenia
permissions this group has admin sk Oprávnenia prináležiace tejto skupine
personal: eg. within a family admin sk Osobné: napr. v rámci rodiny
@ -480,9 +477,7 @@ removing access for groups may cause problems for data in this category. are yo
requested admin sk Vyžiadané
return to admin mainscreen admin sk návrat do správcovej hlavnej stránky
return to view account admin sk Návrat na zobrazenie účtov
rights admin sk Oprávnenia
route all mails to admin sk Všetky správy smerovať cez
rows admin sk Riadky
rpm or debian package admin sk RPM alebo balíček Debian
run asynchronous services admin sk Spustiť asynchrónne služby
save the category admin sk Uložiť kategóriu.

View File

@ -15,8 +15,6 @@ account id admin sl ID računa
account list admin sl Seznam računov
account permissions admin sl Dovoljenja računa
account preferences admin sl Nastavitve računa
acl added. admin sl ACL dodan.
acl deleted. admin sl ACL izbrisan.
acl manager admin sl Upravljalec ACL
acl rights common sl Pravice ACL
action admin sl Dejanje
@ -134,7 +132,6 @@ delete this user admin sl Izbriši tega uporabnika
deleted admin sl Zbrisano
deletes this field admin sl Ibriše to polje
deliver extern admin sl Dostavi zunanji aplikaciji
deny access admin sl prepreči dostop
deny access to access log admin sl Prepreči dostop do dnevnika dostopov
deny access to application registery admin sl Prepreči dostop do registra aplikacij
deny access to applications admin sl Prepreči dostop do aplikacij
@ -163,6 +160,8 @@ do you want to delete all global subcategories ? admin sl Ali želite izbrisati
do you want to move all global subcategories one level down ? admin sl Ali želite premakniti vse globalne podkategorije nivo niže?
document root (default) admin sl Koren dokumentov (Document root) (privzeto)
down admin sl Navzdol
each value is a line like <id>[=<label>] admin sl vsaka vrednost je vrstica oblike <id>[=<oznaka>]
each value is a line like id[=label] admin sl Vsaka vrednost je vrstica oblike id[=oznaka]
edit account admin sl Urejanje računa
edit application admin sl Urejanje aplikacije
edit email settings admin sl Urejanje e-poštnih nastavitev
@ -231,7 +230,6 @@ forward also to admin sl Posreduj tudi
forward emails to admin sl Posreduj sporočila
forward only admin sl Samo posreduj
full name admin sl Polno ime
general admin sl Splošno
global categories common sl Globalne kategorije
group ? admin sl Skupina?
group has been added common sl Skupina je bila dodana.
@ -297,6 +295,7 @@ main email-address admin sl Glavni E-naslov
main screen message admin sl Sporočilo osnovnega zaslona
manage mapping admin sl Upravljaj mapiranje
manager admin sl Upravitelj
max length of the input [, length of the inputfield (optional)] admin sl Največja dolžina vnosa [, dolžina vnosnega polja (opcijsko)]
maximum account id (e.g. 65535 or 1000000) admin sl Najvišji ID računa (npr. 65535 ali 1000000)
maximum entries in click path history admin sl Največ vnosov v zgodovino klikanja
members admin sl Člani
@ -359,9 +358,7 @@ remove all users from this group ? admin sl Odstranim vse uporabnike iz te skupi
requested admin sl Zahtevano
return to admin mainscreen admin sl Vrni se na oskrbnikov zaslon
return to view account admin sl Vrni se na pregled računa
rights admin sl Pravice
route all mails to admin sl Preusmeri vso pošto na
rows admin sl Vrstice
run asynchronous services admin sl Poženi asinhrone storitve
save the category admin sl Shrani to kategorijo
save the category and return back to the list admin sl Shrani kategorijo in se vrni na seznam

View File

@ -127,7 +127,6 @@ delete this user admin sv Radera denna användare
deleted admin sv Raderad
deletes this field admin sv Raderar detta fält
deliver extern admin sv Leverera externt
deny access admin sv Neka åtkomst
deny access to access log admin sv Neka åtkomst till accesslogg
deny access to application registery admin sv Neka åtkomst till applikations register
deny access to applications admin sv Neka åtkomst till applikationer
@ -155,6 +154,8 @@ do you also want to delete all global subcategories ? admin sv Vill du samtidigt
do you want to delete all global subcategories ? admin sv Vill du radera alla globala underkategorier?
do you want to move all global subcategories one level down ? admin sv Vill du flytta alla globala underkategorier en nivå nedåt?
down admin sv Ner
each value is a line like <id>[=<label>] admin sv varje värde är en rad liknande <id>[=<label>]
each value is a line like id[=label] admin sv varje värde är en rad liknande <id>[=<label>]
edit account admin sv Ändra konto
edit application admin sv Ändra applikation
edit email settings admin sv Ändra e-postinställningar
@ -221,7 +222,6 @@ forward also to admin sv Vidarebefodra även till
forward emails to admin sv Vidarebefodra e-post till
forward only admin sv Vidarebefodra enbart
full name admin sv Fullständigt namn
general admin sv Allmänt
global categories common sv Globala kategorier
group ? admin sv grupp?
group has been added common sv Grupp har lagts till
@ -284,6 +284,7 @@ mail settings admin sv E-post alternativ
main email-address admin sv Standard e-postadress
main screen message admin sv Meddelande på Startsidan
manager admin sv Hanterare
max length of the input [, length of the inputfield (optional)] admin sv max indata längd[, Indatafälts längd (option)]
maximum account id (e.g. 65535 or 1000000) admin sv Högsta konto ID (ex. 65535 eller 1000000)
maximum entries in click path history admin sv Maximalt antal poster i klick historik
members admin sv Medlemmar
@ -323,7 +324,6 @@ percent of users that logged out admin sv Procent av användare som loggat ut
percent this user has logged out admin sv Procent denna användare loggat ut
permission denied admin sv Åtkomst nekad
permission denied !!! admin sv Åtkomst nekas
permission denied!!! admin sv Åtkomst nekad!
permissions admin sv Behörigheter
permissions this group has admin sv Tillåtna applikationer för gruppen
phpinfo admin sv PHP information
@ -347,7 +347,6 @@ requested admin sv Begärt
return to admin mainscreen admin sv Återgå till Startsida för administration
return to view account admin sv Återgå till att titta på kontot
route all mails to admin sv Länka all e-post till
rows admin sv Rader
run asynchronous services admin sv Kör asynkrona tjänster
save the category admin sv Spara kategorin
save the category and return back to the list admin sv Spara kategorin och återgå till listan

View File

@ -124,6 +124,7 @@ do not delete the category and return back to the list admin uk НЕ видал
do you also want to delete all global subcategories ? admin uk Чи хочете ви також видалити всі глобальні підкатегорії ?
do you want to delete all global subcategories ? admin uk Чи хочете ви видалити всі глобальні підкатегорії ?
do you want to move all global subcategories one level down ? admin uk Чи хочете ви перенести всі глобальні підкатегорії рівнем нижче ?
each value is a line like <id>[=<label>] admin uk Кожне значення є рядком у вигляді <id>[=<label>]
edit account admin uk Редагувати рахунок
edit application admin uk Редагувати приложення
edit global category admin uk Редагувати глобальну категорію
@ -221,6 +222,7 @@ login time admin uk Час входу
loginid admin uk ID входу
main screen message admin uk Повідомлення основного екрану
manager admin uk Керівник
max length of the input [, length of the inputfield (optional)] admin uk максимальна довжина вводу[, видима довжина поля вводу (необов'язково)]
maximum account id (e.g. 65535 or 1000000) admin uk Максимальний ідентифікатор рахунку (тобто 65535 або 1000000)
maximum entries in click path history admin uk Максимальна кількість записів у історії переходів
message has been updated admin uk Повідомлення змінено

View File

@ -129,7 +129,6 @@ delete this user admin zh-tw 刪除這個使用者
deleted admin zh-tw 刪除了
deletes this field admin zh-tw 刪除這個欄位
deliver extern admin zh-tw 外來的傳輸
deny access admin zh-tw 拒絕存取
deny access to access log admin zh-tw 禁止對存取紀錄的存取
deny access to application registery admin zh-tw 禁止存取應用程式註冊設定
deny access to applications admin zh-tw 無法存取應用程式
@ -158,6 +157,8 @@ do you want to delete all global subcategories ? admin zh-tw 您確定要刪除
do you want to move all global subcategories one level down ? admin zh-tw 您要將所有的子類別向下移一個階層?
document root (default) admin zh-tw 文件根目錄(預設)
down admin zh-tw 下
each value is a line like <id>[=<label>] admin zh-tw 每個數值是一行像是 <id>[=<label>] 這樣的文字
each value is a line like id[=label] admin zh-tw 每個數值是一行像是 id[=label] 這樣的文字
edit account admin zh-tw 編輯帳號
edit application admin zh-tw 編輯應用程式
edit email settings admin zh-tw 編輯郵件設定
@ -225,7 +226,6 @@ forward also to admin zh-tw 同時轉寄到
forward emails to admin zh-tw 轉寄信件到
forward only admin zh-tw 轉寄
full name admin zh-tw 全名
general admin zh-tw 一般
global categories common zh-tw 全區分類
group ? admin zh-tw 群組?
group has been added common zh-tw 成功新增群組
@ -289,6 +289,7 @@ main email-address admin zh-tw 主要信箱
main screen message admin zh-tw 主畫面訊息
manage mapping admin zh-tw 管理對應
manager admin zh-tw 管理者
max length of the input [, length of the inputfield (optional)] admin zh-tw 輸入資料長度上限[, 輸入欄位長度(選填)]
maximum account id (e.g. 65535 or 1000000) admin zh-tw 使用者帳號編碼最大值﹝如65535 或 1000000﹞
maximum entries in click path history admin zh-tw 點選紀錄的最大項目數
members admin zh-tw 成員
@ -329,7 +330,6 @@ percent of users that logged out admin zh-tw 使用者登出比例
percent this user has logged out admin zh-tw 這個使用者登出的比例
permission denied admin zh-tw 拒絕存取
permission denied !!! admin zh-tw 沒有權限!
permission denied!!! admin zh-tw 沒有權限!
permissions admin zh-tw 權限
permissions this group has admin zh-tw 群組權限
phpinfo admin zh-tw PHP 資訊
@ -352,7 +352,6 @@ remove all users from this group ? admin zh-tw 移除這個群組的所有使用
return to admin mainscreen admin zh-tw 回到管理者主畫面
return to view account admin zh-tw 回到帳號瀏覽
route all mails to admin zh-tw 轉遞所有信件到
rows admin zh-tw 列
run asynchronous services admin zh-tw 執行非同步服務
save the category admin zh-tw 儲存類別
save the category and return back to the list admin zh-tw 儲存類別並且回到列表

View File

@ -150,7 +150,6 @@ delete this user admin zh 删除该用户
deleted admin zh 已删除
deletes this field admin zh 删除此字段域
deliver extern admin zh 外部传送
deny access admin zh 拒绝访问
deny access to access log admin zh 拒绝对访问日志的访问
deny access to application registery admin zh 拒绝访问应用程序注册
deny access to applications admin zh 拒绝对应用程序的访问
@ -179,6 +178,8 @@ do you want to delete all global subcategories ? admin zh 您是否想要删除
do you want to move all global subcategories one level down ? admin zh 您是否想要把所有的全局子类别向下移动一级?
document root (default) admin zh 文件根目录 (默认)
down admin zh 向下
each value is a line like <id>[=<label>] admin zh 每个数值是一行像是<id>[=<label>]这样的文字
each value is a line like id[=label] admin zh 每个数值是一行像是 id[=label] 这样的文字
edit account admin zh 编辑账户
edit application admin zh 编辑应用程序
edit email settings admin zh 编辑邮件设置
@ -252,7 +253,6 @@ forward also to admin zh 同时转发到
forward emails to admin zh 转发邮件到
forward only admin zh 转发
full name admin zh 姓名
general admin zh 通用
global categories common zh 全局分类
grant admin zh 允许
group ? admin zh 群组?
@ -324,6 +324,7 @@ main email-address admin zh 主要信箱
main screen message admin zh 主窗口信息
manage mapping admin zh 管理匹配
manager admin zh 管理器
max length of the input [, length of the inputfield (optional)] admin zh 输入的最大长度 [, 输入字段的长度 (可选)]
maximum account id (e.g. 65535 or 1000000) admin zh 最大帐户 id 数 (例如65535 或 1000000)
maximum entries in click path history admin zh 在点击路径历史记录中的最大条目数
members admin zh 成员
@ -366,7 +367,6 @@ percent of users that logged out admin zh 已注销用户的百分比
percent this user has logged out admin zh 该用户注销百分比
permission denied admin zh 没有权限
permission denied !!! admin zh 没有权限!
permission denied!!! admin zh 没有权限!
permissions admin zh 权限
permissions this group has admin zh 该组权限
phpinfo admin zh 系统环境信息
@ -393,7 +393,6 @@ requested admin zh 请求
return to admin mainscreen admin zh 返回系统管理主窗口
return to view account admin zh 返回到查看账户
route all mails to admin zh 路由所有信件到
rows admin zh 行
run asynchronous services admin zh 运行异步服务
save the category admin zh 保存类别
save the category and return back to the list admin zh 保存类别并返回列表

View File

@ -1,126 +0,0 @@
<?php
/**
* eGgroupWare admin - remote admin command execution
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package admin
* @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$
*/
/**
* @var array
*/
$GLOBALS['egw_info'] = array(
'flags' => array(
'currentapp' => 'login',
'noheader' => true,
)
);
include('../header.inc.php');
// install an own exception handler to forward exceptions back to the remote side
function remote_exception_handler(Exception $e)
{
$msg = $e->getMessage();
if (is_object($GLOBALS['egw']->translation))
{
$msg = $GLOBALS['egw']->translation->convert($msg,$GLOBALS['egw']->translation->charset(),'utf-8');
}
header('HTTP/1.1 200 '.$msg);
echo $e->getCode().' '.$msg;
$GLOBALS['egw']->common->egw_exit();
}
set_exception_handler('remote_exception_handler');
$GLOBALS['egw']->applications->read_installed_apps(); // set $GLOBALS['egw_info']['apps'] (not set for login)
$instance = isset($_GET['domain']) ? $_GET['domain'] : $_REQUEST['domain']; // use GET before the rest
if (!isset($GLOBALS['egw_domain'][$instance]))
{
$instance = $GLOBALS['egw_info']['server']['default_domain'];
}
$config_passwd = $GLOBALS['egw_domain'][$instance]['config_passwd'];
unset($GLOBALS['egw_domain']);
require_once(EGW_INCLUDE_ROOT.'/admin/inc/class.admin_cmd.inc.php');
// check if uid belongs to an existing command --> return it's status
// this is also a security meassure, as a captured uid+secret can not be used to send new commands
$cmd = admin_cmd::read($_REQUEST['uid']);
if (is_object($cmd))
{
$cmd->check_remote_access($_REQUEST['secret'],$config_passwd);
$success_msg = 'Successful';
// if the comand object has a rerun method, call it
if (method_exists($cmd,'rerun'))
{
$success_msg = $cmd->rerun();
}
exit_with_status($cmd,$success_msg);
}
// check if requests contains a reasonable looking admin command to be queued
if (!$_REQUEST['uid'] || // no uid
!$_REQUEST['type'] || // no command class name
!preg_match('/^[a-z0-9_]+$/i', $_REQUEST['type']) || // type is a (autoloadable) class name, prevent inclusion of arbitrary files
!$_REQUEST['creator_email']) // no creator email
{
header("HTTP/1.1 200 Bad format!");
echo '0 Bad format!';
$GLOBALS['egw']->common->egw_exit();
}
// create command from request data
$data = isset($_POST['uid']) ? $_POST : $_GET;
unset($data['secret']);
unset($data['id']); // we are remote
unset($data['remote_id']);
$data['creator'] = 0; // remote
if (isset($data['modifier'])) $data['modifier'] = 0;
if (isset($data['requested'])) $data['requested'] = 0;
if (get_magic_quotes_gpc())
{
$data = array_stripslashes($data);
}
$cmd = admin_cmd::instanciate($data);
$cmd->check_remote_access($_REQUEST['secret'],$config_passwd);
//_debug_array($cmd); exit;
$success_msg = $cmd->run();
$GLOBALS['egw']->translation->convert($success_msg,$GLOBALS['egw']->translation->charset(),'utf-8');
if (!is_string($success_msg))
{
$success_msg = serialize($success_msg);
}
exit_with_status($cmd,$success_msg);
function exit_with_status($cmd,$success_msg='Successful')
{
switch($cmd->status)
{
case admin_cmd::failed: // errors are returned as 400 HTTP status
header('HTTP/1.1 200 '.$cmd->error);
echo $cmd->errno.' '.$cmd->error;
break;
default: // everything else is returned as 200 HTTP status
$success_msg = $cmd->stati[$cmd->status];
// fall through
case admin_cmd::pending:
case admin_cmd::successful:
header('HTTP/1.1 200 '.$cmd->stati[$cmd->status]);
header('Content-type: text/plain; charset=utf-8');
echo $success_msg;
}
$GLOBALS['egw']->common->egw_exit();
}

View File

@ -68,23 +68,3 @@ td.admin_userAgent span {
.globalCat_hiddenCatid {
display: none;
}
/**
* Custom fields list
*/
#admin-customfields_nm .values {
display: inline-block;
max-height: 13em;
overflow: auto;
}
/* Set a max height for all app type options */
#admin-customfields_admin-customfields-types + table {
max-height: 300px;
overflow: auto;
}
#admin-customfield_edit tr:not([class]) td {
padding: 5px 0px;
}
#admin-customfield_edit .attributes .et2_label,#admin-customfield_edit .attributes input {
margin-right: 1em;
}

View File

@ -1,71 +0,0 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<overlay>
<template id="admin.customfield_edit" template="" lang="" group="0" version="1.9.001">
<grid width="450px">
<columns>
<column width="100"/>
<column width="350"/>
<column width="45"/>
<column width="50"/>
</columns>
<rows>
<row class="dialogHeader" height="28">
<description statustext="the name used internaly (&amp;lt;= 20 chars), changeing it makes existing data unavailible" value="Name"/>
<textbox statustext="the name used internaly (&lt;= 20 chars), changeing it makes existing data unavailible" id="cf_name" size="20" maxlength="32" needed="true" class="et2_fullWidth" span="2"/>
<appicon/>
</row>
<row disabled="@no_types">
<description value="Type"/>
<menulist span="3">
<menupopup id="cf_type2" no_lang="1" rows="5"/>
</menulist>
<description/>
</row>
<row>
<description value="Label"/>
<textbox statustext="the text displayed to the user" id="cf_label" maxlength="255" class="et2_fullWidth" span="3"/>
</row>
<row>
<description value="Type of field"/>
<customfields-types statustext="Type of customfield" id="cf_type" class="et2_fullWidth" span="2" onchange="widget.getRoot().getWidgetById('cf_values').set_statustext(widget.egw().lang(widget.getArrayMgr('content').getEntry('options['+widget.getValue()+']'))||'');
widget.getRoot().getWidgetById('cf_len').set_disabled(!widget.getArrayMgr('content').getEntry('attributes['+widget.getValue()+'][cf_len]'));
widget.getRoot().getWidgetById('cf_rows').set_disabled(!widget.getArrayMgr('content').getEntry('attributes['+widget.getValue()+'][cf_rows]'));
widget.getRoot().getWidgetById('cf_values').set_disabled(!widget.getArrayMgr('content').getEntry('attributes['+widget.getValue()+'][cf_values]'));"/>
<hbox span="2">
<description value="Required"/>
<checkbox id="cf_needed"/>
</hbox>
</row>
<row disabled="!@use_private">
<description value="Private"/>
<taglist-account class="et2_fullWidth" statustext="Select accounts for which the custom field should be visible" id="cf_private" rows="3" account_type="both" span="3" empty_label="Add user or group"/>
</row>
<row>
<description statustext="each value is a line like id[=label], or use @path to read options from a file in EGroupware directory" value="Options"/>
<textbox multiline="true" statustext="@statustext" id="cf_values" rows="5" cols="30" span="3" width="99%"/>
</row>
<row>
<description value="Attributes"/>
<box span="3" class="attributes">
<description value="Length"/>
<textbox type="integer" statustext="displayed length of input field (set rows=1 to limit length)" id="cf_len" size="4"/>
<description value="Rows"/>
<textbox type="integer" blur="1" statustext="number of row for a multiline inputfield or line of a multi-select-box" id="cf_rows" min="0" max="10" size="4"/>
<description value="Order"/>
<textbox type="integer" statustext="determines the order the fields are displayed" id="cf_order" min="1" size="4"/>
</box>
<description/>
</row>
<row class="dialogFooterToolbar">
<hbox span="2">
<button statustext="Saves this entry" label="Save" id="button[save]" image="save" background_image="1"/>
<button statustext="Apply the changes" label="Apply" id="button[apply]" image="apply" background_image="1"/>
<button statustext="leave without saveing the entry" label="Cancel" id="button[cancel]" onclick="window.close();" image="cancel" background_image="1"/>
</hbox>
<button align="right" statustext="delete this entry" label="Delete" id="button[delete]" image="delete" background_image="1" span="all"/>
</row>
</rows>
</grid>
</template>
</overlay>

View File

@ -12,8 +12,8 @@
<column disabled="@no_add"/>
</columns>
<rows>
<row>
<description id="appname"/>
<row disabled="@no_edit_types">
<description id="app-name"/>
<description value="- type"/>
<menulist>
<menupopup id="types" no_lang="1" onchange="1"/>
@ -25,61 +25,56 @@
</rows>
</grid>
</template>
<template id="admin.customfields.header_add" template="" lang="" group="0" version="1.9.001">
<buttononly label="Add" id="add" onclick="egw.open_link('admin.customfields.edit&amp;appname='+widget.getArrayMgr('content').getRoot().getEntry('nm[appname]')+'&amp;use_private='+widget.getArrayMgr('content').getRoot().getEntry('use_private'),false,'450x380');"/>
</template>
<template id="admin.customfields.fields" template="" lang="" group="0" version="1.9.001">
<grid readonly="true">
<grid>
<columns>
<column disabled="!@type2" width="50px"/>
<column width="30%"/>
<column width="30%"/>
<column width="100px"/>
<column width="50px"/>
<column width="100px" disabled="!@use_private"/>
<column width="60%"/>
<column width="50px"/>
<column width="50px"/>
<column width="120px"/>
<column disabled="!@type2"/>
<column/>
<column/>
<column/>
<column disabled="!@use_private"/>
<column/>
<column/>
<column/>
<column/>
</columns>
<rows>
<row class="th">
<nextmatch-header label="Type" id="cf_type2"/>
<nextmatch-sortheader label="Name" id="cf_name"/>
<nextmatch-sortheader label="Label" id="cf_label"/>
<nextmatch-header label="Type of field" id="cf_type"/>
<nextmatch-header label="Required" id="cf_needed"/>
<nextmatch-header label="Private" id="cf_private"/>
<nextmatch-header label="Options"/>
<description value="Type"/>
<description statustext="the name used internaly (&lt;= 20 chars), changeing it makes existing data unavailible" value="Name"/>
<description value="Label"/>
<description value="Type of field"/>
<description value="Private"/>
<description statustext="each value is a line like &lt;id&gt;[=&lt;label&gt;]" value="Options"/>
<vbox>
<nextmatch-header label="Length"/>
<nextmatch-header label="Rows"/>
<description value="Length"/>
<description value="Rows"/>
</vbox>
<nextmatch-sortheader label="Order" id="cf_order"/>
<nextmatch-sortheader label="Last modified" id="cf_modified"/>
<description value="Order"/>
<description align="center" statustext="deletes this field" value="Action"/>
</row>
<row class="row" valign="top">
<menulist>
<menupopup id="${row}[cf_type2]" no_lang="1" multiple="true" empty_label="All"/>
</menulist>
<description id="${row}[cf_name]" />
<listbox statustext="for which types should this field be used" id="${row}[type2]" no_lang="1" rows="3"/>
<textbox statustext="the name used internaly (&lt;= 20 chars), changeing it makes existing data unavailible" id="${row}[name]" size="20" maxlength="32"/>
<vbox>
<description id="${row}[cf_label]" no_lang="1"/>
<description id="${row}[cf_label]"/>
<textbox statustext="the text displayed to the user" id="${row}[label]" maxlength="255"/>
<description id="${row}[label]"/>
</vbox>
<customfields-types statustext="Type of customfield" id="{$row}[cf_type]"/>
<checkbox id="${row}[cf_needed]" selected_value="1" unselected_value="0"/>
<select-account id="${row}[cf_private]" account_type="both"/>
<description id="${row}[cf_values]" no_lang="1" class="values"/>
<vbox>
<description id="${row}[cf_len]" no_lang="1"/>
<description id="${row}[cf_rows]" no_lang="1"/>
<customfields-types statustext="Type of customfield" id="{$row}[type]"/>
<checkbox label="required" id="${row}[needed]"/>
</vbox>
<description id="${row}[cf_order]" no_lang="1"/>
<taglist-account statustext="Select accounts for which the custom field should be visible" id="${row}[private]" rows="3" account_type="both"/>
<textbox multiline="true" statustext="each value is a line like id[=label]" id="${row}[values]" rows="4" cols="30"/>
<vbox>
<date-time id="${row}[cf_modified]"/>
<select-account id="${row}[cf_modifier]"/>
<textbox statustext="max length of the input [, length of the inputfield (optional)]" id="${row}[len]" size="5"/>
<textbox type="integer" blur="1" statustext="number of row for a multiline inputfield or line of a multi-select-box" id="${row}[rows]" min="0" max="10" size="2"/>
</vbox>
<textbox type="integer" statustext="determines the order the fields are displayed" id="${row}[order]" min="1" size="3"/>
<hbox>
<button statustext="deletes this field" label="Delete" id="delete[$row_cont[name]]"/>
<button statustext="creates a new field" label="Create" id="create$row_cont[name]"/>
</hbox>
</row>
</rows>
</grid>
@ -88,13 +83,38 @@
<grid>
<columns>
<column/>
<column/>
<column/>
<column/>
<column/>
<column/>
<column width="80%"/>
</columns>
<rows>
<row>
<template id="@type_template" span="all"/>
<description align="center" id="error_msg" no_lang="1" span="all" class="msg"/>
<description/>
<description/>
<description/>
<description/>
<description/>
<description no_lang="1"/>
</row>
<row>
<nextmatch id="nm" template="admin.customfields.fields" header_row="admin.customfields.header_add" span="all"/>
<template id="admin.customfields.types" content="content_types" span="all"/>
</row>
<row>
<template span="all"/>
</row>
<row>
<template id="admin.customfields.fields" content="fields" span="all"/>
</row>
<row>
<hbox span="all">
<button statustext="saves the changes made and leaves" label="Save" id="button[save]"/>
<button statustext="applies the changes" label="Apply" id="button[apply]"/>
<button statustext="leaves without saveing" label="Cancel" id="button[cancel]"/>
</hbox>
</row>
</rows>
</grid>

View File

@ -1,4 +1,3 @@
@import "../default/app.css";
/**
* EGroupware: CSS with less preprocessor
@ -12,6 +11,72 @@
* @package addressbook
* @version $Id$
*/
/**
* EGroupware - CSS Styles used by admin app
*
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package etemplate
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker@outdoor-training.de>
* @version $Id: app.css 47432 2014-06-30 07:48:05Z hnategh $
*/
.admin_tree table,
.admin_tree tr,
.admin_tree td {
border: none;
}
div#divAppbox {
padding: 0;
}
body {
background-image: none;
background-color: white;
}
/* otherwise it is transparent */
#admin_iframe {
background-color: white;
}
tr.adminAccountInactive .adminStatus {
color: red;
}
.adminOverflowEllipsis {
width: 100%;
white-space: nowrap;
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
img.admin_aclApp {
width: 16px;
}
td.admin_userAgent {
max-width: 200px;
}
td.admin_userAgent span {
display: block;
white-space: nowrap;
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
}
#admin-acl_filter {
max-width: 100% !important;
}
.admin_account_delete > * {
padding: 8px;
}
/* Global Category classes*/
.globalCat_confirmDelete {
position: absolute;
left: 120px;
top: 80px;
background-color: white;
display: none;
border: 2px solid black;
}
.globalCat_hiddenCatid {
display: none;
}
@media all {
div.dhtmlxTree td.standartTreeRow span.selectedTreeRow {
background-color: #ffdd73;

View File

@ -14,7 +14,7 @@
@import (reference) "../../../pixelegg/less/definitions.less";
@import (reference) "../default/app.css";
@import (less) "../default/app.css";
@media all {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,484 +0,0 @@
<?php
/**
* EGroupware API: sqlfs stream wrapper utilities: migration db-fs, fsck
*
* @link http://www.egroupware.org
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package api
* @subpackage vfs
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @copyright (c) 2008-15 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @version $Id$
*/
namespace EGroupware\Api\Vfs\Sqlfs;
use EGroupware\Api\Vfs;
// explicitly import old phpgwapi classes used:
use mime_magic;
use egw_exception_assertion_failed;
use schema_proc;
/**
* sqlfs stream wrapper utilities: migration db-fs, fsck
*/
class Utils extends StreamWrapper
{
/**
* Migrate SQLFS content from DB to filesystem
*
* @param boolean $debug true to echo a message for each copied file
*/
static function migrate_db2fs($debug=false)
{
if (!is_object(self::$pdo))
{
self::_pdo();
}
$query = 'SELECT fs_id,fs_name,fs_size,fs_content'.
' FROM '.self::TABLE.' WHERE fs_content IS NOT NULL';
$fs_id = $fs_name = $fs_size = $fs_content = null;
$stmt = self::$pdo->prepare($query);
$stmt->bindColumn(1,$fs_id);
$stmt->bindColumn(2,$fs_name);
$stmt->bindColumn(3,$fs_size);
$stmt->bindColumn(4,$fs_content,\PDO::PARAM_LOB);
if ($stmt->execute())
{
$n = 0;
foreach($stmt as $row)
{
// hack to work around a current php bug (http://bugs.php.net/bug.php?id=40913)
// PDOStatement::bindColumn(,,\PDO::PARAM_LOB) is not working for MySQL, content is returned as string :-(
if (is_string($fs_content))
{
$content = fopen('php://temp', 'wb');
fwrite($content, $fs_content);
fseek($content, 0, SEEK_SET);
unset($fs_content);
}
else
{
$content = $fs_content;
}
if (!is_resource($content))
{
throw new egw_exception_assertion_failed(__METHOD__."(): fs_id=$fs_id ($fs_name, $fs_size bytes) content is NO resource! ".array2string($content));
}
$filename = self::_fs_path($fs_id);
if (!file_exists($fs_dir=Vfs::dirname($filename)))
{
self::mkdir_recursive($fs_dir,0700,true);
}
if (!($dest = fopen($filename,'w')))
{
throw new egw_exception_assertion_failed(__METHOD__."(): fopen($filename,'w') failed!");
}
if (($bytes = stream_copy_to_stream($content,$dest)) != $fs_size)
{
throw new egw_exception_assertion_failed(__METHOD__."(): fs_id=$fs_id ($fs_name) $bytes bytes copied != size of $fs_size bytes!");
}
if ($debug) echo "$fs_id: $fs_name: $bytes bytes copied to fs\n";
fclose($dest);
fclose($content); unset($content);
++$n;
unset($row); // not used, as we access bound variables
}
unset($stmt);
if ($n) // delete all content in DB, if there was some AND no error (exception thrown!)
{
$query = 'UPDATE '.self::TABLE.' SET fs_content=NULL WHERE fs_content IS NOT NULL';
$stmt = self::$pdo->prepare($query);
$stmt->execute();
}
}
return $n;
}
/**
* Check and optionaly fix corruption in sqlfs
*
* @param boolean $check_only =true
* @return array with messages / found problems
*/
public static function fsck($check_only=true)
{
if (!is_object(self::$pdo))
{
self::_pdo();
}
$msgs = array();
foreach(array(
self::fsck_fix_required_nodes($check_only),
self::fsck_fix_multiple_active($check_only),
self::fsck_fix_unconnected($check_only),
self::fsck_fix_no_content($check_only),
) as $check_msgs)
{
if ($check_msgs) $msgs = array_merge($msgs, $check_msgs);
}
foreach ($GLOBALS['egw']->hooks->process(array(
'location' => 'fsck',
'check_only' => $check_only)
) as $app_msgs)
{
if ($app_msgs) $msgs = array_merge($msgs, $app_msgs);
}
return $msgs;
}
/**
* Check and optionally create required nodes: /, /home, /apps
*
* @param boolean $check_only =true
* @return array with messages / found problems
*/
private static function fsck_fix_required_nodes($check_only=true)
{
static $dirs = array(
'/' => 1,
'/home' => 2,
'/apps' => 3,
);
$stmt = $delete_stmt = null;
$msgs = array();
foreach($dirs as $path => $id)
{
if (!($stat = self::url_stat($path, STREAM_URL_STAT_LINK)))
{
if ($check_only)
{
$msgs[] = lang('Required directory "%1" not found!', $path);
}
else
{
if (!isset($stmt))
{
$stmt = self::$pdo->prepare('INSERT INTO '.self::TABLE.' (fs_id,fs_name,fs_dir,fs_mode,fs_uid,fs_gid,fs_size,fs_mime,fs_created,fs_modified,fs_creator'.
') VALUES (:fs_id,:fs_name,:fs_dir,:fs_mode,:fs_uid,:fs_gid,:fs_size,:fs_mime,:fs_created,:fs_modified,:fs_creator)');
}
try {
$ok = $stmt->execute($data = array(
'fs_id' => $id,
'fs_name' => substr($path,1),
'fs_dir' => $path == '/' ? 0 : $dirs['/'],
'fs_mode' => 05,
'fs_uid' => 0,
'fs_gid' => 0,
'fs_size' => 0,
'fs_mime' => 'httpd/unix-directory',
'fs_created' => self::_pdo_timestamp(time()),
'fs_modified' => self::_pdo_timestamp(time()),
'fs_creator' => 0,
));
}
catch (\PDOException $e)
{
$ok = false;
unset($e); // ignore exception
}
if (!$ok) // can not insert it, try deleting it first
{
if (!isset($delete_stmt))
{
$delete_stmt = self::$pdo->prepare('DELETE FROM '.self::TABLE.' WHERE fs_id=:fs_id');
}
try {
$ok = $delete_stmt->execute(array('fs_id' => $id)) && $stmt->execute($data);
}
catch (\PDOException $e)
{
unset($e); // ignore exception
}
}
$msgs[] = $ok ? lang('Required directory "%1" created.', $path) :
lang('Failed to create required directory "%1"!', $path);
}
}
// check if directory is at least world readable and executable (r-x), we allow more but not less
elseif (($stat['mode'] & 05) != 05)
{
if ($check_only)
{
$msgs[] = lang('Required directory "%1" has wrong mode %2 instead of %3!',
$path, Vfs::int2mode($stat['mode']), Vfs::int2mode(05|0x4000));
}
else
{
$stmt = self::$pdo->prepare('UPDATE '.self::TABLE.' SET fs_mode=:fs_mode WHERE fs_id=:fs_id');
if (($ok = $stmt->execute(array(
'fs_id' => $id,
'fs_mode' => 05,
))))
{
$msgs[] = lang('Mode of required directory "%1" changed to %2.', $path, Vfs::int2mode(05|0x4000));
}
else
{
$msgs[] = lang('Failed to change mode of required directory "%1" to %2!', $path, Vfs::int2mode(05|0x4000));
}
}
}
}
if (!$check_only && $msgs)
{
global $oProc;
if (!isset($oProc)) $oProc = new schema_proc();
// PostgreSQL seems to require to update the sequenz, after manually inserting id's
$oProc->UpdateSequence('egw_sqlfs', 'fs_id');
}
return $msgs;
}
/**
* Check and optionally remove files without content part in physical filesystem
*
* @param boolean $check_only =true
* @return array with messages / found problems
*/
private static function fsck_fix_no_content($check_only=true)
{
$stmt = null;
$msgs = array();
foreach(self::$pdo->query('SELECT fs_id FROM '.self::TABLE.
" WHERE fs_mime!='httpd/unix-directory' AND fs_content IS NULL AND fs_link IS NULL") as $row)
{
if (!file_exists($phy_path=self::_fs_path($row['fs_id'])))
{
$path = self::id2path($row['fs_id']);
if ($check_only)
{
$msgs[] = lang('File %1 has no content in physical filesystem %2!',
$path.' (#'.$row['fs_id'].')',$phy_path);
}
else
{
if (!isset($stmt))
{
$stmt = self::$pdo->prepare('DELETE FROM '.self::TABLE.' WHERE fs_id=:fs_id');
$stmt_props = self::$pdo->prepare('DELETE FROM '.self::PROPS_TABLE.' WHERE fs_id=:fs_id');
}
if ($stmt->execute(array('fs_id' => $row['fs_id'])) &&
$stmt_props->execute(array('fs_id' => $row['fs_id'])))
{
$msgs[] = lang('File %1 has no content in physical filesystem %2 --> file removed!',$path,$phy_path);
}
else
{
$msgs[] = lang('File %1 has no content in physical filesystem %2 --> failed to remove file!',
$path.' (#'.$row['fs_id'].')',$phy_path);
}
}
}
}
if ($check_only && $msgs)
{
$msgs[] = lang('Files without content in physical filesystem will be removed.');
}
return $msgs;
}
/**
* Name of lost+found directory for unconnected nodes
*/
const LOST_N_FOUND = '/lost+found';
const LOST_N_FOUND_MOD = 070;
const LOST_N_FOUND_GRP = 'Admins';
/**
* Check and optionally fix unconnected nodes - parent directory does not (longer) exists:
*
* SELECT fs.*
* FROM egw_sqlfs fs
* LEFT JOIN egw_sqlfs dir ON dir.fs_id=fs.fs_dir
* WHERE fs.fs_id > 1 && dir.fs_id IS NULL
*
* @param boolean $check_only =true
* @return array with messages / found problems
*/
private static function fsck_fix_unconnected($check_only=true)
{
$lostnfound = null;
$msgs = array();
foreach(self::$pdo->query('SELECT fs.* FROM '.self::TABLE.' fs'.
' LEFT JOIN '.self::TABLE.' dir ON dir.fs_id=fs.fs_dir'.
' WHERE fs.fs_id > 1 AND dir.fs_id IS NULL') as $row)
{
if ($check_only)
{
$msgs[] = lang('Found unconnected %1 %2!',
mime_magic::mime2label($row['fs_mime']),
Vfs::decodePath($row['fs_name']).' (#'.$row['fs_id'].')');
continue;
}
if (!isset($lostnfound))
{
// check if we already have /lost+found, create it if not
if (!($lostnfound = self::url_stat(self::LOST_N_FOUND, STREAM_URL_STAT_QUIET)))
{
Vfs::$is_root = true;
if (!self::mkdir(self::LOST_N_FOUND, self::LOST_N_FOUND_MOD, 0) ||
!(!($admins = $GLOBALS['egw']->accounts->name2id(self::LOST_N_FOUND_GRP)) ||
self::chgrp(self::LOST_N_FOUND, $admins) && self::chmod(self::LOST_N_FOUND,self::LOST_N_FOUND_MOD)) ||
!($lostnfound = self::url_stat(self::LOST_N_FOUND, STREAM_URL_STAT_QUIET)))
{
$msgs[] = lang("Can't create directory %1 to connect found unconnected nodes to it!",self::LOST_N_FOUND);
}
else
{
$msgs[] = lang('Successful created new directory %1 for unconnected nods.',self::LOST_N_FOUND);
}
Vfs::$is_root = false;
if (!$lostnfound) break;
}
$stmt = self::$pdo->prepare('UPDATE '.self::TABLE.' SET fs_dir=:fs_dir WHERE fs_id=:fs_id');
}
if ($stmt->execute(array(
'fs_dir' => $lostnfound['ino'],
'fs_id' => $row['fs_id'],
)))
{
$msgs[] = lang('Moved unconnected %1 %2 to %3.',
mime_magic::mime2label($row['fs_mime']),
Vfs::decodePath($row['fs_name']).' (#'.$row['fs_id'].')',
self::LOST_N_FOUND);
}
else
{
$msgs[] = lang('Failed to move unconnected %1 %2 to %3!',
mime_magic::mime2label($row['fs_mime']), Vfs::decodePath($row['fs_name']), self::LOST_N_FOUND);
}
}
if ($check_only && $msgs)
{
$msgs[] = lang('Unconnected nodes will be moved to %1.',self::LOST_N_FOUND);
}
return $msgs;
}
/**
* Check and optionally fix multiple active files and directories with identical path
*
* @param boolean $check_only =true
* @return array with messages / found problems
*/
private static function fsck_fix_multiple_active($check_only=true)
{
$stmt = $inactivate_msg_added = null;
$msgs = array();
foreach(self::$pdo->query('SELECT fs_dir,fs_name,COUNT(*) FROM '.self::TABLE.
' WHERE fs_active='.self::_pdo_boolean(true).
' GROUP BY fs_dir,'.(self::$pdo_type == 'mysql' ? 'BINARY ' : '').'fs_name'. // fs_name is casesensitive!
' HAVING COUNT(*) > 1') as $row)
{
if (!isset($stmt))
{
$stmt = self::$pdo->prepare('SELECT *,(SELECT COUNT(*) FROM '.self::TABLE.' sub WHERE sub.fs_dir=fs.fs_id) AS children'.
' FROM '.self::TABLE.' fs'.
' WHERE fs.fs_dir=:fs_dir AND fs.fs_active='.self::_pdo_boolean(true).' AND fs.fs_name'.self::$case_sensitive_equal.':fs_name'.
" ORDER BY fs.fs_mime='httpd/unix-directory' DESC,children DESC,fs.fs_modified DESC");
$inactivate_stmt = self::$pdo->prepare('UPDATE '.self::TABLE.
' SET fs_active='.self::_pdo_boolean(false).
' WHERE fs_dir=:fs_dir AND fs_active='.self::_pdo_boolean(true).
' AND fs_name'.self::$case_sensitive_equal.':fs_name AND fs_id!=:fs_id');
}
//$msgs[] = array2string($row);
$cnt = 0;
$stmt->execute(array(
'fs_dir' => $row['fs_dir'],
'fs_name' => $row['fs_name'],
));
foreach($stmt as $n => $entry)
{
if ($entry['fs_mime'] == 'httpd/unix-directory')
{
if (!$n)
{
$dir = $entry; // directory to keep
$msgs[] = lang('%1 directories %2 found!', $row[2], self::id2path($entry['fs_id']));
if ($check_only) break;
}
else
{
if ($entry['children'])
{
$msgs[] = lang('Moved %1 children from directory fs_id=%2 to %3',
$children = self::$pdo->exec('UPDATE '.self::TABLE.' SET fs_dir='.(int)$dir['fs_id'].
' WHERE fs_dir='.(int)$entry['fs_id']),
$entry['fs_id'], $dir['fs_id']);
$dir['children'] += $children;
}
self::$pdo->query('DELETE FROM '.self::TABLE.' WHERE fs_id='.(int)$entry['fs_id']);
$msgs[] = lang('Removed (now) empty directory fs_id=%1',$entry['fs_id']);
}
}
elseif (isset($dir)) // file and directory with same name exist!
{
if (!$check_only)
{
$inactivate_stmt->execute(array(
'fs_dir' => $row['fs_dir'],
'fs_name' => $row['fs_name'],
'fs_id' => $dir['fs_id'],
));
$cnt = $inactivate_stmt->rowCount();
}
else
{
$cnt = ucfirst(lang('none of %1', $row[2]-1));
}
$msgs[] = lang('%1 active file(s) with same name as directory inactivated!',$cnt);
break;
}
else // newest file --> set for all other fs_active=false
{
if (!$check_only)
{
$inactivate_stmt->execute(array(
'fs_dir' => $row['fs_dir'],
'fs_name' => $row['fs_name'],
'fs_id' => $entry['fs_id'],
));
$cnt = $inactivate_stmt->rowCount();
}
else
{
$cnt = lang('none of %1', $row[2]-1);
}
$msgs[] = lang('More then one active file %1 found, inactivating %2 older revisions!',
self::id2path($entry['fs_id']), $cnt);
break;
}
}
unset($dir);
if ($cnt && !isset($inactivate_msg_added))
{
$msgs[] = lang('To examine or reinstate inactived files, you might need to turn versioning on.');
$inactivate_msg_added = true;
}
}
return $msgs;
}
}
// fsck testcode, if this file is called via it's URL (you need to uncomment it!)
/*if (isset($_SERVER['SCRIPT_FILENAME']) && $_SERVER['SCRIPT_FILENAME'] == __FILE__)
{
$GLOBALS['egw_info'] = array(
'flags' => array(
'currentapp' => 'admin',
'nonavbar' => true,
),
);
include_once '../../header.inc.php';
$msgs = Utils::fsck(!isset($_GET['check_only']) || $_GET['check_only']);
echo '<p>'.implode("</p>\n<p>", (array)$msgs)."</p>\n";
}*/

View File

@ -1,250 +0,0 @@
<?php
/**
* EGroupware API: VFS - stream wrapper interface
*
* @link http://www.egroupware.org
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package api
* @subpackage vfs
* @version $Id$
*/
namespace EGroupware\Api\Vfs;
/**
* VFS - stream wrapper interface
*
* The interface is according to the docu on php.net
*
* @link http://www.php.net/manual/en/function.stream-wrapper-register.php
*/
interface StreamWrapperIface
{
/**
* optional context param when opening the stream, null if no context passed
*
* @var mixed
*/
//var $context;
/**
* This method is called immediately after your stream object is created.
*
* @param string $path URL that was passed to fopen() and that this object is expected to retrieve
* @param string $mode mode used to open the file, as detailed for fopen()
* @param int $options additional flags set by the streams API (or'ed together):
* - STREAM_USE_PATH If path is relative, search for the resource using the include_path.
* - STREAM_REPORT_ERRORS If this flag is set, you are responsible for raising errors using trigger_error() during opening of the stream.
* If this flag is not set, you should not raise any errors.
* @param string $opened_path full path of the file/resource, if the open was successfull and STREAM_USE_PATH was set
* @return boolean true if the ressource was opened successful, otherwise false
*/
function stream_open ( $path, $mode, $options, &$opened_path );
/**
* This method is called when the stream is closed, using fclose().
*
* You must release any resources that were locked or allocated by the stream.
*/
function stream_close ( );
/**
* This method is called in response to fread() and fgets() calls on the stream.
*
* You must return up-to count bytes of data from the current read/write position as a string.
* If there are less than count bytes available, return as many as are available.
* If no more data is available, return either FALSE or an empty string.
* You must also update the read/write position of the stream by the number of bytes that were successfully read.
*
* @param int $count
* @return string/false up to count bytes read or false on EOF
*/
function stream_read ( $count );
/**
* This method is called in response to fwrite() calls on the stream.
*
* You should store data into the underlying storage used by your stream.
* If there is not enough room, try to store as many bytes as possible.
* You should return the number of bytes that were successfully stored in the stream, or 0 if none could be stored.
* You must also update the read/write position of the stream by the number of bytes that were successfully written.
*
* @param string $data
* @return integer
*/
function stream_write ( $data );
/**
* This method is called in response to feof() calls on the stream.
*
* Important: PHP 5.0 introduced a bug that wasn't fixed until 5.1: the return value has to be the oposite!
*
* if(version_compare(PHP_VERSION,'5.0','>=') && version_compare(PHP_VERSION,'5.1','<'))
* {
* $eof = !$eof;
* }
*
* @return boolean true if the read/write position is at the end of the stream and no more data availible, false otherwise
*/
function stream_eof ( );
/**
* This method is called in response to ftell() calls on the stream.
*
* @return integer current read/write position of the stream
*/
function stream_tell ( );
/**
* This method is called in response to fseek() calls on the stream.
*
* You should update the read/write position of the stream according to offset and whence.
* See fseek() for more information about these parameters.
*
* @param integer $offset
* @param integer $whence SEEK_SET - Set position equal to offset bytes
* SEEK_CUR - Set position to current location plus offset.
* SEEK_END - Set position to end-of-file plus offset. (To move to a position before the end-of-file, you need to pass a negative value in offset.)
* @return boolean TRUE if the position was updated, FALSE otherwise.
*/
function stream_seek ( $offset, $whence );
/**
* This method is called in response to fflush() calls on the stream.
*
* If you have cached data in your stream but not yet stored it into the underlying storage, you should do so now.
*
* @return booelan TRUE if the cached data was successfully stored (or if there was no data to store), or FALSE if the data could not be stored.
*/
function stream_flush ( );
/**
* This method is called in response to fstat() calls on the stream.
*
* If you plan to use your wrapper in a require_once you need to define stream_stat().
* If you plan to allow any other tests like is_file()/is_dir(), you have to define url_stat().
* stream_stat() must define the size of the file, or it will never be included.
* url_stat() must define mode, or is_file()/is_dir()/is_executable(), and any of those functions affected by clearstatcache() simply won't work.
* It's not documented, but directories must be a mode like 040777 (octal), and files a mode like 0100666.
* If you wish the file to be executable, use 7s instead of 6s.
* The last 3 digits are exactly the same thing as what you pass to chmod.
* 040000 defines a directory, and 0100000 defines a file.
*
* @return array containing the same values as appropriate for the stream.
*/
function stream_stat ( );
/**
* This method is called in response to unlink() calls on URL paths associated with the wrapper.
*
* It should attempt to delete the item specified by path.
* In order for the appropriate error message to be returned, do not define this method if your wrapper does not support unlinking!
*
* @param string $path
* @return boolean TRUE on success or FALSE on failure
*/
static function unlink ( $path );
/**
* This method is called in response to rename() calls on URL paths associated with the wrapper.
*
* It should attempt to rename the item specified by path_from to the specification given by path_to.
* In order for the appropriate error message to be returned, do not define this method if your wrapper does not support renaming.
*
* The regular filesystem stream-wrapper returns an error, if $url_from and $url_to are not either both files or both dirs!
*
* @param string $path_from
* @param string $path_to
* @return boolean TRUE on success or FALSE on failure
*/
static function rename ( $path_from, $path_to );
/**
* This method is called in response to mkdir() calls on URL paths associated with the wrapper.
*
* It should attempt to create the directory specified by path.
* In order for the appropriate error message to be returned, do not define this method if your wrapper does not support creating directories.
*
* @param string $path
* @param int $mode
* @param int $options Posible values include STREAM_REPORT_ERRORS and STREAM_MKDIR_RECURSIVE
* @return boolean TRUE on success or FALSE on failure
*/
static function mkdir ( $path, $mode, $options );
/**
* This method is called in response to rmdir() calls on URL paths associated with the wrapper.
*
* It should attempt to remove the directory specified by path.
* In order for the appropriate error message to be returned, do not define this method if your wrapper does not support removing directories.
*
* @param string $path
* @param int $options Possible values include STREAM_REPORT_ERRORS.
* @return boolean TRUE on success or FALSE on failure.
*/
static function rmdir ( $path, $options );
/**
* This method is called immediately when your stream object is created for examining directory contents with opendir().
*
* @param string $path URL that was passed to opendir() and that this object is expected to explore.
* @return booelan
*/
function dir_opendir ( $path, $options );
/**
* This method is called in response to stat() calls on the URL paths associated with the wrapper.
*
* It should return as many elements in common with the system function as possible.
* Unknown or unavailable values should be set to a rational value (usually 0).
*
* If you plan to use your wrapper in a require_once you need to define stream_stat().
* If you plan to allow any other tests like is_file()/is_dir(), you have to define url_stat().
* stream_stat() must define the size of the file, or it will never be included.
* url_stat() must define mode, or is_file()/is_dir()/is_executable(), and any of those functions affected by clearstatcache() simply won't work.
* It's not documented, but directories must be a mode like 040777 (octal), and files a mode like 0100666.
* If you wish the file to be executable, use 7s instead of 6s.
* The last 3 digits are exactly the same thing as what you pass to chmod.
* 040000 defines a directory, and 0100000 defines a file.
*
* @param string $path
* @param int $flags holds additional flags set by the streams API. It can hold one or more of the following values OR'd together:
* - STREAM_URL_STAT_LINK For resources with the ability to link to other resource (such as an HTTP Location: forward,
* or a filesystem symlink). This flag specified that only information about the link itself should be returned,
* not the resource pointed to by the link.
* This flag is set in response to calls to lstat(), is_link(), or filetype().
* - STREAM_URL_STAT_QUIET If this flag is set, your wrapper should not raise any errors. If this flag is not set,
* you are responsible for reporting errors using the trigger_error() function during stating of the path.
* stat triggers it's own warning anyway, so it makes no sense to trigger one by our stream-wrapper!
* @return array
*/
static function url_stat ( $path, $flags );
/**
* This method is called in response to readdir().
*
* It should return a string representing the next filename in the location opened by dir_opendir().
*
* @return string
*/
function dir_readdir ( );
/**
* This method is called in response to rewinddir().
*
* It should reset the output generated by dir_readdir(). i.e.:
* The next call to dir_readdir() should return the first entry in the location returned by dir_opendir().
*
* @return boolean
*/
function dir_rewinddir ( );
/**
* This method is called in response to closedir().
*
* You should release any resources which were locked or allocated during the opening and use of the directory stream.
*
* @return boolean
*/
function dir_closedir ( );
}

View File

@ -250,19 +250,13 @@ class calendar_boupdate extends calendar_bo
$quantity[$uid] = $q;
}
}
//$start = microtime(true);
$overlapping_events =& $this->search(array(
'start' => $event['start'],
'end' => $event['end'],
'users' => $users,
'ignore_acl' => true, // otherwise we get only events readable by the user
'enum_groups' => true, // otherwise group-events would not block time
'query' => array(
'cal_non_blocking' => 0,
),
'no_integration' => true, // do NOT use integration of other apps
));
//error_log(__METHOD__."() conflict check took ".number_format(microtime(true)-$start, 3).'s');
if ($this->debug > 2 || $this->debug == 'update')
{
$this->debug_message('calendar_boupdate::update() checking for potential overlapping events for users %1 from %2 to %3',false,$users,$event['start'],$event['end']);

View File

@ -108,16 +108,6 @@ class calendar_egw_record implements importexport_iface_egw_record
return $this->identifier;
}
/**
* Gets the URL icon representitive of the record
* This could be as general as the application icon, or as specific as a contact photo
*
* @return string Full URL of an icon, or appname/icon_name
*/
public function get_icon() {
return 'calendar/navbar';
}
/**
* saves record into backend
*

View File

@ -1,197 +0,0 @@
<?php
/*
* Egroupware - Addressbook - A portlet for displaying a list of entries
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package addressbook
* @subpackage home
* @link http://www.egroupware.org
* @author Nathan Gray
* @version $Id$
*/
/**
* The addressbook_list_portlet uses a nextmatch / favorite
* to display a list of entries.
*/
class calendar_favorite_portlet extends home_favorite_portlet
{
/**
* Construct the portlet
* Calendar complicates things...
*/
public function __construct(Array &$context = array(), &$need_reload = false)
{
$context['appname'] = 'calendar';
// Let parent handle the basic stuff
parent::__construct($context,$need_reload);
if($this->favorite['state']['view'] == 'listview')
{
$ui = new calendar_uilist();
$this->context['template'] = 'calendar.list.rows';
$this->context['sel_options'] = array();
$this->nm_settings += array(
'csv_export' => True,
'filter_no_lang' => True, // I set no_lang for filter (=dont translate the options)
'no_filter2' => True, // I disable the 2. filter (params are the same as for filter)
'no_cat' => True, // I disable the cat-selectbox
'filter' => 'after',
'row_id' => 'row_id', // set in get rows "$event[id]:$event[recur_date]"
'row_modified' => 'modified',
'get_rows' => 'calendar_favorite_portlet::get_rows',
// Use a different template so it can be accessed from client side
'template' => 'calendar.list.rows',
// Default to fewer columns
'default_cols' => 'cal_start_cal_end,cal_title'
);
}
$need_reload = true;
}
public function exec($id = null, etemplate_new &$etemplate = null)
{
// Always load app's css
egw_framework::includeCSS('calendar','app');
if($this->favorite['state']['view'] == 'listview' || is_array($this->favorite) && !$this->favorite['state']['view'])
{
$ui = new calendar_uilist();
}
else
{
$ui = new calendar_uiviews();
if($this->favorite['state']['start']) $ui->search_params['start'] = $this->favorite['state']['start'];
if($this->favorite['state']['cat_id']) $ui->search_params['cat_id'] = $this->favorite['state']['cat_id'];
if($this->favorite['state']['owner']) $ui->search_params['users'] = explode(',',$this->favorite['state']['owner']);
if($this->favorite['state']['filter']) $ui->search_params['filter'] = $this->favorite['state']['filter'];
if($this->favorite['state']['sortby']) $ui->search_params['sortby'] = $this->favorite['state']['sortby'];
$etemplate->read('home.legacy');
$etemplate->set_dom_id($id);
// Always load app's javascript, so most actions have a chance of working
egw_framework::validate_file('','app',$this->context['appname']);
}
$content = array('legacy' => '');
switch($this->favorite['state']['view'])
{
case 'listview':
$this->context['sel_options']['filter'] = &$ui->date_filters;
$this->nm_settings['actions'] = $ui->get_actions($this->nm_settings['col_filter']['tid'], $this->nm_settings['org_view']);
// Early exit
return parent::exec($id, $etemplate);
break;
case 'planner_user':
case 'planner_cat':
case 'planner':
$content = array('legacy' => $ui->planner(true));
break;
case 'year':
$content = array('legacy' => $ui->year(true));
break;
case 'month':
$content = array('legacy' => $ui->month(0,true));
break;
case 'weekN':
$content = array('legacy' => $ui->weekN(true));
break;
case 'week':
$content = array('legacy' => $ui->week(0,true));
break;
case 'day':
$content = array('legacy' => $ui->day(true));
break;
case 'day4':
$content = array('legacy' => $ui->week(4,true));
break;
}
unset($GLOBALS['egw_info']['flags']['app_header']);
// Force loading of CSS
egw_framework::include_css_js_response();
// Set this to calendar so app.js gets initialized
$old_app = $GLOBALS['egw_info']['flags']['currentapp'];
$GLOBALS['egw_info']['flags']['currentapp'] = 'calendar';
$etemplate->exec(get_called_class() .'::process',$content);
$GLOBALS['egw_info']['flags']['currentapp'] = $old_app;
}
/**
* Override from calendar list to clear the app header
*
* @param type $query
* @param type $rows
* @param type $readonlys
* @return integer Total rows found
*/
public static function get_rows(&$query, &$rows, &$readonlys)
{
$ui = new calendar_uilist();
$old_owner = $ui->owner;
$ui->owner = $query['owner'];
$total = $ui->get_rows($query, $rows, $readonlys);
$ui->owner = $old_owner;
unset($GLOBALS['egw_info']['flags']['app_header']);
unset($query['selectcols']);
return $total;
}
/**
* Here we need to handle any incoming data. Setup is done in the constructor,
* output is handled by parent.
*
* @param type $id
* @param etemplate_new $etemplate
*/
public static function process($values = array())
{
parent::process($values);
$ui = new calendar_uilist();
if (is_array($values) && !empty($values['nm']['action']))
{
if (!count($values['nm']['selected']) && !$values['nm']['select_all'])
{
egw_framework::message(lang('You need to select some entries first'));
}
else
{
$success = $failed = $action_msg = null;
if ($ui->action($values['nm']['action'],$values['nm']['selected'],$values['nm']['select_all'],
$success,$failed,$action_msg,'calendar_list',$msg, $values['nm']['checkboxes']['no_notifications']))
{
$msg .= lang('%1 event(s) %2',$success,$action_msg);
egw_json_response::get()->apply('egw.message',array($msg,'success'));
foreach($values['nm']['selected'] as &$id)
{
$id = 'calendar::'.$id;
}
// Directly request an update - this will get addressbook tab too
egw_json_response::get()->apply('egw.dataRefreshUIDs',array($values['nm']['selected']));
}
elseif(is_null($msg))
{
$msg .= lang('%1 entries %2, %3 failed because of insufficent rights !!!',$success,$action_msg,$failed);
egw_json_response::get()->apply('egw.message',array($msg,'error'));
}
elseif($msg)
{
$msg .= "\n".lang('%1 entries %2, %3 failed.',$success,$action_msg,$failed);
egw_json_response::get()->apply('egw.message',array($msg,'error'));
}
unset($values['nm']['action']);
unset($values['nm']['select_all']);
}
}
}
}

View File

@ -659,6 +659,11 @@ class calendar_groupdav extends groupdav_handler
break;
}
}
// if recurring event starts in future behind horizont, nothing will be returned by bo::search()
if (!isset($master) && !($master = $bo->read($uid)))
{
return array();
}
foreach($events as $k => &$recurrence)
{
//error_log(__FILE__.'['.__LINE__.'] '.__METHOD__."($uid)[$k]:" . array2string($recurrence));

View File

@ -67,6 +67,70 @@ class calendar_hooks
return $GLOBALS['egw_info']['server']['calendar_export_limit'];
}
/**
* Draw calendar part of home
*/
static function home()
{
if($GLOBALS['egw_info']['user']['preferences']['calendar']['mainscreen_showevents'])
{
$GLOBALS['egw']->translation->add_app('calendar');
$save_app_header = $GLOBALS['egw_info']['flags']['app_header'];
if ($GLOBALS['egw_info']['user']['preferences']['calendar']['mainscreen_showevents'] == 'listview')
{
if (!file_exists(EGW_SERVER_ROOT.($et_css_file ='/etemplate/templates/'.$GLOBALS['egw_info']['user']['preferences']['common']['template_set'].'/app.css')))
{
$et_css_file = '/etemplate/templates/default/app.css';
}
$content =& ExecMethod('calendar.calendar_uilist.home');
}
else
{
unset($et_css_file);
$content =& ExecMethod('calendar.calendar_uiviews.home');
}
$portalbox =& CreateObject('phpgwapi.listbox',array(
'title' => $GLOBALS['egw_info']['flags']['app_header'],
'primary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'secondary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'tertiary' => $GLOBALS['egw_info']['theme']['navbar_bg'],
'width' => '100%',
'outerborderwidth' => '0',
'header_background_image' => $GLOBALS['egw']->common->image('phpgwapi/templates/default','bg_filler')
));
$GLOBALS['egw_info']['flags']['app_header'] = $save_app_header;
unset($save_app_header);
$GLOBALS['portal_order'][] = $app_id = $GLOBALS['egw']->applications->name2id('calendar');
foreach(array('up','down','close','question','edit') as $key)
{
$portalbox->set_controls($key,Array('url' => '/set_box.php', 'app' => $app_id));
}
$portalbox->data = Array();
if (!file_exists(EGW_SERVER_ROOT.($css_file ='/calendar/templates/'.$GLOBALS['egw_info']['user']['preferences']['common']['template_set'].'/app.css')))
{
$css_file = '/calendar/templates/default/app.css';
}
echo '
<!-- BEGIN Calendar info -->
<style type="text/css">
<!--';
if ($et_css_file) // listview
{
echo '
@import url('.$GLOBALS['egw_info']['server']['webserver_url'].$et_css_file.');';
}
echo '
@import url('.$GLOBALS['egw_info']['server']['webserver_url'].$css_file.');
-->
</style>
'.$portalbox->draw($content)."\n".'<!-- END Calendar info -->'."\n";
}
}
/**
* Entries for calendar's admin menu
*/
@ -74,7 +138,7 @@ class calendar_hooks
{
$file = Array(
'Site Configuration' => egw::link('/index.php','menuaction=admin.uiconfig.index&appname=calendar'),
'Custom fields' => egw::link('/index.php','menuaction=admin.customfields.index&appname=calendar'),
'Custom fields' => egw::link('/index.php','menuaction=admin.customfields.edit&appname=calendar'),
'Calendar Holiday Management' => egw::link('/index.php','menuaction=calendar.uiholiday.admin'),
'Global Categories' => egw::link('/index.php','menuaction=admin.admin_categories.index&appname=calendar'),
'Category ACL' => egw::link('/index.php','menuaction=calendar.calendar_uiforms.cat_acl'),

View File

@ -7,7 +7,7 @@
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @author Christian Binder <christian-AT-jaytraxx.de>
* @author Joerg Lehrke <jlehrke@noc.de>
* @copyright (c) 2005-15 by RalfBecker-At-outdoor-training.de
* @copyright (c) 2005-14 by RalfBecker-At-outdoor-training.de
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
@ -131,170 +131,29 @@ class calendar_so
}
}
/**
* Return sql to fetch all events in a given timerange, to be used instead of full table in further sql queries
*
* @param int $start
* @param int $end
* @param array $_where =null
* @param boolean $deleted =false
* @return string
*/
protected function cal_range_view($start, $end, array $_where=null, $deleted=false)
{
if (!$start) // using view without start-date is slower!
{
return $this->cal_table; // no need / use for a view
}
$where = array();
if (isset($deleted)) $where[] = "cal_deleted IS ".($deleted ? '' : 'NOT').' NULL';
if ($end) $where[] = "range_start<".(int)$end;
if ($start) $where[] = "(range_end IS NULL OR range_end>".(int)$start.")";
if ($_where) $where = array_merge($where, $_where);
$sql = "(SELECT * FROM $this->cal_table WHERE ".$this->db->expression($this->cal_table, $where).") $this->cal_table";
return $sql;
}
/**
* Return sql to fetch all dates in a given timerange, to be used instead of full dates table in further sql queries
*
* @param int $start
* @param int $end
* @param array $_where =null
* @param boolean $deleted =false
* @return string
*/
protected function dates_range_view($start, $end, array $_where=null, $deleted=false)
{
if (!$start || !$end) // using view without start- AND end-date is slower!
{
return $this->dates_table; // no need / use for a view
}
$where = array();
if (isset($deleted)) $where['recur_exception'] = $deleted;
if ($end) $where[] = "cal_start<".(int)$end;
if ($start) $where[] = "cal_end>".(int)$start;
if ($_where) $where = array_merge($where, $_where);
// egw_db::union uses egw_db::select which check if join contains "WHERE"
// to support old join syntax like ", other_table WHERE ...",
// therefore we have to use eg. "WHERe" instead!
$sql = "(SELECT * FROM $this->dates_table WHERe ".$this->db->expression($this->dates_table, $where).") $this->dates_table";
return $sql;
}
/**
* Return events in a given timespan containing given participants (similar to search but quicker)
*
* Not all search parameters are currently supported!!!
*
* @param int $start startdate of the search/list (servertime)
* @param int $end enddate of the search/list (servertime)
* @param int|array $users user-id or array of user-id's, !$users means all entries regardless of users
* @param int|array $cat_id =0 mixed category-id or array of cat-id's (incl. all sub-categories), default 0 = all
* @param string $filter ='default' string filter-name: all (not rejected), accepted, unknown, tentative, rejected or everything (incl. rejected, deleted)
* @param int|boolean $offset =False offset for a limited query or False (default)
* @param int $num_rows =0 number of rows to return if offset set, default 0 = use default in user prefs
* @param array $params =array()
* @param string|array $params['query'] string: pattern so search for, if unset or empty all matching entries are returned (no search)
* Please Note: a search never returns repeating events more then once AND does not honor start+end date !!!
* array: everything is directly used as $where
* @param string $params['order'] ='cal_start' column-names plus optional DESC|ASC separted by comma
* @param string $params['sql_filter'] sql to be and'ed into query (fully quoted)
* @param string|array $params['cols'] what to select, default "$this->repeats_table.*,$this->cal_table.*,cal_start,cal_end,cal_recur_date",
* if specified and not false an iterator for the rows is returned
* @param string $params['append'] SQL to append to the query before $order, eg. for a GROUP BY clause
* @param array $params['cfs'] custom fields to query, null = none, array() = all, or array with cfs names
* @param array $params['users'] raw parameter as passed to calendar_bo::search() no memberships resolved!
* @param boolean $params['master_only'] =false, true only take into account participants/status from master (for AS)
* @param boolean $params['enum_recuring'] =true enumerate recuring events
* @param int $remove_rejected_by_user =null add join to remove entry, if given user has rejected it
* @return array of events
*/
function &events($start,$end,$users,$cat_id=0,$filter='all',$offset=False,$num_rows=0,array $params=array(),$remove_rejected_by_user=null)
{
error_log(__METHOD__.'('.($start ? date('Y-m-d H:i',$start) : '').','.($end ? date('Y-m-d H:i',$end) : '').','.array2string($users).','.array2string($cat_id).",'$filter',".array2string($offset).",$num_rows,".array2string($params).') '.function_backtrace());
$start_time = microtime(true);
// not everything is supported by now
if (!$start || !$end || is_string($params['query']) ||
//in_array($filter,array('owner','deleted')) ||
$params['enum_recuring']===false)
{
throw new egw_exception_assertion_failed("Unsupported value for parameters!");
}
$where = is_array($params['query']) ? $params['query'] : array();
if ($cat_id) $where[] = $this->cat_filter($cat_id);
$egw_cal = $this->cal_range_view($start, $end, $where, $filter == 'everything' ? null : $filter != 'deleted');
$status_filter = $this->status_filter($filter, $params['enum_recuring']);
$sql = "SELECT DISTINCT {$this->cal_table}_repeats.*,$this->cal_table.*,\n".
" CASE WHEN recur_type IS NULL THEN egw_cal.range_start ELSE cal_start END AS cal_start,\n".
" CASE WHEN recur_type IS NULL THEN egw_cal.range_end ELSE cal_end END AS cal_end\n".
// using time-limited range view, instead of complete table, give a big performance plus
"FROM $egw_cal\n".
"JOIN egw_cal_user ON egw_cal_user.cal_id=egw_cal.cal_id\n".
// need to left join dates, as egw_cal_user.recur_date is null for non-recuring event
"LEFT JOIN egw_cal_dates ON egw_cal_user.cal_id=egw_cal_dates.cal_id AND egw_cal_dates.cal_start=egw_cal_user.cal_recur_date\n".
"LEFT JOIN egw_cal_repeats ON egw_cal_user.cal_id=egw_cal_repeats.cal_id\n".
"WHERE ".($status_filter ? $this->db->expression($this->table, $status_filter, " AND \n") : '').
" CASE WHEN recur_type IS NULL THEN egw_cal.range_start ELSE cal_start END<".(int)$end." AND\n".
" CASE WHEN recur_type IS NULL THEN egw_cal.range_end ELSE cal_end END>".(int)$start;
if ($users)
{
// fix $users to also prefix system users and groups (with 'u')
if (!is_array($users)) $users = $users ? (array)$users : array();
foreach($users as &$uid)
{
if (is_numeric($uid)) $uid = 'u'.$uid;
}
$sql .= " AND\n CONCAT(cal_user_type,cal_user_id) IN (".implode(',', array_map(array($this->db, 'quote'), $users)).")";
}
if ($remove_rejected_by_user && !in_array($filter, array('everything', 'deleted')))
{
$sql .= " AND\n (cal_user_type!='u' OR cal_user_id!=".(int)$remove_rejected_by_user." OR cal_status!='R')";
}
if (!empty($params['sql_filter']) && is_string($params['sql_filter']))
{
$sql .= " AND\n ".$params['sql_filter'];
}
if ($params['order']) // only order if requested
{
if (!preg_match('/^[a-z_ ,c]+$/i',$params['order'])) $params['order'] = 'cal_start'; // gard against SQL injection
$sql .= "\nORDER BY ".$params['order'];
}
if ($offset === false) // return all rows --> egw_db::query wants offset=0, num_rows=-1
{
$offset = 0;
$num_rows = -1;
}
$events =& $this->get_events($this->db->query($sql, __LINE__, __FILE__, $offset, $num_rows));
error_log(__METHOD__."(...) $sql --> ".number_format(microtime(true)-$start_time, 3));
return $events;
}
/**
* reads one or more calendar entries
*
* All times (start, end and modified) are returned as timesstamps in servertime!
*
* @param int|array|string $ids id or array of id's of the entries to read, or string with a single uid
* @param int $recur_date =0 if set read the next recurrence at or after the timestamp, default 0 = read the initital one
* @param int $recur_date=0 if set read the next recurrence at or after the timestamp, default 0 = read the initital one
* @return array|boolean array with cal_id => event array pairs or false if entry not found
*/
function read($ids,$recur_date=0)
{
//error_log(__METHOD__.'('.array2string($ids).",$recur_date) ".function_backtrace());
//_debug_array(__METHOD__.__LINE__.'#'.$recur_date.'#'.function_backtrace());
if (isset($GLOBALS['egw_info']['user']['preferences']['syncml']['minimum_uid_length']))
{
$minimum_uid_length = $GLOBALS['egw_info']['user']['preferences']['syncml']['minimum_uid_length'];
}
else
{
$minimum_uid_length = 8;
}
//echo "<p>socal::read(".print_r($ids,true).",$recur_date)<br />\n".function_backtrace()."<p>\n";
$cols = self::get_columns('calendar', $this->cal_table);
$cols[0] = $this->db->to_varchar($this->cal_table.'.cal_id');
$cols = "$this->repeats_table.recur_type,$this->repeats_table.recur_interval,$this->repeats_table.recur_data,".implode(',',$cols);
@ -336,31 +195,8 @@ class calendar_so
}
$cols .= ',range_end AS recur_enddate';
$events =& $this->get_events($this->db->select($this->cal_table, $cols, $where, __LINE__, __FILE__, false, $group_by, 'calendar', 0, $join), $recur_date);
return $events ? $events : false;
}
/**
* Get full event information from an iterator of a select on egw_cal
*
* @param array|Iterator $rs
* @param int $recur_date =0
* @return array
*/
protected function &get_events($rs, $recur_date=0)
{
if (isset($GLOBALS['egw_info']['user']['preferences']['syncml']['minimum_uid_length']))
{
$minimum_uid_length = $GLOBALS['egw_info']['user']['preferences']['syncml']['minimum_uid_length'];
}
else
{
$minimum_uid_length = 8;
}
$events = array();
foreach($rs as $row)
foreach($this->db->select($this->cal_table, $cols, $where, __LINE__, __FILE__, false, $group_by, 'calendar', 0, $join) as $row)
{
if (!$row['recur_type'])
{
@ -369,11 +205,11 @@ class calendar_so
}
$row['recur_exception'] = $row['alarm'] = array();
$events[$row['cal_id']] = egw_db::strip_array_keys($row,'cal_');
}
if (!$events) return $events;
$ids = array_keys($events);
if (count($ids) == 1) $ids = $ids[0];
// if a uid was supplied, convert it for the further code to an id
if (!is_array($ids) && !is_numeric($ids)) $ids = $row['cal_id'];
}
if (!$events) return false;
foreach ($events as &$event)
{
@ -399,21 +235,24 @@ class calendar_so
if (($recur_date && $event['recur_type'] != MCAL_RECUR_NONE))
{
//_debug_array(__METHOD__.__LINE__.' recur_date:'.$recur_date.' check cal_start:'.$event['start']);
foreach($this->db->select($this->dates_table, 'cal_id,cal_start', array(
foreach(($i=$this->db->select($this->dates_table, 'cal_id,cal_start', array(
'cal_id' => $event['id'],
'cal_start' => $event['start'],
'recur_exception' => true,
), __LINE__, __FILE__, false, '', 'calendar') as $row)
), __LINE__, __FILE__, false, '', 'calendar')) as $row)
{
$isException[$row['cal_id']] = true;
}
//_debug_array($i->sql.'-> found Rows:'.$i->_numOfRows);
if ($isException[$event['id']])
{
if (!$this->db->select($this->cal_table, 'COUNT(*)', array(
$x = $this->db->select($this->cal_table, 'cal_id', array(
'cal_uid' => $event['uid'],
'cal_recurrence' => $event['start'],
'cal_deleted' => NULL
), __LINE__, __FILE__, false, '', 'calendar')->fetchColumn())
), __LINE__, __FILE__, false, '', 'calendar');
//_debug_array(__METHOD__.__LINE__.$x->sql.'-> found Rows:'.$x->_numOfRows);
if (empty($x->_numOfRows))
{
$e = $this->read($event['id'],$event['start']+1);
$event = $e[$event['id']];
@ -491,8 +330,8 @@ class calendar_so
* This includes ALL recurences of an event series
*
* @param int|string|array $users one or mulitple calendar users
* @param booelan $owner_too =false if true return also events owned by given users
* @param boolean $master_only =false only check recurance master (egw_cal_user.recur_date=0)
* @param booelan $owner_too=false if true return also events owned by given users
* @param boolean $master_only=false only check recurance master (egw_cal_user.recur_date=0)
* @return int maximum modification timestamp
*/
function get_ctag($users, $owner_too=false,$master_only=false)
@ -510,7 +349,6 @@ class calendar_so
$types = array();
foreach((array)$users as $uid)
{
$type = $id = null;
self::split_user($uid, $type, $id);
$types[$type][] = $id;
}
@ -555,10 +393,10 @@ class calendar_so
* Use as: foreach(get_cal_data() as $data) { $data = egw_db::strip_array_keys($data, 'cal_'); // do something with $data
*
* @param array $query filter, keys have to use 'cal_' prefix
* @param string|array $cols ='cal_id,cal_reference,cal_etag,cal_modified,cal_user_modified' cols to query
* @param string|array $cols='cal_id,cal_reference,cal_etag,cal_modified,cal_user_modified' cols to query
* @return Iterator as egw_db::select
*/
function get_cal_data(array $query, $cols='cal_id,cal_reference,cal_etag,cal_modified,cal_user_modified')
function get_cal_data(array $query, $cols='cal_id,cal_reference,cal_etag,cal_modified,cal_user_modified', $include_user_modified=false)
{
if (!is_array($cols)) $cols = explode(',', $cols);
@ -596,109 +434,37 @@ class calendar_so
return $sql;
}
/**
* Return filters to filter by given status
*
* @param string $filter "default", "all", ...
* @param boolean $enum_recuring are recuring events enumerated or not
* @param array $where =array() array to add filters too
* @return array
*/
protected function status_filter($filter, $enum_recuring=true, array $where=array())
{
if($filter != 'deleted' && $filter != 'everything')
{
$where[] = 'cal_deleted IS NULL';
}
switch($filter)
{
case 'everything': // no filter at all
break;
case 'showonlypublic':
$where['cal_public'] = 1;
$where[] = "$this->user_table.cal_status NOT IN ('R','X','E')";
break;
case 'deleted':
$where[] = 'cal_deleted IS NOT NULL';
break;
case 'unknown':
$where[] = "$this->user_table.cal_status='U'";
break;
case 'not-unknown':
$where[] = "$this->user_table.cal_status NOT IN ('U','X','E')";
break;
case 'accepted':
$where[] = "$this->user_table.cal_status='A'";
break;
case 'tentative':
$where[] = "$this->user_table.cal_status='T'";
break;
case 'rejected':
$where[] = "$this->user_table.cal_status='R'";
break;
case 'delegated':
$where[] = "$this->user_table.cal_status='D'";
break;
case 'all':
case 'owner':
$where[] = "$this->user_table.cal_status NOT IN ('X','E')";
break;
default:
if ($enum_recuring) // regular UI
{
$where[] = "$this->user_table.cal_status NOT IN ('R','X','E')";
}
else // CalDAV / eSync / iCal need to include 'E' = exceptions
{
$where[] = "$this->user_table.cal_status NOT IN ('R','X')";
}
break;
}
return $where;
}
/**
* Searches / lists calendar entries, including repeating ones
*
* @param int $start startdate of the search/list (servertime)
* @param int $end enddate of the search/list (servertime)
* @param int|array $users user-id or array of user-id's, !$users means all entries regardless of users
* @param int|array $cat_id =0 mixed category-id or array of cat-id's (incl. all sub-categories), default 0 = all
* @param string $filter ='all' string filter-name: all (not rejected), accepted, unknown, tentative, rejected or everything (incl. rejected, deleted)
* @param int|boolean $offset =False offset for a limited query or False (default)
* @param int $num_rows =0 number of rows to return if offset set, default 0 = use default in user prefs
* @param array $params =array()
* @param int|array $cat_id=0 mixed category-id or array of cat-id's (incl. all sub-categories), default 0 = all
* @param string $filter='all' string filter-name: all (not rejected), accepted, unknown, tentative, rejected or everything (incl. rejected, deleted)
* @param int|boolean $offset=False offset for a limited query or False (default)
* @param int $num_rows=0 number of rows to return if offset set, default 0 = use default in user prefs
* @param array $params=array()
* @param string|array $params['query'] string: pattern so search for, if unset or empty all matching entries are returned (no search)
* Please Note: a search never returns repeating events more then once AND does not honor start+end date !!!
* array: everything is directly used as $where
* @param string $params['order'] ='cal_start' column-names plus optional DESC|ASC separted by comma
* @param string $params['order']='cal_start' column-names plus optional DESC|ASC separted by comma
* @param string $params['sql_filter'] sql to be and'ed into query (fully quoted)
* @param string|array $params['cols'] what to select, default "$this->repeats_table.*,$this->cal_table.*,cal_start,cal_end,cal_recur_date",
* if specified and not false an iterator for the rows is returned
* @param string $params['append'] SQL to append to the query before $order, eg. for a GROUP BY clause
* @param array $params['cfs'] custom fields to query, null = none, array() = all, or array with cfs names
* @param array $params['users'] raw parameter as passed to calendar_bo::search() no memberships resolved!
* @param boolean $params['master_only'] =false, true only take into account participants/status from master (for AS)
* @param boolean $params['enum_recuring'] =true enumerate recuring events
* @param boolean $params['use_so_events'] =false, true return result of new $this->events()
* @param int $remove_rejected_by_user =null add join to remove entry, if given user has rejected it
* @return Iterator|array of events
* @param boolean $params['master_only']=false, true only take into account participants/status from master (for AS)
* @param int $remove_rejected_by_user=null add join to remove entry, if given user has rejected it
* @return array of cal_ids, or false if error in the parameters
*
* ToDo: search custom-fields too
*/
function &search($start,$end,$users,$cat_id=0,$filter='all',$offset=False,$num_rows=0,array $params=array(),$remove_rejected_by_user=null)
{
//error_log(__METHOD__.'('.($start ? date('Y-m-d H:i',$start) : '').','.($end ? date('Y-m-d H:i',$end) : '').','.array2string($users).','.array2string($cat_id).",'$filter',".array2string($offset).",$num_rows,".array2string($params).') '.function_backtrace());
/* not using new events method currently, as it not yet fully working and
using time-range views in old code gives simmilar improvments
// uncomment to use new events method for supported parameters
//if (!isset($params['use_so_events'])) $params['use_so_events'] = $params['use_so_events'] || $start && $end && !in_array($filter, array('owner', 'deleted')) && $params['enum_recuring']!==false;
// use new events method only if explicit requested
if ($params['use_so_events'])
{
return call_user_func_array(array($this,'events'), func_get_args());
}
*/
if (isset($params['cols']))
{
$cols = $params['cols'];
@ -768,10 +534,7 @@ class calendar_so
$cal_table_def = $this->db->get_table_definitions('calendar',$this->cal_table);
// only users can be owners, no need to add groups
$user_ids = array();
foreach($ids as $user_id)
{
if ($GLOBALS['egw']->accounts->get_type($user_id) === 'u') $user_ids[] = $user_id;
}
foreach($ids as $user_id) if ($GLOBALS['egw']->accounts->get_type($user_id) === 'u') $user_ids[] = $user_id;
$owner_or = $this->db->expression($cal_table_def,array('cal_owner' => $user_ids));
}
}
@ -782,7 +545,7 @@ class calendar_so
),' AND '.$this->user_table.'.',array(
'cal_user_id' => $ids,
));
if ($type == 'u' && $filter == 'owner')
if ($type == 'u' && ($filter == 'owner'))
{
$cal_table_def = $this->db->get_table_definitions('calendar',$this->cal_table);
$to_or[] = $this->db->expression($cal_table_def,array('cal_owner' => $ids));
@ -792,7 +555,54 @@ class calendar_so
// this is only used, when we cannot use UNIONS
if (!$useUnionQuery) $where[] = '('.implode(' OR ',$to_or).')';
$where = $this->status_filter($filter, $params['enum_recuring'], $where);
if($filter != 'deleted' && $filter != 'everything')
{
$where[] = 'cal_deleted IS NULL';
}
switch($filter)
{
case 'everything': // no filter at all
break;
case 'showonlypublic':
$where['cal_public'] = 1;
$where[] = "$this->user_table.cal_status NOT IN ('R','X','E')";
break;
case 'deleted':
$where[] = 'cal_deleted IS NOT NULL';
break;
case 'unknown':
$where[] = "$this->user_table.cal_status='U'";
break;
case 'not-unknown':
$where[] = "$this->user_table.cal_status NOT IN ('U','X','E')";
break;
case 'accepted':
$where[] = "$this->user_table.cal_status='A'";
break;
case 'tentative':
$where[] = "$this->user_table.cal_status='T'";
break;
case 'rejected':
$where[] = "$this->user_table.cal_status='R'";
break;
case 'delegated':
$where[] = "$this->user_table.cal_status='D'";
break;
case 'all':
case 'owner':
$where[] = "$this->user_table.cal_status NOT IN ('X','E')";
break;
default:
if ($params['enum_recuring']) // regular UI
{
$where[] = "$this->user_table.cal_status NOT IN ('R','X','E')";
}
else // CalDAV / eSync / iCal need to include 'E' = exceptions
{
$where[] = "$this->user_table.cal_status NOT IN ('R','X')";
}
break;
}
}
if ($cat_id)
{
@ -838,20 +648,6 @@ class calendar_so
if ($filter == 'owner') $or_required[] = 'cal_owner='.(int)$remove_rejected_by_user;
$where[] = '('.implode(' OR ',$or_required).')';
}
// using a time-range and deleted attribute limited view instead of full table
$cal_table = $this->cal_range_view($start, $end, null, $filter == 'everything' ? null : $filter != 'deleted');
$cal_table_def = $this->db->get_table_definitions('calendar', $this->cal_table);
$join = "JOIN $this->user_table ON $this->cal_table.cal_id=$this->user_table.cal_id ".
"LEFT JOIN $this->repeats_table ON $this->cal_table.cal_id=$this->repeats_table.cal_id ".
$rejected_by_user_join;
// dates table join only needed to enum recuring events, we use a time-range limited view here too
if ($params['enum_recuring'])
{
$join = "JOIN ".$this->dates_range_view($start, $end, null, $filter == 'everything' ? null : $filter == 'deleted').
" ON $this->cal_table.cal_id=$this->dates_table.cal_id ".$join;
}
//$starttime = microtime(true);
if ($useUnionQuery)
{
@ -859,16 +655,18 @@ class calendar_so
if (!isset($params['cols'])) $cols .= ',NULL AS participants,NULL AS icons';
// changed the original OR in the query into a union, to speed up the query execution under MySQL 5
// with time-range views benefit is now at best slim for huge tables or none at all!
$select = array(
'table' => $cal_table,
'join' => $join,
'table' => $this->cal_table,
'join' => "JOIN $this->user_table ON $this->cal_table.cal_id=$this->user_table.cal_id LEFT JOIN $this->repeats_table ON $this->cal_table.cal_id=$this->repeats_table.cal_id $rejected_by_user_join",
'cols' => $cols,
'where' => $where,
'app' => 'calendar',
'append'=> $params['append'],
'table_def' => $cal_table_def,
'append'=> $params['append'].' '.$group_by,
);
if ($params['enum_recuring']) // dates table join only needed to enum recuring events
{
$select['join'] = "JOIN $this->dates_table ON $this->cal_table.cal_id=$this->dates_table.cal_id ".$select['join'];
}
$selects = array();
// we check if there are parts to use for the construction of our UNION query,
// as replace the OR by construction of a suitable UNION for performance reasons
@ -924,57 +722,40 @@ class calendar_so
array('range_start AS cal_start','range_end AS cal_end'), $selects[$key]['cols']);
}
}
if (!isset($params['cols']) && !$params['no_integration']) self::get_union_selects($selects,$start,$end,$users,$cat_id,$filter,$params['query'],$params['users']);
if (!isset($params['cols'])) self::get_union_selects($selects,$start,$end,$users,$cat_id,$filter,$params['query'],$params['users']);
$this->total = $this->db->union($selects,__LINE__,__FILE__)->NumRows();
// restore original cols / selects
$selects = $save_selects; unset($save_selects);
}
if (!isset($params['cols']) && !$params['no_integration']) self::get_union_selects($selects,$start,$end,$users,$cat_id,$filter,$params['query'],$params['users']);
if (!isset($params['cols'])) self::get_union_selects($selects,$start,$end,$users,$cat_id,$filter,$params['query'],$params['users']);
$rs = $this->db->union($selects,__LINE__,__FILE__,$params['order'],$offset,$num_rows);
}
else // MsSQL oder MySQL 3.23
{
$where[] = "(recur_type IS NULL AND $this->user_table.cal_recur_date=0 OR $this->user_table.cal_recur_date=cal_start)";
$where[] = "(recur_type IS NULL AND $this->user_table.cal_recur_date=0)";// OR $this->user_table.cal_recur_date=cal_start)";
$selects = array(array(
'table' => $cal_table,
'join' => $join,
'cols' => $cols,
'where' => $where,
'app' => 'calendar',
'append'=> $params['append'],
'table_def' => $cal_table_def,
));
if (is_numeric($offset) && !$params['no_total']) // get the total too
//_debug_array($where);
if (is_numeric($offset)) // get the total too
{
$save_selects = $selects;
// we only select cal_table.cal_id (and not cal_table.*) to be able to use DISTINCT (eg. MsSQL does not allow it for text-columns)
$selects[0]['cols'] = "$this->cal_table.cal_id,cal_start";
if (!isset($params['cols']) && !$params['no_integration'] && $this->db->capabilities['union'])
{
self::get_union_selects($selects,$start,$end,$users,$cat_id,$filter,$params['query'],$params['users']);
}
$this->total = $this->db->union($selects, __LINE__, __FILE__)->NumRows();
$selects = $save_selects;
$this->total = $this->db->select($this->cal_table,"DISTINCT ".$cols,//$this->repeats_table.*,$this->cal_table.cal_id,cal_start,cal_end,cal_recur_date",
$where,__LINE__,__FILE__,false,'','calendar',0,
// dates table join only needed to enum recuring events
($params['enum_recuring'] ? "JOIN $this->dates_table ON $this->cal_table.cal_id=$this->dates_table.cal_id " : '').
"JOIN $this->user_table ON $this->cal_table.cal_id=$this->user_table.cal_id $rejected_by_user_join LEFT JOIN $this->repeats_table ON $this->cal_table.cal_id=$this->repeats_table.cal_id")->NumRows();
}
if (!isset($params['cols']) && !$params['no_integration'] && $this->db->capabilities['union'])
{
self::get_union_selects($selects,$start,$end,$users,$cat_id,$filter,$params['query'],$params['users']);
}
$rs = $this->db->union($selects,__LINE__,__FILE__,$params['order'],$offset,$num_rows);
$rs = $this->db->select($this->cal_table,($this->db->capabilities['distinct_on_text'] ? 'DISTINCT ' : '').$cols,
$where,__LINE__,__FILE__,$offset,$params['append'].' ORDER BY '.$params['order'],'calendar',$num_rows,
"JOIN $this->dates_table ON $this->cal_table.cal_id=$this->dates_table.cal_id JOIN $this->user_table ON $this->cal_table.cal_id=$this->user_table.cal_id $rejected_by_user_join LEFT JOIN $this->repeats_table ON $this->cal_table.cal_id=$this->repeats_table.cal_id");
}
//error_log(__METHOD__."() useUnionQuery=$useUnionQuery --> query took ".(microtime(true)-$starttime).'s '.$rs->sql);
//error_log(__METHOD__."() useUnionQuery=$useUnionQuery --> query took ".(microtime(true)-$starttime));
if (isset($params['cols']))
{
return $rs; // if colums are specified we return the recordset / iterator
}
// Todo: return $this->get_events($rs);
$events = $ids = $recur_dates = $recur_ids = array();
foreach($rs as $row)
{
@ -1137,7 +918,7 @@ class calendar_so
'filter'=> $filter,
'query' => $query,
));
foreach(self::$integration_data as $data)
foreach(self::$integration_data as $app => $data)
{
if (is_array($data['selects']))
{
@ -1164,7 +945,7 @@ class calendar_so
*
* @param array $app_cols required name => own name pairs
* @param string|array $required array or comma separated column names or table.*
* @param string $required_app ='calendar'
* @param string $required_app='calendar'
* @return string cols for union query to match ones supplied in $required
*/
public static function union_cols(array $app_cols,$required,$required_app='calendar')
@ -1177,7 +958,6 @@ class calendar_so
$return_cols = array();
foreach(is_array($required) ? $required : explode(',',$required) as $cols)
{
$matches = null;
if (substr($cols,-2) == '.*')
{
$cols = self::get_columns($required_app,substr($cols,0,-2));
@ -1281,7 +1061,7 @@ ORDER BY cal_user_type, cal_usre_id
* @param array $event
* @param boolean &$set_recurrences on return: true if the recurrences need to be written, false otherwise
* @param int &$set_recurrences_start=0 on return: time from which on the recurrences should be rebuilt, default 0=all
* @param int $change_since =0 time from which on the repetitions should be changed, default 0=all
* @param int $change_since=0 time from which on the repetitions should be changed, default 0=all
* @param int &$etag etag=null etag to check or null, on return new etag
* @return boolean|int false on error, 0 if etag does not match, cal_id otherwise
*/
@ -1641,18 +1421,18 @@ ORDER BY cal_user_type, cal_usre_id
/**
* Shift alarm on recurring events to next future recurrence
*
* @param array $_event event with optional 'cal_' prefix in keys
* @param array $event event with optional 'cal_' prefix in keys
* @param array &$alarm
* @return boolean true if alarm could be shifted, false if not
*/
public static function shift_alarm(array $_event, array &$alarm)
public static function shift_alarm(array $event, array &$alarm)
{
if ($_event['recur_type'] == MCAL_RECUR_NONE)
if ($event['recur_type'] == MCAL_RECUR_NONE)
{
return false;
}
$start = (int)time() + $alarm['offset'];
$event = egw_db::strip_array_keys($_event, 'cal_');
$event = egw_db::strip_array_keys($event, 'cal_');
$rrule = calendar_rrule::event2rrule($event, false);
foreach ($rrule as $time)
{
@ -1671,9 +1451,9 @@ ORDER BY cal_user_type, cal_usre_id
* @param int $cal_id
* @param int $start new starttime
* @param int $end new endtime
* @param int|boolean $change_since =0 false=new entry, > 0 time from which on the repetitions should be changed, default 0=all
* @param int $old_start =0 old starttime or (default) 0, to query it from the db
* @param int $old_end =0 old starttime or (default) 0
* @param int|boolean $change_since=0 false=new entry, > 0 time from which on the repetitions should be changed, default 0=all
* @param int $old_start=0 old starttime or (default) 0, to query it from the db
* @param int $old_end=0 old starttime or (default) 0
* @todo Recalculate recurrences, if timezone changes
* @return int|boolean number of moved recurrences or false on error
*/
@ -1764,8 +1544,8 @@ ORDER BY cal_user_type, cal_usre_id
* Combine status, quantity and role into one value
*
* @param string $status
* @param int $quantity =1
* @param string $role ='REQ-PARTICIPANT'
* @param int $quantity=1
* @param string $role='REQ-PARTICIPANT'
* @return string
*/
static function combine_status($status,$quantity=1,$role='REQ-PARTICIPANT')
@ -1789,7 +1569,6 @@ ORDER BY cal_user_type, cal_usre_id
$quantity = 1;
$role = 'REQ-PARTICIPANT';
//error_log(__METHOD__.__LINE__.array2string($status));
$matches = null;
if (is_string($status) && strlen($status) > 1 && preg_match('/^.([0-9]*)(.*)$/',$status,$matches))
{
if ((int)$matches[1] > 0) $quantity = (int)$matches[1];
@ -1810,9 +1589,9 @@ ORDER BY cal_user_type, cal_usre_id
*
* @param int $cal_id
* @param array $participants uid => status pairs
* @param int|boolean $change_since =0, false=new event,
* @param int|boolean $change_since=0, false=new event,
* 0=all, > 0 time from which on the repetitions should be changed
* @param boolean $add_only =false
* @param boolean $add_only=false
* false = add AND delete participants if needed (full list of participants required in $participants)
* true = only add participants if needed, no participant will be deleted (participants to check/add required in $participants)
* @return int|boolean number of updated recurrences or false on error
@ -1958,8 +1737,8 @@ ORDER BY cal_user_type, cal_usre_id
* @param char $user_type 'u' regular user, 'r' resource, 'c' contact
* @param int $user_id
* @param int|char $status numeric status (defines) or 1-char code: 'R', 'U', 'T' or 'A'
* @param int $recur_date =0 date to change, or 0 = all since now
* @param string $role =null role to set if !is_null($role)
* @param int $recur_date=0 date to change, or 0 = all since now
* @param string $role=null role to set if !is_null($role)
* @return int number of changed recurrences
*/
function set_status($cal_id,$user_type,$user_id,$status,$recur_date=0,$role=null)
@ -2028,8 +1807,8 @@ ORDER BY cal_user_type, cal_usre_id
* @param int $cal_id
* @param int $start
* @param int $end
* @param boolean $exception=null true or false to set recure_exception flag, null leave it unchanged (new are by default no exception)
* @param array $participants uid => status pairs
* @param boolean $exception =null true or false to set recure_exception flag, null leave it unchanged (new are by default no exception)
*/
function recurrence($cal_id,$start,$end,$participants,$exception=null)
{
@ -2055,7 +1834,6 @@ ORDER BY cal_user_type, cal_usre_id
$type = '';
$id = null;
self::split_user($uid,$type,$id);
$quantity = $role = null;
self::split_status($status,$quantity,$role);
$this->db->insert($this->user_table,array(
'cal_status' => $status,
@ -2156,7 +1934,7 @@ ORDER BY cal_user_type, cal_usre_id
* alarm-id is a string of 'cal:'.$cal_id.':'.$alarm_nr, it is used as the job-id too
*
* @param int|array $cal_id
* @param boolean $update_cache =null true: re-read given $cal_id, false: delete given $cal_id
* @param boolean $update_cache=null true: re-read given $cal_id, false: delete given $cal_id
* @return array of (cal_id => array of) alarms with alarm-id as key
*/
function read_alarms($cal_id, $update_cache=null)
@ -2164,7 +1942,7 @@ ORDER BY cal_user_type, cal_usre_id
if (!isset(self::$alarm_cache) && is_array($cal_id))
{
self::$alarm_cache = array();
if (($jobs = $this->async->read('cal:%')))
if ($jobs = $this->async->read('cal:%'))
{
foreach($jobs as $id => $job)
{
@ -2214,7 +1992,7 @@ ORDER BY cal_user_type, cal_usre_id
private function read_alarms_nocache($cal_id)
{
if (($jobs = $this->async->read('cal:'.(int)$cal_id.':%')))
if ($jobs = $this->async->read('cal:'.(int)$cal_id.':%'))
{
foreach($jobs as $id => $job)
{
@ -2241,9 +2019,9 @@ ORDER BY cal_user_type, cal_usre_id
{
return False;
}
list($alarm_id,$job) = each($jobs);
list($id,$job) = each($jobs);
$alarm = $job['data']; // text, enabled
$alarm['id'] = $alarm_id;
$alarm['id'] = $id;
$alarm['time'] = $job['next'];
//echo "<p>read_alarm('$id')="; print_r($alarm); echo "</p>\n";
@ -2255,7 +2033,7 @@ ORDER BY cal_user_type, cal_usre_id
*
* @param int $cal_id Id of the calendar-entry
* @param array $alarm array with fields: text, owner, enabled, ..
* @param boolean $update_modified =true call update modified, default true
* @param boolean $update_modified=true call update modified, default true
* @return string id of the alarm
*/
function save_alarm($cal_id, $alarm, $update_modified=true)
@ -2306,7 +2084,7 @@ ORDER BY cal_user_type, cal_usre_id
//error_log(__METHOD__."($cal_id) ".function_backtrace());
if (($alarms = $this->read_alarms($cal_id)))
{
foreach(array_keys($alarms) as $id)
foreach($alarms as $id => $alarm)
{
$this->async->cancel_timer($id);
}
@ -2343,9 +2121,9 @@ ORDER BY cal_user_type, cal_usre_id
* Delete account hook
*
* @param array|int $old_user integer old user or array with keys 'account_id' and 'new_owner' as the deleteaccount hook uses it
* @param int $new_user =null
* @param int $new_user=null
*/
function deleteaccount($old_user, $new_user=null)
function deleteaccount($old_user, $newuser=null)
{
if (is_array($old_user))
{
@ -2409,9 +2187,9 @@ ORDER BY cal_user_type, cal_usre_id
* get stati of all recurrences of an event for a specific participant
*
* @param int $cal_id
* @param int $uid =null participant uid; if == null return only the recur dates
* @param int $start =0 if != 0: startdate of the search/list (servertime)
* @param int $end =0 if != 0: enddate of the search/list (servertime)
* @param int $uid=null participant uid; if == null return only the recur dates
* @param int $start=0 if != 0: startdate of the search/list (servertime)
* @param int $end=0 if != 0: enddate of the search/list (servertime)
*
* @return array recur_date => status pairs (index 0 => main status)
*/
@ -2434,20 +2212,19 @@ ORDER BY cal_user_type, cal_usre_id
if (is_null($uid)) return $participant_status;
$user_type = $user_id = null;
self::split_user($uid, $user_type, $user_id);
$where2 = array(
$where = array(
'cal_id' => $cal_id,
'cal_user_type' => $user_type ? $user_type : 'u',
'cal_user_id' => $user_id,
);
if ($start != 0 && $end == 0) $where2[] = '(cal_recur_date = 0 OR cal_recur_date >= ' . (int)$start . ')';
if ($start == 0 && $end != 0) $where2[] = '(cal_recur_date = 0 OR cal_recur_date <= ' . (int)$end . ')';
if ($start != 0 && $end == 0) $where[] = '(cal_recur_date = 0 OR cal_recur_date >= ' . (int)$start . ')';
if ($start == 0 && $end != 0) $where[] = '(cal_recur_date = 0 OR cal_recur_date <= ' . (int)$end . ')';
if ($start != 0 && $end != 0)
{
$where2[] = '(cal_recur_date = 0 OR (cal_recur_date >= ' . (int)$start .
$where[] = '(cal_recur_date = 0 OR (cal_recur_date >= ' . (int)$start .
' AND cal_recur_date <= ' . (int)$end . '))';
}
foreach ($this->db->select($this->user_table,'cal_recur_date,cal_status,cal_quantity,cal_role',$where2,
foreach ($this->db->select($this->user_table,'cal_recur_date,cal_status,cal_quantity,cal_role',$where,
__LINE__,__FILE__,false,'','calendar') as $row)
{
$status = self::combine_status($row['cal_status'],$row['cal_quantity'],$row['cal_role']);
@ -2460,7 +2237,7 @@ ORDER BY cal_user_type, cal_usre_id
* get all participants of an event
*
* @param int $cal_id
* @param int $recur_date =0 gives participants of this recurrence, default 0=all
* @param int $recur_date=0 gives participants of this recurrence, default 0=all
*
* @return array participants
*/
@ -2516,9 +2293,9 @@ ORDER BY cal_user_type, cal_usre_id
*
* @param array $event Recurring Event.
* @param string tz_id=null timezone for exports (null for event's timezone)
* @param int $start =0 if != 0: startdate of the search/list (servertime)
* @param int $end =0 if != 0: enddate of the search/list (servertime)
* @param string $filter ='all' string filter-name: all (not rejected),
* @param int $start=0 if != 0: startdate of the search/list (servertime)
* @param int $end=0 if != 0: enddate of the search/list (servertime)
* @param string $filter='all' string filter-name: all (not rejected),
* accepted, unknown, tentative, rejected, delegated
* rrule return array of remote exceptions in servertime
* tz_rrule/tz_only, return (only by) timezone transition affected entries
@ -2687,9 +2464,9 @@ ORDER BY cal_user_type, cal_usre_id
*/
function status_pseudo_exception($cal_id, $recur_date, $filter)
{
static $recurrence_zero=null;
static $cached_id=null;
static $user=null;
static $recurrence_zero;
static $cached_id;
static $user;
if (!isset($cached_id) || $cached_id != $cal_id)
{
@ -2818,14 +2595,14 @@ ORDER BY cal_user_type, cal_usre_id
}
$timezone = self::$tz_cache[$event['tzid']];
}
$start_time = new egw_time($event['start'],egw_time::$server_timezone);
$start_time->setTimezone($timezone);
$end_time = new egw_time($event['end'],egw_time::$server_timezone);
$end_time->setTimezone($timezone);
$start = new egw_time($event['start'],egw_time::$server_timezone);
$start->setTimezone($timezone);
$end = new egw_time($event['end'],egw_time::$server_timezone);
$end->setTimezone($timezone);
//error_log(__FILE__.'['.__LINE__.'] '.__METHOD__.
// '(): ' . $start . '-' . $end);
$start = egw_time::to($start_time,'array');
$end = egw_time::to($end_time,'array');
$start = egw_time::to($start,'array');
$end = egw_time::to($end,'array');
return !$start['hour'] && !$start['minute'] && $end['hour'] == 23 && $end['minute'] == 59;
@ -2860,9 +2637,9 @@ ORDER BY cal_user_type, cal_usre_id
* Updates the modification timestamp to force an etag, ctag and sync-token change
*
* @param int $id event id
* @param int|boolean $update_master =false id of series master or true, to update series master too
* @param int $time =null new timestamp, default current (server-)time
* @param int $modifier =null uid of the modifier, default current user
* @param int|boolean $update_master=false id of series master or true, to update series master too
* @param int $time=null new timestamp, default current (server-)time
* @param int $modifier=null uid of the modifier, default current user
*/
function updateModified($id, $update_master=false, $time=null, $modifier=null)
{

View File

@ -5,7 +5,7 @@
* @link http://www.egroupware.org
* @package calendar
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @copyright (c) 2004-15 by RalfBecker-At-outdoor-training.de
* @copyright (c) 2004-9 by RalfBecker-At-outdoor-training.de
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
@ -110,10 +110,6 @@ class calendar_ui
* @var string $view menuaction of the selected view
*/
var $view_menuaction;
/**
* @var boolean test checkbox checked
*/
var $test;
/**
* @var int $first first day of the shown view
@ -306,7 +302,6 @@ class calendar_ui
'planner_days'=> 0, // full month
'view' => ($this->bo->cal_prefs['defaultcalendar']?$this->bo->cal_prefs['defaultcalendar']:'day'), // use pref, if exists else use the dayview
'listview_days'=> '', // no range
'test' => 'false',
) as $state => $default)
{
if (isset($set_states[$state]))
@ -752,6 +747,12 @@ class calendar_ui
$file[++$n] = array('text' => $jscalendar,'no_lang' => True,'link' => False,'icon' => False);
// set a baseurl for selectboxes, if we are not running inside calendar (eg. prefs or admin)
if (substr($_GET['menuaction'],0,9) != 'calendar.')
{
$baseurl = egw::link('/index.php',array('menuaction'=>'calendar.calendar_uiviews.index'),false);
}
// Category Selection
$cat_id = explode(',',$this->cat_id);
@ -827,8 +828,6 @@ class calendar_ui
$filter_options .= '<option value="deleted"'.($this->filter == 'deleted' ? ' selected="selected"' : '').' title="'.lang('Show events that have been deleted').'">'.lang('Deleted').'</options>'."\n";
}
$file[] = $this->_select_box('Filter','filter',$filter_options,'86%');
// enable this to get checkbox setting $this->test eg. usable to trigger different code in calendar_so
//$file[count($file)-1]['text'] .= html::checkbox('test', $this->test==='true', 'true', 'id="calendar_test"');
// Merge print
if ($GLOBALS['egw_info']['user']['preferences']['calendar']['document_dir'])
@ -876,7 +875,7 @@ class calendar_ui
{
$file = Array(
'Configuration'=>egw::link('/index.php','menuaction=admin.uiconfig.index&appname=calendar'),
'Custom Fields'=>egw::link('/index.php','menuaction=admin.customfields.index&appname=calendar'),
'Custom Fields'=>egw::link('/index.php','menuaction=admin.customfields.edit&appname=calendar'),
'Holiday Management'=>egw::link('/index.php','menuaction=calendar.uiholiday.admin'),
'Global Categories' =>egw::link('/index.php','menuaction=admin.admin_categories.index&appname=calendar'),
);

View File

@ -218,6 +218,8 @@ class calendar_uiforms extends calendar_ui
if ($content['recur_exception']['delete_exception'])
{
list($date) = each($content['recur_exception']['delete_exception']);
// eT2 converts time to
if (!is_numeric($date)) $date = egw_time::to (str_replace('Z','', $date), 'ts');
unset($content['recur_exception']['delete_exception']);
if (($key = array_search($date,$content['recur_exception'])) !== false)
{
@ -938,13 +940,14 @@ class calendar_uiforms extends calendar_ui
break;
case 'add_alarm':
$time = $content['start'];
$time = ($content['actual_date'] ? $content['actual_date'] : $content['start']);
$offset = $time - $content['new_alarm']['date'];
if ($event['recur_type'] != MCAL_RECUR_NONE &&
($next_occurrence = $this->bo->read($event['id'], $this->bo->now_su + $offset, true)) &&
$time < $next_occurrence['start'])
{
$content['new_alarm']['date'] = $next_occurrence['start'] - $offset;
$time = $next_occurrence['start'];
}
if ($this->bo->check_perms(EGW_ACL_EDIT,!$content['new_alarm']['owner'] ? $event : 0,$content['new_alarm']['owner']))
{
@ -1475,6 +1478,11 @@ class calendar_uiforms extends calendar_ui
"+'&exec[event_id]=".$content['id']."'"."+'&exec[show_conflict]=".
(($this->cal_prefs['defaultresource_sel'] == 'resources_without_conflict')? '0':'1')."'";
}
// check if current pref. is an allowed application for the user
if (!isset($GLOBALS['egw_info']['user']['apps'][$content['participants']['resource']['default_sel']]))
{
$content['participants']['resource']['default_sel'] = 'home-accounts';
}
}
$content['participants']['status_date'] = $preserv['actual_date'];
$preserv = array_merge($preserv,$content);

View File

@ -294,11 +294,7 @@ class calendar_uilist extends calendar_ui
// do we need to query custom fields and which
// Check stored preference if selectcols isn't available (ie: first call)
$select_cols = $params['selectcols'] ? $params['selectcols'] : $GLOBALS['egw_info']['user']['preferences']['calendar']['nextmatch-calendar.list.rows'];
if(!is_array($params['selectcols']))
{
$select_cols = explode(',',$select_cols);
}
$select_cols = explode(',',$params['selectcols'] ? $params['selectcols'] : $GLOBALS['egw_info']['user']['preferences']['calendar']['nextmatch-calendar.list.rows']);
if (in_array('cfs',$select_cols))
{
$cfs = array();
@ -819,7 +815,7 @@ class calendar_uilist extends calendar_ui
*
* @return array see nextmatch_widget::get_actions()
*/
public function get_actions()
private function get_actions()
{
$actions = array(
'add' => array(

View File

@ -5,7 +5,7 @@
* @link http://www.egroupware.org
* @package calendar
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @copyright (c) 2004-15 by RalfBecker-At-outdoor-training.de
* @copyright (c) 2004-13 by RalfBecker-At-outdoor-training.de
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
@ -101,13 +101,13 @@ class calendar_uiviews extends calendar_ui
* @var boolean
*/
var $use_time_grid=true;
/**
* Pref value of use_time_grid preference
* @var string
*/
var $use_time_grid_pref = '';
/**
* Can we display the whole day in a timeGrid of the size of the workday and just scroll to workday start
*
@ -145,6 +145,7 @@ class calendar_uiviews extends calendar_ui
*/
function __construct($set_states=null)
{
parent::__construct(false,$set_states); // call the parent's constructor
$this->extraRowsOriginal = $this->extraRows; //save original extraRows value
@ -170,12 +171,11 @@ class calendar_uiviews extends calendar_ui
'users' => explode(',',$this->owner),
'filter' => $this->filter,
'daywise' => True,
'use_so_events' => $this->test === 'true',
);
$this->holidays = $this->bo->read_holidays($this->year);
$this->check_owners_access();
//ATM: Forces use_time_grid preference to use all views by ignoring the preference value
//@TODO: the whole use_time_grid preference should be removed (including dependent vars)
// after we decided that is not neccessary to have it at all
@ -577,7 +577,7 @@ class calendar_uiviews extends calendar_ui
$width = $this->time2pos($event['end_m'] - $event['start_m']);
$color = $data['color'] ? $data['color'] : 'gray';
$tooltip = html::htmlspecialchars($data['tooltip'], true); // true=need double-encoding, as it is transported as attribute!
$tooltip = html::htmlspecialchars($data['tooltip']);
$content .= $indent.'<div class="calendar_plannerEvent'.($data['private'] ? 'Private' : '').
'" data-tooltip ="'.$tooltip .
'" style="position: absolute; left: '.$left.'%; width: '.$width.'%; height: '.
@ -801,7 +801,7 @@ class calendar_uiviews extends calendar_ui
{
$this->use_time_grid = $days != 4 && !in_array($this->use_time_grid_pref,array('day','day4')) ||
$days == 4 && $this->use_time_grid_pref != 'day';
if (!$days)
{
$days = isset($_GET['days']) ? $_GET['days'] : $this->cal_prefs['days_in_weekview'];
@ -2303,7 +2303,7 @@ class calendar_uiviews extends calendar_ui
asort($users);
asort($resources);
}
return $users+$resources;
}

View File

@ -54,10 +54,8 @@
$GLOBALS['egw_info']['flags']['app_header'] = $GLOBALS['egw_info']['apps']['calendar']['title'].' - '.lang('Holiday Management');
$GLOBALS['egw']->template->set_var('help_msg',lang('<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.',
'<b>'.$GLOBALS['egw_info']['user']['preferences']['common']['country'].'</b>','<a href="'.$GLOBALS['egw']->link('/index.php',array(
'menuaction' => 'preferences.uisettings.index',
'appname' => 'preferences',
)).'">'.lang('common preferences').'</a>',$GLOBALS['egw_info']['server']['auto_load_holidays'] ? '' : '<b>'.lang('not').'</b>',
'<b>'.$GLOBALS['egw_info']['user']['preferences']['common']['country'].'</b>',lang('common preferences'),
$GLOBALS['egw_info']['server']['auto_load_holidays'] ? '' : '<b>'.lang('not').'</b>',
'<b>'.$GLOBALS['egw_info']['server']['holidays_url_path'].'</b>',
'<a href="'.$GLOBALS['egw']->link('/index.php',array(
'menuaction' => 'admin.uiconfig.index',

View File

@ -33,7 +33,7 @@ app.classes.calendar = AppJS.extend(
init: function()
{
// make calendar object available, even if not running in top window, as sidebox does
if (window.top !== window && !egw(window).is_popup())
if (window.top !== window)
{
// we have to explicitly delete old object or IE11 complains about accessing an already freed script
delete window.top.app.calendar;
@ -181,7 +181,7 @@ app.classes.calendar = AppJS.extend(
{
// F.F can not handle to style correctly an iframe which is hidden (display:none), therefore we need to
// bind a handler to refresh the calendar views after it shows up
iframe.one('show',function(){egw_refresh('','calendar');});
iframe.one('show',function(){egw_refresh('','calendar');})
}
else
{
@ -979,7 +979,7 @@ app.classes.calendar = AppJS.extend(
alert(this.egw.lang('The original calendar edit popup is closed!'));
}
}
egw(window).close();
window.close();
},
/**
@ -1042,8 +1042,7 @@ app.classes.calendar = AppJS.extend(
*/
cal_open: function(_action, _senders)
{
var js_integration_data = _action.parent.data.nextmatch.options.settings.js_integration_data || this.et2.getArrayMgr('content').data.nm.js_integration_data;
var js_integration_data = this.et2.getArrayMgr('content').data.nm.js_integration_data;
var id = _senders[0].id;
var matches = id.match(/^(?:calendar::)?([0-9]+):([0-9]+)$/);
var backup = _action.data;
@ -1247,14 +1246,6 @@ app.classes.calendar = AppJS.extend(
jQuery.extend(state, this._super.apply(this, arguments)); // call default implementation
}
// Don't store current user in state to allow admins to create favourites for all
// Should make no difference for normal users.
if(state.owner == egw.user('account_id'))
{
// 0 is always the current user, so if an admin creates a default favorite,
// it will work for other users too.
state.owner = 0;
}
return state;
},

View File

@ -1,38 +0,0 @@
/*
* Egroupware - Calendar javascript for home favorite portlet(s)
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package calendar
* @subpackage home
* @link http://www.egroupware.org
* @author Nathan Gray
* @version $Id$
*/
/**
* Custom code for calendar favorite home page portlets.
* Since calendar doesn't use etemplate2, as well as having multiple different
* views, we need some custom handling to detect and handle refreshes.
*
* Note we put the class in home.
*/
app.classes.home.calendar_favorite_portlet = app.classes.home.home_favorite_portlet.extend({
observer: function(_msg, _app, _id, _type, _msg_type, _targetapp)
{
if(this.portlet.getWidgetById('nm'))
{
// List view, we can just update it
this.portlet.getWidgetById('nm').refresh(_id,_type);
}
else
{
// No intelligence since we don't have access to the state
// (app.calendar.getState() is for the calendar tab, not home)
// just refresh on every calendar or infolog change
if(_app == 'calendar' || _app == 'infolog')
{
app.home.refresh(this.portlet.id);
}
}
}
});

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