From e9ec81d025063d677af2902083bbe7da24b2908a Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Mon, 18 Apr 2016 18:58:28 +0000 Subject: [PATCH] fhemweb.js: CodeMirror/perlSyntaxCheck fixes by rapster (Forum #52379) git-svn-id: https://svn.fhem.de/fhem/trunk@11280 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/01_FHEMWEB.pm | 5 +---- fhem/www/pgm2/fhemweb.js | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index 206266f30..d8ff2daff 100755 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -2405,11 +2405,8 @@ FW_makeEdit($$$) # Toggle Edit-Window visibility script. my $psc = AttrVal("global", "perlSyntaxCheck", ($featurelevel>5.7) ? 1 : 0); - my $pgm = "var old = \$('#edit').css('display');". - "\$('#edit').css('display', old=='none' ? 'block' : 'none');". - "\$('#disp').css('display', old=='none' ? 'none' : 'block');"; FW_pO ""; - FW_pO "$n"; + FW_pO "$n"; FW_pO ""; $val =~ s,\\\n,\n,g; diff --git a/fhem/www/pgm2/fhemweb.js b/fhem/www/pgm2/fhemweb.js index 4b3d2056b..5ce6bb15c 100644 --- a/fhem/www/pgm2/fhemweb.js +++ b/fhem/www/pgm2/fhemweb.js @@ -473,9 +473,24 @@ FW_replaceLink(el) function FW_inlineModify() // Do not generate a new HTML page upon pressing modify { + var cm; + + $('#DEFa').click(function(){ + var old = $('#edit').css('display'); + $('#edit').css('display', old=='none' ? 'block' : 'none'); + $('#disp').css('display', old=='none' ? 'none' : 'block'); + if( typeof AddCodeMirror == 'function' ) { + var s=document.getElementById("edit").getElementsByTagName("textarea"); + if(!s[0].editor) { + s[0].editor=true; AddCodeMirror(s[0], function(pcm) {cm = pcm;}); + } + } + }); + $("div input.psc[type=submit]").click(function(e){ e.preventDefault(); - var newDef = $(this).closest("form").find("textarea").val(); + var newDef = typeof cm !== 'undefined' ? cm.getValue() + : $(this).closest("form").find("textarea").val(); var cmd = $(this).attr("name")+"="+$(this).attr("value")+" "+newDef; if( newDef == undefined ) {