Esanders has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/134835

Change subject: Blockquote node
......................................................................

Blockquote node

Change-Id: I9507219b0b399907eeae11520dc2328fb2a830ce
---
M .docs/eg-iframe.html
M build/modules.json
M demos/ve/desktop.html
M demos/ve/mobile.html
A modules/ve/ce/nodes/ve.ce.BlockquoteNode.js
A modules/ve/dm/nodes/ve.dm.BlockquoteNode.js
M modules/ve/i18n/en.json
M modules/ve/i18n/qqq.json
M modules/ve/init/ve.init.Target.js
M modules/ve/test/index.html
M modules/ve/ui/dialogs/ve.ui.CommandHelpDialog.js
M modules/ve/ui/styles/tools/ve.ui.FormatTool.css
M modules/ve/ui/tools/ve.ui.FormatTool.js
M modules/ve/ui/ve.ui.CommandRegistry.js
M modules/ve/ui/ve.ui.TriggerRegistry.js
15 files changed, 116 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/35/134835/1

diff --git a/.docs/eg-iframe.html b/.docs/eg-iframe.html
index eabf5c6..4820036 100644
--- a/.docs/eg-iframe.html
+++ b/.docs/eg-iframe.html
@@ -154,6 +154,7 @@
                <script 
src="../modules/ve/dm/lineardata/ve.dm.MetaLinearData.js"></script>
                <script 
src="../modules/ve/dm/nodes/ve.dm.GeneratedContentNode.js"></script>
                <script 
src="../modules/ve/dm/nodes/ve.dm.AlienNode.js"></script>
+               <script 
src="../modules/ve/dm/nodes/ve.dm.BlockquoteNode.js"></script>
                <script 
src="../modules/ve/dm/nodes/ve.dm.BreakNode.js"></script>
                <script 
src="../modules/ve/dm/nodes/ve.dm.CenterNode.js"></script>
                <script 
src="../modules/ve/dm/nodes/ve.dm.DefinitionListItemNode.js"></script>
@@ -199,6 +200,7 @@
                <script 
src="../modules/ve/ce/ve.ce.SurfaceObserver.js"></script>
                <script 
src="../modules/ve/ce/nodes/ve.ce.GeneratedContentNode.js"></script>
                <script 
src="../modules/ve/ce/nodes/ve.ce.AlienNode.js"></script>
+               <script 
src="../modules/ve/ce/nodes/ve.ce.BlockquoteNode.js"></script>
                <script 
src="../modules/ve/ce/nodes/ve.ce.BreakNode.js"></script>
                <script 
src="../modules/ve/ce/nodes/ve.ce.CenterNode.js"></script>
                <script 
src="../modules/ve/ce/nodes/ve.ce.DefinitionListItemNode.js"></script>
diff --git a/build/modules.json b/build/modules.json
index 2371a57..73a6dc5 100644
--- a/build/modules.json
+++ b/build/modules.json
@@ -167,6 +167,7 @@
                        "modules/ve/dm/lineardata/ve.dm.MetaLinearData.js",
                        "modules/ve/dm/nodes/ve.dm.GeneratedContentNode.js",
                        "modules/ve/dm/nodes/ve.dm.AlienNode.js",
+                       "modules/ve/dm/nodes/ve.dm.BlockquoteNode.js",
                        "modules/ve/dm/nodes/ve.dm.BreakNode.js",
                        "modules/ve/dm/nodes/ve.dm.CenterNode.js",
                        "modules/ve/dm/nodes/ve.dm.DefinitionListItemNode.js",
@@ -212,6 +213,7 @@
                        "modules/ve/ce/ve.ce.SurfaceObserver.js",
                        "modules/ve/ce/nodes/ve.ce.GeneratedContentNode.js",
                        "modules/ve/ce/nodes/ve.ce.AlienNode.js",
+                       "modules/ve/ce/nodes/ve.ce.BlockquoteNode.js",
                        "modules/ve/ce/nodes/ve.ce.BreakNode.js",
                        "modules/ve/ce/nodes/ve.ce.CenterNode.js",
                        "modules/ve/ce/nodes/ve.ce.DefinitionListItemNode.js",
