mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-15 16:19:11 +00:00
codemirror.js: fix textfield-long patch (Forum #33226)
git-svn-id: https://svn.fhem.de/fhem/trunk@7882 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
7e4c9a6123
commit
618e57e1dc
@ -1,4 +1,4 @@
|
|||||||
var cm_loaded = 0, cm_editor;
|
var cm_loaded = 0;
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
var els = document.getElementsByTagName("textarea");
|
var els = document.getElementsByTagName("textarea");
|
||||||
@ -11,7 +11,7 @@ $(document).ready(function(){
|
|||||||
if(oc) {
|
if(oc) {
|
||||||
$(this).attr("onclick", oc+
|
$(this).attr("onclick", oc+
|
||||||
's=document.getElementById("edit").getElementsByTagName("textarea");'+
|
's=document.getElementById("edit").getElementsByTagName("textarea");'+
|
||||||
'if(!s[0].editor) s[0].editor=AddCodeMirror(s[0]);');
|
'if(!s[0].editor) { s[0].editor=true; AddCodeMirror(s[0]);}');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@ -20,19 +20,23 @@ $(document).ready(function(){
|
|||||||
});
|
});
|
||||||
|
|
||||||
function
|
function
|
||||||
AddCodeMirror(e)
|
AddCodeMirror(e, cb)
|
||||||
{
|
{
|
||||||
cm_editor = e;
|
if(cm_loaded == 4)
|
||||||
|
return cm_wait(e, cb);
|
||||||
loadLink("codemirror/codemirror.css");
|
loadLink("codemirror/codemirror.css");
|
||||||
loadLink("codemirror/show-hint.css");
|
loadLink("codemirror/show-hint.css");
|
||||||
loadScript("codemirror/codemirror.js", function(){cm_loaded++;} );
|
loadScript("codemirror/codemirror.js", function(){ cm_loaded++;} );
|
||||||
loadScript("codemirror/closebrackets.js",function(){cm_loaded++;} );
|
loadScript("codemirror/closebrackets.js",function(){ cm_loaded++;} );
|
||||||
loadScript("codemirror/matchbrackets.js",function(){cm_loaded++;} );
|
loadScript("codemirror/matchbrackets.js",function(){ cm_loaded++;} );
|
||||||
loadScript("codemirror/show-hint.js", function(){cm_loaded++;cm_wait()});
|
loadScript("codemirror/show-hint.js", function(){
|
||||||
|
cm_loaded++;
|
||||||
|
cm_wait(e, cb);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function
|
function
|
||||||
cm_wait()
|
cm_wait(cm_editor, callback)
|
||||||
{
|
{
|
||||||
if(cm_loaded != 4) {
|
if(cm_loaded != 4) {
|
||||||
setTimeout(cm_wait, 10);
|
setTimeout(cm_wait, 10);
|
||||||
@ -67,6 +71,8 @@ cm_wait()
|
|||||||
|
|
||||||
loadScript("codemirror/"+type+".js", function(){
|
loadScript("codemirror/"+type+".js", function(){
|
||||||
log("Calling CodeMirror");
|
log("Calling CodeMirror");
|
||||||
CodeMirror.fromTextArea(cm_editor, attr);
|
var cm = CodeMirror.fromTextArea(cm_editor, attr);
|
||||||
|
if(callback)
|
||||||
|
callback(cm);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -575,11 +575,15 @@ FW_createTextField(elName, devName, vArr, currVal, set, params, cmd)
|
|||||||
$(inp).attr('name', elName);
|
$(inp).attr('name', elName);
|
||||||
if(currVal != undefined)
|
if(currVal != undefined)
|
||||||
$(inp).val(currVal);
|
$(inp).val(currVal);
|
||||||
if(cmd)
|
|
||||||
$(inp).blur(function() { cmd($(inp).val()) });
|
function addBlur() { if(cmd) $(inp).blur(function() { cmd($(inp).val()) }); };
|
||||||
|
|
||||||
newEl.setValueFn = function(arg){ $(inp).val(arg) };
|
newEl.setValueFn = function(arg){ $(inp).val(arg) };
|
||||||
|
addBlur();
|
||||||
|
|
||||||
var myFunc = function(){
|
var myFunc = function(){
|
||||||
|
|
||||||
|
$(inp).unbind("blur");
|
||||||
$('body').append(
|
$('body').append(
|
||||||
'<div id="editdlg" style="display:none">'+
|
'<div id="editdlg" style="display:none">'+
|
||||||
'<textarea id="td_longText" rows="25" cols="60" style="width:99%"/>'+
|
'<textarea id="td_longText" rows="25" cols="60" style="width:99%"/>'+
|
||||||
@ -587,18 +591,25 @@ FW_createTextField(elName, devName, vArr, currVal, set, params, cmd)
|
|||||||
|
|
||||||
$("#td_longText").val($(inp).val());
|
$("#td_longText").val($(inp).val());
|
||||||
|
|
||||||
if( typeof AddCodeMirror == 'function' )
|
var cm;
|
||||||
AddCodeMirror($("#td_longText").get(0));
|
if( typeof AddCodeMirror == 'function' )
|
||||||
|
AddCodeMirror($("#td_longText").get(0), function(pcm) {cm = pcm;});
|
||||||
|
|
||||||
$('#editdlg').dialog(
|
$('#editdlg').dialog(
|
||||||
{ modal:true, closeOnEscape:true, width:$(window).width()*3/4,
|
{ modal:true, closeOnEscape:true, width:$(window).width()*3/4,
|
||||||
maxHeight:$(window).height()*3/4,
|
maxHeight:$(window).height()*3/4,
|
||||||
buttons:[
|
buttons:[
|
||||||
{ text:"Cancel", click:function(){ $('#editdlg').remove(); }},
|
{ text:"Cancel", click:function(){
|
||||||
|
$('#editdlg').remove();
|
||||||
|
addBlur();
|
||||||
|
}},
|
||||||
{ text:"OK", click:function(){
|
{ text:"OK", click:function(){
|
||||||
|
if(cm)
|
||||||
|
$("#td_longText").val(cm.getValue());
|
||||||
var res=$("#td_longText").val();
|
var res=$("#td_longText").val();
|
||||||
$('#editdlg').remove();
|
$('#editdlg').remove();
|
||||||
$(inp).val(res);
|
$(inp).val(res);
|
||||||
|
addBlur();
|
||||||
}}]});
|
}}]});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user