Ticket #5054: ie6_bgiframe.diff

File ie6_bgiframe.diff, 4.0 KB (added by Jiri Suchan, 15 years ago)

jQuery bgiframe solution

  • django/contrib/admin/media/js/jquery.bgiframe.min.js

     
     1/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
     2 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
     3 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
     4 *
     5 * $LastChangedDate: 2007-07-21 18:45:56 -0500 (Sat, 21 Jul 2007) $
     6 * $Rev: 2447 $
     7 *
     8 * Version 2.1.1
     9 */
     10(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};})(jQuery);
  • django/contrib/admin/media/js/admin/DateTimeShortcuts.js

     
    158158        //     </div>
    159159        //     <p class="calendar-cancel"><a href="#">Cancel</a></p>
    160160        // </div>
    161         var cal_box = document.createElement('div');
     161        var cal_el = 'div'
     162        var cal_box = document.createElement(cal_el);
     163        var cal_class = new Array('calendarbox', 'module');
    162164        cal_box.style.display = 'none';
    163165        cal_box.style.position = 'absolute';
    164         cal_box.className = 'calendarbox module';
     166        cal_box.className = cal_class.join(' ');
    165167        cal_box.setAttribute('id', DateTimeShortcuts.calendarDivName1 + num);
    166168        document.body.appendChild(cal_box);
     169        jQuery(cal_el + '.' + cal_class.join('.')).bgIframe();
    167170        addEvent(cal_box, 'click', DateTimeShortcuts.cancelEventPropagation);
    168171
    169172        // next-prev links
  • django/contrib/admin/widgets.py

     
    4444class AdminDateWidget(forms.DateTimeInput):
    4545    class Media:
    4646        js = (settings.ADMIN_MEDIA_PREFIX + "js/calendar.js",
    47               settings.ADMIN_MEDIA_PREFIX + "js/admin/DateTimeShortcuts.js")
     47              settings.ADMIN_MEDIA_PREFIX + "js/admin/DateTimeShortcuts.js",
     48              settings.ADMIN_MEDIA_PREFIX + "js/jquery.bgiframe.min.js",
     49              )
    4850
    4951    def __init__(self, attrs={}, format=None):
    5052        super(AdminDateWidget, self).__init__(attrs={'class': 'vDateField', 'size': '10'}, format=format)
     
    5254class AdminTimeWidget(forms.TimeInput):
    5355    class Media:
    5456        js = (settings.ADMIN_MEDIA_PREFIX + "js/calendar.js",
    55               settings.ADMIN_MEDIA_PREFIX + "js/admin/DateTimeShortcuts.js")
     57              settings.ADMIN_MEDIA_PREFIX + "js/admin/DateTimeShortcuts.js",
     58              settings.ADMIN_MEDIA_PREFIX + "js/jquery.bgiframe.min.js",
     59              )
    5660
    5761    def __init__(self, attrs={}, format=None):
    5862        super(AdminTimeWidget, self).__init__(attrs={'class': 'vTimeField', 'size': '8'}, format=format)
Back to Top