diff --git a/demos/ve/desktop.html b/demos/ve/desktop.html
index 4bbba35..3a6e042 100644
--- a/demos/ve/desktop.html
+++ b/demos/ve/desktop.html
@@ -175,6 +175,7 @@
                <script 
src="../../modules/ve/dm/lineardata/ve.dm.MetaLinearData.js"></script>
                <script 
src="../../modules/ve/dm/nodes/ve.dm.GeneratedContentNode.js"></script>
                <script 
src="../../modules/ve/dm/nodes/ve.dm.AlienNode.js"></script>
+               <script 
src="../../modules/ve/dm/nodes/ve.dm.BlockquoteNode.js"></script>
                <script 
src="../../modules/ve/dm/nodes/ve.dm.BreakNode.js"></script>
                <script 
src="../../modules/ve/dm/nodes/ve.dm.CenterNode.js"></script>
                <script 
src="../../modules/ve/dm/nodes/ve.dm.DefinitionListItemNode.js"></script>
@@ -220,6 +221,7 @@
                <script 
src="../../modules/ve/ce/ve.ce.SurfaceObserver.js"></script>
                <script 
src="../../modules/ve/ce/nodes/ve.ce.GeneratedContentNode.js"></script>
                <script 
src="../../modules/ve/ce/nodes/ve.ce.AlienNode.js"></script>
+               <script 
src="../../modules/ve/ce/nodes/ve.ce.BlockquoteNode.js"></script>
                <script 
src="../../modules/ve/ce/nodes/ve.ce.BreakNode.js"></script>
                <script 
src="../../modules/ve/ce/nodes/ve.ce.CenterNode.js"></script>
                <script 
src="../../modules/ve/ce/nodes/ve.ce.DefinitionListItemNode.js"></script>
diff --git a/demos/ve/mobile.html b/demos/ve/mobile.html
index ead3c10..67d9e16 100644
--- a/demos/ve/mobile.html
+++ b/demos/ve/mobile.html
@@ -176,6 +176,7 @@
                <script 
src="../../modules/ve/dm/lineardata/ve.dm.MetaLinearData.js"></script>
                <script 
src="../../modules/ve/dm/nodes/ve.dm.GeneratedContentNode.js"></script>
                <script 
src="../../modules/ve/dm/nodes/ve.dm.AlienNode.js"></script>
+               <script 
src="../../modules/ve/dm/nodes/ve.dm.BlockquoteNode.js"></script>
                <script 
src="../../modules/ve/dm/nodes/ve.dm.BreakNode.js"></script>
                <script 
src="../../modules/ve/dm/nodes/ve.dm.CenterNode.js"></script>
                <script 
src="../../modules/ve/dm/nodes/ve.dm.DefinitionListItemNode.js"></script>
@@ -221,6 +222,7 @@
                <script 
src="../../modules/ve/ce/ve.ce.SurfaceObserver.js"></script>
                <script 
src="../../modules/ve/ce/nodes/ve.ce.GeneratedContentNode.js"></script>
                <script 
src="../../modules/ve/ce/nodes/ve.ce.AlienNode.js"></script>
+               <script 
src="../../modules/ve/ce/nodes/ve.ce.BlockquoteNode.js"></script>
                <script 
src="../../modules/ve/ce/nodes/ve.ce.BreakNode.js"></script>
                <script 
src="../../modules/ve/ce/nodes/ve.ce.CenterNode.js"></script>
                <script 
