diff --git a/CHANGELOG b/CHANGELOG index c0fb2d364..d1a06cef1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,2456 +1,2457 @@ CHANGELOG Roundcube Webmail =========================== - Update to TinyMCE 4.5.7 - Fix bug where invalid recipients could be silently discarded (#5739) - Fix conflict with _gid cookie of Google Analytics (#5748) - Print error from CLI scripts when system/exec function is disabled (#5744) - Fix bug where comment notation within style tag would cause the whole style to be ignored (#5747) +- Fix bug where it wasn't possible to scroll folders list in Edge (#5750) RELEASE 1.3-rc -------------- - "Flattened" the larry theme: fresher look by removing shadows and gradients - Support logging to php://stdout (#5721) - Add support for DelSp=Yes in format=flowed messages (#5702) - Update to jQuery 3.2.1 - Update to TinyMCE 4.5.6 - Plugin API: Call message_part_structure hook for sub-parts of multipart/alternative message (#5678) - Enigma: Always use detached signatures (#5624) - Enigma: Fix handling of messages with nested PGP encrypted parts (#5634) - Minimize unwanted message loading in preview frame on drag (#5616) - Fix failing database schema check in all engines except mysql (#5730) - Fix autocomplete popup closing with click outside the input, don't handle Tab key as Enter (#5606) - Fix jsdeps.json synchronization on update, warn about missing requirements of install-jsdeps.sh (#5598) - Fix missing thread expand icon on search result in widescreen mode (#5613) - Fix bug where image data URIs in css style were treated as evil/remote in mail preview (#5580) - Fix bug where external content in src attribute of input/video tags was not secured (#5583) - Fix PHP error on update of a contact with multiple email addresses when using PHP 7.1 (#5587) - Fix bug where mail content frame couldn't be reset in some corner cases (#5608) - Fix bug where some classic skin images were not displayed in IE/Edge (#5614) - Fix bug where signature couldn't be added above the quote in Firefox 51 (#5628) - Fix regression where groups with email address were resolved to its members' addresses - Fix update of group name in the contacts list header on group rename (#5648) - Add rewrite rule to disable access to /vendor/bin folder in .htaccess (#5630) - Fix bug where it was too easy accidentally move a folder when using the subscription checkbox (#5655) - Managesieve: Fix parser issue with empty lines between comments (#5657) - Managesieve: Fix possible defect in handling \r\n in scripts (#5685) - Fix/rephrase "unsaved changes" warning when cancelling a draft (#5610) - Fix XSS issue in handling of a style tag inside of an svg element [CVE-2017-6820] - Fix bug where settings/upload.inc could not be used by plugins (#5694) - Fix regression in LDAP fuzzy search where it always used prefix search instead (#5713) - Fix bug where namespace prefix could not be truncated on folders list if show_real_foldernames=true (#5695) - Fix undesired effects when postgres database uses different timezone than PHP host (#5708) - Installer: Fix DB schema initialization on MS SQL Server - Fix bug where base_dn setting was ignored inside group_filters (#5720) - Password: Fix security issue in virtualmin and sasl drivers [CVE-2017-8114] RELEASE 1.3-beta ---------------- - Nicely handle contact deletion on contact edit (#5522) - vcard_attachments: Add possibility to attach contact vCard to composed message (#4997) - Preserve message internal/received date on import in mbox format (#5559) - Zipdownload: Fix date format in mbox "From line" - Possibility to display QR code for contacts data (#5030) - Added identicon plugin - Widescreen layout aka three column view (#5093) - Unify automatic marking as \Seen in preview pane, full-page and extwin views (#5071) - Disable double-click on the list when preview pane is on (#5199) - Support hostname and hostname:port in force_https option (#5511) - Support ALLOW-FROM in x_frame_options (#5122) - Allow to omit a subject when sending an email (#5068) - Warn about too many disclosed recipients in composed email [max_disclosed_recipients] (#5132) - identity_select: Support Received header (#5085) - Plugin API: Added get_compose_responses hook (#5457) - Display error when trying to upload more files than specified in max_file_uploads (#5483) - Add missing sql upgrade file for 'ip' column resize in session table (#5465) - Do not show inline images of unsupported mimetype (#5463) - Password: Added replacement variables support in password_pop_host (#5539) - Password: Don't store passwords in temp files when using dovecotpw (#5531) - Password: Added LDAP PPolicy driver (#5364) - Password: Added cpanel_webmail driver (#5549) - Password: Added possibility to nicely redirect from other plugins on password expiration (#5468) - Implement separate action to mark all messages in a folder as \Seen (#5006) - Implement marking as \Seen in all folders or in a folder and its subfolders (#5076) - Archive: Don't reload messages list when it's not needed (#5225) - Archive: Add option to automatically mark archived messages as \Seen (#5142) - Improve randomness of password salts and random hashes (#5266) - Password/cPanel: Add support for hash authentication and reseller accounts (#5252) - Support host-specific imap_conn_options/smtp_conn_options/managesieve_conn_options (#5136) - Center and scale images in attachment preview frame (#5421) - Added max_message_size option enforced when attaching files to a composed message (#4993) - Added Search button in quick search menus (#5312) - Implement "one click" attachment/messages/photo upload (#5024) - Squirrelmail_usercopy: Add option to define character set of data files - Removed useless 'created' column from 'session' table (#5389) - Dropped legacy browsers support (#5167) - Removed legacy_browser plugin - Removed hacks for IE < 10 - Update to jQuery 3.1.1 and jQuery-UI 1.12.0 - compile .min.js files with ECMASCRIPT5 option - Require PHP >= 5.4 - Add possibility to preview and download attachments in mail compose (#5053) - Add possibility to rename attachments in mail compose (#4996) - Remove backward compatibility "layer" of bc.php (#4902) - Support WEBP images in mail messages (#5362) - Support MathML in HTML message preview (#5182) - Rename Addressbook to Contacts (#5233) - Remove PHP mail() support, smtp_server is required now (#5340) - Display full message subject in onmouseover on truncated subject in mail view (#5346) - Enigma: Support GnuPG 2.1 (#5313) - Enigma: Support key generation for multiple identities (#5383) - Enigma: Import keys from key-server(s) (#5286) - Enigma: Search missing public keys on a key-server in mail compose (#5286) - Enigma: Delete user keys when using deluser.sh script - Enigma: Fix redundant list-secret-keys/list-public-keys calls on signing/encryption - Enigma: Implement PGP encryption and signing in one go (#5302) - Enigma: Display signature verification status for encrypted+signed messages (#5302) - Display different attachment icon on encrypted messages - Display different confirmation text when moving messages to Trash (#5220) - Indicate that a collapsed thread has flagged children (#5013) - Implemented message/rfc822 attachment preview - Update to jsTimezoneDetect 1.0.6 - Managesieve: Add (optional) RAW script editor (#5414) - Managesieve: Add option to automatically set vacation :from address (#5428) - Managesieve: Support 'string' test from variables extension [RFC 5229] (#5248) - Managesieve: Support 'duplicate' extension [RFC 7352] - Managesieve: Unhide advanced rule controls if there are inputs with errors - Managesieve: Display warning message when filter form contains errors - Control search engine crawlers via X-Robots-Tag header instead of and robots.txt (#5098) - Fixed redundancy in sql caching system and compatibility with Galera Cluster (#5439) - Removed redundant 'created' column from cache and cache_shared tables - Removed use of redundant data records - Added missing primary keys (dictionary, cache, cache_shared tables) - Fix so templating system does not mess with external (e.g. email) content (#5499) - Fix redundant keep-alive/refresh after session error on compose page (#5500) - Managesieve: Fix handling of scripts with nested rules (#5540) - Fix variable substitution in ldap host for some use-cases, e.g. new_user_identity (#5544) - Enigma: Fix PHP fatal error when decrypting a message with invalid signature (#5555) - Fix adding images to new identity signatures - Fix rsync error handling in installto.sh script (#5562) - Fix some advanced search issues with multiple addressbooks (#5572) - Fix so group/addressbook selection is retained on page refresh RELEASE 1.2.3 ------------- - Searching in both contacts and groups when LDAP addressbook with group_filters option is used - Fix vulnerability in handling of mail()'s 5th argument - Fix To: header encoding in mail sent with mail() method (#5475) - Fix flickering of header topline in min-mode (#5426) - Fix bug where folders list would scroll to top when clicking on subscription checkbox (#5447) - Fix decoding of GB2312/GBK text when iconv is not installed (#5448) - Fix regression where creation of default folders wasn't functioning without prefix (#5460) - Enigma: Fix bug where last records on keys list were hidden (#5461) - Enigma: Fix key search with keyword containing non-ascii characters (#5459) - Fix bug where deleting folders with subfolders could fail in some cases (#5466) - Fix bug where IMAP password could be exposed via error message (#5472) - Fix bug where it wasn't possible to store more that 2MB objects in memcache/apc, Added memcache_max_allowed_packet and apc_max_allowed_packet settings (#5452) - Fix "Illegal string offset" warning in rcube::log_bug() on PHP 7.1 (#5508) - Fix storing "empty" values in rcube_cache/rcube_cache_shared (#5519) - Fix missing content check when image resize fails on attachment thumbnail generation (#5485) - Fix displaying attached images with wrong Content-Type specified (#5527) RELEASE 1.2.2 ------------- - Enigma: Add possibility to configure gpg-agent binary location (enigma_pgp_agent) - Enigma: Fix signature verification with some IMAP servers, e.g. Gmail, DBMail (#5371) - Enigma: Make recipient key searches case-insensitive (#5434) - Fix regression in resizing JPEG images with Imagick (#5376) - Managesieve: Fix parsing of vacation date-time with non-default date_format (#5372) - Use SymLinksIfOwnerMatch in .htaccess instead of FollowSymLinks disabled on some hosts for security reasons (#5370) - Wash position:fixed style in HTML mail for better security (#5264) - Fix bug where memcache_debug didn't work for session operations - Fix bug where Message-ID domain part was tied to username instead of current identity (#5385) - Fix bug where blocked.gif couldn't be attached to reply/forward with insecure content - Fix E_DEPRECATED warning when using Auth_SASL::factory() (#5401) - Fix bug where names of downloaded files could be malformed when derived from the message subject (#5404) - Fix so "All" messages selection is resetted on search reset (#5413) - Fix bug where folder creation could fail if personal namespace contained more than one entry (#5403) - Fix error causing empty INBOX listing in Firefox when using an URL with user:password specified (#5400) - Fix PHP warning when handling shared namespace with empty prefix (#5420) - Fix so folders list is scrolled to the selected folder on page load (#5424) - Fix so when moving to Trash we make sure the folder exists (#5192) - Fix displaying size of attachments with zero size - Fix so "Action disabled" error uses more appropriate 404 code (#5440) RELEASE 1.2.1 ------------- - Update TinyMCE to version 4.3.13 (#5309) - Fix bug where errors could have been not logged when per_user_logging=true - Fix bug where message list columns could be in wrong order after column drag-n-drop and list sorting - Fix so minified publickey.js (with cache-buster) is used when available (#5254) - Fix (replace) application/x-tar file extension test as it might not exist in nginx config (#5253) - Fix PHP warning when password_hosts is set, but is not an array (#5260) - Fix redundant keep-alive requests when session_lifetime is greater than ~20000 (#5273) - Fix so subfolders of INBOX can be set as Archive (#5274) - Fix bug where multi-folder search could choose a wrong folder in "this and subfolders" scope (#5282) - Fix bug where multi-folder search didn't work for unsubscribed INBOX (#5259) - Fix bug where "no body" alert could be displayed when sending mailvelope email - Enigma: Fix keys import from inside of an encrypted message (#5285) - Enigma: Fix malformed signed messages with force_7bit=true (#5292) - Enigma: Add possibility to configure gpg binary location (enigma_pgp_binary) - Enigma: Add possibility to export private keys (#5321) - Fix searching by email address in contacts with multiple addresses (#5291) - Fix handling of --delete argument in moduserprefs.sh script (#5296) - Workaround PHP issue by calling closelog() on script shutdown when using log_driver=syslog (#5289) - Fix so upgrade script makes sure program/lib directory does not contain old libraries (#5287) - Fix subscription checkbox state on error in folder subscribe/unsubscribe action (#5243) - Fix bug where microsecond format in logged date didn't work in some cases - Fix conflict in new_user_dialog and password_force_new_user settings (#5275) - Don't create multipart/alternative messages with empty text/plain part (#5283) - Use contact_search_name format in popup on results in compose contacts search - Fix handling of 'mailto' and 'error' arguments in message_before_send hook (#5347) - Fix missing localization of HTML editor when assets_dir != INSTALL_PATH - Fix handling of blockquote tags with mixed case on html2text conversion (#5363) - Fix javascript errors in IE on page with iframe that points to another domain RELEASE 1.2.0 ------------- - Enigma: Added enigma_debug option - Fix message list multi-select/deselect issue (#5219) - Fix bug where getting HTML editor content could steal focus from other form controls (#5223) - Fix bug where contact search menu fields where always unchecked in Larry skin - Fix autoloading of 'html' class - Fix bug where Encrypt button appears when switching editor to HTML (#5235) - Fix XSS issue in href attribute on area tag (#5240) RELEASE 1.2-rc -------------- - Managesieve: Refactored script parser to be 100x faster - Enigma: added option to force users to use signing/encryption - Enigma: Added option to attach public keys to sent mail (#5152) - Enigma: Handle messages with text before an encrypted block (#5149) - Enigma: Handle encrypted/signed content inside message/rfc822 attachments - Enigma: Fix missing html/plain switch on multipart/signed messages (#4963) - Enigma: Disable format=flowed for signed plain text messages (#4960) - Enigma: Fix handling of encrypted + signed messages (#4950) - Enigma: Fix invalid boundary use in signed messages structure - Enable use of TLSv1.1 and TLSv1.2 for IMAP (#4955) - Save copy of original .htaccess file when using installto.sh script (#4947) - Fix regression where some message attachments could be missing on edit/forward (#4939) - Fix regression in displaying contents of message/rfc822 parts (#4937) - Fix handling of message/rfc822 attachments on replies and forwards (#4938) - Fix PDF support detection in Firefox > 19 (#4941) - Fix path traversal vulnerability in setting a skin [CVE-2015-8770] (#4945) - Fix so drag-n-drop of text (e.g. recipient addresses) on compose page actually works (#4944) - Fix .htaccess rewrite rules to not block .well-known URIs (#4943) - Fix mail view scaling on iOS (#4915) - Fix PHP7 warning "session_start(): Session callback expects true/false return value" (#4948) - Fix XSS issue in SVG images handling [CVE-2015-8864, CVE-2016-4068] (#4949) - Fix missing language name in "Add to Dictionary" request in HTML mode (#4951) - Fix (again) security issue in DBMail driver of password plugin [CVE-2015-2181] (#4958) - Fix bug where Archive/Junk buttons were not active after page jump with select=all mode (#4961) - Fix bug in long recipients list parsing for cases where recipient name contained @-char (#4964) - Plugin API: Added addressbook_export hook - Fix additional_message_headers plugin compatibility with Mail_Mime >= 1.9 (#4966) - Hide DSN option in Preferences when smtp_server is not used (#4967) - Fix handling of body parameter in mail compose request - Protect download urls against CSRF using unique request tokens [CVE-2016-4069] (#4957) - newmail_notifier: Refactor desktop notifications - Fix so contactlist_fields option can be set via config file - Fix so SPECIAL-USE assignments are forced only until user sets special folders (#4782) - Fix performance in reverting order of THREAD result - Fix converting mail addresses with @www. into mailto links (#5197) RELEASE 1.2-beta ---------------- - Update TinyMCE to version 4.2 - Added support for Redis session handler - Removed some deprecated methods: https://github.com/roundcube/roundcubemail/commit/454b0b1c - Remove backward compatibility "layer" of bc.php (#4902) - Add possibility to define date format in write operations for ldap attributes (#3956) - Display attachment size in compose (#1329) - Added possibility to drag-n-drop attachments from mail preview to compose window - Implemented mail messages searching with predefined date interval - PGP encryption support via Mailvelope integration - PGP encryption support via Enigma plugin - PHP7 compatibility fixes (#4836) - Security: Added brute-force attack prevention via login rate limit (#4922) - Security: Added options to validate username/password on logon (#4884) - Security: Improve randomness of security tokens (#4899) - Security: Use random security tokens instead of hashes based on encryption key (#4829) - Security: Improved encrypt/decrypt methods with option to choose the cipher_method (#4492) - Make optional adding of standard signature separator - sig_separator (#3276) - Optimize folder_size() on Cyrus IMAP by using special folder annotation (#4894) - Make optional hidding of folders with name starting with a dot - imap_skip_hidden_folders (#4870) - Add option to enable HTML editor always, except when replying to plain text messages (#4352) - Emoticons: Added option to switch on/off emoticons in compose editor (#2076) - Emoticons: Added option to switch on/off emoticons in plain text messages - Emoticons: All emoticons-related functionality is handled by the plugin now - Installer: Add button to save generated config file in system temp directory (#3553) - Remove common subject prefixes Re:, Re[x]:, Re-x: on reply (#4882) - Added GSSAPI/Kerberos authentication plugin - krb_authentication - Password: Allow temporarily disabling the plugin functionality with a notice - Require Mbstring and OpenSSL extensions (#5166) - Add --config and --type options to moduserprefs.sh script (#4651) - Implemented memcache_debug and apc_debug options - Installer: Remove system() function use (#4695) - Password plugin: Added 'kpasswd' driver by Peter Allgeyer - Add initdb.sh to create database from initial.sql script with prefix support (#4722) - Plugin API: Added disabled_plugins an disabled_buttons options in html_editor hook - Plugin API: Added html2text hook - Plugin API: Added message_part_body hook - Plugin API: Added message_ready hook - Plugin API: Add special onload() method to execute plugin actions before startup (session and GUI initialization) - Implemented UI element to jump to specified page of the messages list (#1677) - Fix searching of contacts to allow remote images for known senders (#4886) - Fix bug where clicking date column with 'arrival' sorting would switch to sorting by 'date' (#4690) - Fix bug where message content could overlap attachments list in Larry skin (#4876) - Fix so microseconds macro (u) in log_date_format works (#4855) - Fix so unrecognized TNEF attachments are displayed on the list of attachments (#5138) - Fix so database_attachments::cleanup() does not remove attachments from other sessions (#4907) - Fix responses list update issue after response name change (#4917) - Fix bug where message preview was unintentionally reset on check-recent action (#4921) - Fix bug where HTML messages with invalid/excessive css styles couldn't be displayed (#4905) - Fix redundant blank lines when using HTML and top posting (#4927) - Fix redundant blank lines on start of text after html to text conversion (#4928) - Fix HTML sanitizer to skip in output (#4932) - Fix invalid LDAP query in ACL user autocompletion (#4934) RELEASE 1.1.3 ------------- - Fix closing of nested menus (#4854) - Fix so E_DEPRECATED errors from PEAR libs are ignored by error_reporting change (#4770) - Fix compatibility with PHP 5.3 in rcube_ldap class (#4842) - Get rid of Mail_mimeDecode package dependency (#4836) - Fix "Importing..." message does not hide on error (#4840) - Fix Compose action in addressbook for results from multiple addressbooks (#4834) - Fix bug where some messages in multi-folder search couldn't be viewed/printed/downloaded (#4843) - Fix unintentional messages list page change on page switch in compose addressbook (#4844) - Fix race-condition in saving user preferences and loading plugin config (#4845) - Fix so plain text signature field uses monospace font (#4848) - Fix so links with href == content aren't added to links list on html to text conversion (#4847) - Fix handling of non-break spaces in html to text conversion (#4849) - Fix self-reply detection issues (#4852) - Fix multi-folder search result sorting by arrival date (#4858) - Fix so *-request@ addresses in Sender: header are also ignored on reply-all (#4860) - Update to TinyMCE 4.1.10 (#5164) - Fix draft removal after a message is sent and storing sent message is disabled (#4869) - Fix so imap folder attribute comparisons are case-insensitive (#4868) - Fix bug where new messages weren't added to the list in search mode - Fix wrong positioning of message list header on page scroll in Webkit browsers (#4646) - Fix some javascript errors in rare situations (#4853) - Fix error when using back button after sending an email (#4628) - Fix removing signature when switching to identity with an empty sig in HTML mode (#4872) - Disable links list generation on html-to-text conversion of identities or composed message (#4850) - Fix "washing" of style elements wrapped into many lines - Fix so input field (e.g. search box) does not loose focus on list load (#4862) - Fix so css of one html part does not apply to other text parts on message display (#4887) - Fix XSS issue in drag-n-drop file uploads [CVE-2015-8105] (#4900) - Fix handling of plus character in mailto: links (#4891) - Fix so adding CC/BCC recipients from the sidebar unhides compose form fields in Classic skin (#4874) - Fix so gc.sh script removes also expired sessions from sql database (#4893) - Fix support for Mozilla-based browsers, e.g. Pale Moon (#4895) - Fix various issues with Turkish (and similar) locales (#4896) - Fix so In-Reply-To header is set also for MDN receipts (#4897) - Fix missing HTTP_X_FORWARDED_FOR address in generated Received header - Fix issue where Content-Length of some attachments could be set to wrong value causing browser errors (#4877) RELEASE 1.1.2 ------------- - Add new plugin hook 'identity_create_after' providing the ID of the inserted identity (#4807) - Add option to place signature at bottom of the quoted text even in top-posting mode [sig_below] - Fix handling of %-encoded entities in mailto: URLs (#4799) - Fix zipped messages downloads after selecting all messages in a folder (#4797) - Fix vpopmaild driver of password plugin - Fix PHP warning: Non-static method PEAR::setErrorHandling() should not be called statically (#4798) - Fix tables listing routine on mysql and postgres so it skips system or other database tables and views (#4796) - Fix message list header in classic skin on window resize in Internet Explorer (#4732) - Fix so text/calendar parts are listed as attachments even if not marked as such (#4795) - Fix lack of signature separator for plain text signatures in html mode (#4802) - Fix font artifact in Google Chrome on Windows (#4803) - Fix bug where forced extwin page reload could exit from the extwin mode (#4801) - Fix bug where some unrelated attachments in multipart/related message were not listed (#4805) - Fix mouseup event handling when dragging a list record (#4808) - Fix bug where preview_pane setting wasn't always saved into user preferences (#4809) - Fix bug where messages count was not updated after message move/delete with skip_deleted=false (#4814) - Fix security issue in contact photo handling (#4817) - Fix possible memcache/apc cache data consistency issues (#4820) - Fix bug where imap_conn_options were ignored in IMAP connection test (#4822) - Fix bug where some files could have "executable" extension when stored in temp folder (#4815) - Fix attached file path unsetting in database_attachments plugin (#4823) - Fix issues when using moduserprefs.sh without --user argument (#4825) - Fix potential info disclosure issue by protecting directory access (#4816) - Fix blank image in html_signature when saving identity changes (#4833) - Installer: Use openssl_random_pseudo_bytes() (if available) to generate des_key (#4827) - Fix XSS vulnerability in _mbox argument handling (#4837) RELEASE 1.1.1 ------------- - ACL: Allow other plugins to adjust the list of permissions and groups to edit - Add possibility to print contact information (of a single contact) - Add possibility to configure max_allowed_packet value for all database engines (#4772) - Improved handling of storage errors after message is sent - Update to TinyMCE 4.1.9 - Unified request* event arguments handling, added support for _unlock and _action parameters - Security: Generate random hash for the per-user local storage prefix (#4768) - Fix refreshing of drafts list when sending a message which was saved in meantime (#4745) - Fix saving/sending emoticon images when assets_dir is set - Fix PHP fatal error when visiting Vacation interface and there's no sieve script yet (#4778) - Fix setting max packet size for DB caches and check packet size also in shared cache - Fix needless security warning on BMP attachments display (#4771) - Fix handling of some improper constructs in format=flowed text as per the RFC3676[4.5] (#4773) - Fix performance of rcube_db_mysql::get_variable() - Fix missing or not up-to-date CATEGORIES entry in vCard export (#4766) - Fix fatal errors on systems without mbstring extension or mb_regex_encoding() function (#4769) - Fix cursor position on reply below the quote in HTML mode (#4759) - Fix so "over quota" errors are displayed also in message compose page - Fix duplicate entries suppression in autocomplete result (#4776) - Fix "Non-static method PEAR::isError() should not be called statically" errors (#4770) - Fix parsing invalid HTML messages with BOM after (#4777) - Fix duplicate entry on timezones list in rcube_config::timezone_name_from_abbr() (#4779) - Fix so localized folder name is displayed in multi-folder search result (#4750) - Fix javascript error after creating a folder which is a subfolder of another one (#4781) - Fix bug where subject of sent/saved message was removed if mbstring wasn't installed (#4780) - Fix missing vcard_attachment icon on messages list (#4783) - Fix storing signatures with big images in MySQL database (#4785) - Fix Opera browser detection in javascript (#4786) - Fix so search filter, scope and fields are reset on folder change - Fix rows count when messages search fails (#4760) - Fix bug where spellchecking in HTML editor do not work after switching editor type more than once (#4789) - Fix bug where TinyMCE area height was too small on slow network connection (#4788) - Fix backtick character handling in sql queries (#4790) - Fix redirect URL for attachments loaded in an iframe when behind a proxy (#4724) - Fix menu container references to point to the actual
s for printing (#2118) - Fix incorrect word wrapping in outgoing plaintext multibyte messages (#2062) - Fix double footer in HTML message with embedded images - Fix TNEF implementation bug (#2107) - Fix incorrect row id parsing for LDAP contacts list (#2116) - Fix 'mode' parameter in sqlite DSN (#2106) RELEASE 0.2.1 ------------------ - Use US-ASCII as failover when Unicode searching fails (#2097) - Fix errors handling in IMAP command continuations (#2097) - Fix FETCH result parsing for servers returning flags at the end of result (#2098) - Fix datetime columns defaults in mysql's DDL (#2012) - Fix attaching more than nine inline images (#2094) - Support 'UNICODE-1-1-UTF-7' alias for UTF-7 encoding (#2093) - Fix mime-type detection using a hard-coded map (#1735) - Don't return empty string if charset conversion failed (#2092) - Disable concurrent autocomplete query results display (#2082) - Fix new lines stripped from message footer (#2088) - Fix IE problem with mouse click autocomplete (#2080) - Fix html body washing on reply/forward + fix attachments handling (#2034) - Fix multiple recipients input parsing (#2077) - Fix replying to message with html attachment (#2034) - Use default_charset for messages without specified charset (#2027, #1484961) - Support non-standard "GMT-XXXX" literal in date header (#2074) - Added TNEF support to decode MS Outlook attachments (winmail.dat) - Fix "value continuation" MIME headers by adding required semicolon (#2073) - Fix pressing select all/unread multiple times (#2069) - Fix selecting all unread does not honor new messages (#2070) - Fix some base64 encoded attachments handling (#2071) - Support NGINX as IMAP backend: better BAD response handling (#2066) - Performance fix: don't fetch attachment parts headers twice to parse filename - Fix checking for recent messages on various IMAP servers (#2055) - Performance fix: Don't fetch quota and recent messages in "message view" mode - Fix displaying of alternative-inside-alternative messages (#2061) - Fix MDNSent flag checking, use arbitrary keywords (asterisk) flag (#2059) - Fix creation of folders with '&' sign in name - Fix parsing of email addresses without angle brackets (#2048) - Save spellcheck corrections when switching from plain to html editor (and spellchecking is on) - Fix large search results on server without SORT capability (#2031) - Get rid of preg_replace() with eval modifier and create_function usage (#2042) - Bring backand tags in HTML messages - Fix XSS vulnerability through background attributes [CVE-2009-0413] - Fix problems with backslash as IMAP hierarchy delimiter (#1116) - Secure vcard export by getting rid of preg's 'e' modifier use (#2045) - Fix authentication when submitting form with existing session (#2037) - Allow absolute URLs to images in HTML messages/sigs (#2029) - Fix message body which contains both inline attachments and emotions - Fix SQL query execution errors handling in rcube_mdb2 class (#1907) - Fix address names with '@' sign handling (#2022) - Improve messages display performance - Fix messages searching with 'to:' modifier RELEASE 0.2-STABLE ------------------ - Fix mark popup in IE 7 (#1785) - Fix line-break issue when copy & paste in Firefox (#1832) - Fix autocomplete "unknown server error" (#2008) - Fix STARTTLS before AUTH in SMTP connection (#1415) - Support multiple quota values in QUOTAROOT resonse (#1999) - Only abbreviate file name for IE < 7 browsers (#1548) - Performance: allow setting imap rootdir and delimiter before connect (#1628) - Fix sorting of folders with more than 2 levels (#1953) - Fix search results page jumps in LDAP addressbook (#1689) - Fix empty line before the signature in IE (#1769) - Fix horizontal scrollbar in preview pane on IE (#1228) - Add Robots meta tag in login page and installer (#1385) - Added 'show_images' option, removed 'addrbook_show_images' (#1977) - Option to check for new mails in all folders (#1053) - Don't set client busy when checking for new messages (#1706) - Allow UTF-8 folder names in config (#1960) - Add junk_mbox option configuration in installer (#1960) - Do serverside addressbook queries for autocompletion (#1925) - Allow setting attachment col position in 'list_cols' option - Allow override 'list_cols' via skin (#1958) - Fix 'cache' table cleanup on session destroy (#1913) - Increase speed of session destroy and garbage clean up - Fix session timeout when DB server got clock skew (#1890) - Fix handling of some malformed messages (#1099) - Speed up raw message body handling - Better HTML entities conversion in html2text (#1916) - Fix big memory consumption and speed up searching on servers without SORT capability - Fix setting locale to tr_TR, ku and az_AZ (#1872) - Use SORT for searching on servers with SORT capability - Added message status filter - Fix empty file sending (#1801) - Improved searching with many criterias (calling one SEARCH command) - Fix HTML editor initialization on IE (#1731) - Add warning when switching editor mode from html to plain (#1888) - Make identities list scrollable (#1930) - Fix problem with numeric folder names (#1922) - Added BYE response simple support to prevent from endless loops in imap.inc (#777) - Fix unread message unintentionally marked as read if read_when_deleted=true (#1819) - Remove port number from SERVER_NAME in smtp_helo_host (#1915) - Don't send disposition notification receipts for messages marked as 'read' (#1918) - Added 'keep_alive' and 'min_keep_alive' options (#1777) - Added option 'identities_level', removed 'multiple_identities' - Allow deleting identities when multiple_identities=false (#1840) - Added option focus_on_new_message (#1789) - Fix html2text class autoloading on Windows (#1904) - Fix html signature formatting when identity save error occurred (#1833) - Add feedback and set busy when moving folder (#1897) - Fix 'Empty' link visibility for some languages e.g. Slovak (#1889) - Fix messages count bar overlapping (#1703) - Fix adding signature in drafts compose mode (#1884) - Fix iil_C_Sort() to support very long and/or divided responses (#1713) - Fix matching case sensitivity when setting identity on reply (#1881) - Prefer default identity on reply - Fix imap searching on ISMail server (#1870) - Add css class for flagged messages (#1868) - Write username instead of id in sendmail log (#1879) - Fix htmlspecialchars() use for PHP version < 5.2.3 (#1877) - Fix js keywords escaping in json_serialize() for IE/Opera (#1874) - Added bin/killcache.php script (#1839) - Add support for SJIS, GB2312, BIG5 in rc_detect_encoding() - Fix vCard file encoding detection for non-UTF-8 strings (#1820) - Add 'skip_deleted' option in User Preferences (#1850) - Minimize "inline" javascript scripts use (#1838) - Fix css class setting for folders with names matching defined classes names (#1772) - Fix race conditions when changing mailbox - Fix spellchecking when switching to html editor (#1779) - Fix compose window width/height (#1807) - Allow calling msgimport.sh/msgexport.sh from any directory (#1837) - Localized filesize units (#1760) - Better handling of "no identity" and "no email in identity" situations (#1592) - Added 'mime_param_folding' option with possibility to choose long/non-ascii attachment names encoding eg. to be readable in MS Outlook/OE (#1743) - Added "advanced options" feature in User Preferences - Fix unread counter when displaying cached massage in preview panel (#1720) - Fix htmleditor spellchecking on MS Windows (#1808) - Fix problem with non-ascii attachment names in Mail_mime (#1700, #1576) - Fix language autodetection (#1812) - Fix button label in folders management (#1816) - Fix collapsed folder not indicating unread msgs count of all subfolders (#1814) - Fix handling of apostrophes in filenames decoded according to rfc2231 RELEASE 0.2-BETA ---------------- - Made config files location configurable (#1664) - Reduced memory footprint when forwarding attachments (#1764) - Allow and use spellcheck attribute for input/textarea fields (#1545) - Added icons for forwarded/forwarded+replied messages (#1691) - Added Reply-To to forwarded emails (#1739) - Display progress message for folders create/delete/rename (#1774) - Smart Tags and NOBR tag support in html messages (#1780, #1748) - Redesign of the identities settings (#836) - Add config option to disable creation/deletion of identities (#1139) - Added 'sendmail_delay' option to restrict messages sending interval (#1135) - Added vertical splitter for folders list resizing - Added possibility to view all headers in message view - Fixed splitter drag/resize on Opera (#1626) - Fixed quota img height/width setting from template (#1396) - Refactor drag & drop functionality. Don't rely on browser events anymore (#1108) - Insert "virtual" folders in subscription list (#1333) - Added link to open message in new window - Enable export of address book contacts as vCard - Add feature to import contacts from vcard files (#395) - Respect Content-Location headers in multipart/related messages according to RFC2110 (#1464) - Allowed max. attachment size now indicated in compose screen (#1523) - Also capture backspace key in list mode (#1186) - Allow application/pgp parts to be displayed (#1309) - Correctly handle options in mailto-links (#1671) - Immediately save sort_col/sort_order in user prefs (#1698) - Truncate very long (above 50 characters) attachment filenames when displaying - Allow to auto-detect client language if none set (#1095) - Auto-detect the client timezone (user configurable) - Add RFC2231 header value continuations support for attachment filenames + hack for servers that not support that feature - Fix Reply-To header displaying (#1738) - Mark form buttons that provide the most obvious operation (mainaction) - Added option 'quota_zero_as_unlimited' (#1206) - Added PRE handling in html2text class (#1301) - Added folder hierarchy collapsing - Added options to use syslog instead of log file (#1389) - Added Logging & Debugging section in Installer - Fix In-Reply-To and References headers when composing saved draft message (#1718) - Fix html message charset conversion for charsets with underline (#1717) - Fix buttons status after contacts deletion (#1675) - Fix escaping of To: and From: fields when building message body for reply or forward in the HTML editor (#1432) - Use current mailbox name in template (#1690) - Better fix for skipping untagged responses (#1694) - Added pspell support patch by Kris Steinhoff (#781) - Enable spellchecker for HTML editor (#1589) - Respect spellcheck_uri in tinyMCE spellchecker (#941) - Case insensitive contacts searching using PostgreSQL (#1692) - Make default imap folders configurable for each user (#1558) - Save outgoing mail to selectable folder (#1324581) - Fix hiding of mark menu when clicking th button again (#1463) - Use long date format in print mode (#1643) - Updated TinyMCE to version 3.1.0.1 - Re-enable autocomplete attribute for login form (#1661) - Check PERMANENTFLAGS before saving $MDNSent flag (#1478, #1485163) - Added flag column on messages list (#1220) - Patched Mail/MimePart.php (http://pear.php.net/bugs/bug.php?id=14232) - Allow trash/junk subfolders to be purged (#1568) - Store compose parameters in session and redirect to a unique URL - Fixed CRAM-MD5 authentication (#1364) - Fixed forwarding messages with one HTML attachment (#1103) - Fixed encoding of message/rfc822 attachments and image/pjpeg handling (#1439) - Added option to select skin in user preferences - Added option to configure displaying of attached images below the message body - Added option to display images in messages from known senders (#1204) - User preferences grouped in more fieldsets - Fix corrupted MIME headers of messages in Sent folder (#1587) - Fixed bug in MDB2 package: http://pear.php.net/bugs/bug.php?id=14124 - Use keypress instead of keydown to select list's row (#1362) - Don't call expunge and don't remove message row after message move if flag_for_deletion is set to true (#1505) RELEASE 0.2-ALPHA ----------------- - Added option to disable autocompletion from selected LDAP address books (#1445) - TLS support in LDAP connections: 'use_tls' property (#1581) - Fixed removing messages from search set after deleting them (#1583) - imap.inc: Fixed iil_C_FetchStructureString() to handle many literal strings in response (#1483) - Support for subfolders in default/protected folders (#1250) - Disallowed delimiter in folder name (#1351) - Support " and \ in folder names - Escape \ in login (#1214) - Better HTML sanitization with the DOM-based washtml script (#1276) - Fixed sorting of folders with non-ascii characters - Fixed Mysql DDL for default identities creation (#1554) - In Preferences added possibility to configure 'read_when_deleted', 'mdn_requests', 'flag_for_deletion' options - Made IMAP auth type configurable (#683) - Fixed empty values with FROM_UNIXTIME() in rcube_mdb2 (#1540) - Fixed attachment list on IE 6/7 (#1355) - Fixed JavaScript in compose.html that shows cc/bcc fields if populated - Make password input fields of type password in installer (#1417) - Don't attempt to delete cache entries if enable_caching is FALSE (#1537) - Optimized messages sorting on servers without sort capability (#1535) - Corrected message headers decoding when charset isn't specified and improved support for native languages (#1536, #1534) - Expanded LDAP configuration options to support LDAP server writes. - Installer: encode special characters in DB username/password (#1529) - Fixed management of folders with national characters in names (#1526, #1504) - Fixed identities saving when using MDB2 pgsql driver (#1525) - Fixed BCC header reset (#1501) - Improved messages list performance - patch from Justin Heesemann - Append skin_path to images location only when it starts with '/' sign (#1398) - Fix IMAP response in message body when message has no body (#1479) - Fixed non-RFC dates formatting (#1429) - Fixed typo in set_charset() (#1498) - Decode entities when inserting HTML signature to plain text message (#1497) - HTML editing is now working with PHP5 updates and TinyMCE v3.0.6 - Fixed signature loading on Windows (#1169) - Added language support to HTML editing (#1401) - Fixed remove signature when replying (#446) - Fixed problem with line with a space at the end (#1440) - Fixed tag filtering (#1066) - Fixed tag filtering (#1075) - Added sections (fieldset+label) in Settings interface - Mark as read in one action with message preview (#1486) - Deleted redundant quota reads (#1486) - Added options for empty trash and expunge inbox on logout (#707) - Removed lines wrapping when displaying message - Fixed month localization - Changed codebase to PHP5 with autoloader RELEASE 0.1.1 ------------- - Clear selection when selecting single item (#1461) - Remove hard-coded image size in skin templates (#1423) - Database schema improvements (dropped unnecessary indexes) - Fixed creating a new folder with a comma in its name (#1263) - Fixed sorting of messages when default mailbox is empty (#1020) - Improve message previewpane - less loading (#1019) - Fixed login form autoompletion (#1378) - Fixed virtuser_query option for mdb2 backend (#1409) - Fixed attachment resoting from Drafts when message body was empty (#1144) - Fixed usage of ob_gzhandler (#1390) - Fixed message part window in IE6 (#1211) - Fixed decoding of mime-encoded strings (#938) - Fixed some iconv/mb_string problems (#1202) - Correctly quote mailbox name when using in URL (#1016) - Fixed "headers already sent" errors (#1399) RELEASE 0.1-STABLE ------------------ - Added interactive installer script - Fix folder adding/renaming inspired by #1349 - Localize folder name in page title (#1338) - Fix code using wrong variable name (#818) - Allow to send mail with BCC recipients only - condense TinyMCE toolbar down to one line, removing table buttons (#1306) - Add function to mark the selected messages as read/unread (#641) - Also do charset decoding as suggested in RFC 2231 (fix #1022) - Show message count in folder list and hint when creating a subfolder - Distinguish ssl and tls for imap connections (#1252) - Added some charset aliases to fix typical mis-labelling (#1185) - Remember decision to display images for a certain message during session (#1310) - Truncate attachment filenames to 55 characters due to an IE bug (#1313) - Make sending of read receipts configurable - Respect config when localize folder names (#1280) - Also respect receipt and priority settings when re-opening a draft message - Remember search results (closes #722), patch by the_glu - Add Received header on outgoing mail - Upgrade to TinyMCE 2.1.3 - Allow inserting image attachments into HTML messages while composing (#1179) - Implement Message-Disposition-Notification (Receipts) - Fix overriding of session vars when register_globals is on (#1255) - Fix bug with case-sensitive folder names (#973) - Don't create default folders by default - Fixed some potential security risks (audited by Andris) - Only show new messages if they match the current search (#925) - Switch to/from when searcing in Sent folder (#1177) - Correctly read the References header (#1236) - Unset old cookie before sending a new value (#1232) - Correctly decode attachments when downloading them (#1235 and #1484642) - Suppress IE errors when clearing attachments form (#1043) - Log error when login fails due to auto_create_user turned off - Filter linked/imported CSS files (closes #844) - Improve message compose screen (closes #1060) - Select next row after removing one from list (#1063) RELEASE 0.1-RC2 --------------- - Enable drag-&-dropping of folders to a new parent and allow to create subfolders (#637) - Suppress IE errors when clearing attachments form (#1043) - Set preferences field in user table to NULL (#1062) - Log error when login fails due to auto_create_user turned off - Filter linked/imported CSS files (closes #844) - Improve message compose screen (closes #1060) - Select next row after removing one from list (#1063) - Make smtp HELO/EHLO hostname configurable (#851) - IPv6 Compatibility (#1023), Patch #1484373 - Unlock interface when message sending fails (#1188) - Eval PHP code in template includes (if configured) - Show message when folder is empty. Mo more static text in table (#1068) - Only display unread count in page title when new messages arrived - Fixed wrong delete button tooltip (#785) - Fixed charset encoding bug (#1091) - Applied patch for LDAP version (#1175) - Improved XHTML validation - Fix message list selection (#1174) - Better fix lowercased usernames (#1120) - Update pngbehavior Script as suggested in #1134 - Fixed moving/deleting messages when more than 1 is selected - Applied patch for LDAP contacts listing by Glen Ogilvie - Applied patch for more address fields in LDAP contacts (#1074) - Add alternative for getallheaders() (fix #1146) - Identify mailboxes case-sensitive - Sort mailbox list case-insensitive (closes #1032) - Fix display of multipart messages from Apple Mail (closes #823) - Protect AJAX request from being fetched by a foreign site (XSS) - Make autocomplete for loginform configurable by the skin template - Fix compose function from address book (closes #1089) - Added //IGNORE to iconv call (patch #1086, closes #821) - Check if mbstring supports charset (#1003 and #1004) - Prefer iconv over mbstring (as suggested in #1004) - Check filesize of template includes (#1079) - Fixed bug with buttons not dimming/enabling properly after switching folders - Fixed compose window becoming unresponsive after saving a draft (#1132) - Re-enabled "Back" button in compose window now that bug #1132 is fixed - Fixed unresponsive interface issue when downloading attachments (#1138) - Lowered status message time from 5 to 3 seconds to improve responsiveness - Raised .htaccess upload_max_filesize from 2M to 5M to differ from default php.ini - Increased "mailboxcontrols" mail.css width from 160 to 170px to fix non-english languages (#1140) - Fix status message bug #1114 with regard to #1041 - Fix address adding bug reported by David Koblas - Applied socket error patch by Thomas Mangin - Pass-by-reference workarround for PHP5 in sendmail.inc - Fixed buggy imap_root settings (closes #1056) - Prevent default events on subject links (#1071) - Use HTTP-POST requests for actions that change state RELEASE 0.1-RC1 --------------- - Use global filters and bind username/ for Ldap searches (#909) - Hide quota display if imap server does not support it - Hide address groups if no LDAP servers configured - Add link to message subjects (closes #982) - Better SQL query for contact listing/search (closes #1051) - Fixed marking as read in preview pane (closes #1048) - CSS hack to display attachments correctly in IE6 - Wrap message body text (closes #901) - LDAP access is back in address book (closes #864) - Added search function for contacts - New Template parsing and output encoding - Fixed bugs #884 and #793 - Fixed message moving procedure (closes #1013) - Fixed display of multiple attachments (closes #647) - Fixed check for new messages (closes #1015) - List attachments without filename - New session authentication: Change sessid cookie when login, authentication with sessauth cookie is now configurable. Should close bugs #774 and #1484299 - Correctly translate mailbox names (closes #993) - Quote e-mail address links (closes #1007) - Updated PEAR::Mail_mime package - Accept single quotes for HTML attributes when modifying message body (thanks Jason) - Sanitize input for new users/identities (thanks Colin Alston) - Don't download HTML message parts - Convert HTML parts to plaintext if 'prefer_html' is off - Correctly parse message/rfc822 parts (closes #838) - Also use user_id for unique key in messages table (closes #857) - Hide contacts drop down on blur (closes #946) - Make entries in contacts drop down clickable - Turn off browser autocompletion on login page - Quote in text/html message parts - Hide border around radio buttons - Applied patch for attachment download by crichardson (closes #943) - Fixed bug in Postgres DB handling (closes #852) - Fixed bug of invalid calls to fetchRow() in rcube_db.inc (closes #996) - Fixed array_merge bug (closes #997) - Fixed flag for deletion in list view (closes #987) - Finally support semicolons as recipient separator (closes ##976) - Fixed message headers (subject) encoding - check if safe mode is on or not (closes #990) - Show "no subject" in message list if subject is missing (closes #971) - Solved page caching of message preview (closes #905) - Only use gzip compression if configured (closes #967) - Fixed priority selector issue (#903) - Fixed some CSS issues in default skin (closes #951 and #911) - Prevent from double quoting of numeric HTML character references (closes #978) - Fixed display of HTML message attachments (closes #927) - Applied patch for preview caching (closes #933) - Added error handling for attachment uploads - Use multibyte safe string functions where necessary (closes #798) - Applied security patch to validate the submitted host value (by Kees Cook) - Applied security patch to validate input values when deleting contacts (by Kees Cook) - Applied security patch that sanitizes emoticon paths when attaching them (by Kees Cook) - Applied a patch to more aggressively sanitize a HTML message - Visualize blocked images in HTML messages - Fixed wrong message listing when showing search results (closes #890) - Show remote images when opening HTML message part as attachment - Improve memory usage when sending mail (closes #871) - Mark messages as read once the preview is loaded (closes #1484132) - Include smtp final response in log (closes #862) - Corrected date string in sent message header (closes #887) - Correclty choose "To" column in sent and draft mailboxes (closes #769) - Changed srong tooltips for message browse buttons (closes #757) - Fixed signature delimiter character to be standard (Bug #830) - Fixed XSS vulnerability (Bug #877) - Remove newlines from mail headers (Bug #827) - Selection issues when moving/deleting (Bug #837) - Applied patch of Clement Moulin for imap host auto-selection - ISO-encode IMAP password for plaintext login (Bugs #792 & #723) - Fixed folder name encoding in subscription list (Bug #879) - Fixed JS errors in identity list (Bug #885) - Translate foldernames in folder form (closes #879) - Added first and last buttons to message list, address book and message detail - Pressing Shift-Del bypasses Trash folder - Enable purge command for Junk folder - Fetch all aliases if virtuser_query is used instead - Re-enabled multi select of contacts (Bug #817) - Enable contact editing right after creation (Bug #644) - Correct UTF-7 to UTF-8 conversion if mbstring is not available - Fixed IMAP fetch of message body (Bug #819) - Fixed safe_mode problems (Bug #539) - Fixed wrong header encoding (Bug #1483976) - Made automatic draft saving configurable - Fixed JS bug when renaming folders (Bug #799) - Added quota display as image (by Brett Patterson) - Corrected creation of a message-id - New indentation for quoted message text - Improved HTML validity - Fixed URL character set (Ticket #616) - Fixed saving of contact into MySQL from LDAP query results (Ticket #681) - Fixed folder renaming: unsubscribe before rename (Bug #750) - Finalized new message parsing (+ chaching) - Fixed wrong usage of mbstring (Bug #645) - Set default spelling language (Ticket #764) - Added support for Nox Spell Server - Re-built message parsing (Bug #422) Now based on the message structure delivered by the IMAP server. - Fixed some XSS and SQL injection issues - Fixed charset problems with folder renaming diff --git a/skins/larry/mail.css b/skins/larry/mail.css index 5085828e4..1c63dd909 100644 --- a/skins/larry/mail.css +++ b/skins/larry/mail.css @@ -1,1552 +1,1550 @@ /** * Roundcube webmail styles for the Email section * * Copyright (c) 2012-2017, The Roundcube Dev Team * Screendesign by FLINT / Büro für Gestaltung, bueroflint.com * * The contents are subject to the Creative Commons Attribution-ShareAlike * License. It is allowed to copy, distribute, transmit and to adapt the work * by keeping credits to the original autors in the README file. * See http://creativecommons.org/licenses/by-sa/3.0/ for details. */ #mailview-left { position: absolute; top: 0; left: 0; width: 200px; bottom: 0; - z-index: 2; + z-index: 1; /* fixes scrolling in Edge (#5750) */ } #mailview-right { position: absolute; top: 0; left: 212px; right: 0; bottom: 0; - z-index: 3; } #mailview-right.fullwidth { left: 0; } #mailview-top { position: absolute; top: 0; left: 0; right: 0; bottom: 0px; } html.ie #mailview-top { overflow: visible; /* fixes display issues of fixed list header in IE */ } #mailview-bottom { display: none; position: absolute; left: 0; bottom: 0; right: 0; height: 0; border-radius: 4px; border-top: none; } #composeview-right #mailview-bottom { border-radius: 0 0 4px 4px; } #mailboxcontainer, #messagelistcontainer { position: absolute; top: 0; left: 0; width: 100%; bottom: 0; outline: none; } #messagelistcontainer { top: 0; bottom: 30px; overflow: auto; } /* Real browsers accept this (not IE) */ html>/**/body #messagelist { overflow: auto; overflow-x: hidden; } #messagelistfooter { position: absolute; bottom: 0; left: 0; right: 0; height: 22px; padding: 5px 6px 3px; border-top: 1px solid #ddd; background: #eaeaea; border-radius: 0 0 4px 4px; white-space: nowrap; } #messagelistfooter.rightalign { text-align: right; } #messagelistfooter #countcontrols { display: inline-block; } #messagelistfooter #listcontrols, #messagelistfooter #listselectors { display: inline-block; margin-right: 2em; vertical-align: middle; } #messagelistfooter #listselectors .menuselector { margin-top: -2px; } a.iconbutton.listmode { width: 26px; height: 20px; background-position: 0 -477px; } a.iconbutton.threadmode { width: 26px; height: 20px; background-position: 0 -497px; } a.iconbutton.listmode.selected { background-position: -26px -477px; } a.iconbutton.threadmode.selected { background-position: -26px -497px; } #mailboxlist > li:first-child { border-top: 0; } html.mozilla #mailboxlist > li:first-child { border-radius: 4px 4px 0 0; } .folderlist li.mailbox.unread > a { padding-right: 36px; } .folderlist li.unread { font-weight: bold; } .folderlist li.recent > a { color: #017cb4; } .folderlist li.mailbox .unreadcount { position: absolute; top: 3px; right: 6px; min-width: 1.8em; line-height: 15px; padding: 2px 4px; background: #6a939f; border-radius: 9px; color: #fff; text-align: center; font-weight: bold; text-shadow: none; } .folderlist li.mailbox.selected > a .unreadcount { background: #005d76; } .folderlist li.mailbox.recent > a .unreadcount { background: #006ca4; } #searchfilter { position: absolute; right: 256px; width: auto; top: 2px; } #searchfilter select { height: 26px; } #mailview-left select.mailboxlist { position: relative; top: 10px; width: 100%; } #messagetoolbar { position: absolute; top: -6px; left: 0; height: 40px; white-space: nowrap; - z-index: 10; } #messagetoolbar.fullwidth { right: 0; } #messagesearchtools { position: absolute; right: 0; top: 0; } #s_interval { margin: 3px 8px; } /*** message list ***/ table.messagelist { z-index: 1; } table.messagelist.fixedcopy { z-index: 2; } .messagelist thead th:first-child { border-radius: 4px 0 0 0; /* for Chrome */ } .messagelist tr > .attachment, .messagelist tr > .threads, .messagelist tr > .status, .messagelist tr > .flag, .messagelist tr > .priority { width: 20px; padding: 2px 3px !important; } .messagelist tr > .threads { width: 26px; } .messagelist tr > .threads + td, .messagelist tr > .threads + th { border-left: 0; } .messagelist tr > .size { width: 60px; text-align: right; } .messagelist thead tr th.size { text-align: left; } .messagelist tr > .fromto, .messagelist tr > .from, .messagelist tr > .to, .messagelist tr > .cc, .messagelist tr > .replyto { width: 200px; } .messagelist tr > .date { width: 155px; } .messagelist tr > .folder { width: 135px; } .messagelist tr > .hidden { display: none; } .messagelist tr.message { /* background-color: #fff; */ } .messagelist tr.thread.expanded td { background-color: #ededed; } .messagelist tr.unread { font-weight: bold; /* background-color: #fff; */ } .messagelist tr.flagged th, .messagelist tr.flagged td, .messagelist tr.flagged td a { color: #f30; } .messagelist thead tr th.sortedASC a, .messagelist thead tr th.sortedDESC a { color: #004458; text-decoration: underline; background-image: url(images/listicons.png); background-repeat: no-repeat; background-position: right -912px; } .messagelist thead tr th.sortedASC a { background-position: right -944px; } .messagelist td img { vertical-align: middle; display: inline-block; } .messagelist tbody td a { color: #333; text-decoration: none; white-space: nowrap; cursor: default; } .messagelist tbody tr td.flag, .messagelist tbody tr td.status, .messagelist tbody tr td.subject span.status { cursor: pointer; } .messagelist tr > .flag span, .messagelist tr > .status span, .messagelist tr > .attachment span, .messagelist tr > .priority span { display: block; width: 20px; text-indent: -5000px; overflow: hidden; } .messagelist tr td div.collapsed, .messagelist tr td div.expanded, .messagelist tr > .threads .listmenu, .messagelist tr .attachment span.attachment, .messagelist tr .attachment span.report, .messagelist tr .attachment span.encrypted, .messagelist tr > .priority span.priority, .messagelist tr > .priority span.prio1, .messagelist tr > .priority span.prio2, .messagelist tr > .priority span.prio3, .messagelist tr > .priority span.prio4, .messagelist tr > .priority span.prio5, .messagelist tr .flag span.flagged, .messagelist tr .flag span.unflagged, .messagelist tr .flag span.unflagged:hover, .messagelist tr > .status span.status, .messagelist tr > .status span.msgicon, .messagelist tr > .status span.deleted, .messagelist tr > .status span.unread, .messagelist tr > .status span.unreadchildren, .messagelist tr > .subject span.msgicon, .messagelist tr > .subject span.deleted, .messagelist tr > .subject span.unread, .messagelist tr > .subject span.replied, .messagelist tr > .subject span.forwarded, .messagelist tr > .subject span.unreadchildren { display: inline-block; vertical-align: middle; height: 18px; width: 20px; padding: 0; background: url(images/listicons.png) -100px 0 no-repeat; } .messagelist tbody tr .attachment span.attachment { background-position: 0 -996px; } .messagelist thead tr .attachment span.attachment { background-position: -24px -996px; } .messagelist tbody tr .attachment span.report { background-position: -24px -1116px; } .messagelist tbody tr .attachment span.encrypted { background-position: 0 -2272px; } .messagelist thead tr th.priority span.priority { background-position: -25px -1845px; } .messagelist tr td.priority span.prio5 { background-position: -2px -1905px; } .messagelist tr td.priority span.prio4 { background-position: -2px -1885px; } .messagelist tr td.priority span.prio2 { background-position: -2px -1865px; } .messagelist tr td.priority span.prio1 { background-position: -2px -1845px; } /* thread parent message with flagged children */ .messagelist tbody tr.flaggedroot .flag span { background-position: -23px -1076px; } .messagelist tbody tr .flag span.flagged { background-position: 0 -1036px; } .messagelist thead tr th.flag span.flagged { background-position: -22px -1037px; } .messagelist tr:hover td.status span.msgicon { background-position: -23px -1057px; } .messagelist tr:hover .flag span.unflagged { background-position: -23px -1076px; } .messagelist tr td.subject span.msgicon, .messagelist tr td.subject span.unreadchildren { background-position: 0 -1056px; margin: 0 1px 0 0; width: 24px; } .messagelist tr td.subject span.replied { background-position: 0 -1076px; } .messagelist tr td.subject span.forwarded { background-position: 0 -1096px; } .messagelist tr td.subject span.replied.forwarded { background-position: 0 -1116px; } .messagelist tr td.status span.msgicon, .messagelist tr td.flag span.unflagged, .messagelist tr td.status span.unreadchildren { background-position: 0 1056px; /* no icon */ } /* .messagelist tr td.status span.msgicon:hover { background-position: 0 -272px; } */ .messagelist tr td.status span.deleted, .messagelist tr:hover td.status span.deleted, .messagelist tr td.subject span.deleted { background-position: -21px -1096px; } .messagelist tr td.status span.status, .messagelist tr td.status span.unread, .messagelist tr td.subject span.unread, .messagelist tr td.status span.unread:hover { background-position: 0 -1017px !important; } .messagelist thead tr th.status span.status { background-position: -23px -1017px; } .messagelist tr td div.collapsed { background-position: 0 -1137px; cursor: pointer; } .messagelist tr td div.expanded { background-position: 0 -1157px; cursor: pointer; } .messagelist tr th.threads .listmenu { background-position: 4px -972px; cursor: pointer; width: 24px; height: 21px; overflow: hidden; text-indent: -5000px; margin: -3px -5px -2px -6px; padding: 3px 5px 2px 6px; } .messagelist tr th.threads .listmenu:focus { background-color: rgba(73,180,210,0.7); outline: none; } .messagelist thead tr th.subject, .messagelist tbody tr td.subject { width: 99%; white-space: nowrap; } .messagelist tbody tr td.subject a { cursor: default; vertical-align: middle; /* #1487091 */ } /* thread parent message with unread children */ .messagelist tbody tr.unroot td.subject a { text-decoration: underline; } /**** tree indicators ****/ .messagelist tbody tr td span.branch div { display: inline-block; } .messagelist tbody tr td span.branch div.tree { width: 15px; } #listoptions ul.proplist { min-width: 16em; } /**** message view ****/ #mailpreviewframe { display: none; position: absolute; top: 0; left: 0; width: 100%; bottom: 0px; } #messagecontframe { border: 0; border-radius: 4px; } #messagecontent { position: absolute; top: 110px; left: 0; width: 100%; bottom: 1px; overflow: auto; -webkit-overflow-scrolling: touch; } #messageheader, #composeheaders { position: relative; padding: 3px 0; background: #f9f9f9; border-bottom: 1px solid #dfdfdf; } #mailview-right #messageheader { border-radius: 4px 4px 0 0; padding-left: 78px; /* avoid headers eating up all the vertical space */ max-height: 50%; overflow: auto; } h2.subject { font-size: 15px; margin: 0 15em 0 0; padding: 4px 8px 2px 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } #mailview-right #messageheader h2.subject { margin-left: -56px; } h3.subject { font-size: 14px; margin: 0 15em 0 0; padding: 8px 8px 4px 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .headers-table td { color: #666; padding: 1px 8px; } .headers-table td.header, .ui-dialog-content.popup span.adr { font-weight: bold; } .headers-table td.header-title { white-space: nowrap; } .headers-table td.header a, .ui-dialog-content.popup span.adr a { color: #666; text-decoration: none; } .headers-table td.header a:hover, .ui-dialog-content.popup span.adr a:hover { text-decoration: underline; } .headers-table td.subject { color: #333; font-weight: bold; } .headers-table td.header span, .ui-dialog-content.popup span.adr { white-space: nowrap; } .headers-table td.header a.morelink { color: #0069a6; white-space: nowrap; font-weight: normal; } .rcmaddcontact { position: relative; top: 1px; margin-left: 0.5em; } .rcmaddcontact imp { width: 20px; height: 13px; } #preview-allheaders { display: none; } #preview-allheaders td.header-title, #preview-shortheaders td.header-title { padding-left: 0; } #preview-shortheaders td.header { padding-right: 18px; } .moreheaderstoggle { display: block; position: absolute; top: 0; left: 0; bottom: 0; width: 18px; padding: 0; outline: none; background: #e9e9e9; border-right: 1px solid #dfdfdf; border-radius: 3px 0 0 0; /* for Opera */ } .moreheaderstoggle:focus { background: #66bcd9; border-right-color: #66bcd9; } .moreheaderstoggle .iconlink { display: inline-block; position: absolute; top: 8px; left: 0; width: 18px; height: 16px; background: url(images/buttons.png) -27px -242px no-repeat; } .moreheaderstoggle.remove .iconlink { top: auto; bottom: 5px; background-position: -5px -242px; } #full-headers { position: relative; } div.more-headers { position: absolute; top: -12px; right: 10px; width: 12px; height: 10px; cursor: pointer; background: url(images/buttons.png) center -1579px no-repeat; } div.hide-headers { background-position: center -1590px; } #all-headers { position: relative; margin: 4px 10px; padding: 0; height: 180px; border: 1px solid #ccc; border-radius: 4px; background: #fdfdfd; } #headers-source { display: none; position: absolute; top: 0; left: 0; right: 0; bottom: 0; padding: 3px 6px; overflow: auto; text-align: left; color: #333; } #messageheader.previewheader #all-headers { margin-left: 0; } #messageheader.previewheader { position: relative; height: auto; min-height: 52px; padding: 0 0 3px 72px; } #messageheader.previewheader h3.subject { padding: 8px 8px 2px 0; } #messageheader.previewheader #contactphoto { display: block; position: absolute; top: 11px; left: 30px; width: 32px; height: 32px; overflow: hidden; background: url(images/contactpic_32px.png) center center no-repeat #fff; border-radius: 3px; } #messageheader.previewheader #contactphoto img { width: 32px; height: auto; border-radius: 3px; } #messageheader .message-headers { min-height: 60px; } #messageheader #contactphoto { display: block; position: absolute; top: 34px; left: 30px; width: 48px; height: 48px; overflow: hidden; border-radius: 4px; border: 1px solid #e6e6e6; background: url(images/contactpic_48px.png) center center no-repeat #fff; } #messageheader #contactphoto img { width: 48px; height: auto; border-radius: 4px; } #messageheader #countcontrols, #messageheader #formatcontrols { position: absolute; top: 8px; right: 8px; text-align: right; white-space: nowrap; } #messageheader #formatcontrols { top: 38px; right: 8px; } #messageheader .pagenav .countdisplay { padding-right: 0.5em; white-space: nowrap; } #messagecontent .leftcol, #messagepreview .leftcol { margin-right: 252px; } #messagecontent .rightcol, #messagepreview .rightcol { position: absolute; right: 8px; width: 230px; min-height: 200px; background: #f0f0f0; padding: 8px; border-radius: 4px; z-index: 1; } #messagecontent .rightcol { margin-top: 8px; } #messagebody { position: relative; margin: 8px; } #messagebody.mailvelope { margin: 0; } #message-objects div, #messagebody span.part-notice { margin: 8px; } #message-objects div.notice { display: block; color: #960; border: 1px solid #ffdf0e; background-color: #fef893; background-position: 5px -83px; padding: 6px 12px 6px 30px; white-space: normal; } #message-objects div a.button, #messagebody span.part-notice a.button { margin-left: 10px; margin-top: -1px; } div.message-part, div.message-htmlpart, div.message-partheaders { padding: 10px 2px; border-top: 1px solid #ccc; } #messagebody div:first-child { padding-top: 0; border-top: 0; } div.message-part div.pre { margin: 0; padding: 0; font-family: monospace; font-size: 12px; } div.message-part span.sig { color: #666; } div.message-part blockquote { color: blue; border-left: 2px solid blue; border-right: 2px solid blue; background-color: #F6F6F6; margin: 2px 0; padding: 0 0.4em; overflow: hidden; text-overflow: ellipsis; } div.message-part blockquote blockquote { color: green; border-left: 2px solid green; border-right: 2px solid green; } div.message-part blockquote blockquote blockquote { color: #900; border-left: 2px solid #b00; border-right: 2px solid #b00; } div.message-partheaders { margin-top: 8px; padding: 8px 0; } div.message-partheaders .headers-table { width: 100%; } div.message-partheaders .headers-table td.header-title { width: 1%; padding-left: 0; vertical-align: top; } div.message-partheaders .headers-table td.header { width: 99%; } #messagebody > hr { color: #fff; background: #fff; border: 0; border-bottom: 2px solid #f0f0f0; } #messagebody fieldset.image-attachment { border: 0; border-top: 1px solid #ccc; margin-top: 1em; } #messagebody fieldset.image-attachment p > img { max-width: 80%; } #messagebody legend.image-filename { color: #999; font-size: 0.9em; margin: 0 1em; } #messagebody p.image-attachment { position: relative; padding: 1em; margin-bottom: 0; border-top: 1px solid #ccc; } #messagebody p.image-attachment a.image-link { float: left; display: block; margin-right: 2em; min-width: 160px; min-height: 60px; text-align: center; } #messagebody p.image-attachment .image-filename { display: block; font-weight: bold; line-height: 1.6em; } #messagebody p.image-attachment .image-filesize { padding-right: 1em; } #messagebody p.image-attachment .attachment-links a { margin-right: 0.6em; } #messagepartcontainer { position: absolute; top: 0; left: 232px; right: 0; bottom: 0; } #messagepartframe { border: 0; width: 100%; height: 100%; } #messagepartheader { position: absolute; top: 0; left: 0; width: 220px; bottom: 0; } #messagepartheader table { table-layout: fixed; overflow: hidden; } #messagepartheader table td { text-overflow: ellipsis; overflow: hidden; } #messagepartheader table td.title { width: 60px; padding-right: 0; } /*** message composition ***/ #composeview-left { position: absolute; top: 0; left: 0; width: 200px; bottom: 0; } #composeview-right { position: absolute; top: 0; left: 212px; right: 0; bottom: 0; } #compose-contacts { position: absolute; top: 0; left: 0; width: 100%; bottom: 0; } #compose-contacts .listsearchbox { display: block; } #compose-contacts #directorylist { border-bottom: 4px solid #c7e3ef; } #compose-contacts .scroller { top: 65px; } #contacts-table { table-layout: fixed; } #contacts-table td { width: 100%; } #contacts-table td span { display: block; } #contacts-table td span.email { display: inline; color: #69939e; font-style: italic; margin-left: 0.5em; } #compose-contacts li a, #contacts-table td { background-image: url(images/listicons.png); background-position: -100px 0; background-repeat: no-repeat; overflow: hidden; text-overflow: ellipsis; } #compose-contacts li a { padding-left: 36px; } #contacts-table td.contactgroup a { color: #376572; text-decoration: none; } #contacts-table td.contactgroup a span { display: inline-block; font-size: 16px; font-weight: bold; line-height: 11px; margin-left: 0.3em; } #contacts-table tr:first-child td { border-top: 0; } #compose-contacts li.addressbook a { background-position: 6px -766px; } #compose-contacts li.addressbook a:focus, #compose-contacts li.addressbook.selected a { background-position: 6px -791px; } #contacts-table td.contactgroup { background-position: 6px -1553px; } #contacts-table tr.selected td.contactgroup { background-position: 6px -1577px; } #contacts-table td.contact { background-position: 6px -1601px; } #contacts-table tr.selected td.contact { background-position: 6px -1625px; } #compose-content { position: absolute; top: 0; left: 0; right: 0; bottom: 0px; overflow: hidden; } #composeheaders { border-radius: 4px 4px 0 0; padding-left: 19px; } #composebuttons { position: absolute; top: 6px; right: 6px; width: auto; white-space: nowrap; z-index: 100; } #composebuttons a.button.extwin { padding: 2px 3px; } .compose-headers { width: 99%; margin-bottom: 2px; } .compose-headers td { padding: 2px 4px; } .compose-headers td.title { width: 11%; white-space: nowrap; padding-left: 6px; } .compose-headers td.title label { float: left; } .compose-headers td.title a.iconbutton { float: right; position: relative; top: -2px; width: 15px; } .compose-headers td.editfield { width: 90%; padding-left: 4px; } .compose-headers td.editfield a.iconlink { margin-left: 0.5em; } .compose-headers td.formlinks { padding: 0 4px; } .compose-headers td.top { vertical-align: top; padding-top: 10px; } .compose-headers td textarea, .compose-headers td input { width: 100%; resize: none; } #compose-cc, #compose-bcc, #compose-replyto, #compose-followupto { display: none; } #composeoptions { display: none; padding: 2px 0 0 8px; white-space: normal; border-top: 1px solid #dfdfdf; } .composeoption { color: #666; padding-right: 22px; white-space: nowrap; } #composeoptions .composeoption { display: inline-block; padding: 4px 22px 4px 0; } #composeoptions .composeoption:last-child { padding-right: 4px; } .mozilla .composeoption input { vertical-align: -3px; } #composeview-bottom { position: relative; width: 100%; height: 200px; } #composebodycontainer { position: absolute; top: 0; left: 0; right: 260px; bottom: 0; border-radius: 0 0 0 4px; } #composebodycontainer.buttons { bottom: 42px; } #composebodycontainer.mailvelope { right: 0; z-index: 10; } #composebodycontainer.mailvelope > iframe[scrolling='no'] { position: relative; top: -12px; } #composebody { position: absolute; top: 0; left: 0; bottom: 0; width: 99%; border: 0; border-radius: 0 0 0 4px; padding: 4px; resize: none; font-family: monospace; font-size: 9pt; outline: none; } #composebody:active, #composebody:focus { box-shadow: inset 0 0 3px 2px rgba(71,135,177, 0.9); } #compose-attachments { position: absolute; right: 0; top: 1px; bottom: 0; width: 240px; background: #f0f0f0; border-style: solid; border-color: #f0f0f0 #f0f0f0 #f0f0f0 #ddd; border-width: 1px; padding: 8px; overflow: auto; } #compose-attachments.droptarget { background-image: url(images/filedrop.png); background-position: center bottom; background-repeat: no-repeat; } #compose-attachments.droptarget.hover, #compose-attachments.droptarget.active { border-color: #017db4; box-shadow: 0 0 3px 2px rgba(71,135,177, 0.5); } #compose-attachments.droptarget.hover { background-color: #d9ecf4; box-shadow: 0 0 5px 2px rgba(71,135,177, 0.9); } #compose-attachments .attachment-size { color: #888; } #compose-attachments .hint { color: #666; margin: 0 0 8px; } #composeview-bottom .formbuttons.floating { position: absolute; width: auto; right: 260px; z-index: 200; padding-bottom: 8px; } #composebodycontainer .mce-tinymce { border: 0 !important; margin-top: 1px; } #composebodycontainer .mce-panel { border-color: #ccc !important; background: #f0f0f0; } #composebody_toolbargroup { border-bottom: 1px solid #ddd; } #uploadform a.iconlink { margin-left: 1em; text-indent: -5000px; } #uploadform form div { margin: 4px 0; } /**** Styles for widescreen (3-column) view ****/ .widescreen #mailview-top { bottom: 0; width: 400px; height: auto; } .widescreen #mailview-bottom { left: 412px; top:0; border: 1px solid #b2b8bf; } #messagelistheader, .widescreen #messagelistfooter #countcontrols, .widescreen .messagelist > thead, .widescreen .messagelist .branch, .widescreen table.fixedcopy { display: none; } .widescreen #messagelistcontainer { top: 34px; overflow-x: hidden; } .widescreen #messagelistheader { display: block; position: absolute; top: 0; left: 0; right: 0; height: 34px; padding: 6px 6px; background: #efefef; border-radius: 4px 4px 0 0; white-space: nowrap; border-bottom: 1px solid #dfdfdf; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .widescreen #messagelistheader .listmenu { margin-right: 10px; vertical-align: middle; line-height: 22px; width: 26px; padding: 0; text-indent: -5000px; overflow: hidden; display: inline-block; background: url(images/listicons.png) 0 -2330px no-repeat; } .widescreen #countcontrols { line-height: 24px; display: inline; min-width: 0; } .widescreen #countcontrols span { padding: 0; } .widescreen .pagenavbuttons { position: absolute; top: 4px; right: 6px; } .widescreen .pagenavbuttons a.button { background: none; border: 0; padding: 2px; margin: 0; height: 20px; } .widescreen .pagenavbuttons a.button.pressed { background: inherit; } .widescreen a.listmenu:focus, .widescreen .pagenav a.button:focus { border-color: #017db6; outline: none; } .widescreen .messagelist td { border-left: 0; vertical-align: top; padding: 3px 2px !important; } .widescreen .messagelist td.subject { width: 99%; white-space: wrap; position: relative; /* for span.date positioning in Firefox */ } .widescreen .messagelist td.threads { width: 20px; vertical-align: bottom; } .widescreen .messagelist td.threads div { padding-bottom: 1px; } .widescreen .messagelist td.flags { width: 22px; } .widescreen .messagelist td.subject span { line-height: 20px; } .widescreen .messagelist td.subject span.date { right: 2px; top: 3px; position: absolute; color: #666; } .widescreen .messagelist td.subject span.fromto { padding-left: 22px; display: block; margin-right: 10em; overflow: hidden; text-overflow: ellipsis; color: #666; } .widescreen .messagelist tr.flagged td.subject span.date, .widescreen .messagelist tr.flagged td.subject span.fromto { color: #ff5c33; } .widescreen .messagelist tr.deleted td.subject span.date, .widescreen .messagelist tr.deleted td.subject span.fromto { color: #ccc; } .widescreen .messagelist td.subject span.subject { clear: both; display: block; font-size: 12px; overflow: hidden; text-overflow: ellipsis; } .widescreen .messagelist td.flags span { width: 20px; height: 20px; display: block; margin-left: 1px; } .widescreen .messagelist td.flags span.flag { cursor: pointer; } .widescreen .messagelist tr td.subject span.msgicon, .widescreen .messagelist tr td.subject span.unreadchildren { width: 20px; height: 20px; } /* move attachments list to the bottom on narrow mail preview page */ @media screen and (max-width: 800px) { #messagepreview .leftcol { margin-right: 0; } #messagepreview .rightcol { min-height: 0; width: auto; right: 0; position: relative; border-radius: 0; border-bottom: 1px solid #dfdfdf; background-color: #f9f9f9; padding: 5px; } ul.attachmentslist, ul.attachmentslist > li, div.rightcol > div > a.button { vertical-align: middle; display: inline-block; margin-top: 0; } }