Changeset 4901 in subversion


Ignore:
Timestamp:
Jul 2, 2011 11:27:46 AM (2 years ago)
Author:
alec
Message:
  • Added addressbook source selector in contact create form
Location:
trunk/roundcubemail
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/program/js/app.js

    r4898 r4901  
    638638          // contacts/identities 
    639639          else { 
    640             if ((input = $("input[name='_name']", form)) &&input.length && input.val() == '') { 
     640            // 
     641            if (props == 'reload') { 
     642              form.action += '?_reload=1'; 
     643            } 
     644            else if ((input = $("input[name='_name']", form)) &&input.length && input.val() == '') { 
    641645              alert(this.get_label('nonamewarning')); 
    642646              input.focus(); 
  • trunk/roundcubemail/program/steps/addressbook/edit.inc

    r4892 r4901  
    5656$SOURCE_ID = $source; 
    5757 
     58 
    5859function rcmail_get_edit_record() 
    5960{ 
     
    106107} 
    107108 
    108  
    109109function rcmail_contact_editform($attrib) 
    110110{ 
     
    167167    return $form_start . $out . $form_end; 
    168168} 
    169  
    170169 
    171170function rcmail_upload_photo_form($attrib) 
     
    205204} 
    206205 
    207  
    208206// similar function as in /steps/settings/edit_identity.inc 
    209207function get_form_tags($attrib) 
    210208{ 
    211     global $CONTACTS, $EDIT_FORM, $RCMAIL; 
     209    global $CONTACTS, $EDIT_FORM, $RCMAIL, $SOURCE_ID; 
    212210 
    213211    $form_start = $form_end = ''; 
    214212 
    215213    if (empty($EDIT_FORM)) { 
    216         $hiddenfields = new html_hiddenfield(array( 
    217             'name' => '_source', 'value' => get_input_value('_source', RCUBE_INPUT_GPC))); 
     214        $hiddenfields = new html_hiddenfield(); 
     215 
     216        if ($RCMAIL->action == 'edit') 
     217            $hiddenfields->add(array('name' => '_source', 'value' => $SOURCE_ID)); 
    218218        $hiddenfields->add(array('name' => '_gid', 'value' => $CONTACTS->group_id)); 
    219219 
     
    235235} 
    236236 
     237function rcmail_source_selector($attrib) 
     238{ 
     239    global $RCMAIL, $SOURCE_ID; 
     240 
     241    $sources_list = $RCMAIL->get_address_sources(true); 
     242 
     243    if (count($sources_list) < 2) { 
     244        $source = $sources_list[$SOURCE_ID]; 
     245        $hiddenfield = new html_hiddenfield(array('name' => '_source', 'value' => $SOURCE_ID)); 
     246        return html::span($attrib, Q($source['name']) . $hiddenfield->show()); 
     247    } 
     248 
     249    $attrib['name'] = '_source'; 
     250    $attrib['onchange'] = JS_OBJECT_NAME . ".command('save', 'reload', this.form)"; 
     251 
     252    $select = new html_select($attrib); 
     253 
     254    foreach ($sources_list as $source) 
     255        $select->add($source['name'], $source['id']); 
     256 
     257    return $select->show($SOURCE_ID); 
     258} 
     259 
    237260 
    238261$OUTPUT->add_handlers(array( 
     
    241264    'contactphoto'    => 'rcmail_contact_photo', 
    242265    'photouploadform' => 'rcmail_upload_photo_form', 
     266    'sourceselector'  => 'rcmail_source_selector', 
    243267)); 
    244268 
  • trunk/roundcubemail/program/steps/addressbook/func.inc

    r4892 r4901  
    6969        $source = $js_list[key($js_list)]['id']; 
    7070 
    71     // find writeable source 
     71    // count writeable sources 
     72    $writeable = 0; 
    7273    foreach ($js_list as $s) { 
    7374        if (!$s['readonly']) { 
    74             $OUTPUT->set_env('writable_source', $s['id']); 
    75             break; 
     75            $writeable++; 
    7676        } 
    7777    } 
     
    8080    $OUTPUT->set_env('search_mods', $search_mods); 
    8181    $OUTPUT->set_env('address_sources', $js_list); 
     82    $OUTPUT->set_env('writable_source', $writeable); 
    8283 
    8384    $OUTPUT->set_pagetitle(rcube_label('addressbook')); 
    8485    $_SESSION['addressbooks_count'] = count($js_list); 
     86    $_SESSION['addressbooks_count_writeable'] = $writeable; 
    8587 
    8688    $CONTACTS = rcmail_contact_source($source, true); 
  • trunk/roundcubemail/program/steps/addressbook/save.inc

    r4850 r4901  
    2424$return_action = empty($cid) ? 'add' : 'edit'; 
    2525 
     26 
     27// Source changed, display the form again 
     28if (!empty($_GET['_reload'])) { 
     29  rcmail_overwrite_action($return_action); 
     30  return; 
     31} 
    2632 
    2733// cannot edit record 
  • trunk/roundcubemail/skins/default/addressbook.css

    r4880 r4901  
    220220{ 
    221221        position: relative; 
    222         padding-bottom: 22px; 
     222        padding-bottom: 12px; 
    223223} 
    224224 
  • trunk/roundcubemail/skins/default/templates/contactadd.html

    r4834 r4901  
    1111<div id="contact-details" class="boxcontent"> 
    1212<form name="editform" method="post" action="./"> 
     13  <div id="sourcename" style="height: 20px"> 
     14    <roundcube:label name="addressbook" />: <roundcube:object name="sourceselector" class="hint" id="sourceselect" /> 
     15  </div> 
    1316  <div id="contactphoto"> 
    1417    <roundcube:object name="contactphoto" id="contactpic" placeholder="/images/contactpic.png" /> 
Note: See TracChangeset for help on using the changeset viewer.