src="../../modules/ve/ce/nodes/ve.ce.DefinitionListItemNode.js"></script>
diff --git a/modules/ve/ce/nodes/ve.ce.BlockquoteNode.js 
b/modules/ve/ce/nodes/ve.ce.BlockquoteNode.js
new file mode 100644
index 0000000..1197580
--- /dev/null
+++ b/modules/ve/ce/nodes/ve.ce.BlockquoteNode.js
@@ -0,0 +1,34 @@
+/*!
+ * VisualEditor ContentEditable BlockquoteNode class.
+ *
+ * @copyright 2011-2014 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * ContentEditable Blockquote node.
+ *
+ * @class
+ * @extends ve.ce.BranchNode
+ * @constructor
+ * @param {ve.dm.BlockquoteNode} model Model to observe
+ * @param {Object} [config] Configuration options
+ */
+ve.ce.BlockquoteNode = function VeCeBlockquoteNode( model, config ) {
+       // Parent constructor
+       ve.ce.ContentBranchNode.call( this, model, config );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ce.BlockquoteNode, ve.ce.ContentBranchNode );
+
+/* Static Properties */
+
+ve.ce.BlockquoteNode.static.name = 'blockquote';
+
+ve.ce.BlockquoteNode.static.tagName = 'blockquote';
+
+/* Registration */
+
+ve.ce.nodeFactory.register( ve.ce.BlockquoteNode );
diff --git a/modules/ve/dm/nodes/ve.dm.BlockquoteNode.js 
b/modules/ve/dm/nodes/ve.dm.BlockquoteNode.js
new file mode 100644
index 0000000..f25c8a5
--- /dev/null
+++ b/modules/ve/dm/nodes/ve.dm.BlockquoteNode.js
@@ -0,0 +1,36 @@
+/*!
+ * VisualEditor DataModel BlockquoteNode class.
+ *
+ * @copyright 2011-2014 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * DataModel Blockquote node.
+ *
+ * @class
+ * @extends ve.dm.BranchNode
+ * @constructor
+ * @param {ve.dm.LeafNode[]} [children] Child nodes to attach
+ * @param {Object} [element] Reference to element in linear model
+ */
+ve.dm.BlockquoteNode = function VeDmBlockquoteNode( children, element ) {
+       // Parent constructor
+       ve.dm.BranchNode.call( this, children, element );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.dm.BlockquoteNode, ve.dm.BranchNode );
+
+/* Static Properties */
+
+ve.dm.BlockquoteNode.static.name = 'blockquote';
+
+ve.dm.BlockquoteNode.static.canContainContent = true;
+
+ve.dm.BlockquoteNode.static.matchTagNames = [ 'blockquote' ];
+
+/* Registration */
+
+ve.dm.modelRegistry.register( ve.dm.BlockquoteNode );
diff --git a/modules/ve/i18n/en.json b/modules/ve/i18n/en.json
index 73e447d..81fc952 100644
--- a/modules/ve/i18n/en.json
+++ b/modules/ve/i18n/en.json
@@ -42,6 +42,7 @@
     "visualeditor-dialog-language-search-title": "Select language",
     "visualeditor-dimensionswidget-px": "px",
     "visualeditor-dimensionswidget-times": "×",
+    "visualeditor-formatdropdown-format-blockquote": "Block quote",
     "visualeditor-formatdropdown-format-heading-label": "Heading (1-6)",
     "visualeditor-formatdropdown-format-heading1": "Heading 1",
     "visualeditor-formatdropdown-format-heading2": "Heading 2",
diff --git a/modules/ve/i18n/qqq.json b/modules/ve/i18n/qqq.json
index d80f524..74f31da 100644
--- a/modules/ve/i18n/qqq.json
+++ b/modules/ve/i18n/qqq.json
@@ -45,6 +45,7 @@
        "visualeditor-dialog-language-search-title": "Title for language search 
dialog",
        "visualeditor-dimensionswidget-px": "{{optional}}\nLabel for the 
dimensions properties denoting pixel units.",
        "visualeditor-dimensionswidget-times": "{{optional}}\nLabel for the 
dimensions properties denoting 'by', as in width x height.",
+       "visualeditor-formatdropdown-format-blockquote": "Item in the 
formatting dropdown for block quote text",
        "visualeditor-formatdropdown-format-heading-label": "Label for heading 
level commands.\n{{Identical|Heading}}",
        "visualeditor-formatdropdown-format-heading1": "Item in the generic 
formatting dropdown for a level 1 heading.\n{{Identical|Heading}}",
        "visualeditor-formatdropdown-format-heading2": "Item in the generic 
