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

Reply via email to