[MediaWiki-commits] [Gerrit] Replace dump model loop with event triggered dump - change (VisualEditor/VisualEditor)
Esanders has uploaded a new change for review. https://gerrit.wikimedia.org/r/105673 Change subject: Replace dump model loop with event triggered dump .. Replace dump model loop with event triggered dump Change-Id: Ia7bb40d07d3789837884b52ec966f5ca042967fc --- M demos/ve/demo.js 1 file changed, 19 insertions(+), 32 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor refs/changes/73/105673/1 diff --git a/demos/ve/demo.js b/demos/ve/demo.js index 065670c..0c170ed 100644 --- a/demos/ve/demo.js +++ b/demos/ve/demo.js @@ -11,7 +11,6 @@ var currentTarget, $targetContainer = $( '.ve-demo-editor' ).eq( 0 ), $errorbox = $( '.ve-demo-error' ), - dumpModelLoopTimeoutId = null, // Widgets startTextInput = new OO.ui.TextInputWidget( { 'readOnly': true } ), @@ -26,8 +25,8 @@ logRangeButton = new OO.ui.PushButtonWidget( { 'label': 'Log to console', 'disabled': true } ), - dumpModelOnceButton = new OO.ui.PushButtonWidget( { 'label': 'Dump model once' } ), - dumpModelLoopToggle = new OO.ui.ToggleButtonWidget( { 'label': 'Dump model every 500ms' } ), + dumpModelButton = new OO.ui.PushButtonWidget( { 'label': 'Dump model once' } ), + dumpModelChangeToggle = new OO.ui.ToggleButtonWidget( { 'label': 'Dump model on change' } ), validateButton = new OO.ui.PushButtonWidget( { 'label': 'Validate view and model' } ); // Initialization @@ -40,8 +39,8 @@ endTextInput.$element, logRangeButton.$element, $( 'span class=ve-demo-utilities-commands-dividernbsp;/span' ), - dumpModelOnceButton.$element, - dumpModelLoopToggle.$element, + dumpModelButton.$element, + dumpModelChangeToggle.$element, validateButton.$element ); @@ -73,6 +72,7 @@ .promise().done( function () { target.$document[0].focus(); currentTarget = target; + dumpModelChangeToggle.emit( 'click' ); } ); } ); @@ -83,7 +83,7 @@ } ); } - function dumpModelOnce () { + function dumpModel () { /*jshint loopfunc:true */ // linear model dump var i, $li, $label, element, text, annotations, getKids, @@ -158,26 +158,6 @@ $( '#ve-dump' ).show(); } - function dumpModelLoop () { - cancelDumpModelLoop(); - dumpModelOnce(); - dumpModelLoopTimeoutId = setTimeout( function () { - if ( dumpModelLoopTimeoutId === null ) { - // Don't trust browser clearTimeout (e.g. for IE) - return; - } - dumpModelLoop(); - }, 500 ); - } - - function cancelDumpModelLoop () { - if ( dumpModelLoopTimeoutId === null ) { - return; - } - clearTimeout( dumpModelLoopTimeoutId ); - dumpModelLoopTimeoutId = null; - } - // Open initial page if ( /^#!\/src\/.+$/.test( location.hash ) ) { @@ -204,18 +184,25 @@ var start = startTextInput.getValue(), end = endTextInput.getValue(); // TODO: Validate input - console.dir( ve.instances[0].view.documentView.model.data.slice( start, end ) ); + console.dir( currentTarget.surface.view.documentView.model.data.slice( start, end ) ); } ); - dumpModelOnceButton.on( 'click', dumpModelOnce ); - dumpModelLoopToggle.on( 'click', function () { - if ( dumpModelLoopToggle.value ) { - dumpModelLoop(); + dumpModelButton.on( 'click', dumpModel ); + dumpModelChangeToggle.on( 'click', function () { + if ( dumpModelChangeToggle.getValue() ) { + dumpModel(); + currentTarget.surface.model.on( 'documentUpdate', documentUpdate ); } else { - cancelDumpModelLoop(); + currentTarget.surface.model.off( 'documentUpdate', documentUpdate ); } } ); + function documentUpdate () { + if ( dumpModelChangeToggle.getValue() ) { + dumpModel(); + } + } + validateButton.on( 'click', function ()
[MediaWiki-commits] [Gerrit] Replace dump model loop with event triggered dump - change (VisualEditor/VisualEditor)
jenkins-bot has submitted this change and it was merged. Change subject: Replace dump model loop with event triggered dump .. Replace dump model loop with event triggered dump Change-Id: Ia7bb40d07d3789837884b52ec966f5ca042967fc --- M demos/ve/demo.js 1 file changed, 13 insertions(+), 32 deletions(-) Approvals: Divec: Looks good to me, approved jenkins-bot: Verified diff --git a/demos/ve/demo.js b/demos/ve/demo.js index 065670c..eb8504f 100644 --- a/demos/ve/demo.js +++ b/demos/ve/demo.js @@ -11,7 +11,6 @@ var currentTarget, $targetContainer = $( '.ve-demo-editor' ).eq( 0 ), $errorbox = $( '.ve-demo-error' ), - dumpModelLoopTimeoutId = null, // Widgets startTextInput = new OO.ui.TextInputWidget( { 'readOnly': true } ), @@ -26,8 +25,8 @@ logRangeButton = new OO.ui.PushButtonWidget( { 'label': 'Log to console', 'disabled': true } ), - dumpModelOnceButton = new OO.ui.PushButtonWidget( { 'label': 'Dump model once' } ), - dumpModelLoopToggle = new OO.ui.ToggleButtonWidget( { 'label': 'Dump model every 500ms' } ), + dumpModelButton = new OO.ui.PushButtonWidget( { 'label': 'Dump model once' } ), + dumpModelChangeToggle = new OO.ui.ToggleButtonWidget( { 'label': 'Dump model on change' } ), validateButton = new OO.ui.PushButtonWidget( { 'label': 'Validate view and model' } ); // Initialization @@ -40,8 +39,8 @@ endTextInput.$element, logRangeButton.$element, $( 'span class=ve-demo-utilities-commands-dividernbsp;/span' ), - dumpModelOnceButton.$element, - dumpModelLoopToggle.$element, + dumpModelButton.$element, + dumpModelChangeToggle.$element, validateButton.$element ); @@ -73,6 +72,7 @@ .promise().done( function () { target.$document[0].focus(); currentTarget = target; + dumpModelChangeToggle.emit( 'click' ); } ); } ); @@ -83,7 +83,7 @@ } ); } - function dumpModelOnce () { + function dumpModel () { /*jshint loopfunc:true */ // linear model dump var i, $li, $label, element, text, annotations, getKids, @@ -158,26 +158,6 @@ $( '#ve-dump' ).show(); } - function dumpModelLoop () { - cancelDumpModelLoop(); - dumpModelOnce(); - dumpModelLoopTimeoutId = setTimeout( function () { - if ( dumpModelLoopTimeoutId === null ) { - // Don't trust browser clearTimeout (e.g. for IE) - return; - } - dumpModelLoop(); - }, 500 ); - } - - function cancelDumpModelLoop () { - if ( dumpModelLoopTimeoutId === null ) { - return; - } - clearTimeout( dumpModelLoopTimeoutId ); - dumpModelLoopTimeoutId = null; - } - // Open initial page if ( /^#!\/src\/.+$/.test( location.hash ) ) { @@ -204,15 +184,16 @@ var start = startTextInput.getValue(), end = endTextInput.getValue(); // TODO: Validate input - console.dir( ve.instances[0].view.documentView.model.data.slice( start, end ) ); + console.dir( currentTarget.surface.view.documentView.model.data.slice( start, end ) ); } ); - dumpModelOnceButton.on( 'click', dumpModelOnce ); - dumpModelLoopToggle.on( 'click', function () { - if ( dumpModelLoopToggle.value ) { - dumpModelLoop(); + dumpModelButton.on( 'click', dumpModel ); + dumpModelChangeToggle.on( 'click', function () { + if ( dumpModelChangeToggle.getValue() ) { + dumpModel(); + currentTarget.surface.model.on( 'documentUpdate', dumpModel ); } else { - cancelDumpModelLoop(); + currentTarget.surface.model.off( 'documentUpdate', dumpModel ); } } ); -- To view, visit https://gerrit.wikimedia.org/r/105673 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ia7bb40d07d3789837884b52ec966f5ca042967fc Gerrit-PatchSet: 2 Gerrit-Project: VisualEditor/VisualEditor