[MediaWiki-commits] [Gerrit] Replace dump model loop with event triggered dump - change (VisualEditor/VisualEditor)

2014-01-06 Thread Esanders (Code Review)
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)

2014-01-06 Thread jenkins-bot (Code Review)
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