forked from extern/egroupware
Compare commits
121 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4e3723fd68 | ||
|
5cc84ffe50 | ||
|
5db0e5c6e6 | ||
|
68ec2e8f30 | ||
|
336072f8d2 | ||
|
00e706cdfb | ||
|
f12f47aa4a | ||
|
fa914a5d60 | ||
|
35729b291c | ||
|
c27c74e94d | ||
|
c62b555241 | ||
|
eb1e45e31e | ||
|
af74997588 | ||
|
171064c0c1 | ||
|
0ee55af1bd | ||
|
71e5e2939e | ||
|
13b60fe0d7 | ||
|
0316d68bec | ||
|
3abb719bfa | ||
|
ea9e56ce36 | ||
|
54e465e6c0 | ||
|
7c48fc0e03 | ||
|
aaaa25e43b | ||
|
ded6d098fb | ||
|
a78f2c874b | ||
|
01902cc40e | ||
|
c6505acdc6 | ||
|
eea3190f4c | ||
|
c5cbc573f8 | ||
|
d057db1607 | ||
|
45c3daf713 | ||
|
167116e1b0 | ||
|
891f46328d | ||
|
95917e3fd2 | ||
|
d6d506103f | ||
|
362f97fb5b | ||
|
ddd37756a2 | ||
|
66894d5f0d | ||
|
b249f7c4c7 | ||
|
6f3c2c286f | ||
|
be592bb8c4 | ||
|
da31446897 | ||
|
f5871177c8 | ||
|
f5e9f6b55a | ||
|
d371fc76ce | ||
|
7e9dcd422e | ||
|
791e03b44a | ||
|
5c36b0b810 | ||
|
3790f8f12d | ||
|
85eab7c6a1 | ||
|
29666faaeb | ||
|
539477a0e3 | ||
|
a3919ddba8 | ||
|
3c88fadba0 | ||
|
61b140328d | ||
|
83fb3fc05d | ||
|
45048d7500 | ||
|
1945463c6d | ||
|
90d468c9dd | ||
|
d2945ce3b0 | ||
|
294546bf2d | ||
|
24e60d83e4 | ||
|
193a5c49e7 | ||
|
1f7d2964c9 | ||
|
2a43aea1e2 | ||
|
3258b766f4 | ||
|
9f867d3632 | ||
|
7c9a9640e4 | ||
|
da98232811 | ||
|
85e0e870f7 | ||
|
6101f31ce0 | ||
|
887493f06c | ||
|
8852bb1a77 | ||
|
6a90480548 | ||
|
3b5087753d | ||
|
39f0559936 | ||
|
13d77d8eb8 | ||
|
6541a4193f | ||
|
1ce0b96de0 | ||
|
861ea3ca8f | ||
|
2917358efe | ||
|
64e8c427ab | ||
|
50fc723810 | ||
|
e39f2accc9 | ||
|
0992e72cda | ||
|
36d971867f | ||
|
ec5e5080c6 | ||
|
7134b9716e | ||
|
6670964d01 | ||
|
1ab93cf856 | ||
|
7f63eb36af | ||
|
f46358f45a | ||
|
a8fb9082e9 | ||
|
cd67495c8b | ||
|
aacc0caa7b | ||
|
345dd2b573 | ||
|
72330607d4 | ||
|
30f35f01fa | ||
|
f2d6cfdf0a | ||
|
ccc3a4037b | ||
|
fc45c392c3 | ||
|
1ddcb2dd2d | ||
|
5c5def1219 | ||
|
7e95b71af4 | ||
|
fc19b296ff | ||
|
e64c2f164d | ||
|
9c007151d7 | ||
|
ee807027af | ||
|
b64e336546 | ||
|
c13b45bc41 | ||
|
2f7d27f56a | ||
|
3433e2bf13 | ||
|
bdb79987a1 | ||
|
a75843d7fd | ||
|
b733595ea1 | ||
|
dc5ff9cf3e | ||
|
70751405de | ||
|
3b2d97877a | ||
|
fdb6ece069 | ||
|
0caf6d14d9 | ||
|
e67470ae66 |
@ -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
|
||||
?>
|
||||
|
@ -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']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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(
|
||||
|
@ -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';
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
117
addressbook/inc/hook_home.inc.php
Normal file
117
addressbook/inc/hook_home.inc.php
Normal 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";
|
||||
}
|
@ -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;
|
||||
}
|
||||
});
|
||||
|
@ -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 адрес
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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!
|
||||
|
@ -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 <none> 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
|
||||
|
@ -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 ໝວດທົ່ວໄປ
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 <none> 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
|
||||
|
@ -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.
|
||||
|
@ -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, однако не смешивайте разные типы при импорте
|
||||
|
@ -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.
|
||||
|
@ -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?
|
||||
|
@ -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 通訊錄在不清楚住址格式的國家要使用的住址格式,如果已經知道,它會使用獨立的設定。
|
||||
|
@ -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 在哪里添加邮件地址
|
||||
|
@ -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';
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
|
@ -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>
|
||||
|
@ -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 & 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>
|
@ -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>
|
@ -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>
|
||||
|
@ -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;
|
||||
|
@ -394,6 +394,7 @@ button#tracker-index-addressbook_add{
|
||||
##############################################*/
|
||||
|
||||
div#addressbook-edit.et2_container {
|
||||
width: 842px;
|
||||
}
|
||||
|
||||
// person image
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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')
|
||||
{
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
|
112
admin/js/app.js
112
admin/js/app.js
@ -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);
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -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 Старт
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 !
|
||||
|
@ -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 σώστε την κατηγορία και επιστρέψτε πίσω στη λίστα
|
||||
|
@ -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!
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 ذخیره دسته و بازگشت به فهرست
|
||||
|
@ -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
|
||||
|
@ -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 !
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 שמור את הקטגוריה וחזור לרשימה
|
||||
|
@ -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 グローバルカテゴリの制限
|
||||
|
@ -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 카테고리를 저장하고 목록으로 돌아가기
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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ę
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 Записать категорию
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 Повідомлення змінено
|
||||
|
@ -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 儲存類別並且回到列表
|
||||
|
@ -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 保存类别并返回列表
|
||||
|
126
admin/remote.php
126
admin/remote.php
@ -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();
|
||||
}
|
@ -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;
|
||||
}
|
@ -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 (&lt;= 20 chars), changeing it makes existing data unavailible" value="Name"/>
|
||||
<textbox statustext="the name used internaly (<= 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>
|
@ -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&appname='+widget.getArrayMgr('content').getRoot().getEntry('nm[appname]')+'&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 (<= 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 <id>[=<label>]" 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 (<= 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>
|
||||
|
@ -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;
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
|
||||
@import (reference) "../../../pixelegg/less/definitions.less";
|
||||
@import (reference) "../default/app.css";
|
||||
@import (less) "../default/app.css";
|
||||
|
||||
|
||||
@media all {
|
||||
|
2120
api/src/Vfs.php
2120
api/src/Vfs.php
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -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";
|
||||
}*/
|
@ -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 ( );
|
||||
}
|
@ -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']);
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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']);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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));
|
||||
|
@ -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'),
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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'),
|
||||
);
|
||||
|
@ -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);
|
||||
|
@ -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(
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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',
|
||||
|
@ -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;
|
||||
},
|
||||
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user