cyrilleinvalides/choupas/www/admin/editor/scripts/jsConsole.js

128 lines
2.6 KiB
JavaScript
Executable File

/*
jsConsole herit richTextarea {
methodes {
constructeur(className) : nom de la classe qui sera utilis�e pour cette instance ou null
}
proprietes {
target : sortie texte.
}
evenements {
}
raccourcis {
CTRL + SHIFT + ENTRER : execute le script
}
}
*/
function jsConsoles (containerMan) {
this.containerMan = containerMan;
this.newDoc = function () {
var jsc = jsConsole();
jsc.container = this.containerMan.newContainer('jsConsole', jsc);
jsc.container.onmakeontop = function () {
jsc.getElementsByTagName('textarea')[1].focus();
}
jsc.container.makeOnTop();
}
}
function jsConsole () {
var jsC = document.createElement('div');
var rTa = richTextarea();
var disp = richTextarea();
/******************************/
/* affectation des classe css */
/******************************/
jsC.addClassName('jsC');
rTa.addClassName('jsCEntry');
disp.addClassName('jsCTarget');
/*********************************************/
/* Creation des fonction pour les raccourcis */
/*********************************************/
function execute (e) {
e.preventDefault();
var target = '';
function setTarget(text) {
disp.value = text;
}
function addTarget(text) {
disp.value += text + "\n";
}
function clearTarget() {
disp.value = '';
}
rTa.style.backgroundColor = "#ffcccc";
eval(rTa.value);
rTa.style.backgroundColor = "white";
disp.value = target;
}
function toggle(event) {
if (event && !event.ctrlKey) return false;
if (rTa.hasClassName('jsCEntry') && disp.hasClassName('jsCTarget')) {
rTa.removeClassName('jsCEntry');
rTa.addClassName('jsEFull');
disp.style.display = 'none';
} else { //if ( rTa.hasClassName('editor') && disp.hasClassName('jsCTarget') ) {
rTa.addClassName('jsCEntry');
rTa.removeClassName('jsEFull');
disp.style.display = 'block';
}
return true;
}
function toggledisp(event) {
if (event && !event.ctrlKey) return false;
if (rTa.hasClassName('jsCEntry') && disp.hasClassName('jsCTarget')) {
disp.removeClassName('jsCTarget');
disp.addClassName('jsTFull');
rTa.style.display = 'none';
} else {
disp.addClassName('jsCTarget');
disp.removeClassName('jsTFull');
rTa.style.display = 'block';
}
return true;
}
toggle();
rTa.addEventListener('click', toggle, false);
disp.addEventListener('click', toggledisp, false);
/******************************/
/* Affectation des raccourcis */
/******************************/
rTa.addShortKey(1, 0, 1, 13, execute);
jsC.appendChild(disp);
jsC.appendChild(rTa);
return jsC;
}