jenkins-bot has submitted this change and it was merged. Change subject: Alien extensions ......................................................................
Alien extensions VisualEditor.i18n.php, VisualEditor.php * Button title * New experimental files ve.*.MWAlienExtensionNode.js * Very basic extension of ve.*.MWExtensionNode ve.ui.MWAlienExtensionInspector.js * Default to inline-block for wrapper. Should probably get rid of styled wrappers for GeneratedContent eventually. ve.ui.MWAlienExtensionInspector.js * Basic extension of MWExtensionInspector. Override title to use tag name e.g. '<easytimeline>'. Could be changed in future to 'Extension: easytimeline' or similar. *.png, *.svg, *Icons*.css, ve.ui.MWAlienExtensionButtonTool.js * Angle bracket icon for button (open to suggestions) ve.ui.MWInspector.css * Make extension inspector text input tall by default. Change-Id: I07f0686839192cad3cd8dfd3233ae907fe5cdf6a --- M VisualEditor.i18n.php M VisualEditor.php A modules/ve-mw/ce/nodes/ve.ce.MWAlienExtensionNode.js M modules/ve-mw/ce/styles/ve.ce.Node.css A modules/ve-mw/dm/nodes/ve.dm.MWAlienExtensionNode.js A modules/ve-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js A modules/ve-mw/ui/styles/images/icons/alienextension.png A modules/ve-mw/ui/styles/images/icons/alienextension.svg M modules/ve-mw/ui/styles/ve.ui.Icons-raster.css M modules/ve-mw/ui/styles/ve.ui.Icons-vector.css M modules/ve-mw/ui/styles/ve.ui.MWInspector.css A modules/ve-mw/ui/tools/buttons/ve.ui.MWAlienExtensionButtonTool.js 12 files changed, 200 insertions(+), 2 deletions(-) Approvals: Catrope: Looks good to me, approved jenkins-bot: Verified diff --git a/VisualEditor.i18n.php b/VisualEditor.i18n.php index 2949b30..d790bd5 100644 --- a/VisualEditor.i18n.php +++ b/VisualEditor.i18n.php @@ -132,6 +132,7 @@ 'visualeditor-linkinspector-suggest-matching-page' => 'Matching page', 'visualeditor-linkinspector-suggest-new-page' => 'New page', 'visualeditor-linkinspector-title' => 'Hyperlink', + 'visualeditor-mwalienextensioninspector-title' => 'MediaWiki extension', 'visualeditor-mwhieroinspector-title' => 'Hieroglyphics', 'visualeditor-mwmathinspector-title' => 'LaTeX', 'visualeditor-languageinspector-title' => 'Language', @@ -428,6 +429,7 @@ {{Identical|New page}}', 'visualeditor-linkinspector-title' => 'Title of the link inspector dialog. {{Identical|Hyperlink}}', + 'visualeditor-mwalienextensioninspector-title' => 'Used as title for unknown MediaWiki extensions.', '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 9a00f6b..b067472 100644 --- a/VisualEditor.php +++ b/VisualEditor.php @@ -712,11 +712,15 @@ 'scripts' => array( 've-mw/dm/nodes/ve.dm.MWExtensionNode.js', 've-mw/ce/nodes/ve.ce.MWExtensionNode.js', + 've-mw/dm/nodes/ve.dm.MWAlienExtensionNode.js', + 've-mw/ce/nodes/ve.ce.MWAlienExtensionNode.js', 've-mw/dm/nodes/ve.dm.MWHieroNode.js', 've-mw/ce/nodes/ve.ce.MWHieroNode.js', 've-mw/dm/nodes/ve.dm.MWMathNode.js', 've-mw/ce/nodes/ve.ce.MWMathNode.js', 've-mw/ui/inspectors/ve.ui.MWExtensionInspector.js', + 've-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js', + 've-mw/ui/tools/buttons/ve.ui.MWAlienExtensionButtonTool.js', 've-mw/ui/inspectors/ve.ui.MWHieroInspector.js', 've-mw/ui/tools/buttons/ve.ui.MWHieroButtonTool.js', 've-mw/ui/inspectors/ve.ui.MWMathInspector.js', @@ -735,6 +739,7 @@ ), 'messages' => array( // VE messages needed by code that is only in experimental mode + 'visualeditor-mwalienextensioninspector-title', 'visualeditor-mwhieroinspector-title', 'visualeditor-mwmathinspector-title', 'visualeditor-annotationbutton-language-tooltip', diff --git a/modules/ve-mw/ce/nodes/ve.ce.MWAlienExtensionNode.js b/modules/ve-mw/ce/nodes/ve.ce.MWAlienExtensionNode.js new file mode 100644 index 0000000..0116fb7 --- /dev/null +++ b/modules/ve-mw/ce/nodes/ve.ce.MWAlienExtensionNode.js @@ -0,0 +1,36 @@ +/*! + * VisualEditor ContentEditable MWAlienExtensionNode class. + * + * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ + +/** + * ContentEditable MediaWiki alien extension node. + * + * @class + * @extends ve.ce.MWExtensionNode + * + * @constructor + * @param {ve.dm.MWAlienExtensionNode} model Model to observe + * @param {Object} [config] Config options + */ +ve.ce.MWAlienExtensionNode = function VeCeMWAlienExtensionNode( model, config ) { + // Parent constructor + ve.ce.MWExtensionNode.call( this, model, config ); + + // DOM Changes + this.$.addClass( 've-ce-mwAlienExtensionNode' ); +}; + +/* Inheritance */ + +ve.inheritClass( ve.ce.MWAlienExtensionNode, ve.ce.MWExtensionNode ); + +/* Static Properties */ + +ve.ce.MWAlienExtensionNode.static.name = 'mwAlienExtension'; + +/* Registration */ + +ve.ce.nodeFactory.register( ve.ce.MWAlienExtensionNode ); diff --git a/modules/ve-mw/ce/styles/ve.ce.Node.css b/modules/ve-mw/ce/styles/ve.ce.Node.css index 32226ea..48d35b0 100644 --- a/modules/ve-mw/ce/styles/ve.ce.Node.css +++ b/modules/ve-mw/ce/styles/ve.ce.Node.css @@ -45,6 +45,12 @@ display: inline-block; } +/* ve.ce.MWAlienExtensionNode */ + +.ve-ce-mwAlienExtensionNode { + display: inline-block; +} + /* ve.ce.MWMathNode */ .ve-ce-mwMathNode { diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWAlienExtensionNode.js b/modules/ve-mw/dm/nodes/ve.dm.MWAlienExtensionNode.js new file mode 100644 index 0000000..353d297 --- /dev/null +++ b/modules/ve-mw/dm/nodes/ve.dm.MWAlienExtensionNode.js @@ -0,0 +1,39 @@ +/*! + * VisualEditor DataModel MWAlienExtensionNode class. + * + * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ + +/** + * DataModel MediaWiki math node. + * + * @class + * @extends ve.dm.MWExtensionNode + * + * @constructor + */ +ve.dm.MWAlienExtensionNode = function VeDmMWAlienExtensionNode( length, element ) { + // Parent constructor + ve.dm.MWExtensionNode.call( this, 0, element ); +}; + +/* Inheritance */ + +ve.inheritClass( ve.dm.MWAlienExtensionNode, ve.dm.MWExtensionNode ); + +/* Static members */ + +ve.dm.MWAlienExtensionNode.static.name = 'mwAlienExtension'; + +ve.dm.MWAlienExtensionNode.static.getMatchRdfaTypes = function () { + return [ + /^mw:Extension/ + ]; +}; + +ve.dm.MWAlienExtensionNode.static.tagName = 'div'; + +/* Registration */ + +ve.dm.modelRegistry.register( ve.dm.MWAlienExtensionNode ); diff --git a/modules/ve-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js b/modules/ve-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js new file mode 100644 index 0000000..bb50a25 --- /dev/null +++ b/modules/ve-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js @@ -0,0 +1,51 @@ +/*! + * VisualEditor UserInterface MWAlienExtensionInspector class. + * + * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ + +/** + * MediaWiki alien extension inspector. + * + * @class + * @extends ve.ui.MWExtensionInspector + * + * @constructor + * @param {ve.ui.Surface} surface + * @param {Object} [config] Config options + */ +ve.ui.MWAlienExtensionInspector = function VeUiMWAlienExtensionInspector( surface, config ) { + // Parent constructor + ve.ui.MWExtensionInspector.call( this, surface, config ); +}; + +/* Inheritance */ + +ve.inheritClass( ve.ui.MWAlienExtensionInspector, ve.ui.MWExtensionInspector ); + +/* Static properties */ + +ve.ui.MWAlienExtensionInspector.static.icon = 'alienextension'; + +ve.ui.MWAlienExtensionInspector.static.nodeView = ve.ce.MWAlienExtensionNode; + +ve.ui.MWAlienExtensionInspector.static.nodeModel = ve.dm.MWAlienExtensionNode; + +/* Methods */ + +/** */ +ve.ui.MWAlienExtensionInspector.prototype.initialize = function () { + // Parent method + ve.ui.MWExtensionInspector.prototype.initialize.call( this ); + + this.input.$.addClass( 've-ui-mwAlienExtensionInspector-input' ); +}; + +ve.ui.MWAlienExtensionInspector.prototype.getTitle = function () { + return '<' + this.surface.getView().getFocusedNode().getModel().getAttribute('mw').name + '>'; +}; + +/* Registration */ + +ve.ui.inspectorFactory.register( 'mwAlienExtensionInspector', ve.ui.MWAlienExtensionInspector ); diff --git a/modules/ve-mw/ui/styles/images/icons/alienextension.png b/modules/ve-mw/ui/styles/images/icons/alienextension.png new file mode 100644 index 0000000..45a8cb5 --- /dev/null +++ b/modules/ve-mw/ui/styles/images/icons/alienextension.png Binary files differ diff --git a/modules/ve-mw/ui/styles/images/icons/alienextension.svg b/modules/ve-mw/ui/styles/images/icons/alienextension.svg new file mode 100644 index 0000000..2051a69 --- /dev/null +++ b/modules/ve-mw/ui/styles/images/icons/alienextension.svg @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> +<g id="code" opacity="0.75"> + <path id="left-bracket" d="M 9.6648178,6.319859 5.40625,10.59375 4,12 5.40625,13.40625 9.6648178,17.680141 11.071068,16.242641 6.8124999,12 11.071068,7.757359 z"/> + <use transform="matrix(-1,0,0,1,24,0)" id="right-bracket" x="0" y="0" width="24" height="24" xlink:href="#left-bracket" /> +</g> +</svg> diff --git a/modules/ve-mw/ui/styles/ve.ui.Icons-raster.css b/modules/ve-mw/ui/styles/ve.ui.Icons-raster.css index 730d3b1..c581b12 100644 --- a/modules/ve-mw/ui/styles/ve.ui.Icons-raster.css +++ b/modules/ve-mw/ui/styles/ve.ui.Icons-raster.css @@ -5,6 +5,11 @@ * @license The MIT License (MIT); see LICENSE.txt */ +.ve-ui-icon-alienextension { + /* @embed */ + background-image: url(images/icons/alienextension.png); +} + .ve-ui-icon-hiero { /* @embed */ background-image: url(images/icons/hiero.png); diff --git a/modules/ve-mw/ui/styles/ve.ui.Icons-vector.css b/modules/ve-mw/ui/styles/ve.ui.Icons-vector.css index fe3b058..66097f2 100644 --- a/modules/ve-mw/ui/styles/ve.ui.Icons-vector.css +++ b/modules/ve-mw/ui/styles/ve.ui.Icons-vector.css @@ -5,6 +5,11 @@ * @license The MIT License (MIT); see LICENSE.txt */ +.ve-ui-icon-alienextension { + /* @embed */ + background-image: url(images/icons/alienextension.svg); +} + .ve-ui-icon-hiero { /* @embed */ background-image: url(images/icons/hiero.svg); diff --git a/modules/ve-mw/ui/styles/ve.ui.MWInspector.css b/modules/ve-mw/ui/styles/ve.ui.MWInspector.css index 82e3386..ca12667 100644 --- a/modules/ve-mw/ui/styles/ve.ui.MWInspector.css +++ b/modules/ve-mw/ui/styles/ve.ui.MWInspector.css @@ -5,8 +5,8 @@ * @license The MIT License (MIT); see LICENSE.txt */ -/* ve.ui.MWMathInspector */ +/* ve.ui.MWExtensionInspector */ -.ve-ui-mwMathInspector-input textarea { +.ve-ui-mwExtensionInspector-input textarea { height: 8em; } \ No newline at end of file diff --git a/modules/ve-mw/ui/tools/buttons/ve.ui.MWAlienExtensionButtonTool.js b/modules/ve-mw/ui/tools/buttons/ve.ui.MWAlienExtensionButtonTool.js new file mode 100644 index 0000000..f5d2198 --- /dev/null +++ b/modules/ve-mw/ui/tools/buttons/ve.ui.MWAlienExtensionButtonTool.js @@ -0,0 +1,40 @@ +/*! + * VisualEditor UserInterface MWAlienExtensionButtonTool class. + * + * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt + * @license The MIT License (MIT); see LICENSE.txt + */ + +/** + * UserInterface MediaWiki alien extension button tool. + * + * @class + * @extends ve.ui.InspectorButtonTool + * @constructor + * @param {ve.ui.Toolbar} toolbar + * @param {Object} [config] Config options + */ +ve.ui.MWAlienExtensionButtonTool = function VeUiMWAlienExtensionButtonTool( toolbar, config ) { + // Parent constructor + ve.ui.InspectorButtonTool.call( this, toolbar, config ); +}; + +/* Inheritance */ + +ve.inheritClass( ve.ui.MWAlienExtensionButtonTool, ve.ui.InspectorButtonTool ); + +/* Static Properties */ + +ve.ui.MWAlienExtensionButtonTool.static.name = 'mwAlienExtension'; + +ve.ui.MWAlienExtensionButtonTool.static.icon = 'alienextension'; + +ve.ui.MWAlienExtensionButtonTool.static.titleMessage = 'visualeditor-mwalienextensioninspector-title'; + +ve.ui.MWAlienExtensionButtonTool.static.inspector = 'mwAlienExtensionInspector'; + +ve.ui.MWAlienExtensionButtonTool.static.modelClasses = [ ve.dm.MWAlienExtensionNode ]; + +/* Registration */ + +ve.ui.toolFactory.register( 'mwAlienExtension', ve.ui.MWAlienExtensionButtonTool ); -- To view, visit https://gerrit.wikimedia.org/r/78035 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I07f0686839192cad3cd8dfd3233ae907fe5cdf6a Gerrit-PatchSet: 7 Gerrit-Project: mediawiki/extensions/VisualEditor Gerrit-Branch: master Gerrit-Owner: Esanders <esand...@wikimedia.org> Gerrit-Reviewer: Catrope <roan.katt...@gmail.com> Gerrit-Reviewer: jenkins-bot _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits