[MediaWiki-commits] [Gerrit] mediawiki...VisualEditor[master]: Preserve data when switching from NWE to VE
jenkins-bot has submitted this change and it was merged. Change subject: Preserve data when switching from NWE to VE .. Preserve data when switching from NWE to VE Bug: T143917 Change-Id: I910e731914bd71fdb131dae79d233d4306facc5d --- M modules/ve-mw/init/targets/ve.init.mw.DesktopWikitextArticleTarget.js M modules/ve-mw/init/ve.init.mw.ArticleTargetLoader.js 2 files changed, 32 insertions(+), 5 deletions(-) Approvals: Alex Monk: Looks good to me, approved jenkins-bot: Verified diff --git a/modules/ve-mw/init/targets/ve.init.mw.DesktopWikitextArticleTarget.js b/modules/ve-mw/init/targets/ve.init.mw.DesktopWikitextArticleTarget.js index 97290df..1eb0839 100644 --- a/modules/ve-mw/init/targets/ve.init.mw.DesktopWikitextArticleTarget.js +++ b/modules/ve-mw/init/targets/ve.init.mw.DesktopWikitextArticleTarget.js @@ -75,11 +75,28 @@ this.reloadSurface( dataPromise ); }; +/** + * Switch to the visual editor. + */ ve.init.mw.DesktopWikitextArticleTarget.prototype.switchToVisualEditor = function () { + var dataPromise; + this.setMode( 'visual' ); - this.reloadSurface(); + + dataPromise = mw.libs.ve.targetLoader.requestParsoidData( + this.pageName, + this.requestedRevId, + this.constructor.name, + this.edited, + this.getWikitextFromDocument( this.getSurface().getDom() ) + ); + + this.reloadSurface( dataPromise ); }; +/** + * Reload the target surface in the new editor mode + */ ve.init.mw.DesktopWikitextArticleTarget.prototype.reloadSurface = function ( dataPromise ) { var target = this; // Create progress - will be discarded when surface is destroyed. @@ -228,7 +245,7 @@ if ( this.mode === 'source' ) { data = ve.extendObject( {}, options, { format: 'json' } ); - data.wikitext = Array.prototype.map.call( doc.body.children, function ( p ) { return p.innerText; } ).join( '\n' ); + data.wikitext = this.getWikitextFromDocument( doc ); return new mw.Api().post( data, { contentType: 'multipart/form-data' } ); } else { @@ -237,6 +254,16 @@ } }; +/** + * Get wikitext for the whole document + * + * @param {ve.dm.Document} doc Document + * @return {string} Wikitext + */ +ve.init.mw.DesktopWikitextArticleTarget.prototype.getWikitextFromDocument = function ( doc ) { + return Array.prototype.map.call( doc.body.children, function ( p ) { return p.innerText; } ).join( '\n' ); +}; + /* Registration */ ve.init.mw.targetFactory.register( ve.init.mw.DesktopWikitextArticleTarget ); diff --git a/modules/ve-mw/init/ve.init.mw.ArticleTargetLoader.js b/modules/ve-mw/init/ve.init.mw.ArticleTargetLoader.js index c1ded97..4640340 100644 --- a/modules/ve-mw/init/ve.init.mw.ArticleTargetLoader.js +++ b/modules/ve-mw/init/ve.init.mw.ArticleTargetLoader.js @@ -113,7 +113,7 @@ } }, - requestParsoidData: function ( pageName, oldid, targetName, modified ) { + requestParsoidData: function ( pageName, oldid, targetName, modified, wikitext ) { var start, apiXhr, restbaseXhr, apiPromise, restbasePromise, dataPromise, pageHtmlUrl, switched = false, fromEditedState = false, @@ -151,7 +151,7 @@ ve.track( 'trace.restbaseLoad.enter' ); if ( conf.fullRestbaseUrl && - $( '#wpTextbox1' ).textSelection( 'getContents' ) && + ( wikitext || ( wikitext = $( '#wpTextbox1' ).textSelection( 'getContents' ) ) ) && !$( '[name=wpSection]' ).val() ) { switched = true; @@ -166,7 +166,7 @@ data: { title: pageName, oldid: oldid, - wikitext: $( '#wpTextbox1' ).textSelection( 'getContents' ), + wikitext: wikitext, stash: 'true' }, // Should be synchronised with ApiVisualEditor.php -- To view, visit https://gerrit.wikimedia.org/r/306737 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I910e731914bd71fdb131dae79d233d4306facc5d Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/VisualEditor Gerrit-Branch: master Gerrit-Owner:
[MediaWiki-commits] [Gerrit] mediawiki...VisualEditor[master]: Preserve data when switching from NWE to VE
Esanders has uploaded a new change for review. https://gerrit.wikimedia.org/r/306737 Change subject: Preserve data when switching from NWE to VE .. Preserve data when switching from NWE to VE Bug: T143917 Change-Id: I910e731914bd71fdb131dae79d233d4306facc5d --- M modules/ve-mw/init/targets/ve.init.mw.DesktopWikitextArticleTarget.js M modules/ve-mw/init/ve.init.mw.ArticleTargetLoader.js 2 files changed, 32 insertions(+), 5 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor refs/changes/37/306737/1 diff --git a/modules/ve-mw/init/targets/ve.init.mw.DesktopWikitextArticleTarget.js b/modules/ve-mw/init/targets/ve.init.mw.DesktopWikitextArticleTarget.js index 97290df..1eb0839 100644 --- a/modules/ve-mw/init/targets/ve.init.mw.DesktopWikitextArticleTarget.js +++ b/modules/ve-mw/init/targets/ve.init.mw.DesktopWikitextArticleTarget.js @@ -75,11 +75,28 @@ this.reloadSurface( dataPromise ); }; +/** + * Switch to the visual editor. + */ ve.init.mw.DesktopWikitextArticleTarget.prototype.switchToVisualEditor = function () { + var dataPromise; + this.setMode( 'visual' ); - this.reloadSurface(); + + dataPromise = mw.libs.ve.targetLoader.requestParsoidData( + this.pageName, + this.requestedRevId, + this.constructor.name, + this.edited, + this.getWikitextFromDocument( this.getSurface().getDom() ) + ); + + this.reloadSurface( dataPromise ); }; +/** + * Reload the target surface in the new editor mode + */ ve.init.mw.DesktopWikitextArticleTarget.prototype.reloadSurface = function ( dataPromise ) { var target = this; // Create progress - will be discarded when surface is destroyed. @@ -228,7 +245,7 @@ if ( this.mode === 'source' ) { data = ve.extendObject( {}, options, { format: 'json' } ); - data.wikitext = Array.prototype.map.call( doc.body.children, function ( p ) { return p.innerText; } ).join( '\n' ); + data.wikitext = this.getWikitextFromDocument( doc ); return new mw.Api().post( data, { contentType: 'multipart/form-data' } ); } else { @@ -237,6 +254,16 @@ } }; +/** + * Get wikitext for the whole document + * + * @param {ve.dm.Document} doc Document + * @return {string} Wikitext + */ +ve.init.mw.DesktopWikitextArticleTarget.prototype.getWikitextFromDocument = function ( doc ) { + return Array.prototype.map.call( doc.body.children, function ( p ) { return p.innerText; } ).join( '\n' ); +}; + /* Registration */ ve.init.mw.targetFactory.register( ve.init.mw.DesktopWikitextArticleTarget ); diff --git a/modules/ve-mw/init/ve.init.mw.ArticleTargetLoader.js b/modules/ve-mw/init/ve.init.mw.ArticleTargetLoader.js index c1ded97..4640340 100644 --- a/modules/ve-mw/init/ve.init.mw.ArticleTargetLoader.js +++ b/modules/ve-mw/init/ve.init.mw.ArticleTargetLoader.js @@ -113,7 +113,7 @@ } }, - requestParsoidData: function ( pageName, oldid, targetName, modified ) { + requestParsoidData: function ( pageName, oldid, targetName, modified, wikitext ) { var start, apiXhr, restbaseXhr, apiPromise, restbasePromise, dataPromise, pageHtmlUrl, switched = false, fromEditedState = false, @@ -151,7 +151,7 @@ ve.track( 'trace.restbaseLoad.enter' ); if ( conf.fullRestbaseUrl && - $( '#wpTextbox1' ).textSelection( 'getContents' ) && + ( wikitext || ( wikitext = $( '#wpTextbox1' ).textSelection( 'getContents' ) ) ) && !$( '[name=wpSection]' ).val() ) { switched = true; @@ -166,7 +166,7 @@ data: { title: pageName, oldid: oldid, - wikitext: $( '#wpTextbox1' ).textSelection( 'getContents' ), + wikitext: wikitext, stash: 'true' }, // Should be synchronised with ApiVisualEditor.php -- To view, visit https://gerrit.wikimedia.org/r/306737 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I910e731914bd71fdb131dae79d233d4306facc5d Gerrit-PatchSet: 1 Gerrit-Project: