Esanders has uploaded a new change for review. https://gerrit.wikimedia.org/r/83049
Change subject: Button tool to switch to edit source with changes ...................................................................... Button tool to switch to edit source with changes By serialising the current DOM, and injecting it into a form we can end up in the source editor with our VE changes converted. Bug: 50687 Change-Id: Iafcc02a737d9c6c3a59dce1caff130d47ca25650 --- M VisualEditor.i18n.php M VisualEditor.php M modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js A modules/ve-mw/ui/tools/ve.ui.MWEditModeTool.js 4 files changed, 97 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor refs/changes/49/83049/1 diff --git a/VisualEditor.i18n.php b/VisualEditor.i18n.php index a4d3125..d7980f6 100644 --- a/VisualEditor.i18n.php +++ b/VisualEditor.i18n.php @@ -151,6 +151,7 @@ 'visualeditor-media-input-placeholder' => 'Search for media', 'visualeditor-meta-tool' => 'Page settings', 'visualeditor-mwalienextensioninspector-title' => 'MediaWiki extension', + 'visualeditor-mweditmodesource-title' => 'Edit source', 'visualeditor-mwhieroinspector-title' => 'Hieroglyphics', 'visualeditor-mwmathinspector-title' => 'LaTeX', 'visualeditor-notification-created' => '$1 has been created.', @@ -485,6 +486,7 @@ {{Identical|Page settings}}', 'visualeditor-mwalienextensioninspector-title' => 'Used as title for unknown MediaWiki extensions. {{Identical|MediaWiki extension}}', + 'visualeditor-mweditmodesource-title' => 'Label for changing edit mode to source editing.', 'visualeditor-mwhieroinspector-title' => 'Used as title for hieroglyphics inspector.', 'visualeditor-mwmathinspector-title' => 'Used as title for MathInspector. diff --git a/VisualEditor.php b/VisualEditor.php index 50a692c..46670b9 100644 --- a/VisualEditor.php +++ b/VisualEditor.php @@ -644,6 +644,7 @@ 'visualeditor-listbutton-number-tooltip', 'visualeditor-media-input-placeholder', 'visualeditor-meta-tool', + 'visualeditor-mweditmodesource-title', 'visualeditor-outline-control-move-down', 'visualeditor-outline-control-move-up', 'visualeditor-outline-control-move-up', @@ -705,6 +706,7 @@ 've/ui/widgets/ve.ui.LanguageInputWidget.js', 've/ui/tools/ve.ui.ExperimentalTool.js', 've-mw/ui/tools/ve.ui.MWExperimentalTool.js', + 've-mw/ui/tools/ve.ui.MWEditModeTool.js', ), 'dependencies' => array( 'ext.visualEditor.core', diff --git a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js index 7416ec2..077b340 100644 --- a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js +++ b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js @@ -909,6 +909,43 @@ }; /** + * Switch to edit source mode with the current wikitext + * + * @method + */ +ve.init.mw.ViewPageTarget.prototype.editSource = function () { + var doc = this.surface.getModel().getDocument(); + + this.$document.css( 'opacity', 0.5 ); + + // Get Wikitext from the DOM + this.serialize( + ve.dm.converter.getDomFromData( doc.getFullData(), doc.getStore(), doc.getInternalList() ), + ve.bind( function ( wikitext ) { + var options = this.getSaveOptions(), + action = new mw.Uri( mw.util.wikiScript() ).extend( { title: this.pageName, action: 'edit' } ).toString(); + + this.submitting = true; + + $( '<form method="post" enctype="multipart/form-data"></form>' ) + .attr( 'action', action ) + .append( $( '<textarea name="wpTextbox1"></textarea>' ).val( wikitext ) ) + .append( $( '<input type="checkbox" name="wpMinoredit" value="1">' ).prop( 'checked', options.minor ) ) + .append( $( '<input type="checkbox" name="wpWatchthis" value="1">' ).prop( 'checked', options.watch ) ) + .append( $( '<input type="hidden" name="wpSummary">' ).val( options.summary ) ) + .append( $( '<input type="hidden" name="wpStarttime">' ).val( this.startTimeStamp ) ) + .append( $( '<input type="hidden" name="wpEditToken">' ).val( this.editToken ) ) + .append( $( '<input type="hidden" name="wpDiff" value="1">' ) ) + .append( $( '<input type="hidden" name="model" value="wikitext">' ) ) + .append( $( '<input type="hidden" name="format" value="text/x-wiki">' ) ) + .append( $( '<input type="hidden" name="wpEdittime">' ) ) + .submit() + ; + }, this ) + ); +}; + +/** * Handle clicks on the review "Good" button in the save dialog. * * @method diff --git a/modules/ve-mw/ui/tools/ve.ui.MWEditModeTool.js b/modules/ve-mw/ui/tools/ve.ui.MWEditModeTool.js new file mode 100644 index 0000000..ae8e0c4 --- /dev/null +++ b/modules/ve-mw/ui/tools/ve.ui.MWEditModeTool.js @@ -0,0 +1,56 @@ +/*! + * VisualEditor MediaWiki UserInterface edit mode tool classes. + * + * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ + +/** + * MediaWiki UserInterface media edit tool. + * + * @class + * @abstract + * @extends ve.ui.Tool + * @constructor + * @param {ve.ui.Toolbar} toolbar + * @param {Object} [config] Config options + */ +ve.ui.MWEditModeTool = function VeUiMWEditModeTool( toolbar, config ) { + ve.ui.Tool.call( this, toolbar, config ); +}; + +/* Inheritance */ + +ve.inheritClass( ve.ui.MWEditModeTool, ve.ui.Tool ); + +/* Static Properties */ + +ve.ui.MWEditModeTool.static.group = 'editmode'; + +ve.ui.MWEditModeTool.prototype.onUpdateState = function () { + this.setActive( false ); +}; + +/** + * MediaWiki UserInterface hieroglyphics tool. + * + * @class + * @extends ve.ui.InspectorTool + * @constructor + * @param {ve.ui.SurfaceToolbar} toolbar + * @param {Object} [config] Config options + */ +ve.ui.MWEditModeSourceTool = function VeUiMWEditModeSourceTool( toolbar, config ) { + ve.ui.MWEditModeTool.call( this, toolbar, config ); +}; +ve.inheritClass( ve.ui.MWEditModeSourceTool, ve.ui.MWEditModeTool ); +ve.ui.MWEditModeSourceTool.static.name = 'editModeSource'; +ve.ui.MWEditModeSourceTool.static.icon = 'source'; +ve.ui.MWEditModeSourceTool.static.titleMessage = 'visualeditor-mweditmodesource-title'; + +ve.ui.MWEditModeSourceTool.prototype.onSelect = function () { + this.setActive( false ); + this.toolbar.getTarget().editSource(); +}; + +ve.ui.toolFactory.register( ve.ui.MWEditModeSourceTool ); -- To view, visit https://gerrit.wikimedia.org/r/83049 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iafcc02a737d9c6c3a59dce1caff130d47ca25650 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/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