Вход Регистрация
Файл: wysiwyg/redactor/files/plugins/fullscreen/fullscreen.js
Строк: 106
<?php
if (!RedactorPlugins) var RedactorPlugins = {};

RedactorPlugins.fullscreen = {
    
init: function()
    {
        
this.fullscreen = false;

        
this.buttonAdd('fullscreen', this.opts.curLang['fullscreen'], $.proxy(this.toggleFullscreen, this));

        if (
this.opts.fullscreen) this.toggleFullscreen();
    },
    
enableFullScreen: function()
    {
        
this.buttonChangeIcon('fullscreen', 'normalscreen');
        
this.buttonActive('fullscreen');
        
this.fullscreen = true;

        if (
this.opts.toolbarExternal)
        {
            
this.toolcss = {};
            
this.boxcss = {};
            
this.toolcss.width = this.$toolbar.css('width');
            
this.toolcss.top = this.$toolbar.css('top');
            
this.toolcss.position = this.$toolbar.css('position');
            
this.boxcss.top = this.$box.css('top');
        }

        
this.fsheight = this.$editor.height();
        if (
this.opts.iframe) this.fsheight = this.$frame.height();

        if (
this.opts.maxHeight) this.$editor.css('max-height', '');
        if (
this.opts.iframe) var html = this.get();

        if (!
this.$fullscreenPlaceholder) this.$fullscreenPlaceholder = $('<div/>');
        
this.$fullscreenPlaceholder.insertAfter(this.$box);

        
this.$box.appendTo(document.body);

        
this.$box.addClass('redactor_box_fullscreen');
        $(
'body, html').css('overflow', 'hidden');

        if (
this.opts.iframe) this.fullscreenIframe(html);

        
this.fullScreenResize();
        $(
window).resize($.proxy(this.fullScreenResize, this));
        $(
document).scrollTop(0, 0);

        
this.focus();
        
this.observeStart();
    },
    
disableFullScreen: function()
    {
        
this.buttonRemoveIcon('fullscreen', 'normalscreen');
        
this.buttonInactive('fullscreen');
        
this.fullscreen = false;

        $(
window).off('resize', $.proxy(this.fullScreenResize, this));
        $(
'body, html').css('overflow', '');

        
this.$box.insertBefore(this.$fullscreenPlaceholder);
        
this.$fullscreenPlaceholder.remove();

        
this.$box.removeClass('redactor_box_fullscreen').css({ width: 'auto', height: 'auto' });

        if (
this.opts.iframe) html = this.$editor.html();

        if (
this.opts.iframe) this.fullscreenIframe(html);
        else 
this.sync();

        var 
height = this.fsheight;
        if (
this.opts.autoresize) height = 'auto';
        if (
this.opts.maxHeight) this.$editor.css('max-height', this.opts.maxHeight);

        if (
this.opts.toolbarExternal)
        {
            
this.$box.css('top', this.boxcss.top);
            
this.$toolbar.css({
                
'width': this.toolcss.width,
                
'top': this.toolcss.top,
                
'position': this.toolcss.position
            
});
        }

        if (!
this.opts.iframe) this.$editor.css('height', height);
        else 
this.$frame.css('height', height);

        
this.$editor.css('height', height);
        
this.focus();
        
this.observeStart();
    },
    
toggleFullscreen: function()
    {
        if (!
this.fullscreen)
        {
            
this.enableFullScreen();
        }
        else
        {
            
this.disableFullScreen();
        }
    },
    
fullscreenIframe: function(html)
    {
        
this.$editor = this.$frame.contents().find('body');
        
this.$editor.attr({ 'contenteditable': true, 'dir': this.opts.direction });

        
// set document & window
        
if (this.$editor[0])
        {
            
this.document = this.$editor[0].ownerDocument;
            
this.window = this.document.defaultView || window;
        }

        
// iframe css
        
this.iframeAddCss();

        if (
this.opts.fullpage) this.setFullpageOnInit(html);
        else 
this.set(html);

        if (
this.opts.wym) this.$editor.addClass('redactor_editor_wym');
    },
    
fullScreenResize: function()
    {
        if (!
this.fullscreen) return false;

        var 
toolbarHeight = this.$toolbar.height();

        var 
pad = this.$editor.css('padding-top').replace('px', '');
        var 
height = $(window).height() - toolbarHeight;
        
this.$box.width($(window).width() - 2).height(height + toolbarHeight);

        if (
this.opts.toolbarExternal)
        {
            
this.$toolbar.css({
                
'top': '0px',
                
'position': 'absolute',
                
'width': '100%'
            
});

            
this.$box.css('top', toolbarHeight + 'px');
        }

        if (!
this.opts.iframe) this.$editor.height(height - (pad * 2));
        else
        {
            
setTimeout($.proxy(function()
            {
                
this.$frame.height(height);

            }, 
this), 1);
        }

        
this.$editor.height(height);
    }
};
?>
Онлайн: 3
Реклама