Changeset f5aa165 in github
- Timestamp:
- Aug 28, 2008 4:15:31 AM (5 years ago)
- Branches:
- master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
- Children:
- 06655a5
- Parents:
- 79aeb30
- Files:
-
- 2 added
- 6 edited
-
CHANGELOG (modified) (1 diff)
-
index.php (modified) (1 diff)
-
program/include/html.php (modified) (1 diff)
-
program/include/main.inc (modified) (4 diffs)
-
program/js/app.js (modified) (4 diffs)
-
skins/default/images/icons/collapsed.png (added)
-
skins/default/images/icons/expanded.png (added)
-
skins/default/mail.css (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
CHANGELOG
r79aeb30 rf5aa165 1 1 CHANGELOG RoundCube Webmail 2 2 --------------------------- 3 4 2008/08/28 (robin) 5 ---------- 6 - Added folder hierarchy collapsing 3 7 4 8 2008/08/27 (alec) -
index.php
r2e3ce3e rf5aa165 202 202 ); 203 203 204 // save preference value 205 if ($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 204 212 // include task specific functions 205 213 include_once 'program/steps/'.$RCMAIL->task.'/func.inc'; -
program/include/html.php
rcb3538d rf5aa165 99 99 $attr = array('class' => $attr); 100 100 } 101 return self::tag('div', $attr, $cont, self::$common_attrib);101 return self::tag('div', $attr, $cont, array_merge(self::$common_attrib, array('onclick'))); 102 102 } 103 103 -
program/include/main.inc
rb77d0dd rf5aa165 1001 1001 function rcmail_render_folder_tree_html(&$arrFolders, &$mbox_name, $maxlength, $realnames=false, $nestLevel=0) 1002 1002 { 1003 global $COMM_PATH, $IMAP, $CONFIG, $OUTPUT ;1003 global $COMM_PATH, $IMAP, $CONFIG, $OUTPUT, $RCMAIL; 1004 1004 1005 1005 $idx = 0; … … 1047 1047 $classes[] = 'selected'; 1048 1048 1049 $collapsed = preg_match('/&'.rawurlencode($folder['id']).'&/', $RCMAIL->config->get('collapsed_folders')); 1050 1049 1051 $js_name = JQ($folder['id']); 1050 1052 $out .= html::tag('li', array( … … 1052 1054 'class' => join(' ', $classes), 1053 1055 '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 ), ' ') . 1054 1060 html::a(array( 1055 1061 'href' => rcmail_url('', array('_mbox' => $folder['id'])), … … 1062 1068 1063 1069 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"; 1065 1071 1066 1072 $out .= "</li>\n"; 1067 1073 $idx++; 1068 1074 } 1075 1076 $OUTPUT->set_env('collapsed_folders', $RCMAIL->config->get('collapsed_folders')); 1069 1077 1070 1078 return $out; -
program/js/app.js
r26f5b09 rf5aa165 152 152 153 153 // 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); 155 155 156 156 if (this.env.search_text != null && document.getElementById('quicksearchbox') != null) … … 983 983 break; 984 984 985 // collapse/expand folder 986 case 'collapse-folder': 987 if (props) 988 this.collapse_folder(props); 989 break; 985 990 986 991 // user settings commands … … 1141 1146 if (this.drag_active && (li = this.get_folder_li(id))) 1142 1147 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 } 1143 1175 } 1144 1176 … … 3442 3474 { 3443 3475 // set new text 3444 text_obj = item.firstChild ;3476 text_obj = item.firstChild.nextSibling; 3445 3477 reg = /\s+\([0-9]+\)$/i; 3446 3478 -
skins/default/mail.css
r20d7d9d rf5aa165 285 285 } 286 286 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 287 313 #mailboxlist li.inbox 288 314 { … … 317 343 padding-bottom: 2px; 318 344 text-decoration: none; 345 /* css hack for IE */ 346 margin-top: expression('-12px'); 319 347 } 320 348
Note: See TracChangeset
for help on using the changeset viewer.
