Файл: 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);
}
};
?>