Changeset 2175 in subversion


Ignore:
Timestamp:
Dec 18, 2008 12:51:50 PM (5 years ago)
Author:
alec
Message:

#1485567: fix virtual folders names

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/program/steps/settings/manage_folders.inc

    r2138 r2175  
    199199    $level = count($foldersplit); 
    200200     
    201     // add a "virtual" parent folder 
    202     if ($parent_folder && !$seen[$parent_folder]++) { 
    203       $parent_name = rcube_charset_convert($foldersplit[$level-1], 'UTF-7'); 
    204       $list_folders[] = array('id' => $parent_folder, 'name' => $parent_name, 'level' => $level-1, 'virtual' => true); 
     201    // add any necessary "virtual" parent folders 
     202    if ($parent_folder && !$seen[$parent_folder]) { 
     203      for ($i=1; $i<=$level; $i++) { 
     204        $ancestor_folder = join($delimiter, array_slice($foldersplit, 0, $i)); 
     205        if ($ancestor_folder && !$seen[$ancestor_folder]++) { 
     206          $ancestor_name = rcube_charset_convert($foldersplit[$i-1], 'UTF-7'); 
     207          $list_folders[] = array('id' => $ancestor_folder, 'name' => $ancestor_name, 'level' => $i-1, 'virtual' => true); 
     208        } 
     209      } 
    205210    } 
    206211     
     
    228233    $idx = $i + 1; 
    229234    $subscribed = in_array($folder['id'], $a_subscribed); 
    230     $protected = ($folder['virtual'] || ($CONFIG['protect_default_folders'] == true && in_array($folder['id'], $CONFIG['default_imap_folders']))); 
     235    $protected = ($CONFIG['protect_default_folders'] == true && in_array($folder['id'], $CONFIG['default_imap_folders'])); 
    231236    $classes = array($i%2 ? 'even' : 'odd'); 
    232237    $folder_js = JQ($folder['id']); 
     
    241246    $table->add('name', Q($display_folder)); 
    242247    $table->add('msgcount', ($folder['virtual'] ? '' : $IMAP->messagecount($folder['id']))); 
    243     $table->add('subscribed', $protected ? ($subscribed ? '&nbsp;&#x2022;' : '&nbsp;-') : 
     248    $table->add('subscribed', ($protected || $folder['virtual']) ? ($subscribed ? '&nbsp;&#x2022;' : '&nbsp;') : 
    244249        $checkbox_subscribe->show(($subscribed ? $folder_utf8 : ''), array('value' => $folder_utf8))); 
    245250     
    246251    // add rename and delete buttons 
    247     if (!$protected) { 
     252    if (!$protected && !$folder['virtual']) { 
    248253      $table->add('rename', html::a(array('href' => "#rename", 'title' => rcube_label('renamefolder')), $edit_button)); 
    249254      $table->add('delete', html::a(array('href' => "#delete", 'title' => rcube_label('deletefolder')), $del_button)); 
     
    254259    } 
    255260     
    256     $a_js_folders['rcmrow'.$idx] = array($folder_utf8, $display_folder, $protected); 
     261    $a_js_folders['rcmrow'.$idx] = array($folder_utf8, $display_folder, $protected || $folder['virtual']); 
    257262  } 
    258263 
Note: See TracChangeset for help on using the changeset viewer.