Thomas
2013-10-17 b0b2fea4f88a8bdd92f6339a51481ead8317aa93
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
@@ -295,7 +312,7 @@
        $list[$id] = array(
          'id'       => $id,
          'name'     => html::quote($prop['name']),
          'groups'   => is_array($prop['groups']),
          'groups'   => !empty($prop['groups']) || !empty($prop['group_filters']),
          'readonly' => !$prop['writable'],
          'hidden'   => $prop['hidden'],
          'autocomplete' => in_array($id, $autocomplete)
@@ -322,6 +339,31 @@
    }
    return $list;
  }
  /**
   * Getter for compose responses.
   * These are stored in local config and user preferences.
   *
   * @param boolean True to sort the list alphabetically
   * @return array List of the current user's stored responses
   */
  public function get_compose_responses($sorted = false)
  {
    $responses = array();
    foreach ($this->config->get('compose_responses', array()) as $response) {
      if (empty($response['key']))
        $response['key'] = substr(md5($response['name']), 0, 16);
      $k = $sorted ? strtolower($response['name']) : $response['key'];
      $responses[$k] = $response;
    }
    // sort list by name
    if ($sorted) {
      ksort($responses, SORT_LOCALE_STRING);
    }
    return array_values($responses);
  }
@@ -1418,6 +1460,7 @@
            $js_mailboxlist = array();
            $out = html::tag('ul', $attrib, $rcmail->render_folder_tree_html($a_mailboxes, $mbox_name, $js_mailboxlist, $attrib), html::$common_attrib);
            $rcmail->output->include_script('treelist.js');
            $rcmail->output->add_gui_object('mailboxlist', $attrib['id']);
            $rcmail->output->set_env('mailboxes', $js_mailboxlist);
            $rcmail->output->set_env('unreadwrap', $attrib['unreadwrap']);
@@ -1596,14 +1639,13 @@
                'id' => "rcmli".$folder_id,
                'class' => join(' ', $classes),
                'noclose' => true),
                html::a($link_attrib, $html_name) .
                (!empty($folder['folders']) ? html::div(array(
                    'class' => ($is_collapsed ? 'collapsed' : 'expanded'),
                    'style' => "position:absolute",
                    'onclick' => sprintf("%s.command('collapse-folder', '%s')", rcmail_output::JS_OBJECT_NAME, $js_name)
                ), ' ') : ''));
                html::a($link_attrib, $html_name));
            $jslist[$folder_id] = array(
            if (!empty($folder['folders'])) {
                $out .= html::div('treetoggle ' . ($is_collapsed ? 'collapsed' : 'expanded'), ' ');
            }
            $jslist[$folder['id']] = array(
                'id'      => $folder['id'],
                'name'    => $foldername,
                'virtual' => $folder['virtual']