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-divider"> </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 () { var failed = false; $( '.ve-ce-branchNode' ).each( function ( index, element ) { -- To view, visit https://gerrit.wikimedia.org/r/105673 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia7bb40d07d3789837884b52ec966f5ca042967fc Gerrit-PatchSet: 1 Gerrit-Project: VisualEditor/VisualEditor Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits