Aleksander Machniak
2013-08-26 4fbbd81b9b2230df3b06b773b829f0e3991664f3
Fix bugs when invoking contact creation form when read-only addressbook is selected (#1489296)
3 files modified
32 ■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/include/rcmail.php 17 ●●●●● patch | view | raw | blame | history
program/steps/addressbook/edit.inc 14 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
- Fix bugs when invoking contact creation form when read-only addressbook is selected (#1489296)
- Fix identity selection on reply (#1489291)
- Fix so additional headers are added to all messages sent (#1489284)
- Fix display issue after moving folder in Folder Manager (#1489293)
program/include/rcmail.php
@@ -257,6 +257,23 @@
  /**
   * Return identifier of the address book object
   *
   * @param rcube_addressbook Addressbook source object
   *
   * @return string Source identifier
   */
  public function get_address_book_id($object)
  {
    foreach ($this->address_books as $index => $book) {
      if ($book === $object) {
        return $index;
      }
    }
  }
  /**
   * Return address books list
   *
   * @param boolean True if the address book needs to be writeable
program/steps/addressbook/edit.inc
@@ -43,16 +43,14 @@
else {
    $source = get_input_value('_source', RCUBE_INPUT_GPC);
    if (!strlen($source)) {
        // Give priority to configured default
        $source = $RCMAIL->config->get('default_addressbook');
    if (strlen($source)) {
        $CONTACTS = $RCMAIL->get_address_book($source, true);
    }
    $CONTACTS = $RCMAIL->get_address_book($source, true);
    // find writable addressbook
    if (!$CONTACTS || $CONTACTS->readonly)
        $source = $RCMAIL->get_address_book(-1, true);
    if (!$CONTACTS || $CONTACTS->readonly) {
        $CONTACTS = $RCMAIL->get_address_book(-1, true);
        $source   = $RCMAIL->get_address_book_id($CONTACTS);
    }
    // Initialize addressbook
    $CONTACTS = rcmail_contact_source($source, true);