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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits