Ticket #1486377: extended_addressbook_r3593.patch

File extended_addressbook_r3593.patch, 16.6 KB (added by toddtrann, 3 years ago)
  • config/main.inc.php

    diff -ruw roundcubemail_svn/config/main.inc.php roundcubemail/config/main.inc.php
    old new  
    384384  'email_field'   => 'mail',  // this field represents the contact's e-mail 
    385385  'surname_field' => 'sn',    // this field represents the contact's last name 
    386386  'firstname_field' => 'gn',  // this field represents the contact's first name 
     387  'work_number_field'   => '', // contact work phone number 
     388  'home_number_field'   => '', // contact home phone number 
     389  'fax_number_field'    => '', // contact fax number 
     390  'mobile_number_field' => '', // contact cell number 
     391  'title_field'         => '', // contact company title 
     392  'company_field'       => '', // contact company name 
     393  'work_address_field'  => '', // contact work address 
     394  'home_address_field'  => '', // contact home address 
     395  'note_field'          => '', // contact notes 
    387396  'sort'          => 'cn',    // The field to sort the listing by. 
    388397  'scope'         => 'sub',   // search mode: sub|base|list 
    389398  'filter'        => '',      // used for basic listing (if not empty) and will be &'d with search queries. example: status=act 
  • program/include/rcube_contacts.php

    Only in roundcubemail/config: main.inc.php.orig
    diff -ruw roundcubemail_svn/program/include/rcube_contacts.php roundcubemail/program/include/rcube_contacts.php
    old new  
    3737    private $search_fields; 
    3838    private $search_string; 
    3939    private $cache; 
    40     private $table_cols = array('name', 'email', 'firstname', 'surname', 'vcard'); 
     40    private $table_cols = array('name', 'email', 'firstname', 'surname', 'work_number', 'home_number', 'fax_number', 'mobile_number', 'title', 'company', 'work_address', 'home_address', 'note', 'vcard'); 
    4141   
    4242    /** public properties */ 
    4343    var $primary_key = 'contact_id'; 
  • program/include/rcube_vcard.php

    Only in roundcubemail/program/include: rcube_contacts.php.orig
    diff -ruw roundcubemail_svn/program/include/rcube_vcard.php roundcubemail/program/include/rcube_vcard.php
    old new  
    7575    $this->nickname = $this->raw['NICKNAME'][0][0]; 
    7676    $this->organization = $this->raw['ORG'][0][0]; 
    7777    $this->business = ($this->raw['X-ABSHOWAS'][0][0] == 'COMPANY') || (join('', (array)$this->raw['N'][0]) == '' && !empty($this->organization)); 
     78    $this->title = $this->raw['TITLE'][0]; 
     79    $this->note = $this->raw['NOTE'][0]; 
     80    foreach ($this->raw['LABEL'] as $entry) { 
     81        if ($entry['type'][0] == "HOME"){ 
     82            $this->home_address = $entry[0]; 
     83        } 
     84        elseif ($entry['type'][0] == "WORK") { 
     85            $this->work_address = $entry[0]; 
     86        } 
     87    } 
     88    foreach ($this->raw['TEL'] as $entry) { 
     89        if ($entry['type'][0] == "HOME"){ 
     90            $this->home_number = $entry[0]; 
     91        } 
     92        elseif ($entry['type'][0] == "WORK") { 
     93            $this->work_number = $entry[0]; 
     94        } 
     95        elseif ($entry['type'][0] == "CELL") { 
     96            $this->mobile_number = $entry[0]; 
     97        } 
     98        elseif ($entry['type'][0] == "FAX") { 
     99            $this->fax_number = $entry[0]; 
     100        } 
     101    } 
    78102     
    79103    foreach ((array)$this->raw['EMAIL'] as $i => $raw_email) 
    80104      $this->email[$i] = is_array($raw_email) ? $raw_email[0] : $raw_email; 
     
    138162          $this->raw['EMAIL'][$index][0] = $value; 
    139163        } 
    140164        break; 
     165 
     166      case 'home_number': 
     167        $index=$this->get_type_index('TEL','HOME'); 
     168        if (!is_array($this->raw['TEL'][$index])) { 
     169            $this->raw['TEL'][$index] =  array(0 => $value, 'type' => 'HOME'); 
     170        } 
     171        else { 
     172            $this->raw['TEL'][0][0] = $value; 
     173        } 
     174        break; 
     175 
     176      case 'work_number': 
     177        $index=$this->get_type_index('TEL','WORK'); 
     178        if (!is_array($this->raw['TEL'][$index])) { 
     179            $this->raw['TEL'][$index] = array(0 => $value, 'type' => 'WORK'); 
     180        } 
     181        else { 
     182            $this->raw['TEL'][0][0] = $value; 
     183        } 
     184        break; 
     185 
     186      case 'mobile_number': 
     187        $index=$this->get_type_index('TEL','CELL'); 
     188        if (!is_array($this->raw['TEL'][$index])) { 
     189            $this->raw['TEL'][$index] = array(0 => $value, 'type' => 'CELL'); 
     190        } 
     191        else { 
     192            $this->raw['TEL'][0][0] = $value; 
     193        } 
     194        break; 
     195 
     196      case 'fax_number': 
     197        $index=$this->get_type_index('TEL','FAX'); 
     198        if (!is_array($this->raw['TEL'][$index])) { 
     199            $this->raw['TEL'][$index] = array(0 => $value, 'type' => 'FAX'); 
     200        } 
     201        else { 
     202            $this->raw['TEL'][0][0] = $value; 
     203        } 
     204        break; 
     205 
    141206    } 
    142207  } 
    143208 
  • program/localization/en_US/labels.inc

    diff -ruw roundcubemail_svn/program/localization/en_US/labels.inc roundcubemail/program/localization/en_US/labels.inc
    old new  
    242242$labels['firstname'] = 'First name'; 
    243243$labels['surname']   = 'Last name'; 
    244244$labels['email']     = 'E-Mail'; 
     245$labels['phone']         = 'Phone'; 
     246$labels['work_number']   = 'Work Number'; 
     247$labels['home_number']   = 'Home Number'; 
     248$labels['fax_number']    = 'Fax Number'; 
     249$labels['mobile_number'] = 'Mobile Number'; 
     250$labels['title']         = 'Title'; 
     251$labels['company']       = 'Company'; 
     252$labels['work_address']  = 'Work Address'; 
     253$labels['home_address']  = 'Home Address'; 
     254$labels['note']          = 'Note'; 
    245255 
    246256$labels['addcontact'] = 'Add new contact'; 
    247257$labels['editcontact'] = 'Edit contact'; 
  • program/steps/addressbook/edit.inc

    diff -ruw roundcubemail_svn/program/steps/addressbook/edit.inc roundcubemail/program/steps/addressbook/edit.inc
    old new  
    6060  // return the complete address edit form as table 
    6161  $out = "$form_start<table>\n\n"; 
    6262 
    63   $a_show_cols = array('name', 'firstname', 'surname', 'email'); 
     63  $a_show_cols = array('name', 'firstname', 'surname', 'email', 'work_number', 'home_number', 'fax_number', 'mobile_number', 'title', 'company', 'work_address', 'home_address', 'note'); 
     64  $textarea_cols = array('work_address' => 1, 'home_address' => 1, 'note' => 1); 
     65 
    6466  foreach ($a_show_cols as $col) 
    6567  { 
    6668    $attrib['id'] = 'rcmfd_'.$col; 
     69    if (array_key_exists($col, $textarea_cols)) { 
     70        $value = rcmail_get_edit_field($col, $record[$col], $attrib,'textarea'); 
     71    } 
     72    else { 
    6773    $value = rcmail_get_edit_field($col, $record[$col], $attrib); 
     74    } 
    6875    $out .= sprintf("<tr><td class=\"title\"><label for=\"%s\">%s</label></td><td>%s</td></tr>\n", 
    6976                    $attrib['id'], 
    7077                    Q(rcube_label($col)), 
  • program/steps/addressbook/export.inc

    diff -ruw roundcubemail_svn/program/steps/addressbook/export.inc roundcubemail/program/steps/addressbook/export.inc
    old new  
    3535  $vcard->set('firstname', $row['firstname']); 
    3636  $vcard->set('surname', $row['surname']); 
    3737  $vcard->set('email', $row['email']); 
     38  $vcard->set('title', $row['title']); 
     39  $vcard->set('company', $row['company']); 
     40  $vcard->set('work_number', $row['work_number']); 
     41  $vcard->set('home_number', $row['home_number']); 
     42  $vcard->set('mobile_number', $row['mobile_number']); 
     43  $vcard->set('fax_number', $row['fax_number']); 
     44  $vcard->set('work_address', $row['work_address']); 
     45  $vcard->set('home_address', $row['home_address']); 
     46  $vcard->set('note', $row['note']); 
    3847   
    3948  echo $vcard->export(); 
    4049} 
  • program/steps/addressbook/import.inc

    diff -ruw roundcubemail_svn/program/steps/addressbook/import.inc roundcubemail/program/steps/addressbook/import.inc
    old new  
    152152        'firstname' => $vcard->firstname, 
    153153        'surname' => $vcard->surname, 
    154154        'email' => $email, 
     155        'work_number'   => $vcard->work_number, 
     156        'home_number'   => $vcard->home_number, 
     157        'mobile_number' => $vcard->mobile_number, 
     158        'fax_number'    => $vcard->fax_number, 
     159        'title'         => $vcard->title, 
     160        'company'       => $vcard->organization, 
     161        'work_address'  => $vcard->work_address, 
     162        'home_address'  => $vcard->home_address, 
     163        'note'          => $vcard->note, 
    155164        'vcard' => $vcard->export(), 
    156165      ); 
    157166       
  • program/steps/addressbook/save.inc

    diff -ruw roundcubemail_svn/program/steps/addressbook/save.inc roundcubemail/program/steps/addressbook/save.inc
    old new  
    4040 
    4141 
    4242// setup some vars we need 
    43 $a_save_cols = array('name', 'firstname', 'surname', 'email'); 
     43$a_save_cols = array('name', 'firstname', 'surname', 'email', 'work_number', 'home_number', 'fax_number', 'mobile_number', 'title', 'company', 'work_address', 'home_address', 'note'); 
    4444$a_record = array(); 
    4545 
    4646// read POST values into hash array 
  • program/steps/addressbook/show.inc

    diff -ruw roundcubemail_svn/program/steps/addressbook/show.inc roundcubemail/program/steps/addressbook/show.inc
    old new  
    4343  // return the complete address record as table 
    4444  $table = new html_table(array('cols' => 2)); 
    4545 
    46   $a_show_cols = array('name', 'firstname', 'surname', 'email'); 
    47   $microformats = array('name' => 'fn', 'email' => 'email'); 
     46  $a_show_cols = array('name', 'firstname', 'surname', 'email', 'work_number', 'home_number', 'fax_number', 'mobile_number', 'title', 'company', 'work_address', 'home_address', 'note'); 
     47  $microformats = array( 
     48    'name'          => 'fn', 
     49    'email'         => 'email', 
     50    'work_number'   => 'tel', 
     51    'home_number'   => 'tel', 
     52    'fax_number'    => 'tel', 
     53    'mobile_number' => 'tel', 
     54    'tile'          => 'title', 
     55    'company'       => 'organization-name', 
     56    'work_address'  => 'label', 
     57    'home_address'  => 'label', 
     58    'note'          => 'note', 
     59  ); 
    4860 
    4961  foreach ($a_show_cols as $col) { 
    5062    if ($col == 'email' && !empty($record[$col])) { 
  • SQL/mysql.initial.sql

    diff -ruw roundcubemail_svn/SQL/mysql.initial.sql roundcubemail/SQL/mysql.initial.sql
    old new  
    8686 `email` varchar(128) NOT NULL, 
    8787 `firstname` varchar(128) NOT NULL DEFAULT '', 
    8888 `surname` varchar(128) NOT NULL DEFAULT '', 
     89 `work_number` varchar(50) NOT NULL, 
     90 `home_number` varchar(50) NOT NULL, 
     91 `fax_number` varchar(50) NOT NULL, 
     92 `mobile_number` varchar(50) NOT NULL, 
     93 `title` varchar(50) NOT NULL, 
     94 `company` varchar(128) NOT NULL, 
     95 `work_address` varchar(255) NOT NULL, 
     96 `home_address` varchar(255) NOT NULL, 
     97 `note` text NULL,  
    8998 `vcard` text NULL, 
    9099 `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0', 
    91100 PRIMARY KEY(`contact_id`), 
  • SQL/mysql.update.sql

    diff -ruw roundcubemail_svn/SQL/mysql.update.sql roundcubemail/SQL/mysql.update.sql
    old new  
    113113 
    114114ALTER TABLE `users` CHANGE `last_login` `last_login` datetime DEFAULT NULL; 
    115115UPDATE `users` SET `last_login` = NULL WHERE `last_login` = '1000-01-01 00:00:00'; 
     116 
     117ALTER TABLE `contacts` 
     118    ADD `work_number` varchar(50) NOT NULL DEFAULT '', 
     119    ADD `home_number` varchar(50) NOT NULL DEFAULT '', 
     120    ADD `fax_number` varchar(50) NOT NULL DEFAULT '', 
     121    ADD `mobile_number` varchar(50) NOT NULL DEFAULT '', 
     122    ADD `title` varchar(50) NOT NULL DEFAULT '', 
     123    ADD `company` varchar(128) NOT NULL DEFAULT '', 
     124    ADD `work_address` varchar(255) NOT NULL DEFAULT '', 
     125    ADD `home_address` varchar(255) NOT NULL DEFAULT '', 
     126    ADD `note` text NOT NULL DEFAULT ''; 
     127 No newline at end of file 
  • SQL/postgres.initial.sql

    Only in roundcubemail/SQL: mysql.update.sql.orig
    diff -ruw roundcubemail_svn/SQL/postgres.initial.sql roundcubemail/SQL/postgres.initial.sql
    old new  
    110110    email varchar(128) DEFAULT '' NOT NULL, 
    111111    firstname varchar(128) DEFAULT '' NOT NULL, 
    112112    surname varchar(128) DEFAULT '' NOT NULL, 
     113    work_number character varying(50) DEFAULT ''::character varying NOT NULL, 
     114    home_number character varying(50) DEFAULT ''::character varying NOT NULL, 
     115    fax_number character varying(50) DEFAULT ''::character varying NOT NULL, 
     116    mobile_number character varying(50) DEFAULT ''::character varying NOT NULL, 
     117    title character varying(50) DEFAULT ''::character varying NOT NULL, 
     118    company character varying(128) DEFAULT ''::character varying NOT NULL, 
     119    work_address character varying(255) DEFAULT ''::character varying NOT NULL, 
     120    home_address character varying(255) DEFAULT ''::character varying NOT NULL, 
     121    note text DEFAULT ''::character varying NOT NULL, 
    113122    vcard text 
    114123); 
    115124 
  • SQL/postgres.update.sql

    diff -ruw roundcubemail_svn/SQL/postgres.update.sql roundcubemail/SQL/postgres.update.sql
    old new  
    8181 
    8282ALTER TABLE users ALTER last_login DROP NOT NULL; 
    8383ALTER TABLE users ALTER last_login SET DEFAULT NULL; 
     84 
     85ALTER TABLE contacts ADD work_number character varying(50) DEFAULT ''::character varying NOT NULL; 
     86ALTER TABLE contacts ADD home_number character varying(50) DEFAULT ''::character varying NOT NULL; 
     87ALTER TABLE contacts ADD fax_number character varying(50) DEFAULT ''::character varying NOT NULL; 
     88ALTER TABLE contacts ADD mobile_number character varying(50) DEFAULT ''::character varying NOT NULL; 
     89ALTER TABLE contacts ADD title character varying(50) DEFAULT ''::character varying NOT NULL; 
     90ALTER TABLE contacts ADD company character varying(128) DEFAULT ''::character varying NOT NULL; 
     91ALTER TABLE contacts ADD work_address character varying(255) DEFAULT ''::character varying NOT NULL; 
     92ALTER TABLE contacts ADD home_address character varying(255) DEFAULT ''::character varying NOT NULL; 
     93ALTER TABLE contacts ADD note text DEFAULT ''::character varying NOT NULL; 
     94 No newline at end of file 
  • SQL/sqlite.initial.sql

    Only in roundcubemail/SQL: postgres.update.sql.orig
    diff -ruw roundcubemail_svn/SQL/sqlite.initial.sql roundcubemail/SQL/sqlite.initial.sql
    old new  
    3131  email varchar(128) NOT NULL default '', 
    3232  firstname varchar(128) NOT NULL default '', 
    3333  surname varchar(128) NOT NULL default '', 
     34  work_number varchar(50) NOT NULL default '', 
     35  home_number varchar(50) NOT NULL default '', 
     36  mobile_number varchar(50) NOT NULL default '', 
     37  fax_number varchar(50) NOT NULL default '', 
     38  title varchar(50) NOT NULL default '', 
     39  company varchar(128) NOT NULL default '', 
     40  work_address varchar(255) NOT NULL default '', 
     41  home_address varchar(255) NOT NULL default '', 
     42  note text NOT NULL default '', 
    3443  vcard text NOT NULL default '' 
    3544); 
    3645 
  • SQL/sqlite.update.sql

    diff -ruw roundcubemail_svn/SQL/sqlite.update.sql roundcubemail/SQL/sqlite.update.sql
    old new  
    142142CREATE INDEX ix_users_username ON users(username); 
    143143CREATE INDEX ix_users_alias ON users(alias); 
    144144DROP TABLE tmp_users; 
     145 
     146-- Updates from version 0.4-beta 
     147 
     148ALTER TABLE contacts ADD work_number varchar(50) DEFAULT '' NOT NULL; 
     149ALTER TABLE contacts ADD home_number varchar(50) DEFAULT '' NOT NULL; 
     150ALTER TABLE contacts ADD fax_number varchar(50) DEFAULT '' NOT NULL; 
     151ALTER TABLE contacts ADD mobile_number varchar(50) DEFAULT '' NOT NULL; 
     152ALTER TABLE contacts ADD title varchar(50) DEFAULT '' NOT NULL; 
     153ALTER TABLE contacts ADD company varchar(128) DEFAULT '' NOT NULL; 
     154ALTER TABLE contacts ADD work_address varchar(255) DEFAULT '' NOT NULL; 
     155ALTER TABLE contacts ADD home_address varchar(255) DEFAULT '' NOT NULL; 
     156ALTER TABLE contacts ADD note text DEFAULT '' NOT NULL;