Remove IE 6 support for DIMP
authorMichael M Slusarz <slusarz@curecanti.org>
Tue, 9 Feb 2010 05:17:06 +0000 (22:17 -0700)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 9 Feb 2010 05:17:06 +0000 (22:17 -0700)
imp/docs/CHANGES
imp/js/DimpBase.js
imp/js/DimpCore.js
imp/lib/Auth.php
imp/themes/ie6_or_less-dimp.css [deleted file]

index 38d6fd7..ab49f80 100644 (file)
@@ -2,6 +2,7 @@
 v5.0-git
 --------
 
+[mms] Remove IE 6 support for DIMP.
 [mms] Add chance to switch between forward options on compose page when using
       auto-forward (DIMP).
 [mms] Add chance to switch reply type to single recipient on compose page when
index 86cd8ca..21a8d5a 100644 (file)
@@ -286,7 +286,6 @@ var DimpBase = {
         }
 
         iframe = new Element('IFRAME', { id: 'iframe' + (name === null ? loc : name), className: 'iframe', frameBorder: 0, src: loc }).setStyle({ height: document.viewport.getHeight() + 'px' });
-        this._resizeIE6Iframe(iframe);
         container.insert(iframe);
     },
 
@@ -2297,9 +2296,6 @@ var DimpBase = {
             callback();
         }
 
-        var nf = $('normalfolders'),
-            nfheight = nf.getStyle('max-height');
-
         if (this.folder) {
             this.highlightSidebar(this.getFolderId(this.folder));
         }
@@ -2307,13 +2303,7 @@ var DimpBase = {
         $('foldersLoading').hide();
         $('foldersSidebar').show();
 
-        // Fix for IE6 - which doesn't support max-height.  We need to search
-        // for height: 0px instead (comment in IE 6 CSS explains this is
-        // needed for auto sizing).
-        if (nfheight !== null ||
-            (Prototype.Browser.IE &&
-             Object.isUndefined(nfheight) &&
-             (nf.getStyle('height') == '0px'))) {
+        if ($('normalfolders').getStyle('max-height') !== null) {
             this._sizeFolderlist();
         }
 
@@ -2985,8 +2975,6 @@ var DimpBase = {
             this._toggleHeaders($('th_expand'));
         }
 
-        this._resizeIE6();
-
         /* Remove unavailable menu items. */
         if (!$('GrowlerLog')) {
             $('alertsloglink').remove();
@@ -2994,47 +2982,6 @@ var DimpBase = {
 
         /* Check for new mail. */
         this.setPoll();
-
-        if (DimpCore.is_ie6) {
-            /* Disable text selection in preview pane for IE 6. */
-            document.observe('selectstart', Event.stop);
-
-            /* Since IE 6 doesn't support hover over non-links, use javascript
-             * events to replicate mouseover CSS behavior. */
-            $('dimpbarActions', 'serviceActions', 'applicationfolders', 'specialfolders', 'normalfolders').compact().invoke('select', 'LI').flatten().compact().each(function(e) {
-                e.observe('mouseover', e.addClassName.curry('over')).observe('mouseout', e.removeClassName.curry('over'));
-            });
-
-            /* These are links, but they have no href attribute. Hovering
-             * requires something in href on IE6. */
-            $$('.context A').each(function(e) {
-                e.writeAttribute('href', '');
-            });
-        }
-    },
-
-    // IE 6 width fixes (See Bug #6793)
-    _resizeIE6: function()
-    {
-        if (DimpCore.is_ie6) {
-            var tmp = parseInt($('sidebar').getStyle('width'), 10),
-                tmp1 = document.viewport.getWidth() - tmp - 30;
-            $('normalfolders').setStyle({ width: tmp + 'px' });
-            $('dimpmain').setStyle({ width: tmp1 + 'px' });
-            $('msglist').setStyle({ width: (tmp1 - 5) + 'px' });
-            $('messageBody').setStyle({ width: (tmp1 - 25) + 'px' });
-            tmp = $('dimpmain_portal').down('IFRAME');
-            if (tmp) {
-                this._resizeIE6Iframe(tmp);
-            }
-        }
-    },
-
-    _resizeIE6Iframe: function(iframe)
-    {
-        if (DimpCore.is_ie6) {
-            iframe.setStyle({ width: $('dimpmain').getStyle('width'), height: (document.viewport.getHeight() - 20) + 'px' });
-        }
     },
 
     /* Resize function. */
@@ -3051,9 +2998,6 @@ var DimpBase = {
     {
         this._sizeFolderlist();
         this.splitbar.setStyle({ height: document.viewport.getHeight() + 'px' });
-        if (DimpCore.is_ie6) {
-            this._resizeIE6();
-        }
     },
 
     /* Extend AJAX exception handling. */
index 3fca233..c6c5be0 100644 (file)
@@ -13,7 +13,6 @@ var DimpCore = {
     //   DMenu, Growler, inAjaxCallback, is_init, is_logout
     //   onDoActionComplete
     growler_log: true,
-    is_ie6: Prototype.Browser.IE && !window.XMLHttpRequest,
     server_error: 0,
 
     doActionOpts: {
index abea7c6..b6f4fe9 100644 (file)
@@ -459,6 +459,14 @@ class IMP_Auth
             ? (empty($conf['user']['force_view']) ? 'imp' : $conf['user']['force_view'])
             : (empty($sess['cache']['select_view']) ? 'imp' : $sess['cache']['select_view']);
 
+        /* Enforce minimum browser standards for DIMP. */
+        if (($sess['view'] == 'dimp') &&
+            $GLOBALS['browser']->isBrowser('msie') &&
+            ($GLOBALS['browser']->getMajor() < 7)) {
+            $sess['view'] = 'imp';
+            $GLOBALS['notification']->push(_("Dynamic mode requires Internet Explorer 7+. Using traditional mode instead."), 'horde.error');
+        }
+
         setcookie('default_imp_view', $sess['view'], time() + 30 * 86400,
                   $conf['cookie']['path'],
                   $conf['cookie']['domain']);
diff --git a/imp/themes/ie6_or_less-dimp.css b/imp/themes/ie6_or_less-dimp.css
deleted file mode 100644 (file)
index c1d0623..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * CSS corrections for IE 6 and below.
- */
-
-#pageContainer {
-    height: auto;
-}
-
-#sidebar .sepfull, .splitBar, .context div.sep {
-    overflow: hidden;
-}
-
-#sidebar li {
-    width: 100%;
-}
-
-#normalfolders {
-    /* IE 6 does not support max-height. To auto-size folder list display, set
-     * height to 0px. */
-    height: 0px;
-    overflow: auto;
-}
-
-.context {
-    width: 180px;
-}
-
-#to, #cc, #bcc {
-    overflow: auto;
-}
-
-.block-monthgrid table {
-    border-width: 2px;
-}
-
-#msglistHeader {
-    height: 16px;
-}
-#msglistHeader div {
-    margin-right: -1px;
-}
-#msglistHeader div.msgStatus {
-    margin-right: 0;
-}
-
-.dimpOptions span.iconImg {
-    margin-right: 4px;
-}
-
-/* IE 6 doesn't support DOM.class1.class2 - treats this as DOM.class2. So
- * flag icons will appear as background for row. This works around this. */
-div.vpRow {
-    background: none;
-}
-
-/* Fixes broken inline-block. */
-div.msgStatus div, #msgHeadersContent .subject span, span.iconImg, span.contextImg, span.spellcheckPopdownImg, span.popdownImg, #qsearch_icon, #qsearch_close, #upload_wait, #noticerow .notices li {
-    zoom: 1;
-    *display: inline;
-}