mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 12:49:34 +00:00
c4f87237a7
git-svn-id: https://svn.fhem.de/fhem/trunk@5475 2b470e98-0d58-463d-a4d8-8e2adae1ed80
76 lines
2.1 KiB
JavaScript
76 lines
2.1 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: auto;}'+
|
|
'.CodeMirror-scroll {overflow-y: hidden; overflow-x: auto;}'+
|
|
'</style>');
|
|
}
|
|
|
|
loadScript("codemirror/"+type+".js", function(){
|
|
log("Calling CodeMirror");
|
|
CodeMirror.fromTextArea(cm_editor, attr);
|
|
});
|
|
}
|