2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 12:49:34 +00:00
fhem-mirror/fhem/www/codemirror/fhem_codemirror.js
2014-04-22 19:16:55 +00:00

75 lines
2.0 KiB
JavaScript

var cm_loaded = 0, cm_editor;
loadScript("pgm2/jquery.min.js", function(){
$(document).ready(function(){
var els = document.getElementsByTagName("textarea");
if(els.length == 0)
return;
if($(els[0]).closest("div#edit").css("display")=="none") { // DEF special
$("table.internals a").each(function(){
var oc = $(this).attr("onclick");
if(oc) {
$(this).attr("onclick", oc+
's=document.getElementById("edit").getElementsByTagName("textarea");'+
'if(!s[0].editor) s[0].editor=AddCodeMirror(s[0]);');
}
});
} else {
AddCodeMirror(els[0]);
}
});
});
function
AddCodeMirror(e)
{
cm_editor = e;
loadLink("codemirror/codemirror.css");
loadLink("codemirror/show-hint.css");
loadScript("codemirror/codemirror.js", function(){cm_loaded++;} );
loadScript("codemirror/closebrackets.js",function(){cm_loaded++;} );
loadScript("codemirror/matchbrackets.js",function(){cm_loaded++;} );
loadScript("codemirror/show-hint.js", function(){cm_loaded++;cm_wait()});
}
function
cm_wait()
{
if(cm_loaded != 4) {
setTimeout(cm_wait, 10);
return;
}
var ltype,type="fhem"; // get the type from the hidden filename extension
$("input[name=save]").each(function(){
ltype = $(this).attr("value");
ltype = ltype.substr(ltype.lastIndexOf(".")+1);
if(ltype=="css") type = "css";
if(ltype=="svg") type = "xml";
});
var attr = {
theme: "blackboard",
lineNumbers: true,
matchBrackets: true,
autoCloseBrackets: true,
extraKeys:{'Ctrl-Space':'autocomplete'}
};
var userAttr = scriptAttribute("fhem_codemirror.js");
for(var a in userAttr)
attr[a] = userAttr[a];
loadLink("codemirror/"+attr.theme+".css");
if(ltype) {
$("head").append(
'<style type="text/css">'+
'.CodeMirror {height: ' + (window.innerHeight - 150) + 'px;}'+
'</style>');
}
loadScript("codemirror/"+type+".js", function(){
log("Calling CodeMirror");
CodeMirror.fromTextArea(cm_editor, attr);
});
}