diff --git a/Changes.md b/Changes.md index 3e767f7..88d9f38 100644 --- a/Changes.md +++ b/Changes.md @@ -3,6 +3,12 @@ WebPerl Changelog ================= +not yet released: v0.05-beta +---------------------------- +- Added Perl.addStateChangeListener and deprecated Perl.stateChanged +- ... + + 2018-08-14: v0.03-beta ---------------------- diff --git a/web/mini_ide/webperl_mini_ide.html b/web/mini_ide/webperl_mini_ide.html index 491f111..06a19e4 100644 --- a/web/mini_ide/webperl_mini_ide.html +++ b/web/mini_ide/webperl_mini_ide.html @@ -82,13 +82,13 @@ function run_perl_iframe (argv, state_callback, done_callback) { var outbuf = ''; IFramePerl.output = function (str) { outbuf+=str }; //TODO Later: maybe dynamic output updating is possible? IFramePerl.endAfterMain = true; - IFramePerl.stateChanged = function (from,to) { + IFramePerl.addStateChangeListener( function (from,to) { if (state_callback) state_callback(to); if (from!='Ended' && to=='Ended') { iframe.remove(); if (done_callback) done_callback(outbuf); } - }; + } ); IFramePerl.init(function () { window.setTimeout(function () { IFramePerl.start(argv); }, 1); }); @@ -144,14 +144,13 @@ $( function() { runonce.before( runonce_toggle ); runonce.hide(); } - Perl.stateChanged = function (from,to) { - console.debug("Perl: state changed from "+from+" to "+to); + Perl.addStateChangeListener( function (from,to) { $('#runstate').text("State: "+to); $('#runperl' ).prop("disabled", to!="Ready"); $('#argv' ).prop("disabled", to!="Ready"); $('#evalperl').prop("disabled", to!="Running"); $('#endperl' ).prop("disabled", to!="Running"); - }; + } ); Perl.init(final_init); }); diff --git a/web/runtests.html b/web/runtests.html index 5f7ba61..992247f 100644 --- a/web/runtests.html +++ b/web/runtests.html @@ -16,8 +16,14 @@ window.addEventListener("load", function () { document.getElementById('output') .appendChild( Perl.makeOutputTextarea() ); + var status = document.getElementById("status"); Perl.endAfterMain = true; + Perl.addStateChangeListener( function (from,to) { + if (from!="Ended" && to=="Ended") + status.textContent = "Tests finished, see output:"; + } ); Perl.init(function () { + status.textContent = "Running tests..."; window.setTimeout(function () { Perl.start(['/opt/perl/dev/WebPerl.t']); }, 1); @@ -29,7 +35,7 @@ window.addEventListener("load", function () { -

Running tests...

+

Loading tests...

diff --git a/web/webperl.js b/web/webperl.js index 53f2478..7840ec3 100644 --- a/web/webperl.js +++ b/web/webperl.js @@ -125,10 +125,18 @@ Perl._saveAndRun = function (script) { Perl.changeState = function (newState) { var oldState = Perl.state; Perl.state = newState; - if (Perl.stateChanged) Perl.stateChanged(oldState,newState); + if (Perl.stateChanged) { + console.info("Perl.stateChanged is deprecated, please use Perl.addStateChangeListener instead"); + Perl.stateChanged(oldState,newState); + } + for( var i=0 ; i