thomascube
2011-09-21 2d3e2bc56108fc014edfaa154237b551daea4cc0
Add option 'searchonly' for address books; currently used by LDAP directories

9 files modified
24 ■■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
config/main.inc.php.dist 4 ●●● patch | view | raw | blame | history
program/include/rcube_addressbook.php 1 ●●●● patch | view | raw | blame | history
program/include/rcube_ldap.php 9 ●●●●● patch | view | raw | blame | history
program/include/rcube_result_set.php 3 ●●●● patch | view | raw | blame | history
program/localization/de_CH/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/de_DE/messages.inc 1 ●●●● patch | view | raw | blame | history
program/localization/en_US/messages.inc 1 ●●●● patch | view | raw | blame | history
program/steps/addressbook/list.inc 3 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Add option 'searchonly' for LDAP address books
- Add Priority filter to the messages list
- Cache synchronization using QRESYNC/CONDSTORE
- Fix locked folder rename option on servers supporting RFC2086 only (#1488089)
config/main.inc.php.dist
@@ -540,9 +540,11 @@
  'auth_cid'       => '',
  // SASL authentication method (for proxy auth), e.g. DIGEST-MD5
  'auth_method'    => '',
  // Indicates if the addressbook shall be displayed on the list.
  // Indicates if the addressbook shall be hidden from the list.
  // With this option enabled you can still search/view contacts.
  'hidden'        => false,
  // Indicates if the addressbook shall not list contacts but only allows searching.
  'searchonly'    => false,
  // Indicates if we can write to the LDAP directory or not.
  // If writable is true then these fields need to be populated:
  // LDAP_Object_Classes, required_fields, LDAP_rdn
program/include/rcube_addressbook.php
@@ -38,6 +38,7 @@
    public $primary_key;
    public $groups = false;
    public $readonly = true;
    public $searchonly = false;
    public $undelete = false;
    public $ready = false;
    public $group_id = null;
program/include/rcube_ldap.php
@@ -71,6 +71,9 @@
    function __construct($p, $debug=false, $mail_domain=NULL)
    {
        $this->prop = $p;
        if (isset($p['searchonly']))
            $this->searchonly = $p['searchonly'];
        // check if groups are configured
        if (is_array($p['groups']) && count($p['groups'])) {
@@ -429,6 +432,12 @@
     */
    function list_records($cols=null, $subset=0)
    {
        if ($this->prop['searchonly'] && empty($this->filter) && !$this->group_id) {
            $this->result = new rcube_result_set(0);
            $this->result->searchonly = true;
            return $this->result;
        }
        // add general filter to query
        if (!empty($this->prop['filter']) && empty($this->filter))
        {
program/include/rcube_result_set.php
@@ -5,7 +5,7 @@
 | program/include/rcube_result_set.php                                  |
 |                                                                       |
 | This file is part of the Roundcube Webmail client                     |
 | Copyright (C) 2006-2010, The Roundcube Dev Team                       |
 | Copyright (C) 2006-2011, The Roundcube Dev Team                       |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 | PURPOSE:                                                              |
@@ -31,6 +31,7 @@
    var $count = 0;
    var $first = 0;
    var $current = 0;
    var $searchonly = false;
    var $records = array();
program/localization/de_CH/messages.inc
@@ -48,6 +48,7 @@
$messages['encryptedmessage'] = 'Dies ist eine verschlüsselte Nachricht und kann leider nicht angezeigt werden.';
$messages['nocontactsfound'] = 'Keine Kontakte gefunden';
$messages['contactnotfound'] = 'Die gewählte Adresse wurde nicht gefunden';
$messages['contactsearchonly'] = 'Geben Sie einen Suchbegriff ein, um Kontakte zu finden';
$messages['sendingfailed'] = 'Versand der Nachricht fehlgeschlagen';
$messages['senttooquickly'] = 'Bitte warten Sie $sec Sekunde(n) vor dem Senden dieser Nachricht';
$messages['errorsavingsent'] = 'Ein Fehler ist beim Speichern der gesendeten Nachricht aufgetreten';
program/localization/de_DE/messages.inc
@@ -49,6 +49,7 @@
$messages['encryptedmessage'] = 'Dies ist eine verschlüsselte Nachricht und kann leider nicht angezeigt werden.';
$messages['nocontactsfound'] = 'Keine Kontakte gefunden';
$messages['contactnotfound'] = 'Der angeforderte Kontakt wurde nicht gefunden';
$messages['contactsearchonly'] = 'Geben Sie einen Suchbegriff ein, um Kontakte zu finden';
$messages['sendingfailed'] = 'Versenden der Nachricht fehlgeschlagen';
$messages['senttooquickly'] = 'Bitte warten Sie $sec Sekunde(n) vor dem Senden dieser Nachricht';
$messages['errorsavingsent'] = 'Ein Fehler ist beim Speichern der gesendeten Nachricht aufgetreten';
program/localization/en_US/messages.inc
@@ -48,6 +48,7 @@
$messages['encryptedmessage'] = 'This is an encrypted message and can not be displayed. Sorry!';
$messages['nocontactsfound'] = 'No contacts found.';
$messages['contactnotfound'] = 'The requested contact was not found.';
$messages['contactsearchonly'] = 'Enter some search terms to find contacts';
$messages['sendingfailed'] = 'Failed to send message.';
$messages['senttooquickly'] = 'Please wait $sec sec(s). before sending this message.';
$messages['errorsavingsent'] = 'An error occured while saving sent message.';
program/steps/addressbook/list.inc
@@ -73,6 +73,9 @@
    // get contacts for this user
    $result = $CONTACTS->list_records(array('name'));
    if (!$result->count && $result->searchonly)
        $OUTPUT->show_message('contactsearchonly', 'notice');
}
// update message count display