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