Esanders has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/405943 )
Change subject: Sync tempWikitextEditor just before building target, not on every change
......................................................................
Sync tempWikitextEditor just before building target, not on every change
Change-Id: Idc30a9dc00491b8c85353d73cb9ff70afea1d51c
---
M modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
M modules/ve-mw/init/ve.init.mw.TempWikitextEditorWidget.js
2 files changed, 21 insertions(+), 15 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor refs/changes/43/405943/1
diff --git a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
index d9f9d40..e971dff 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
@@ -21,7 +21,7 @@
var conf, tabMessages, uri, pageExists, viewUri, veEditUri, veEditSourceUri, isViewPage, isEditPage,
pageCanLoadEditor, init, targetPromise, enable, tempdisable, autodisable,
tabPreference, enabledForUser, initialWikitext, oldId,
- isLoading, tempWikitextEditor, $toolbarPlaceholder,
+ isLoading, tempWikitextEditor, tempWikitextEditorData, $toolbarPlaceholder,
editModes = {
edit: 'visual'
},
@@ -107,18 +107,8 @@
}
function setupTempWikitextEditor( data ) {
- tempWikitextEditor = new mw.libs.ve.MWTempWikitextEditorWidget( {
- value: data.content,
- onChange: function () {
- // Write changes back to response data object,
- // which will be used to construct the surface.
- data.content = tempWikitextEditor.getValue();
- // TODO: Consider writing changes using a
- // transaction so they can be undone.
- // For now, just mark surface as pre-modified
- data.fromEditedState = true;
- }
- } );
+ tempWikitextEditor = new mw.libs.ve.MWTempWikitextEditorWidget( { value: data.content } );
+ tempWikitextEditorData = data;
// Create an equal-height placeholder for the toolbar to avoid vertical jump
// when the real toolbar is ready.
@@ -143,6 +133,19 @@
ve.track( 'mwedit.ready', { mode: 'source' } );
}
+ function syncTempWikitextEditor() {
+ var newContent = tempWikitextEditor.getValue();
+ if ( newContent !== tempWikitextEditorData.content ) {
+ // Write changes back to response data object,
+ // which will be used to construct the surface.
+ tempWikitextEditorData.content = newContent;
+ // TODO: Consider writing changes using a
+ // transaction so they can be undone.
+ // For now, just mark surface as pre-modified
+ tempWikitextEditorData.fromEditedState = true;
+ }
+ }
+
function teardownTempWikitextEditor() {
var range,
nativeRange = tempWikitextEditor.getRange(),
@@ -155,6 +158,7 @@
// Destroy widget and placeholder
tempWikitextEditor.$element.remove();
tempWikitextEditor = null;
+ tempWikitextEditorData = null;
$toolbarPlaceholder.remove();
$toolbarPlaceholder = null;
@@ -372,6 +376,9 @@
init.$loading.detach();
// If target was already loaded, ensure the mode is correct
target.setDefaultMode( mode );
+ if ( tempWikitextEditor ) {
+ syncTempWikitextEditor();
+ }
activatePromise = target.activate( dataPromise );
$( '#content' ).prepend( init.$loading );
return activatePromise;
diff --git a/modules/ve-mw/init/ve.init.mw.TempWikitextEditorWidget.js b/modules/ve-mw/init/ve.init.mw.TempWikitextEditorWidget.js
index 5bc228c..baf53dd 100644
--- a/modules/ve-mw/init/ve.init.mw.TempWikitextEditorWidget.js
+++ b/modules/ve-mw/init/ve.init.mw.TempWikitextEditorWidget.js
@@ -32,8 +32,7 @@
lang: lang,
dir: dir
} )
- .val( config.value )
- .on( 'input', config.onChange );
+ .val( config.value );
};
/**
--
To view, visit https://gerrit.wikimedia.org/r/405943
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Idc30a9dc00491b8c85353d73cb9ff70afea1d51c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <esanders@wikimedia.org>
_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
Change subject: Sync tempWikitextEditor just before building target, not on every change
......................................................................
Sync tempWikitextEditor just before building target, not on every change
Change-Id: Idc30a9dc00491b8c85353d73cb9ff70afea1d51c
---
M modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
M modules/ve-mw/init/ve.init.mw.TempWikitextEditorWidget.js
2 files changed, 21 insertions(+), 15 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor refs/changes/43/405943/1
diff --git a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
index d9f9d40..e971dff 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.init.js
@@ -21,7 +21,7 @@
var conf, tabMessages, uri, pageExists, viewUri, veEditUri, veEditSourceUri, isViewPage, isEditPage,
pageCanLoadEditor, init, targetPromise, enable, tempdisable, autodisable,
tabPreference, enabledForUser, initialWikitext, oldId,
- isLoading, tempWikitextEditor, $toolbarPlaceholder,
+ isLoading, tempWikitextEditor, tempWikitextEditorData, $toolbarPlaceholder,
editModes = {
edit: 'visual'
},
@@ -107,18 +107,8 @@
}
function setupTempWikitextEditor( data ) {
- tempWikitextEditor = new mw.libs.ve.MWTempWikitextEditorWidget( {
- value: data.content,
- onChange: function () {
- // Write changes back to response data object,
- // which will be used to construct the surface.
- data.content = tempWikitextEditor.getValue();
- // TODO: Consider writing changes using a
- // transaction so they can be undone.
- // For now, just mark surface as pre-modified
- data.fromEditedState = true;
- }
- } );
+ tempWikitextEditor = new mw.libs.ve.MWTempWikitextEditorWidget( { value: data.content } );
+ tempWikitextEditorData = data;
// Create an equal-height placeholder for the toolbar to avoid vertical jump
// when the real toolbar is ready.
@@ -143,6 +133,19 @@
ve.track( 'mwedit.ready', { mode: 'source' } );
}
+ function syncTempWikitextEditor() {
+ var newContent = tempWikitextEditor.getValue();
+ if ( newContent !== tempWikitextEditorData.content ) {
+ // Write changes back to response data object,
+ // which will be used to construct the surface.
+ tempWikitextEditorData.content = newContent;
+ // TODO: Consider writing changes using a
+ // transaction so they can be undone.
+ // For now, just mark surface as pre-modified
+ tempWikitextEditorData.fromEditedState = true;
+ }
+ }
+
function teardownTempWikitextEditor() {
var range,
nativeRange = tempWikitextEditor.getRange(),
@@ -155,6 +158,7 @@
// Destroy widget and placeholder
tempWikitextEditor.$element.remove();
tempWikitextEditor = null;
+ tempWikitextEditorData = null;
$toolbarPlaceholder.remove();
$toolbarPlaceholder = null;
@@ -372,6 +376,9 @@
init.$loading.detach();
// If target was already loaded, ensure the mode is correct
target.setDefaultMode( mode );
+ if ( tempWikitextEditor ) {
+ syncTempWikitextEditor();
+ }
activatePromise = target.activate( dataPromise );
$( '#content' ).prepend( init.$loading );
return activatePromise;
diff --git a/modules/ve-mw/init/ve.init.mw.TempWikitextEditorWidget.js b/modules/ve-mw/init/ve.init.mw.TempWikitextEditorWidget.js
index 5bc228c..baf53dd 100644
--- a/modules/ve-mw/init/ve.init.mw.TempWikitextEditorWidget.js
+++ b/modules/ve-mw/init/ve.init.mw.TempWikitextEditorWidget.js
@@ -32,8 +32,7 @@
lang: lang,
dir: dir
} )
- .val( config.value )
- .on( 'input', config.onChange );
+ .val( config.value );
};
/**
--
To view, visit https://gerrit.wikimedia.org/r/405943
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Idc30a9dc00491b8c85353d73cb9ff70afea1d51c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <esanders@wikimedia.org>
_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits