summaryrefslogtreecommitdiff
path: root/public/javascripts/tiny_mce/plugins/fullscreen
diff options
context:
space:
mode:
Diffstat (limited to 'public/javascripts/tiny_mce/plugins/fullscreen')
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js1
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js145
-rwxr-xr-xpublic/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm111
3 files changed, 257 insertions, 0 deletions
diff --git a/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js b/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js
new file mode 100755
index 0000000..fbcec59
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js
@@ -0,0 +1 @@
(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.plugins.FullScreenPlugin',{init:function(ed,url){var t=this,s={},vp;t.editor=ed;ed.addCommand('mceFullScreen',function(){var win,de=DOM.doc.documentElement;if(ed.getParam('fullscreen_is_enabled')){if(ed.getParam('fullscreen_new_window'))closeFullscreen();else{DOM.win.setTimeout(function(){tinymce.dom.Event.remove(DOM.win,'resize',t.resizeFunc);tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format:'raw'}),{format:'raw'});tinyMCE.remove(ed);DOM.remove('mce_fullscreen_container');de.style.overflow=ed.getParam('fullscreen_html_overflow');DOM.setStyle(DOM.doc.body,'overflow',ed.getParam('fullscreen_overflow'));DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'),ed.getParam('fullscreen_scrolly'));tinyMCE.settings=tinyMCE.oldSettings;},10);}return;}if(ed.getParam('fullscreen_new_window')){win=DOM.win.open(url+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{win.resizeTo(screen.availWidth,screen.availHeight);}catch(e){}}else{tinyMCE.oldSettings=tinyMCE.settings;s.fullscreen_overflow=DOM.getStyle(DOM.doc.body,'overflow',1)||'auto';s.fullscreen_html_overflow=DOM.getStyle(de,'overflow',1);vp=DOM.getViewPort();s.fullscreen_scrollx=vp.x;s.fullscreen_scrolly=vp.y;if(tinymce.isOpera&&s.fullscreen_overflow=='visible')s.fullscreen_overflow='auto';if(tinymce.isIE&&s.fullscreen_overflow=='scroll')s.fullscreen_overflow='auto';if(tinymce.isIE&&(s.fullscreen_html_overflow=='visible'||s.fullscreen_html_overflow=='scroll'))s.fullscreen_html_overflow='auto';if(s.fullscreen_overflow=='0px')s.fullscreen_overflow='';DOM.setStyle(DOM.doc.body,'overflow','hidden');de.style.overflow='hidden';vp=DOM.getViewPort();DOM.win.scrollTo(0,0);if(tinymce.isIE)vp.h-=1;n=DOM.add(DOM.doc.body,'div',{id:'mce_fullscreen_container',style:'position:'+(tinymce.isIE6||(tinymce.isIE&&!DOM.boxModel)?'absolute':'fixed')+';top:0;left:0;width:'+vp.w+'px;height:'+vp.h+'px;z-index:200000;'});DOM.add(n,'div',{id:'mce_fullscreen'});tinymce.each(ed.settings,function(v,n){s[n]=v;});s.id='mce_fullscreen';s.width=n.clientWidth;s.height=n.clientHeight-15;s.fullscreen_is_enabled=true;s.fullscreen_editor_id=ed.id;s.theme_advanced_resizing=false;s.save_onsavecallback=function(){ed.setContent(tinyMCE.get(s.id).getContent({format:'raw'}),{format:'raw'});ed.execCommand('mceSave');};tinymce.each(ed.getParam('fullscreen_settings'),function(v,k){s[k]=v;});if(s.theme_advanced_toolbar_location==='external')s.theme_advanced_toolbar_location='top';t.fullscreenEditor=new tinymce.Editor('mce_fullscreen',s);t.fullscreenEditor.onInit.add(function(){t.fullscreenEditor.setContent(ed.getContent());t.fullscreenEditor.focus();});t.fullscreenEditor.render();tinyMCE.add(t.fullscreenEditor);t.fullscreenElement=new tinymce.dom.Element('mce_fullscreen_container');t.fullscreenElement.update();t.resizeFunc=tinymce.dom.Event.add(DOM.win,'resize',function(){var vp=tinymce.DOM.getViewPort();t.fullscreenEditor.theme.resizeTo(vp.w,vp.h);});}});ed.addButton('fullscreen',{title:'fullscreen.desc',cmd:'mceFullScreen'});ed.onNodeChange.add(function(ed,cm){cm.setActive('fullscreen',ed.getParam('fullscreen_is_enabled'));});},getInfo:function(){return{longname:'Fullscreen',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('fullscreen',tinymce.plugins.FullScreenPlugin);})(); \ No newline at end of file
diff --git a/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js b/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js
new file mode 100755
index 0000000..77a8c3b
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js
@@ -0,0 +1,145 @@
1/**
2 * $Id: editor_plugin_src.js 923 2008-09-09 16:45:29Z spocke $
3 *
4 * @author Moxiecode
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
6 */
7
8(function() {
9 var DOM = tinymce.DOM;
10
11 tinymce.create('tinymce.plugins.FullScreenPlugin', {
12 init : function(ed, url) {
13 var t = this, s = {}, vp;
14
15 t.editor = ed;
16
17 // Register commands
18 ed.addCommand('mceFullScreen', function() {
19 var win, de = DOM.doc.documentElement;
20
21 if (ed.getParam('fullscreen_is_enabled')) {
22 if (ed.getParam('fullscreen_new_window'))
23 closeFullscreen(); // Call to close in new window
24 else {
25 DOM.win.setTimeout(function() {
26 tinymce.dom.Event.remove(DOM.win, 'resize', t.resizeFunc);
27 tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format : 'raw'}), {format : 'raw'});
28 tinyMCE.remove(ed);
29 DOM.remove('mce_fullscreen_container');
30 de.style.overflow = ed.getParam('fullscreen_html_overflow');
31 DOM.setStyle(DOM.doc.body, 'overflow', ed.getParam('fullscreen_overflow'));
32 DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly'));
33 tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings
34 }, 10);
35 }
36
37 return;
38 }
39
40 if (ed.getParam('fullscreen_new_window')) {
41 win = DOM.win.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);
42 try {
43 win.resizeTo(screen.availWidth, screen.availHeight);
44 } catch (e) {
45 // Ignore
46 }
47 } else {
48 tinyMCE.oldSettings = tinyMCE.settings; // Store old settings
49 s.fullscreen_overflow = DOM.getStyle(DOM.doc.body, 'overflow', 1) || 'auto';
50 s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1);
51 vp = DOM.getViewPort();
52 s.fullscreen_scrollx = vp.x;
53 s.fullscreen_scrolly = vp.y;
54
55 // Fixes an Opera bug where the scrollbars doesn't reappear
56 if (tinymce.isOpera && s.fullscreen_overflow == 'visible')
57 s.fullscreen_overflow = 'auto';
58
59 // Fixes an IE bug where horizontal scrollbars would appear
60 if (tinymce.isIE && s.fullscreen_overflow == 'scroll')
61 s.fullscreen_overflow = 'auto';
62
63 // Fixes an IE bug where the scrollbars doesn't reappear
64 if (tinymce.isIE && (s.fullscreen_html_overflow == 'visible' || s.fullscreen_html_overflow == 'scroll'))
65 s.fullscreen_html_overflow = 'auto';
66
67 if (s.fullscreen_overflow == '0px')
68 s.fullscreen_overflow = '';
69
70 DOM.setStyle(DOM.doc.body, 'overflow', 'hidden');
71 de.style.overflow = 'hidden'; //Fix for IE6/7
72 vp = DOM.getViewPort();
73 DOM.win.scrollTo(0, 0);
74
75 if (tinymce.isIE)
76 vp.h -= 1;
77
78 n = DOM.add(DOM.doc.body, 'div', {id : 'mce_fullscreen_container', style : 'position:' + (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel) ? 'absolute' : 'fixed') + ';top:0;left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});
79 DOM.add(n, 'div', {id : 'mce_fullscreen'});
80
81 tinymce.each(ed.settings, function(v, n) {
82 s[n] = v;
83 });
84
85 s.id = 'mce_fullscreen';
86 s.width = n.clientWidth;
87 s.height = n.clientHeight - 15;
88 s.fullscreen_is_enabled = true;
89 s.fullscreen_editor_id = ed.id;
90 s.theme_advanced_resizing = false;
91 s.save_onsavecallback = function() {
92 ed.setContent(tinyMCE.get(s.id).getContent({format : 'raw'}), {format : 'raw'});
93 ed.execCommand('mceSave');
94 };
95
96 tinymce.each(ed.getParam('fullscreen_settings'), function(v, k) {
97 s[k] = v;
98 });
99
100 if (s.theme_advanced_toolbar_location === 'external')
101 s.theme_advanced_toolbar_location = 'top';
102
103 t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s);
104 t.fullscreenEditor.onInit.add(function() {
105 t.fullscreenEditor.setContent(ed.getContent());
106 t.fullscreenEditor.focus();
107 });
108
109 t.fullscreenEditor.render();
110 tinyMCE.add(t.fullscreenEditor);
111
112 t.fullscreenElement = new tinymce.dom.Element('mce_fullscreen_container');
113 t.fullscreenElement.update();
114 //document.body.overflow = 'hidden';
115
116 t.resizeFunc = tinymce.dom.Event.add(DOM.win, 'resize', function() {
117 var vp = tinymce.DOM.getViewPort();
118
119 t.fullscreenEditor.theme.resizeTo(vp.w, vp.h);
120 });
121 }
122 });
123
124 // Register buttons
125 ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'mceFullScreen'});
126
127 ed.onNodeChange.add(function(ed, cm) {
128 cm.setActive('fullscreen', ed.getParam('fullscreen_is_enabled'));
129 });
130 },
131
132 getInfo : function() {
133 return {
134 longname : 'Fullscreen',
135 author : 'Moxiecode Systems AB',
136 authorurl : 'http://tinymce.moxiecode.com',
137 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',
138 version : tinymce.majorVersion + "." + tinymce.minorVersion
139 };
140 }
141 });
142
143 // Register plugin
144 tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin);
145})(); \ No newline at end of file
diff --git a/public/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm b/public/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm
new file mode 100755
index 0000000..4b081ca
--- /dev/null
+++ b/public/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm
@@ -0,0 +1,111 @@
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4 <title></title>
5 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
6 <script type="text/javascript" src="../../tiny_mce.js"></script>
7 <script type="text/javascript">
8 function patchCallback(settings, key) {
9 if (settings[key])
10 settings[key] = "window.opener." + settings[key];
11 }
12
13 var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings, oeID = window.opener.tinyMCE.activeEditor.id;
14
15 // Clone array
16 for (var n in paSe)
17 settings[n] = paSe[n];
18
19 // Override options for fullscreen
20 for (var n in paSe.fullscreen_settings)
21 settings[n] = paSe.fullscreen_settings[n];
22
23 // Patch callbacks, make them point to window.opener
24 patchCallback(settings, 'urlconverter_callback');
25 patchCallback(settings, 'insertlink_callback');
26 patchCallback(settings, 'insertimage_callback');
27 patchCallback(settings, 'setupcontent_callback');
28 patchCallback(settings, 'save_callback');
29 patchCallback(settings, 'onchange_callback');
30 patchCallback(settings, 'init_instance_callback');
31 patchCallback(settings, 'file_browser_callback');
32 patchCallback(settings, 'cleanup_callback');
33 patchCallback(settings, 'execcommand_callback');
34 patchCallback(settings, 'oninit');
35
36 // Set options
37 delete settings.id;
38 settings['mode'] = 'exact';
39 settings['elements'] = 'fullscreenarea';
40 settings['add_unload_trigger'] = false;
41 settings['ask'] = false;
42 settings['document_base_url'] = window.opener.tinyMCE.activeEditor.documentBaseURI.getURI();
43 settings['fullscreen_is_enabled'] = true;
44 settings['fullscreen_editor_id'] = oeID;
45 settings['theme_advanced_resizing'] = false;
46 settings['strict_loading_mode'] = true;
47
48 settings.save_onsavecallback = function() {
49 window.opener.tinyMCE.get(oeID).setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'});
50 window.opener.tinyMCE.get(oeID).execCommand('mceSave');
51 window.close();
52 };
53
54 function unloadHandler(e) {
55 moveContent();
56 }
57
58 function moveContent() {
59 window.opener.tinyMCE.get(oeID).setContent(tinyMCE.activeEditor.getContent());
60 }
61
62 function closeFullscreen() {
63 moveContent();
64 window.close();
65 }
66
67 function doParentSubmit() {
68 moveContent();
69
70 if (window.opener.tinyMCE.selectedInstance.formElement.form)
71 window.opener.tinyMCE.selectedInstance.formElement.form.submit();
72
73 window.close();
74
75 return false;
76 }
77
78 function render() {
79 var e = document.getElementById('fullscreenarea'), vp, ed, ow, oh, dom = tinymce.DOM;
80
81 e.value = window.opener.tinyMCE.get(oeID).getContent();
82
83 vp = dom.getViewPort();
84 settings.width = vp.w;
85 settings.height = vp.h - 15;
86
87 tinymce.dom.Event.add(window, 'resize', function() {
88 var vp = dom.getViewPort();
89
90 tinyMCE.activeEditor.theme.resizeTo(vp.w, vp.h);
91 });
92
93 tinyMCE.init(settings);
94 }
95
96 // Add onunload
97 tinymce.dom.Event.add(window, "beforeunload", unloadHandler);
98 </script>
99 <base target="_self" />
100</head>
101<body style="margin:0;overflow:hidden;width:100%;height:100%" scrolling="no" scroll="no">
102<form onsubmit="doParentSubmit();">
103<textarea id="fullscreenarea" style="width:100%; height:100%"></textarea>
104</form>
105
106<script type="text/javascript">
107 render();
108</script>
109
110</body>
111</html>