From ca7dda494876d514dd7336088cb1adced3248a10 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 15 Jun 2011 07:04:06 -0400
Subject: [PATCH] - Fixed initial directory selection

---
 program/steps/addressbook/func.inc |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index 9731d9f..08f2a32 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -62,8 +62,11 @@
     // add list of address sources to client env
     $js_list = $RCMAIL->get_address_sources();
 
+    $source = get_input_value('_source', RCUBE_INPUT_GPC);
+
     // use first directory by default
-    $source = $js_list[key($js_list)]['id'];
+    if (!strlen($source) || !isset($js_list[$source]))
+        $source = $js_list[key($js_list)]['id'];
 
     // find writeable source
     foreach ($js_list as $s) {
@@ -155,18 +158,22 @@
     $out = '';
     $local_id = '0';
     $jsdata = array();
-    $current = get_input_value('_source', RCUBE_INPUT_GPC);
+
     $line_templ = html::tag('li', array(
         'id' => 'rcmli%s', 'class' => 'addressbook %s'),
         html::a(array('href' => '%s',
             'rel' => '%s',
             'onclick' => "return ".JS_OBJECT_NAME.".command('list','%s',this)"), '%s'));
 
-    // currently selected is the first address source in the list
-    if (!isset($current))
-        $current = strval(key((array)$OUTPUT->env['address_sources']));
+    $sources = (array) $OUTPUT->env['address_sources'];
+    reset($sources);
 
-    foreach ((array)$OUTPUT->env['address_sources'] as $j => $source) {
+    // currently selected source
+    $current = get_input_value('_source', RCUBE_INPUT_GPC);
+    if (!strlen($current) || !isset($sources[$source]))
+        $current = strval(key($sources));
+
+    foreach ($sources as $j => $source) {
         $id = strval($source['id'] ? $source['id'] : $j);
         $js_id = JQ($id);
         $out .= sprintf($line_templ,

--
Gitblit v1.9.1