jenkins-bot has submitted this change and it was merged.
Change subject: Bring in VisualEditor support from VE extension
......................................................................
Bring in VisualEditor support from VE extension
Enables editing of hiero instances, but doesn't add
to the toolbar by default.
Depends on hiero code being removed from VE extension.
Change-Id: If55af2adf3b2e10b5e1aeb15d9661f7a19e072d8
---
M i18n/en.json
M i18n/qqq.json
A modules/VisualEditor/AUTHORS.txt
A modules/VisualEditor/LICENSE.txt
A modules/VisualEditor/hiero.svg
A modules/VisualEditor/ve.ce.MWHieroNode.css
A modules/VisualEditor/ve.ce.MWHieroNode.js
A modules/VisualEditor/ve.dm.MWHieroNode.js
A modules/VisualEditor/ve.ui.MWHieroIcons.css
A modules/VisualEditor/ve.ui.MWHieroInspector.js
A modules/VisualEditor/ve.ui.MWHieroInspectorTool.js
M wikihiero.php
12 files changed, 209 insertions(+), 8 deletions(-)
Approvals:
Krinkle: Looks good to me, approved
Esanders: Looks good to me, but someone else must approve
jenkins-bot: Verified
diff --git a/i18n/en.json b/i18n/en.json
index fad25f5..d7596ce 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -47,5 +47,6 @@
"wikihiero-category-X": "X: Loaves and cakes",
"wikihiero-category-Y": "Y: Writings, games, music",
"wikihiero-category-Z": "Z: Strokes, geometrical figures, etc.",
- "wikihiero-category-Aa": "Aa: Unclassified"
+ "wikihiero-category-Aa": "Aa: Unclassified",
+ "wikihiero-visualeditor-mwhieroinspector-title": "Hieroglyphs"
}
\ No newline at end of file
diff --git a/i18n/qqq.json b/i18n/qqq.json
index f2d54d9..f777827 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -21,5 +21,6 @@
"wikihiero-th-result": "{{Identical|Result}}",
"wikihiero-eol": "Help text that says that \"!\" inserts an end of a
line of Egyptian text.",
"wikihiero-superposition": "{{Identical|Subdivision}}",
- "wikihiero-comment": "{{Identical|Comment}}"
+ "wikihiero-comment": "{{Identical|Comment}}",
+ "wikihiero-visualeditor-mwhieroinspector-title": "Used as title for the
hieroglyphs inspector."
}
diff --git a/modules/VisualEditor/AUTHORS.txt b/modules/VisualEditor/AUTHORS.txt
new file mode 100644
index 0000000..78db76a
--- /dev/null
+++ b/modules/VisualEditor/AUTHORS.txt
@@ -0,0 +1,6 @@
+Ed Sanders <[email protected]>
+James Forrester <[email protected]>
+Moriel Schottlender <[email protected]>
+Roan Kattouw <[email protected]>
+Timo Tijhof <[email protected]>
+Trevor Parscal <[email protected]>
diff --git a/modules/VisualEditor/LICENSE.txt b/modules/VisualEditor/LICENSE.txt
new file mode 100644
index 0000000..f320ff5
--- /dev/null
+++ b/modules/VisualEditor/LICENSE.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2011-2014 VisualEditor Team and others under the terms
+of The MIT License (MIT), as follows:
+
+This software consists of voluntary contributions made by many
+individuals (AUTHORS.txt) For exact contribution history, see the
+revision history and logs, available at https://gerrit.wikimedia.org
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/modules/VisualEditor/hiero.svg b/modules/VisualEditor/hiero.svg
new file mode 100644
index 0000000..6150795
--- /dev/null
+++ b/modules/VisualEditor/hiero.svg
@@ -0,0 +1,8 @@
+<?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="hiero" opacity="0.75">
+ <path id="ankh" d="m 9.0045786,8.4037839 c 0.408197,1.3287357
1.4031084,2.8056531 2.2058904,3.7584441 L 6.969,11.969103 c 0.1279068,0.414647
0.1155421,0.82887 0,1.243515 L 11.210469,13.028527 10.924165,19 c
0.569216,-0.151198 1.0357,-0.09337 1.484575,0 l -0.261619,-5.971473
3.821884,0.184091 c -0.103706,-0.414645 -0.138812,-0.828868 0,-1.243515 l
-3.821884,0.193125 C 12.857348,11.130195 13.853548,9.7831196
14.211705,8.2738643 14.935527,5.2236985 13.022035,5.0015265 11.603171,5
10.184306,4.9984831 8.1310072,5.5601434 9.0045786,8.4037839 z M 11.584645,6 c
1.520843,-0.010056 3.080433,1.9804496 0.11698,5.577337 C 8.581706,8.0207315
10.063806,6.0100704 11.584645,6 z"/>
+</g>
+</svg>
diff --git a/modules/VisualEditor/ve.ce.MWHieroNode.css
b/modules/VisualEditor/ve.ce.MWHieroNode.css
new file mode 100644
index 0000000..b352721
--- /dev/null
+++ b/modules/VisualEditor/ve.ce.MWHieroNode.css
@@ -0,0 +1,3 @@
+.ve-ce-mwHieroNode {
+ display: inline-block;
+}
diff --git a/modules/VisualEditor/ve.ce.MWHieroNode.js
b/modules/VisualEditor/ve.ce.MWHieroNode.js
new file mode 100644
index 0000000..4e86c11
--- /dev/null
+++ b/modules/VisualEditor/ve.ce.MWHieroNode.js
@@ -0,0 +1,35 @@
+/*global ve, OO */
+
+/**
+ * ContentEditable MediaWiki hieroglyphics node.
+ *
+ * @class
+ * @extends ve.ce.MWBlockExtensionNode
+ *
+ * @constructor
+ * @param {ve.dm.MWHieroNode} model Model to observe
+ * @param {Object} [config] Configuration options
+ */
+ve.ce.MWHieroNode = function VeCeMWHieroNode( model, config ) {
+ // Parent constructor
+ ve.ce.MWBlockExtensionNode.call( this, model, config );
+
+ // DOM changes
+ this.$element.addClass( 've-ce-mwHieroNode' );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ce.MWHieroNode, ve.ce.MWBlockExtensionNode );
+
+/* Static Properties */
+
+ve.ce.MWHieroNode.static.name = 'mwHiero';
+
+ve.ce.MWHieroNode.static.tagName = 'div';
+
+ve.ce.MWHieroNode.static.primaryCommandName = 'hiero';
+
+/* Registration */
+
+ve.ce.nodeFactory.register( ve.ce.MWHieroNode );
diff --git a/modules/VisualEditor/ve.dm.MWHieroNode.js
b/modules/VisualEditor/ve.dm.MWHieroNode.js
new file mode 100644
index 0000000..220ebbc
--- /dev/null
+++ b/modules/VisualEditor/ve.dm.MWHieroNode.js
@@ -0,0 +1,31 @@
+/*global ve, OO */
+
+/**
+ * DataModel MediaWiki hieroglyphics node.
+ *
+ * @class
+ * @extends ve.dm.MWBlockExtensionNode
+ *
+ * @constructor
+ * @param {Object} [element] Reference to element in linear model
+ */
+ve.dm.MWHieroNode = function VeDmMWHieroNode() {
+ // Parent constructor
+ ve.dm.MWBlockExtensionNode.apply( this, arguments );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.dm.MWHieroNode, ve.dm.MWBlockExtensionNode );
+
+/* Static members */
+
+ve.dm.MWHieroNode.static.name = 'mwHiero';
+
+ve.dm.MWHieroNode.static.tagName = 'table';
+
+ve.dm.MWHieroNode.static.extensionName = 'hiero';
+
+/* Registration */
+
+ve.dm.modelRegistry.register( ve.dm.MWHieroNode );
diff --git a/modules/VisualEditor/ve.ui.MWHieroIcons.css
b/modules/VisualEditor/ve.ui.MWHieroIcons.css
new file mode 100644
index 0000000..5899a8d
--- /dev/null
+++ b/modules/VisualEditor/ve.ui.MWHieroIcons.css
@@ -0,0 +1,4 @@
+.oo-ui-icon-hiero {
+ /* @embed */
+ background-image: url(hiero.svg);
+}
diff --git a/modules/VisualEditor/ve.ui.MWHieroInspector.js
b/modules/VisualEditor/ve.ui.MWHieroInspector.js
new file mode 100644
index 0000000..7569f6f
--- /dev/null
+++ b/modules/VisualEditor/ve.ui.MWHieroInspector.js
@@ -0,0 +1,36 @@
+/*global ve, OO */
+
+/**
+ * MediaWiki hieroglyphics inspector.
+ *
+ * @class
+ * @extends ve.ui.MWLiveExtensionInspector
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWHieroInspector = function VeUiMWHieroInspector( config ) {
+ // Parent constructor
+ ve.ui.MWLiveExtensionInspector.call( this, config );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWHieroInspector, ve.ui.MWLiveExtensionInspector );
+
+/* Static properties */
+
+ve.ui.MWHieroInspector.static.name = 'hiero';
+
+ve.ui.MWHieroInspector.static.icon = 'hiero';
+
+ve.ui.MWHieroInspector.static.title =
+ OO.ui.deferMsg( 'wikihiero-visualeditor-mwhieroinspector-title' );
+
+ve.ui.MWHieroInspector.static.nodeModel = ve.dm.MWHieroNode;
+
+ve.ui.MWHieroInspector.static.dir = 'ltr';
+
+/* Registration */
+
+ve.ui.windowFactory.register( ve.ui.MWHieroInspector );
diff --git a/modules/VisualEditor/ve.ui.MWHieroInspectorTool.js
b/modules/VisualEditor/ve.ui.MWHieroInspectorTool.js
new file mode 100644
index 0000000..d5da5e8
--- /dev/null
+++ b/modules/VisualEditor/ve.ui.MWHieroInspectorTool.js
@@ -0,0 +1,28 @@
+/*global ve, OO */
+
+/**
+ * MediaWiki UserInterface hieroglyphics tool.
+ *
+ * @class
+ * @extends ve.ui.InspectorTool
+ * @constructor
+ * @param {OO.ui.ToolGroup} toolGroup
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.MWHieroInspectorTool = function VeUiMWHieroInspectorTool( toolGroup,
config ) {
+ ve.ui.InspectorTool.call( this, toolGroup, config );
+};
+OO.inheritClass( ve.ui.MWHieroInspectorTool, ve.ui.InspectorTool );
+ve.ui.MWHieroInspectorTool.static.name = 'hiero';
+ve.ui.MWHieroInspectorTool.static.group = 'object';
+ve.ui.MWHieroInspectorTool.static.icon = 'hiero';
+ve.ui.MWHieroInspectorTool.static.title =
+ OO.ui.deferMsg( 'wikihiero-visualeditor-mwhieroinspector-title' );
+ve.ui.MWHieroInspectorTool.static.modelClasses = [ ve.dm.MWHieroNode ];
+ve.ui.MWHieroInspectorTool.static.commandName = 'hiero';
+ve.ui.MWHieroInspectorTool.static.autoAddToGroup = false;
+
+ve.ui.toolFactory.register( ve.ui.MWHieroInspectorTool );
+ve.ui.commandRegistry.register(
+ new ve.ui.Command( 'hiero', 'window', 'open', 'hiero' )
+);
diff --git a/wikihiero.php b/wikihiero.php
index 22c2f11..91046a3 100644
--- a/wikihiero.php
+++ b/wikihiero.php
@@ -51,24 +51,47 @@
$wgSpecialPages['Hieroglyphs'] = 'SpecialHieroglyphs';
$wgSpecialPageGroups['Hieroglyphs'] = 'wiki';
+$moduleTemplate = array(
+ 'localBasePath' => __DIR__ . '/modules',
+ 'remoteExtPath' => 'wikihiero/modules',
+);
+
$wgResourceModules['ext.wikihiero'] = array(
'styles' => 'ext.wikihiero.css',
- 'localBasePath' => "$dir/modules",
- 'remoteExtPath' => 'wikihiero/modules',
-);
+) + $moduleTemplate;
$wgResourceModules['ext.wikihiero.Special'] = array(
'scripts' => 'ext.wikihiero.Special.js',
'styles' => 'ext.wikihiero.Special.css',
- 'localBasePath' => dirname( __FILE__ ) . '/modules',
- 'remoteExtPath' => 'wikihiero/modules',
'dependencies' => array( 'jquery.spinner' ),
'messages' => array(
'wikihiero-input',
'wikihiero-result',
'wikihiero-load-error',
),
-);
+) + $moduleTemplate;
+
+$wgResourceModules['ext.wikihiero.visualEditor'] = array(
+ 'scripts' => array(
+ 'VisualEditor/ve.dm.MWHieroNode.js',
+ 'VisualEditor/ve.ce.MWHieroNode.js',
+ 'VisualEditor/ve.ui.MWHieroInspector.js',
+ 'VisualEditor/ve.ui.MWHieroInspectorTool.js',
+ ),
+ 'styles' => array(
+ 'VisualEditor/ve.ce.MWHieroNode.css',
+ 'VisualEditor/ve.ui.MWHieroIcons.css',
+ ),
+ 'dependencies' => array(
+ 'ext.visualEditor.mwcore',
+ ),
+ 'messages' => array(
+ 'wikihiero-visualeditor-mwhieroinspector-title',
+ ),
+ 'targets' => array( 'desktop', 'mobile' ),
+) + $moduleTemplate;
+
+$wgVisualEditorPluginModules[] = 'ext.wikihiero.visualEditor';
/**
* Because <hiero> tag is used rarely, we don't need to load its body on every
hook call,
--
To view, visit https://gerrit.wikimedia.org/r/138911
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: If55af2adf3b2e10b5e1aeb15d9661f7a19e072d8
Gerrit-PatchSet: 7
Gerrit-Project: mediawiki/extensions/wikihiero
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits