mirrored from git://git.moodle.org/moodle.git
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
TableOperations enabled on fullscreen mode, finally :-)
- Loading branch information
julmis
committed
Mar 16, 2004
1 parent
a50d60d
commit bf5f1e7
Showing
1 changed file
with
166 additions
and
164 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,164 +1,166 @@ | ||
<?php | ||
include("../../../config.php"); | ||
?> | ||
<html> | ||
<head><title>Fullscreen Editor</title> | ||
<style type="text/css"> | ||
@import url(../htmlarea.css); | ||
html, body { margin: 0px; border: 0px; background-color: buttonface; } </style> | ||
|
||
|
||
<script type="text/javascript" src="../htmlarea.php<?php print($id != "")?"?id=$id":"";?>"></script> | ||
<script type="text/javascript" src="../lang/en.php"></script> | ||
<script type="text/javascript" src="../dialog.js"></script> | ||
|
||
<script type="text/javascript"> | ||
// load same scripts that were present in the opener page | ||
var scripts = opener.document.getElementsByTagName("script"); | ||
var head = document.getElementsByTagName("head")[0]; | ||
for (var i = 0; i < scripts.length; ++i) { | ||
var script = scripts[i]; | ||
if (typeof script.src != "undefined" && /\S/.test(script.src)) { | ||
// document.write("<scr" + "ipt type=" + "\"script/javascript\""); | ||
// document.write(" src=\"../" + script.src + "\"></scr" + "ipt>"); | ||
var new_script = document.createElement("script"); | ||
if (/^http:/i.test(script.src)) { | ||
new_script.src = script.src; | ||
} else { | ||
new_script.src = "../" + script.src; | ||
} | ||
head.appendChild(new_script); | ||
} | ||
} | ||
</script> | ||
|
||
<script type="text/javascript"> | ||
|
||
var parent_object = null; | ||
var editor = null; // to be initialized later [ function init() ] | ||
|
||
/* ---------------------------------------------------------------------- *\ | ||
Function : | ||
Description : | ||
\* ---------------------------------------------------------------------- */ | ||
|
||
function _CloseOnEsc(ev) { | ||
if (document.all) { | ||
// IE | ||
ev = window.event; | ||
} | ||
if (ev.keyCode == 27) { | ||
// update_parent(); | ||
window.close(); | ||
return; | ||
} | ||
} | ||
|
||
/* ---------------------------------------------------------------------- *\ | ||
Function : cloneObject | ||
Description : copy an object by value instead of by reference | ||
Usage : var newObj = cloneObject(oldObj); | ||
\* ---------------------------------------------------------------------- */ | ||
|
||
function cloneObject(obj) { | ||
var newObj = new Object; | ||
|
||
// check for array objects | ||
if (obj.constructor.toString().indexOf("function Array(") == 1) { | ||
newObj = obj.constructor(); | ||
} | ||
|
||
// check for function objects (as usual, IE is fucked up) | ||
if (obj.constructor.toString().indexOf("function Function(") == 1) { | ||
newObj = obj; // just copy reference to it | ||
} else for (var n in obj) { | ||
var node = obj[n]; | ||
if (typeof node == 'object') { newObj[n] = cloneObject(node); } | ||
else { newObj[n] = node; } | ||
} | ||
|
||
return newObj; | ||
} | ||
|
||
/* ---------------------------------------------------------------------- *\ | ||
Function : resize_editor | ||
Description : resize the editor when the user resizes the popup | ||
\* ---------------------------------------------------------------------- */ | ||
|
||
function resize_editor() { // resize editor to fix window | ||
var newHeight; | ||
if (document.all) { | ||
// IE | ||
newHeight = document.body.offsetHeight - editor._toolbar.offsetHeight; | ||
if (newHeight < 0) { newHeight = 0; } | ||
} else { | ||
// Gecko | ||
newHeight = window.innerHeight - editor._toolbar.offsetHeight; | ||
} | ||
if (editor.config.statusBar) { | ||
newHeight -= editor._statusBar.offsetHeight; | ||
} | ||
editor._textArea.style.height = editor._iframe.style.height = newHeight + "px"; | ||
} | ||
|
||
/* ---------------------------------------------------------------------- *\ | ||
Function : init | ||
Description : run this code on page load | ||
\* ---------------------------------------------------------------------- */ | ||
|
||
function init() { | ||
parent_object = opener.HTMLArea._object; | ||
var config = cloneObject( parent_object.config ); | ||
config.editorURL = "../"; | ||
config.width = "100%"; | ||
config.height = "auto"; | ||
|
||
// change maximize button to minimize button | ||
config.btnList["popupeditor"] = [ 'Minimize Editor', '<?php echo $CFG->wwwroot ?>/lib/editor/images/fullscreen_minimize.gif', true, | ||
function() { window.close(); } ]; | ||
|
||
// generate editor and resize it | ||
editor = new HTMLArea("editor", config); | ||
editor.generate(); | ||
editor._iframe.style.width = "100%"; | ||
editor._textArea.style.width = "100%"; | ||
resize_editor(); | ||
|
||
// set child window contents and event handlers, after a small delay | ||
setTimeout(function() { | ||
editor.setHTML(parent_object.getInnerHTML()); | ||
|
||
// switch mode if needed | ||
if (parent_object._mode == "textmode") { editor.setMode("textmode"); } | ||
|
||
// continuously update parent editor window | ||
setInterval(update_parent, 500); | ||
|
||
// setup event handlers | ||
document.body.onkeypress = _CloseOnEsc; | ||
editor._doc.body.onkeypress = _CloseOnEsc; | ||
editor._textArea.onkeypress = _CloseOnEsc; | ||
window.onresize = resize_editor; | ||
}, 333); // give it some time to meet the new frame | ||
} | ||
|
||
/* ---------------------------------------------------------------------- *\ | ||
Function : update_parent | ||
Description : update parent window editor field with contents from child window | ||
\* ---------------------------------------------------------------------- */ | ||
|
||
function update_parent() { | ||
// use the fast version | ||
parent_object.setHTML(editor.getInnerHTML()); | ||
} | ||
|
||
|
||
</script> | ||
</head> | ||
<body scroll="no" onload="init()" onunload="update_parent()"> | ||
|
||
<form style="margin: 0px; border: 1px solid; border-color: threedshadow threedhighlight threedhighlight threedshadow;"> | ||
<textarea name="editor" id="editor" style="width:100%; height:300px"> </textarea> | ||
</form> | ||
|
||
</body></html> | ||
<?php // $Id$ | ||
include("../../../config.php"); | ||
?> | ||
<html> | ||
<head><title>Fullscreen Editor</title> | ||
<style type="text/css"> | ||
@import url(../htmlarea.css); | ||
html, body { margin: 0px; border: 0px; background-color: buttonface; } </style> | ||
|
||
|
||
<script type="text/javascript" src="../htmlarea.php<?php print($id != "")?"?id=$id":"";?>"></script> | ||
<script type="text/javascript" src="../lang/en.php"></script> | ||
<script type="text/javascript" src="../dialog.js"></script> | ||
<script type="text/javascript" src="../plugins/TableOperations/table-operations.js"></script> | ||
<script type="text/javascript" src="../plugins/TableOperations/lang/en.js"></script> | ||
<script type="text/javascript"> | ||
// load same scripts that were present in the opener page | ||
var scripts = opener.document.getElementsByTagName("script"); | ||
var head = document.getElementsByTagName("head")[0]; | ||
for (var i = 0; i < scripts.length; ++i) { | ||
var script = scripts[i]; | ||
if (typeof script.src != "undefined" && /\S/.test(script.src)) { | ||
// document.write("<scr" + "ipt type=" + "\"script/javascript\""); | ||
// document.write(" src=\"../" + script.src + "\"></scr" + "ipt>"); | ||
var new_script = document.createElement("script"); | ||
if (/^http:/i.test(script.src)) { | ||
new_script.src = script.src; | ||
} else { | ||
new_script.src = "../" + script.src; | ||
} | ||
head.appendChild(new_script); | ||
} | ||
} | ||
</script> | ||
|
||
<script type="text/javascript"> | ||
|
||
var parent_object = null; | ||
var editor = null; // to be initialized later [ function init() ] | ||
|
||
/* ---------------------------------------------------------------------- *\ | ||
Function : | ||
Description : | ||
\* ---------------------------------------------------------------------- */ | ||
|
||
function _CloseOnEsc(ev) { | ||
if (document.all) { | ||
// IE | ||
ev = window.event; | ||
} | ||
if (ev.keyCode == 27) { | ||
// update_parent(); | ||
window.close(); | ||
return; | ||
} | ||
} | ||
|
||
/* ---------------------------------------------------------------------- *\ | ||
Function : cloneObject | ||
Description : copy an object by value instead of by reference | ||
Usage : var newObj = cloneObject(oldObj); | ||
\* ---------------------------------------------------------------------- */ | ||
|
||
function cloneObject(obj) { | ||
var newObj = new Object; | ||
|
||
// check for array objects | ||
if (obj.constructor.toString().indexOf("function Array(") == 1) { | ||
newObj = obj.constructor(); | ||
} | ||
|
||
// check for function objects (as usual, IE is fucked up) | ||
if (obj.constructor.toString().indexOf("function Function(") == 1) { | ||
newObj = obj; // just copy reference to it | ||
} else for (var n in obj) { | ||
var node = obj[n]; | ||
if (typeof node == 'object') { newObj[n] = cloneObject(node); } | ||
else { newObj[n] = node; } | ||
} | ||
|
||
return newObj; | ||
} | ||
|
||
/* ---------------------------------------------------------------------- *\ | ||
Function : resize_editor | ||
Description : resize the editor when the user resizes the popup | ||
\* ---------------------------------------------------------------------- */ | ||
|
||
function resize_editor() { // resize editor to fix window | ||
var newHeight; | ||
if (document.all) { | ||
// IE | ||
newHeight = document.body.offsetHeight - editor._toolbar.offsetHeight; | ||
if (newHeight < 0) { newHeight = 0; } | ||
} else { | ||
// Gecko | ||
newHeight = window.innerHeight - editor._toolbar.offsetHeight; | ||
} | ||
if (editor.config.statusBar) { | ||
newHeight -= editor._statusBar.offsetHeight; | ||
} | ||
editor._textArea.style.height = editor._iframe.style.height = newHeight + "px"; | ||
} | ||
|
||
/* ---------------------------------------------------------------------- *\ | ||
Function : init | ||
Description : run this code on page load | ||
\* ---------------------------------------------------------------------- */ | ||
|
||
function init() { | ||
parent_object = opener.HTMLArea._object; | ||
var config = cloneObject( parent_object.config ); | ||
config.editorURL = "../"; | ||
config.width = "100%"; | ||
config.height = "auto"; | ||
|
||
// change maximize button to minimize button | ||
config.btnList["popupeditor"] = [ 'Minimize Editor', '<?php echo $CFG->wwwroot ?>/lib/editor/images/fullscreen_minimize.gif', true, | ||
function() { window.close(); } ]; | ||
|
||
// generate editor and resize it | ||
editor = new HTMLArea("editor", config); | ||
editor.registerPlugin(TableOperations); | ||
editor.generate(); | ||
editor._iframe.style.width = "100%"; | ||
editor._textArea.style.width = "100%"; | ||
resize_editor(); | ||
|
||
// set child window contents and event handlers, after a small delay | ||
setTimeout(function() { | ||
editor.setHTML(parent_object.getInnerHTML()); | ||
|
||
// switch mode if needed | ||
if (parent_object._mode == "textmode") { editor.setMode("textmode"); } | ||
|
||
// continuously update parent editor window | ||
setInterval(update_parent, 500); | ||
|
||
// setup event handlers | ||
document.body.onkeypress = _CloseOnEsc; | ||
editor._doc.body.onkeypress = _CloseOnEsc; | ||
editor._textArea.onkeypress = _CloseOnEsc; | ||
window.onresize = resize_editor; | ||
}, 333); // give it some time to meet the new frame | ||
} | ||
|
||
/* ---------------------------------------------------------------------- *\ | ||
Function : update_parent | ||
Description : update parent window editor field with contents from child window | ||
\* ---------------------------------------------------------------------- */ | ||
|
||
function update_parent() { | ||
// use the fast version | ||
parent_object.setHTML(editor.getInnerHTML()); | ||
} | ||
|
||
|
||
</script> | ||
</head> | ||
<body scroll="no" onload="init()" onunload="update_parent()"> | ||
|
||
<form style="margin: 0px; border: 1px solid; border-color: threedshadow threedhighlight threedhighlight threedshadow;"> | ||
<textarea name="editor" id="editor" style="width:100%; height:300px"> </textarea> | ||
</form> | ||
|
||
</body></html> |