Changeset f5aa165 in github


Ignore:
Timestamp:
Aug 28, 2008 4:15:31 AM (5 years ago)
Author:
svncommit <devs@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
06655a5
Parents:
79aeb30
Message:

Add folder hierarchy collapsing.

Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG

    r79aeb30 rf5aa165  
    11CHANGELOG RoundCube Webmail 
    22--------------------------- 
     3 
     42008/08/28 (robin) 
     5---------- 
     6- Added folder hierarchy collapsing 
    37 
    482008/08/27 (alec) 
  • index.php

    r2e3ce3e rf5aa165  
    202202); 
    203203 
     204// save preference value 
     205if ($RCMAIL->action=='save-pref') 
     206  { 
     207  $USER->save_prefs(array(get_input_value('_name', RCUBE_INPUT_POST) => get_input_value('_value', RCUBE_INPUT_POST))); 
     208  $OUTPUT->reset(); 
     209  $OUTPUT->send(); 
     210  } 
     211 
    204212// include task specific functions 
    205213include_once 'program/steps/'.$RCMAIL->task.'/func.inc'; 
  • program/include/html.php

    rcb3538d rf5aa165  
    9999            $attr = array('class' => $attr); 
    100100        } 
    101         return self::tag('div', $attr, $cont, self::$common_attrib); 
     101        return self::tag('div', $attr, $cont, array_merge(self::$common_attrib, array('onclick'))); 
    102102    } 
    103103 
  • program/include/main.inc

    rb77d0dd rf5aa165  
    10011001function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, $maxlength, $realnames=false, $nestLevel=0) 
    10021002  { 
    1003   global $COMM_PATH, $IMAP, $CONFIG, $OUTPUT; 
     1003  global $COMM_PATH, $IMAP, $CONFIG, $OUTPUT, $RCMAIL; 
    10041004 
    10051005  $idx = 0; 
     
    10471047      $classes[] = 'selected'; 
    10481048 
     1049    $collapsed = preg_match('/&'.rawurlencode($folder['id']).'&/', $RCMAIL->config->get('collapsed_folders')); 
     1050 
    10491051    $js_name = JQ($folder['id']); 
    10501052    $out .= html::tag('li', array( 
     
    10521054        'class' => join(' ', $classes), 
    10531055        'noclose' => true), 
     1056      html::div(array( 
     1057        'class' => empty($folder['folders']) ? 'nocollapse' : ($collapsed ? 'collapsed' : 'expanded'), 
     1058        'onclick' => sprintf("%s.command('collapse-folder', '%s')", JS_OBJECT_NAME, $js_name) 
     1059      ), '&nbsp;') . 
    10541060      html::a(array( 
    10551061        'href' => rcmail_url('', array('_mbox' => $folder['id'])), 
     
    10621068     
    10631069    if (!empty($folder['folders'])) 
    1064       $out .= "\n<ul>\n" . rcmail_render_folder_tree_html($folder['folders'], $mbox_name, $maxlength, $realnames, $nestLevel+1) . "</ul>\n"; 
     1070      $out .= "\n<ul" . ($collapsed ? " style=\"display: none;\"" : "") . ">\n" . rcmail_render_folder_tree_html($folder['folders'], $mbox_name, $maxlength, $realnames, $nestLevel+1) . "</ul>\n"; 
    10651071 
    10661072    $out .= "</li>\n"; 
    10671073    $idx++; 
    10681074    } 
     1075 
     1076  $OUTPUT->set_env('collapsed_folders', $RCMAIL->config->get('collapsed_folders')); 
    10691077 
    10701078  return $out; 
  • program/js/app.js

    r26f5b09 rf5aa165  
    152152 
    153153        // enable mail commands 
    154         this.enable_command('list', 'checkmail', 'compose', 'add-contact', 'search', 'reset-search', true); 
     154        this.enable_command('list', 'checkmail', 'compose', 'add-contact', 'search', 'reset-search', 'collapse-folder', true); 
    155155 
    156156        if (this.env.search_text != null && document.getElementById('quicksearchbox') != null) 
     
    983983        break; 
    984984 
     985      // collapse/expand folder 
     986      case 'collapse-folder': 
     987        if (props) 
     988          this.collapse_folder(props); 
     989        break; 
    985990 
    986991      // user settings commands 
     
    11411146    if (this.drag_active && (li = this.get_folder_li(id))) 
    11421147      this.set_classname(li, 'droptarget', false); 
     1148    } 
     1149 
     1150  this.collapse_folder = function(id) 
     1151    { 
     1152    var div; 
     1153    if ((li = this.get_folder_li(id)) && 
     1154        (div = li.getElementsByTagName("div")[0]) && 
     1155        (div.className.match(/collapsed/) || div.className.match(/expanded/))) 
     1156      { 
     1157      var ul = li.getElementsByTagName("ul")[0]; 
     1158      if (div.className.match(/collapsed/)) 
     1159        { 
     1160        ul.style.display = ''; 
     1161        this.set_classname(div, 'collapsed', false); 
     1162        this.set_classname(div, 'expanded', true); 
     1163        var reg = new RegExp('&'+escape(id)+'&'); 
     1164        this.set_env('collapsed_folders', this.env.collapsed_folders.replace(reg, '')); 
     1165        } 
     1166      else 
     1167        { 
     1168        ul.style.display = 'none'; 
     1169        this.set_classname(div, 'expanded', false); 
     1170        this.set_classname(div, 'collapsed', true); 
     1171        this.set_env('collapsed_folders', this.env.collapsed_folders+'&'+escape(id)+'&'); 
     1172        } 
     1173      this.http_post('save-pref', '_name=collapsed_folders&_value='+escape(this.env.collapsed_folders)); 
     1174      } 
    11431175    } 
    11441176 
     
    34423474      { 
    34433475      // set new text 
    3444       text_obj = item.firstChild; 
     3476      text_obj = item.firstChild.nextSibling; 
    34453477      reg = /\s+\([0-9]+\)$/i; 
    34463478 
  • skins/default/mail.css

    r20d7d9d rf5aa165  
    285285} 
    286286 
     287#mailboxlist li div 
     288{ 
     289  position: absolute; 
     290  padding-left: 10px; 
     291  padding-top: 2px; 
     292  padding-bottom: 2px; 
     293  margin-right: 2px; 
     294  width: 12px; 
     295} 
     296 
     297#mailboxlist li div.collapsed, 
     298#mailboxlist li div.expanded 
     299{ 
     300  cursor: pointer; 
     301} 
     302 
     303#mailboxlist li div.collapsed 
     304{ 
     305  background: url(images/icons/collapsed.png) bottom right no-repeat; 
     306} 
     307 
     308#mailboxlist li div.expanded 
     309{ 
     310  background: url(images/icons/expanded.png) bottom right no-repeat; 
     311} 
     312 
    287313#mailboxlist li.inbox 
    288314{ 
     
    317343  padding-bottom: 2px; 
    318344  text-decoration: none; 
     345  /* css hack for IE */ 
     346  margin-top: expression('-12px'); 
    319347} 
    320348 
Note: See TracChangeset for help on using the changeset viewer.