Aleksander Machniak
2014-04-15 2e79d8d539ebc1830553a49a8080d0356c9d9531
Move more IE<9 specific code to legacy_browser
1 files added
2 files modified
53 ■■■■ changed files
plugins/legacy_browser/js/iehacks.js 20 ●●●●● patch | view | raw | blame | history
plugins/legacy_browser/legacy_browser.php 19 ●●●● patch | view | raw | blame | history
program/js/common.js 14 ●●●●● patch | view | raw | blame | history
plugins/legacy_browser/js/iehacks.js
New file
@@ -0,0 +1,20 @@
// Make getElementById() case-sensitive on IE7
document._getElementById = document.getElementById;
document.getElementById = function(id) {
  var i = 0, obj = document._getElementById(id);
  if (obj && obj.id != id)
    while ((obj = document.all[i]) && obj.id != id)
      i++;
  return obj;
}
// fix missing :last-child selectors
$(document).ready(function() {
  if (rcmail && rcmail.env.skin != 'classic')
    $('ul.treelist ul').each(function(i, ul) {
      $('li:last-child', ul).css('border-bottom', 0);
  });
});
plugins/legacy_browser/legacy_browser.php
@@ -23,10 +23,12 @@
    function send_page($args)
    {
        // replace jQuery 2.x with 1.x
        $ts = filemtime($this->home . '/js/jquery.min.js');
        $ts1 = filemtime($this->home . '/js/jquery.min.js');
        $ts2 = filemtime($this->home . '/js/iehacks.js');
        $args['content'] = preg_replace(
            '|"program/js/jquery\.min\.js\?s=[0-9]+"|',
            '"plugins/legacy_browser/js/jquery.min.js?s=' . $ts . '"',
            '|<script src="program/js/jquery\.min\.js\?s=[0-9]+" type="text/javascript"></script>|',
            '<script src="plugins/legacy_browser/js/jquery.min.js?s=' . $ts1 . '" type="text/javascript"></script>'."\n"
            .'<script src="plugins/legacy_browser/js/iehacks.js?s=' . $ts2 . '" type="text/javascript"></script>',
            $args['content'], 1);
        return $args;
@@ -53,17 +55,6 @@
                    '<link rel="stylesheet" type="text/css" href="plugins/legacy_browser/larry/iehacks.css" />'
                );
            }
            // fix missing :last-child selectors
            $rcube->output->add_footer(implode("\n", array(
                '<script type="text/javascript">',
                '$(document).ready(function() {',
                '    $(\'ul.treelist ul\').each(function(i,ul) {',
                '        $(\'li:last-child\', ul).css(\'border-bottom\', 0);',
                '    });',
                '});',
                '</script>'
            )));
        }
    }
program/js/common.js
@@ -596,20 +596,6 @@
  };
}
// Make getElementById() case-sensitive on IE
if (bw.ie) {
  document._getElementById = document.getElementById;
  document.getElementById = function(id) {
    var i = 0, obj = document._getElementById(id);
    if (obj && obj.id != id)
      while ((obj = document.all[i]) && obj.id != id)
        i++;
    return obj;
  }
}
// jQuery plugin to emulate HTML5 placeholder attributes on input elements
jQuery.fn.placeholder = function(text) {
  return this.each(function() {