formatting dropdown for a level 2 heading.\n{{Identical|Heading}}",
diff --git a/modules/ve/init/ve.init.Target.js 
b/modules/ve/init/ve.init.Target.js
index f4c8785..d3f934e 100644
--- a/modules/ve/init/ve.init.Target.js
+++ b/modules/ve/init/ve.init.Target.js
@@ -87,7 +87,7 @@
                'indicator': 'down',
                'include': [ { 'group': 'format' } ],
                'promote': [ 'paragraph' ],
-               'demote': [ 'preformatted' ]
+               'demote': [ 'preformatted', 'blockquote' ]
        },
        // Style
        {
@@ -136,6 +136,7 @@
        'heading5',
        'heading6',
        'preformatted',
+       'blockquote',
        'pasteSpecial'
 ];
 
diff --git a/modules/ve/test/index.html b/modules/ve/test/index.html
index a830ec8..84e32a9 100644
--- a/modules/ve/test/index.html
+++ b/modules/ve/test/index.html
@@ -121,6 +121,7 @@
                <script 
src="../../../modules/ve/dm/lineardata/ve.dm.MetaLinearData.js"></script>
                <script 
src="../../../modules/ve/dm/nodes/ve.dm.GeneratedContentNode.js"></script>
                <script 
src="../../../modules/ve/dm/nodes/ve.dm.AlienNode.js"></script>
+               <script 
src="../../../modules/ve/dm/nodes/ve.dm.BlockquoteNode.js"></script>
                <script 
src="../../../modules/ve/dm/nodes/ve.dm.BreakNode.js"></script>
                <script 
src="../../../modules/ve/dm/nodes/ve.dm.CenterNode.js"></script>
                <script 
src="../../../modules/ve/dm/nodes/ve.dm.DefinitionListItemNode.js"></script>
@@ -166,6 +167,7 @@
                <script 
src="../../../modules/ve/ce/ve.ce.SurfaceObserver.js"></script>
                <script 
src="../../../modules/ve/ce/nodes/ve.ce.GeneratedContentNode.js"></script>
                <script 
src="../../../modules/ve/ce/nodes/ve.ce.AlienNode.js"></script>
+               <script 
src="../../../modules/ve/ce/nodes/ve.ce.BlockquoteNode.js"></script>
                <script 
src="../../../modules/ve/ce/nodes/ve.ce.BreakNode.js"></script>
                <script 
src="../../../modules/ve/ce/nodes/ve.ce.CenterNode.js"></script>
                <script 
src="../../../modules/ve/ce/nodes/ve.ce.DefinitionListItemNode.js"></script>
diff --git a/modules/ve/ui/dialogs/ve.ui.CommandHelpDialog.js 
b/modules/ve/ui/dialogs/ve.ui.CommandHelpDialog.js
index 9be3ad0..6360e5b 100644
--- a/modules/ve/ui/dialogs/ve.ui.CommandHelpDialog.js
+++ b/modules/ve/ui/dialogs/ve.ui.CommandHelpDialog.js
@@ -127,6 +127,7 @@
                                { 'trigger': 'paragraph', 'msg': 
'visualeditor-formatdropdown-format-paragraph' },
                                { 'shortcuts': ['ctrl+(1-6)'], 'msg': 
'visualeditor-formatdropdown-format-heading-label' },
                                { 'trigger': 'preformatted', 'msg': 
'visualeditor-formatdropdown-format-preformatted' },
+                               { 'trigger': 'blockquote', 'msg': 
'visualeditor-formatdropdown-format-blockquote' },
                                { 'trigger': 'indent', 'msg': 
'visualeditor-indentationbutton-indent-tooltip' },
                                { 'trigger': 'outdent', 'msg': 
'visualeditor-indentationbutton-outdent-tooltip' }
                        ]
