From 618e57e1dc2d77ce2a2583a13a9897ec91d3e9db Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Thu, 5 Feb 2015 10:37:34 +0000 Subject: [PATCH] codemirror.js: fix textfield-long patch (Forum #33226) git-svn-id: https://svn.fhem.de/fhem/trunk@7882 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/www/codemirror/fhem_codemirror.js | 26 ++++++++++++++++---------- fhem/www/pgm2/fhemweb.js | 21 ++++++++++++++++----- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/fhem/www/codemirror/fhem_codemirror.js b/fhem/www/codemirror/fhem_codemirror.js index aa6bdf616..713e89686 100644 --- a/fhem/www/codemirror/fhem_codemirror.js +++ b/fhem/www/codemirror/fhem_codemirror.js @@ -1,4 +1,4 @@ -var cm_loaded = 0, cm_editor; +var cm_loaded = 0; $(document).ready(function(){ var els = document.getElementsByTagName("textarea"); @@ -11,7 +11,7 @@ $(document).ready(function(){ if(oc) { $(this).attr("onclick", oc+ '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 { @@ -20,19 +20,23 @@ $(document).ready(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/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()}); + 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(e, cb); + }); } function -cm_wait() +cm_wait(cm_editor, callback) { if(cm_loaded != 4) { setTimeout(cm_wait, 10); @@ -67,6 +71,8 @@ cm_wait() loadScript("codemirror/"+type+".js", function(){ log("Calling CodeMirror"); - CodeMirror.fromTextArea(cm_editor, attr); + var cm = CodeMirror.fromTextArea(cm_editor, attr); + if(callback) + callback(cm); }); } diff --git a/fhem/www/pgm2/fhemweb.js b/fhem/www/pgm2/fhemweb.js index ccf99286a..38751925a 100644 --- a/fhem/www/pgm2/fhemweb.js +++ b/fhem/www/pgm2/fhemweb.js @@ -575,11 +575,15 @@ FW_createTextField(elName, devName, vArr, currVal, set, params, cmd) $(inp).attr('name', elName); if(currVal != undefined) $(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) }; + addBlur(); var myFunc = function(){ + + $(inp).unbind("blur"); $('body').append( '