diff --git a/addressbook/inc/class.socontacts_sql.inc.php b/addressbook/inc/class.socontacts_sql.inc.php index bd44cf8c20..2762fc713c 100644 --- a/addressbook/inc/class.socontacts_sql.inc.php +++ b/addressbook/inc/class.socontacts_sql.inc.php @@ -145,7 +145,10 @@ class socontacts_sql extends so_sql else // by adr_one_location or org_unit { // org total for more then one $by - $append = "GROUP BY org_name HAVING {$by}_count > 1 ORDER BY org_name $sort"; + $by_expr = $by == 'org_unit_count' ? "COUNT(DISTINCT CASE WHEN org_unit IS NULL THEN '' ELSE org_unit END)" : + "COUNT(DISTINCT CASE WHEN adr_one_locality IS NULL THEN '' ELSE adr_one_locality END)"; +// $append = "GROUP BY org_name HAVING {$by}_count > 1 ORDER BY org_name $sort"; + $append = "GROUP BY org_name HAVING $by_expr > 1 ORDER BY org_name $sort"; parent::search($param['search'],array('org_name'),$append,array( "NULL AS $by", 'COUNT(org_name) AS org_count', @@ -292,7 +295,7 @@ class socontacts_sql extends so_sql case 'boolean': // only return the egw_addressbook columns, to not generate dublicates by the left join // and to not return the NULL for contact_{id|owner} of not found custom fields! - $only_keys = 'DISTINCT '.$this->table_name.'.'.($only_keys ? 'contact_id' : '*'); + $only_keys = 'DISTINCT '.$this->table_name.'.'.($only_keys ? 'contact_id AS contact_id' : '*'); break; case 'string': $only_keys = explode(',',$only_keys); @@ -413,7 +416,7 @@ class socontacts_sql extends so_sql * @param string $name list-name * @param int $owner user- or group-id * @param array $contacts=array() contacts to add - * @return list_id or false on error + * @return int/boolean integer list_id, true if the list already exists or false on error */ function add_list($name,$owner,$contacts=array()) { @@ -424,7 +427,7 @@ class socontacts_sql extends so_sql 'list_owner' => $owner, ),__LINE__,__FILE__) && $this->db->next_record()) { - return $this->db->f('list_id'); // return existing list-id + return true; // return existing list-id } if (!$this->db->insert($this->lists_table,array( 'list_name' => $name, diff --git a/addressbook/inc/class.uicontacts.inc.php b/addressbook/inc/class.uicontacts.inc.php index a337fb7c06..a71ab5a42a 100644 --- a/addressbook/inc/class.uicontacts.inc.php +++ b/addressbook/inc/class.uicontacts.inc.php @@ -80,8 +80,10 @@ class uicontacts extends bocontacts // our javascript // to be moved in a seperate file if rewrite is over - $GLOBALS['egw_info']['flags']['java_script'] .= $this->js(); - + if (strpos($GLOBALS['egw_info']['flags']['java_script'],'add_new_list') === false) + { + $GLOBALS['egw_info']['flags']['java_script'].= $this->js(); + } $this->config =& $GLOBALS['egw_info']['server']; } @@ -140,7 +142,12 @@ class uicontacts extends bocontacts } elseif($_GET['add_list']) { - if (($list = $this->add_list($_GET['add_list'],$_GET['owner']?$_GET['owner']:$this->user))) + $list = $this->add_list($_GET['add_list'],$_GET['owner']?$_GET['owner']:$this->user); + if ($list === true) + { + $msg = lang('List already exists!'); + } + elseif ($list) { $msg = lang('List created'); } @@ -152,6 +159,7 @@ class uicontacts extends bocontacts $preserv = array( 'do_email' => $do_email, ); + $to = $content['nm']['to']; $content = array( 'msg' => $msg ? $msg : $_GET['msg'], ); @@ -180,7 +188,14 @@ class uicontacts extends bocontacts 'do_email' => $do_email, 'default_cols' => '!cat_id,contact_created_contact_modified', 'filter2_onchange' => "if(this.value=='add') { add_new_list(document.getElementById(form::name('filter')).value); this.value='';} else this.form.submit();", + 'manual' => $do_email ? ' ' : false, // space for the manual icon ); + if ($do_email) + { + $content['nm']['filter2_onchange'] = str_replace('this.form.submit();', + "{ if (this.value && confirm('Add business email of whole distribution list?')) add_whole_list(this.value); else this.form.submit(); }", + $content['nm']['filter2_onchange']); + } // use the state of the last session stored in the user prefs if (($state = @unserialize($this->prefs[$do_email ? 'email_state' : 'index_state']))) { @@ -199,6 +214,10 @@ class uicontacts extends bocontacts $content['nm']['to'] = 'to'; $content['nm']['search'] = '@'; } + else + { + $content['nm']['to'] = $to; + } $content['nm']['header_left'] = 'addressbook.email.left'; } // Organisation stuff is not (yet) availible with ldap @@ -215,6 +234,7 @@ class uicontacts extends bocontacts $sel_options['action'] = array(); if ($do_email) { + $GLOBALS['egw_info']['flags']['include_xajax'] = true; $sel_options['action'] = array( 'email' => lang('Add %1',lang('business email')), 'email_home' => lang('Add %1',lang('home email')), @@ -290,53 +310,43 @@ class uicontacts extends bocontacts */ function emailpopup($content=null,$msg=null) { - switch($_POST['exec']['nm']['to']) { - case 'to': - case 'bcc': - case 'cc': - $to = $_POST['exec']['nm']['to']; - break; - default: - $to = 'to'; - } - - if ($_GET['compat']) // 1.2 felamimail or old email + if (strpos($GLOBALS['egw_info']['flags']['java_script'],'addEmail') === false) { - $handler = "if (opener.document.doit[to].value != '') + if ($_GET['compat']) // 1.2 felamimail or old email + { + $handler = "if (opener.document.doit[to].value != '') { opener.document.doit[to].value += ','; } opener.document.doit[to].value += email"; - } - else // 1.3+ felamimail - { - $handler = 'opener.addEmail(to,email)'; - } - - $GLOBALS['egw_info']['flags']['java_script'] .= " + } + else // 1.3+ felamimail + { + $handler = 'opener.addEmail(to,email)'; + } + $GLOBALS['egw_info']['flags']['java_script'].= " "; + } return $this->index($content,$msg,true); } @@ -375,6 +385,34 @@ class uicontacts extends bocontacts )); } + function ajax_add_whole_list($list) + { + $query = $GLOBALS['egw']->session->appsession('email','addressbook'); + $query['filter2'] = (int)$list; + $action_msg = lang('%1 added',lang('Business email')); + $this->action('email',array(),true,$success,$failed,$action_msg,$query,$msg); + + $response =& new xajaxResponse(); + + if ($success) $response->addScript($GLOBALS['egw']->js->body['onLoad']); + + // close window only if no errors AND something added + if ($failed || !$success) + { + if (!$msg) $msg = $failed ? lang('%1 contact(s) %2, %3 failed because of insufficent rights !!!',$success,$action_msg,$failed) : + lang('%1 contact(s) %2',$success,$action_msg); + + $response->addScript("alert('".addslashes($msg)."')"); + // reset the filter + $response->addScript("document.getElementById('exec[nm][filter2]').value='';"); + } + else + { + $response->addScript('window.close();'); + } + return $response->getXML(); + } + /** * apply an action to multiple contacts * @@ -384,7 +422,7 @@ class uicontacts extends bocontacts * @param int &$success number of succeded actions * @param int &$failed number of failed actions (not enought permissions) * @param string &$action_msg translated verb for the actions, to be used in a message like %1 contacts 'deleted' - * @param string $session_name 'index' or 'email' depending if we are in the main list or the popup + * @param string/array $session_name 'index' or 'email', or array with session-data depending if we are in the main list or the popup * @return boolean true if all actions succeded, false otherwise */ function action($action,$checked,$use_all,&$success,&$failed,&$action_msg,$session_name,&$msg) @@ -395,7 +433,7 @@ class uicontacts extends bocontacts if ($use_all || in_array($action,array('remove_from_list','delete_list'))) { // get the whole selection - $query = $GLOBALS['egw']->session->appsession($session_name,'addressbook'); + $query = is_array($session_name) ? $session_name : $GLOBALS['egw']->session->appsession($session_name,'addressbook'); if ($use_all) { @@ -1519,7 +1557,6 @@ $readonlys['button[vcard]'] = true; } $GLOBALS['egw_info']['flags']['include_xajax'] = true; - $GLOBALS['egw_info']['flags']['java_script'] .= $this->js(); $GLOBALS['egw_info']['flags']['java_script'] .= ""; $GLOBALS['egw_info']['etemplate']['advanced_search'] = true; @@ -1681,6 +1718,11 @@ $readonlys['button[vcard]'] = true; xajax_doXMLHTTP("addressbook.uicontacts.ajax_setFileasOptions",prefix,given,middle,family,suffix,org); } + function add_whole_list(list) + { + xajax_doXMLHTTP("addressbook.uicontacts.ajax_add_whole_list",list); + } + function setOptions(options_str) { var options = options_str.split("\\\\b"); @@ -1711,7 +1753,7 @@ $readonlys['button[vcard]'] = true; if (name) { document.location.href = "'.$GLOBALS['egw']->link('/index.php',array( - 'menuaction'=>'addressbook.uicontacts.index', + 'menuaction'=>$_GET['menuaction'],//'addressbook.uicontacts.index', 'add_list'=>'', )).'"+encodeURIComponent(name)+"&owner="+owner; } diff --git a/addressbook/setup/etemplates.inc.php b/addressbook/setup/etemplates.inc.php index 2cb83c7ecd..6c85a2887e 100755 --- a/addressbook/setup/etemplates.inc.php +++ b/addressbook/setup/etemplates.inc.php @@ -2,7 +2,7 @@ /** * eGroupWare - eTemplates for Application addressbook * http://www.egroupware.org - * generated by soetemplate::dump4setup() 2007-05-03 10:18 + * generated by soetemplate::dump4setup() 2007-05-25 20:19 * * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @package addressbook @@ -134,7 +134,7 @@ $templ_data[] = array('name' => 'addressbook.importexport_wizzard_fieldmaping',' $templ_data[] = array('name' => 'addressbook.importexport_wizzard_samplefile','template' => '','lang' => '','group' => '0','version' => '0.0.1','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";}}i:2;a:1:{s:1:"A";a:2:{s:4:"type";s:4:"file";s:4:"name";s:4:"file";}}}s:4:"rows";i:2;s:4:"cols";i:1;}}','size' => '','style' => '','modified' => '1146650510',); -$templ_data[] = array('name' => 'addressbook.index','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:3:{s:2:"h1";s:6:",!@msg";s:2:"h2";s:2:",1";s:2:"c4";s:7:"noPrint";}i:1;a:2:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:5:"align";s:6:"center";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:22:"addressbook.index.left";}s:1:"B";a:3:{s:4:"type";s:8:"template";s:5:"align";s:5:"right";s:4:"name";s:23:"addressbook.index.right";}}i:3;a:2:{s:1:"A";a:4:{s:4:"type";s:9:"nextmatch";s:4:"size";s:22:"addressbook.index.rows";s:4:"name";s:2:"nm";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:4;a:2:{s:1:"A";a:5:{s:4:"type";s:6:"button";s:4:"name";s:3:"add";s:5:"label";s:3:"Add";s:4:"help";s:17:"Add a new contact";s:7:"onclick";s:164:"window.open(egw::link(\'/index.php\',\'menuaction=addressbook.uicontacts.edit\'),\'_blank\',\'dependent=yes,width=850,height=440,scrollbars=yes,status=yes\'); return false;";}s:1:"B";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:8:"checkbox";s:4:"name";s:7:"use_all";s:5:"label";s:11:"whole query";s:8:"onchange";s:126:"if (this.checked==true && !confirm(\'Apply the action on the whole query, NOT only the shown contacts!!!\')) this.checked=false;";s:4:"help";s:67:"Apply the action on the whole query, NOT only the shown contacts!!!";}i:2;a:6:{s:4:"type";s:6:"select";s:8:"onchange";s:60:"if (this.value != \'\') { this.form.submit(); this.value=\'\'; }";s:4:"size";s:45:"Select an action or addressbook to move to...";s:7:"no_lang";s:1:"1";s:4:"name";s:6:"action";s:4:"help";s:42:"Select an action or addressbook to move to";}i:3;a:8:{s:4:"type";s:6:"button";s:4:"size";s:9:"arrow_ltr";s:5:"label";s:9:"Check all";s:4:"name";s:9:"check_all";s:4:"help";s:9:"Check all";s:7:"onclick";s:70:"toggle_all(this.form,form::name(\'nm[rows][checked][]\')); return false;";s:6:"needed";s:1:"1";s:4:"span";s:14:",checkAllArrow";}}}}s:4:"rows";i:4;s:4:"cols";i:2;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1145194921',); +$templ_data[] = array('name' => 'addressbook.index','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:5:{i:0;a:3:{s:2:"h1";s:6:",!@msg";s:2:"h2";s:2:",1";s:2:"c4";s:7:"noPrint";}i:1;a:2:{s:1:"A";a:5:{s:4:"type";s:5:"label";s:4:"span";s:13:"all,redItalic";s:5:"align";s:6:"center";s:4:"name";s:3:"msg";s:7:"no_lang";s:1:"1";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:2:{s:4:"type";s:8:"template";s:4:"name";s:22:"addressbook.index.left";}s:1:"B";a:3:{s:4:"type";s:8:"template";s:5:"align";s:5:"right";s:4:"name";s:27:"addressbook.index.right_add";}}i:3;a:2:{s:1:"A";a:4:{s:4:"type";s:9:"nextmatch";s:4:"size";s:22:"addressbook.index.rows";s:4:"name";s:2:"nm";s:4:"span";s:3:"all";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:4;a:2:{s:1:"A";a:5:{s:4:"type";s:6:"button";s:4:"name";s:3:"add";s:5:"label";s:3:"Add";s:4:"help";s:17:"Add a new contact";s:7:"onclick";s:164:"window.open(egw::link(\'/index.php\',\'menuaction=addressbook.uicontacts.edit\'),\'_blank\',\'dependent=yes,width=850,height=440,scrollbars=yes,status=yes\'); return false;";}s:1:"B";a:6:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";s:5:"align";s:5:"right";i:1;a:5:{s:4:"type";s:8:"checkbox";s:4:"name";s:7:"use_all";s:5:"label";s:11:"whole query";s:8:"onchange";s:126:"if (this.checked==true && !confirm(\'Apply the action on the whole query, NOT only the shown contacts!!!\')) this.checked=false;";s:4:"help";s:67:"Apply the action on the whole query, NOT only the shown contacts!!!";}i:2;a:6:{s:4:"type";s:6:"select";s:8:"onchange";s:60:"if (this.value != \'\') { this.form.submit(); this.value=\'\'; }";s:4:"size";s:45:"Select an action or addressbook to move to...";s:7:"no_lang";s:1:"1";s:4:"name";s:6:"action";s:4:"help";s:42:"Select an action or addressbook to move to";}i:3;a:8:{s:4:"type";s:6:"button";s:4:"size";s:9:"arrow_ltr";s:5:"label";s:9:"Check all";s:4:"name";s:9:"check_all";s:4:"help";s:9:"Check all";s:7:"onclick";s:70:"toggle_all(this.form,form::name(\'nm[rows][checked][]\')); return false;";s:6:"needed";s:1:"1";s:4:"span";s:14:",checkAllArrow";}}}}s:4:"rows";i:4;s:4:"cols";i:2;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1145194921',); $templ_data[] = array('name' => 'addressbook.index.left','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:10:{s:4:"type";s:6:"select";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"name";s:8:"org_view";s:7:"no_lang";s:1:"1";s:4:"help";s:13:"Select a view";s:4:"span";s:5:",bold";s:8:"onchange";i:1;s:4:"size";s:12:"All contacts";}}','size' => '','style' => '','modified' => '1146123855',); @@ -146,7 +146,7 @@ $templ_data[] = array('name' => 'addressbook.index.right','template' => '','lang $templ_data[] = array('name' => 'addressbook.index.right_add','template' => '','lang' => '','group' => '0','version' => '1.3.004','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:6:"button";s:4:"name";s:6:"search";s:5:"label";s:15:"Advanced search";s:7:"onclick";s:166:"window.open(egw::link(\'/index.php\',\'menuaction=addressbook.uicontacts.search\'),\'_blank\',\'dependent=yes,width=850,height=440,scrollbars=yes,status=yes\'); return false;";}i:2;a:5:{s:4:"type";s:6:"button";s:4:"name";s:3:"add";s:5:"label";s:3:"Add";s:4:"help";s:17:"Add a new contact";s:7:"onclick";s:164:"window.open(egw::link(\'/index.php\',\'menuaction=addressbook.uicontacts.edit\'),\'_blank\',\'dependent=yes,width=850,height=440,scrollbars=yes,status=yes\'); return false;";}}}','size' => '','style' => '','modified' => '1169256972',); -$templ_data[] = array('name' => 'addressbook.index.right_add','template' => '','lang' => '','group' => '0','version' => '1.3.005','data' => 'a:1:{i:0;a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"2";i:1;a:4:{s:4:"type";s:10:"buttononly";s:4:"name";s:6:"search";s:5:"label";s:15:"Advanced search";s:7:"onclick";s:166:"window.open(egw::link(\'/index.php\',\'menuaction=addressbook.uicontacts.search\'),\'_blank\',\'dependent=yes,width=850,height=440,scrollbars=yes,status=yes\'); return false;";}i:2;a:5:{s:4:"type";s:10:"buttononly";s:4:"name";s:3:"add";s:5:"label";s:3:"Add";s:4:"help";s:17:"Add a new contact";s:7:"onclick";s:164:"window.open(egw::link(\'/index.php\',\'menuaction=addressbook.uicontacts.edit\'),\'_blank\',\'dependent=yes,width=850,height=440,scrollbars=yes,status=yes\'); return false;";}}}','size' => '','style' => '','modified' => '1169256471',); +$templ_data[] = array('name' => 'addressbook.index.right_add','template' => '','lang' => '','group' => '0','version' => '1.3.005','data' => 'a:1:{i:0;a:5:{s:4:"type";s:4:"hbox";s:4:"size";s:1:"3";i:1;a:4:{s:4:"type";s:10:"buttononly";s:4:"name";s:6:"search";s:5:"label";s:15:"Advanced search";s:7:"onclick";s:166:"window.open(egw::link(\'/index.php\',\'menuaction=addressbook.uicontacts.search\'),\'_blank\',\'dependent=yes,width=850,height=440,scrollbars=yes,status=yes\'); return false;";}i:2;a:6:{s:4:"type";s:10:"buttononly";s:4:"name";s:3:"add";s:5:"label";s:3:"Add";s:4:"help";s:17:"Add a new contact";s:7:"onclick";s:164:"window.open(egw::link(\'/index.php\',\'menuaction=addressbook.uicontacts.edit\'),\'_blank\',\'dependent=yes,width=850,height=440,scrollbars=yes,status=yes\'); return false;";s:4:"span";s:12:",rightPadAdd";}i:3;a:3:{s:4:"type";s:5:"label";s:4:"name";s:6:"manual";s:4:"span";s:12:",rightPadAdd";}}}','size' => '','style' => '.rightPadAdd { width: 30px; }','modified' => '1169256471',); $templ_data[] = array('name' => 'addressbook.index.rows','template' => '','lang' => '','group' => '0','version' => '1.3.001','data' => 'a:1:{i:0;a:6:{s:4:"type";s:4:"grid";s:4:"data";a:3:{i:0;a:6:{s:2:"c1";s:2:"th";s:2:"c2";s:7:"row,top";s:1:"I";s:17:",@no_customfields";s:1:"F";s:9:",@no_home";s:1:"D";s:12:"60,@no_photo";s:1:"K";s:2:"90";}i:1;a:11:{s:1:"A";a:1:{s:4:"type";s:5:"label";}s:1:"B";a:6:{s:4:"type";s:4:"grid";s:4:"data";a:7:{i:0;a:5:{s:2:"h2";s:16:",!@order=n_given";s:2:"h5";s:84:",!@order=/^(org_name|n_fileas|adr_one_postalcode|contact_modified|contact_created)$/";s:2:"h3";s:17:",!@order=n_family";s:2:"h1";s:17:",!@order=n_fileas";s:2:"h6";s:16:",@order=n_fileas";}i:1;a:2:{s:1:"A";a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"span";s:3:"all";s:5:"label";s:11:"own sorting";s:4:"name";s:8:"n_fileas";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:2;a:2:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:7:"n_given";s:5:"label";s:9:"Firstname";}s:1:"B";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Name";s:4:"name";s:8:"n_family";}}i:3;a:2:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:5:"label";s:4:"Name";s:4:"name";s:8:"n_family";}s:1:"B";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:7:"n_given";s:5:"label";s:9:"Firstname";}}i:4;a:2:{s:1:"A";a:4:{s:4:"name";s:8:"org_name";s:5:"label";s:12:"Organisation";s:4:"span";s:3:"all";s:4:"type";s:20:"nextmatch-sortheader";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}i:5;a:2:{s:1:"A";a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:8:"n_family";s:5:"label";s:4:"Name";}s:1:"B";a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:7:"n_given";s:5:"label";s:9:"Firstname";s:4:"span";s:9:",leftPad5";}}i:6;a:2:{s:1:"A";a:4:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"span";s:3:"all";s:5:"label";s:11:"own sorting";s:4:"name";s:8:"n_fileas";}s:1:"B";a:1:{s:4:"type";s:5:"label";}}}s:4:"rows";i:6;s:4:"cols";i:2;s:7:"options";a:2:{i:4;s:1:"0";i:5;s:1:"0";}s:4:"size";s:7:",,,,0,0";}s:1:"C";a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:8:"Category";s:4:"name";s:6:"cat_id";}s:1:"D";a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:5:"Photo";s:4:"name";s:5:"photo";}s:1:"E";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"3,,0,0";i:1;a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:16:"Business address";s:4:"name";s:8:"business";}i:2;a:4:{s:4:"type";s:22:"nextmatch-customfilter";s:4:"name";s:19:"adr_one_countryname";s:4:"size";s:24:"select-country,Country,1";s:4:"span";s:14:",countrySelect";}i:3;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:18:"adr_one_postalcode";s:5:"label";s:8:"zip code";}}s:1:"F";a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:12:"Home address";s:4:"name";s:4:"home";}s:1:"G";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"3,,0,0";i:1;a:3:{s:4:"type";s:16:"nextmatch-header";s:4:"name";s:8:"tel_work";s:5:"label";s:14:"Business phone";}i:2;a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:12:"Mobile phone";s:4:"name";s:8:"tel_cell";}i:3;a:3:{s:4:"type";s:16:"nextmatch-header";s:4:"name";s:8:"tel_home";s:5:"label";s:10:"Home phone";}}s:1:"H";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"3,,0,0";i:1;a:3:{s:4:"type";s:16:"nextmatch-header";s:4:"name";s:3:"url";s:5:"label";s:3:"Url";}i:2;a:3:{s:4:"type";s:16:"nextmatch-header";s:5:"label";s:14:"Business email";s:4:"name";s:5:"email";}i:3;a:3:{s:4:"type";s:16:"nextmatch-header";s:4:"name";s:10:"email_home";s:5:"label";s:10:"Home email";}}s:1:"I";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:16:"nextmatch-header";s:4:"name";s:12:"customfields";s:4:"size";s:13:"Custom fields";}i:2;a:5:{s:4:"type";s:4:"grid";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:25:"customfields[$row][label]";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"size";s:7:",,,,0,0";}}s:1:"J";a:4:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:15:"contact_created";s:5:"label";s:7:"Created";}i:2;a:3:{s:4:"type";s:20:"nextmatch-sortheader";s:4:"name";s:16:"contact_modified";s:5:"label";s:13:"Last modified";}}s:1:"K";a:6:{s:4:"type";s:4:"hbox";s:5:"align";s:6:"center";s:4:"size";s:1:"2";i:1;a:3:{s:4:"type";s:5:"label";s:5:"label";s:7:"Actions";s:5:"align";s:6:"center";}i:2;a:8:{s:4:"type";s:6:"button";s:4:"size";s:5:"check";s:5:"label";s:9:"Check all";s:4:"name";s:9:"check_all";s:4:"help";s:9:"Check all";s:7:"onclick";s:60:"toggle_all(this.form,form::name(\'checked[]\')); return false;";s:6:"needed";s:1:"1";s:5:"align";s:5:"right";}s:4:"span";s:8:",noPrint";}}i:2;a:11:{s:1:"A";a:5:{s:4:"type";s:5:"image";s:5:"label";s:21:"$row_cont[type_label]";s:4:"name";s:12:"${row}[type]";s:5:"align";s:6:"center";s:7:"no_lang";s:1:"1";}s:1:"B";a:8:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"5,,0,0";i:1;a:3:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[line1]";s:7:"no_lang";s:1:"1";}i:2;a:3:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[line2]";s:7:"no_lang";s:1:"1";}i:3;a:3:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[org_unit]";s:7:"no_lang";s:1:"1";}i:4;a:3:{s:4:"type";s:5:"label";s:4:"name";s:13:"${row}[title]";s:7:"no_lang";s:1:"1";}i:5;a:3:{s:4:"type";s:5:"label";s:4:"name";s:17:"${row}[first_org]";s:7:"no_lang";s:1:"1";}s:4:"name";s:10:"${row}[id]";}s:1:"C";a:4:{s:4:"type";s:10:"select-cat";s:4:"size";s:1:"1";s:4:"name";s:14:"${row}[cat_id]";s:8:"readonly";s:1:"1";}s:1:"D";a:2:{s:4:"type";s:5:"image";s:4:"name";s:13:"${row}[photo]";}s:1:"E";a:6:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"4,,0,0";i:1;a:3:{s:4:"type";s:5:"label";s:4:"name";s:27:"${row}[adr_one_countryname]";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:7:"2,0,0,0";i:1;a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:24:"${row}[adr_one_locality]";}i:2;a:5:{s:4:"type";s:5:"label";s:4:"name";s:26:"${row}[adr_one_postalcode]";s:4:"span";s:9:",leftPad5";s:5:"label";s:1:" ";s:7:"no_lang";s:1:"1";}}i:3;a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:22:"${row}[adr_one_street]";}i:4;a:3:{s:4:"type";s:5:"label";s:4:"name";s:23:"${row}[adr_one_street2]";s:7:"no_lang";s:1:"1";}}s:1:"F";a:6:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"4,,0,0";i:1;a:3:{s:4:"type";s:5:"label";s:4:"name";s:27:"${row}[adr_two_countryname]";s:7:"no_lang";s:1:"1";}i:2;a:4:{s:4:"type";s:4:"hbox";s:4:"size";s:6:"2,,0,0";i:1;a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:24:"${row}[adr_two_locality]";}i:2;a:5:{s:4:"type";s:5:"label";s:4:"name";s:26:"${row}[adr_two_postalcode]";s:4:"span";s:9:",leftPad5";s:5:"label";s:1:" ";s:7:"no_lang";s:1:"1";}}i:3;a:3:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:22:"${row}[adr_two_street]";}i:4;a:3:{s:4:"type";s:5:"label";s:4:"name";s:23:"${row}[adr_two_street2]";s:7:"no_lang";s:1:"1";}}s:1:"G";a:6:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"4,,0,0";i:1;a:5:{s:4:"type";s:5:"label";s:7:"no_lang";s:1:"1";s:4:"name";s:16:"${row}[tel_work]";s:4:"span";s:11:",telNumbers";s:4:"size";s:53:",$row_cont[tel_work_link],,,calling,$cont[call_popup]";}i:2;a:5:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[tel_cell]";s:7:"no_lang";s:1:"1";s:4:"span";s:11:",telNumbers";s:4:"size";s:53:",$row_cont[tel_cell_link],,,calling,$cont[call_popup]";}i:3;a:5:{s:4:"type";s:5:"label";s:4:"name";s:16:"${row}[tel_home]";s:7:"no_lang";s:1:"1";s:4:"span";s:11:",telNumbers";s:4:"size";s:53:",$row_cont[tel_home_link],,,calling,$cont[call_popup]";}i:4;a:4:{s:4:"type";s:5:"label";s:4:"name";s:20:"${row}[tel_prefered]";s:7:"no_lang";s:1:"1";s:4:"size";s:57:",$row_cont[tel_prefered_link],,,calling,$cont[call_popup]";}}s:1:"H";a:5:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"3,,0,0";i:1;a:5:{s:4:"type";s:5:"label";s:4:"size";s:3:",,1";s:4:"span";s:12:",fixedHeight";s:7:"no_lang";s:1:"1";s:4:"name";s:11:"${row}[url]";}i:2;a:5:{s:4:"type";s:5:"label";s:4:"size";s:52:",@${row}[email_link],,,_blank,$row_cont[email_popup]";s:4:"span";s:12:",fixedHeight";s:4:"name";s:13:"${row}[email]";s:7:"no_lang";s:1:"1";}i:3;a:5:{s:4:"type";s:5:"label";s:4:"size";s:62:",@${row}[email_home_link],,,_blank,$row_cont[email_home_popup]";s:4:"span";s:12:",fixedHeight";s:4:"name";s:18:"${row}[email_home]";s:7:"no_lang";s:1:"1";}}s:1:"I";a:7:{s:4:"type";s:4:"grid";s:4:"size";s:15:",48,0,,0,0,auto";s:4:"data";a:2:{i:0;a:0:{}i:1;a:1:{s:1:"A";a:4:{s:4:"type";s:5:"label";s:4:"span";s:12:",fixedHeight";s:7:"no_lang";s:1:"1";s:4:"name";s:4:"$row";}}}s:4:"rows";i:1;s:4:"cols";i:1;s:4:"name";s:20:"${row}[customfields]";s:7:"options";a:5:{i:1;s:2:"48";i:6;s:4:"auto";i:4;s:1:"0";i:5;s:1:"0";i:2;s:1:"0";}}s:1:"J";a:6:{s:4:"type";s:4:"vbox";s:4:"size";s:6:"4,,0,0";i:1;a:4:{s:4:"type";s:9:"date-time";s:4:"name";s:15:"${row}[created]";s:8:"readonly";s:1:"1";s:4:"span";s:7:",noWrap";}i:2;a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:15:"${row}[creator]";s:8:"readonly";s:1:"1";}i:3;a:4:{s:4:"type";s:9:"date-time";s:4:"name";s:16:"${row}[modified]";s:8:"readonly";s:1:"1";s:4:"span";s:8:",noBreak";}i:4;a:3:{s:4:"type";s:14:"select-account";s:4:"name";s:16:"${row}[modifier]";s:8:"readonly";s:1:"1";}}s:1:"K";a:7:{s:4:"type";s:4:"hbox";s:4:"size";s:5:"4,0,0";i:1;a:4:{s:4:"type";s:5:"image";s:4:"size";s:52:"addressbook.uicontacts.view&contact_id=$row_cont[id]";s:5:"label";s:4:"View";s:4:"name";s:4:"view";}i:2;a:5:{s:4:"type";s:6:"button";s:4:"size";s:4:"edit";s:5:"label";s:4:"Edit";s:7:"onclick";s:189:"window.open(egw::link(\'/index.php\',\'menuaction=addressbook.uicontacts.edit&contact_id=$row_cont[id]\'),\'_blank\',\'dependent=yes,width=850,height=440,scrollbars=yes,status=yes\'); return false;";s:4:"name";s:19:"edit[$row_cont[id]]";}i:3;a:6:{s:4:"type";s:6:"button";s:4:"name";s:21:"delete[$row_cont[id]]";s:4:"size";s:6:"delete";s:5:"label";s:6:"Delete";s:4:"help";s:19:"Delete this contact";s:7:"onclick";s:38:"return confirm(\'Delete this contact\');";}i:4;a:5:{s:4:"type";s:8:"checkbox";s:4:"name";s:9:"checked[]";s:4:"size";s:13:"$row_cont[id]";s:4:"help";s:45:"Select multiple contacts for a further action";s:5:"align";s:5:"right";}s:4:"span";s:8:",noPrint";}}}s:4:"rows";i:2;s:4:"cols";i:11;s:4:"size";s:4:"100%";s:7:"options";a:1:{i:0;s:4:"100%";}}}','size' => '100%','style' => '','modified' => '1145192391',); diff --git a/addressbook/setup/phpgw_de.lang b/addressbook/setup/phpgw_de.lang index 7c8413a606..28477e10a2 100644 --- a/addressbook/setup/phpgw_de.lang +++ b/addressbook/setup/phpgw_de.lang @@ -16,6 +16,7 @@ add a contact to this organisation addressbook de Einen Kontakt zu dieser Organi add a new contact addressbook de Neuen Kontakt anlegen add a new list addressbook de Neuen Verteiler hinzufügen add a single entry by passing the fields. addressbook de Hinzufügen eines einzelnen Eintrags durch Übergeben der Felder. +add business email of whole distribution list? addressbook de E-Mail geschäftl. der kompletten Liste hinzufügen? add custom field addressbook de Benutzerdefiniertes Feld hinzufügen add to distribution list: addressbook de Hinzufügen zu Verteiler: added by synchronisation addressbook de Hinzugefügt über die Synchronisation diff --git a/addressbook/setup/phpgw_en.lang b/addressbook/setup/phpgw_en.lang index 1ca87b2158..032c2f25be 100644 --- a/addressbook/setup/phpgw_en.lang +++ b/addressbook/setup/phpgw_en.lang @@ -16,6 +16,7 @@ add a contact to this organisation addressbook en Add a contact to this organisa add a new contact addressbook en Add a new contact add a new list addressbook en Add a new list add a single entry by passing the fields. addressbook en Add a single entry by passing the fields. +add business email of whole distribution list? addressbook en Add business email of whole distribution list? add custom field addressbook en Add Custom Field add to distribution list: addressbook en Add to distribution list: added by synchronisation addressbook en added by synchronisation @@ -196,6 +197,7 @@ link title for contacts show addressbook en Link title for contacts show links addressbook en Links list all categories addressbook en List all categories list all customfields addressbook en List all customfields +list already exists! addressbook en List already exists! list created addressbook en List created list creation failed, no rights! addressbook en List creation failed, no rights! load vcard addressbook en Load VCard diff --git a/addressbook/templates/default/index.xet b/addressbook/templates/default/index.xet index c773cbbd06..4d1e2e3f0f 100644 --- a/addressbook/templates/default/index.xet +++ b/addressbook/templates/default/index.xet @@ -6,10 +6,14 @@ -