From 70c31118264e447699d4ed628f45b7853799423d Mon Sep 17 00:00:00 2001 From: alecpl Date: Wed, 27 Jul 2011 13:42:15 +0000 Subject: - Fix fallback to default source (#1488009) --- program/steps/addressbook/func.inc | 10 +++------- program/steps/addressbook/save.inc | 11 ++++++----- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc index b74b45f79..6635d1338 100644 --- a/program/steps/addressbook/func.inc +++ b/program/steps/addressbook/func.inc @@ -100,7 +100,7 @@ if ($undo = $_SESSION['contact_undo']) { } // instantiate a contacts object according to the given source -function rcmail_contact_source($source=null, $init_env=false) +function rcmail_contact_source($source=null, $init_env=false, $writable=false) { global $RCMAIL, $OUTPUT, $CONFIG, $CONTACT_COLTYPES; @@ -108,12 +108,8 @@ function rcmail_contact_source($source=null, $init_env=false) $source = get_input_value('_source', RCUBE_INPUT_GPC); } - if (!strlen($source)) { - return null; - } - // Get object - $CONTACTS = $RCMAIL->get_address_book($source); + $CONTACTS = $RCMAIL->get_address_book($source, $writable); $CONTACTS->set_pagesize($CONFIG['pagesize']); // set list properties and session vars @@ -163,7 +159,7 @@ function rcmail_default_source($writable=false) function rcmail_set_sourcename($abook) { global $OUTPUT; - + // get address book name (for display) if ($abook && $_SESSION['addressbooks_count'] > 1) { $name = $abook->get_name(); diff --git a/program/steps/addressbook/save.inc b/program/steps/addressbook/save.inc index d5d4537f6..599c2f6a6 100644 --- a/program/steps/addressbook/save.inc +++ b/program/steps/addressbook/save.inc @@ -19,11 +19,10 @@ */ -$CONTACTS = rcmail_contact_source(null, true); +$CONTACTS = rcmail_contact_source(null, true, true); $cid = get_input_value('_cid', RCUBE_INPUT_POST); $return_action = empty($cid) ? 'add' : 'edit'; - // Source changed, display the form again if (!empty($_GET['_reload'])) { rcmail_overwrite_action($return_action); @@ -220,6 +219,11 @@ if (!empty($cid)) // insert a new contact else { $source = get_input_value('_source', RCUBE_INPUT_GPC); + // Name of the addressbook already selected on the list + $orig_source = get_input_value('_orig_source', RCUBE_INPUT_GPC); + + if (!strlen($source)) + $source = $orig_source; // show notice if existing contacts with same e-mail are found $existing = false; @@ -254,9 +258,6 @@ else { } } - // Name of the addressbook already selected on the list - $orig_source = get_input_value('_orig_source', RCUBE_INPUT_GPC); - if ((string)$source === (string)$orig_source) { // add contact row or jump to the page where it should appear $CONTACTS->reset(); -- cgit v1.2.3