diff --git a/modules/ve/ui/styles/tools/ve.ui.FormatTool.css 
b/modules/ve/ui/styles/tools/ve.ui.FormatTool.css
index 19b661c..36c5649 100644
--- a/modules/ve/ui/styles/tools/ve.ui.FormatTool.css
+++ b/modules/ve/ui/styles/tools/ve.ui.FormatTool.css
@@ -42,3 +42,7 @@
 .oo-ui-menuToolGroup .oo-ui-tool-name-preformatted .oo-ui-tool-title {
        font-family: monospace, "Courier New";
 }
+
+.oo-ui-menuToolGroup .oo-ui-tool-name-blockquote .oo-ui-tool-title {
+       margin-left: 1em;
+}
diff --git a/modules/ve/ui/tools/ve.ui.FormatTool.js 
b/modules/ve/ui/tools/ve.ui.FormatTool.js
index fc70bf7..abf1fee 100644
--- a/modules/ve/ui/tools/ve.ui.FormatTool.js
+++ b/modules/ve/ui/tools/ve.ui.FormatTool.js
@@ -234,3 +234,24 @@
 ve.ui.PreformattedFormatTool.static.format = { 'type': 'preformatted' };
 ve.ui.PreformattedFormatTool.static.commandName = 'preformatted';
 ve.ui.toolFactory.register( ve.ui.PreformattedFormatTool );
+
+/**
+ * UserInterface blockquote tool.
+ *
+ * @class
+ * @extends ve.ui.FormatTool
+ * @constructor
+ * @param {OO.ui.ToolGroup} toolGroup
+ * @param {Object} [config] Configuration options
+ */
+ve.ui.BlockquoteFormatTool = function VeUiBlockquoteFormatTool( toolGroup, 
config ) {
+       ve.ui.FormatTool.call( this, toolGroup, config );
+};
+OO.inheritClass( ve.ui.BlockquoteFormatTool, ve.ui.FormatTool );
+ve.ui.BlockquoteFormatTool.static.name = 'blockquote';
+ve.ui.BlockquoteFormatTool.static.group = 'format';
+ve.ui.BlockquoteFormatTool.static.title =
+       OO.ui.deferMsg( 'visualeditor-formatdropdown-format-blockquote' );
+ve.ui.BlockquoteFormatTool.static.format = { 'type': 'blockquote' };
+ve.ui.BlockquoteFormatTool.static.commandName = 'blockquote';
+ve.ui.toolFactory.register( ve.ui.BlockquoteFormatTool );
diff --git a/modules/ve/ui/ve.ui.CommandRegistry.js 
b/modules/ve/ui/ve.ui.CommandRegistry.js
index bbe9580..0ec2f4a 100644
--- a/modules/ve/ui/ve.ui.CommandRegistry.js
+++ b/modules/ve/ui/ve.ui.CommandRegistry.js
@@ -142,5 +142,8 @@
        new ve.ui.Command( 'preformatted', 'format', 'convert', 'preformatted' )
 );
 ve.ui.commandRegistry.register(
+       new ve.ui.Command( 'blockquote', 'format', 'convert', 'blockquote' )
+);
+ve.ui.commandRegistry.register(
        new ve.ui.Command( 'pasteSpecial', 'content', 'pasteSpecial' )
 );
diff --git a/modules/ve/ui/ve.ui.TriggerRegistry.js 
b/modules/ve/ui/ve.ui.TriggerRegistry.js
index f542602..3d1e383 100644
--- a/modules/ve/ui/ve.ui.TriggerRegistry.js
+++ b/modules/ve/ui/ve.ui.TriggerRegistry.js
@@ -155,5 +155,8 @@
        'preformatted', new ve.ui.Trigger ( 'ctrl+7' )
 );
 ve.ui.triggerRegistry.register(
+       'blockquote', new ve.ui.Trigger ( 'ctrl+8' )
+);
+ve.ui.triggerRegistry.register(
        'pasteSpecial', { 'mac': new ve.ui.Trigger( 'cmd+shift+v' ), 'pc': new 
ve.ui.Trigger ( 'ctrl+shift+v' ) }
 );

-- 
To view, visit https://gerrit.wikimedia.org/r/134835
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9507219b0b399907eeae11520dc2328fb2a830ce
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/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

Reply via email to