jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/335888 )
Change subject: Tables: Add support for editing mw-collapsible/mw-collapsed
......................................................................
Tables: Add support for editing mw-collapsible/mw-collapsed
We don't support editing <div>s right now (as they're BranchNodes) nor
<span>s (as they're annotations), but most of those are inside templates
and so not editable in VE anyway.
Bug: T157989
Change-Id: I647b2a544fd16952696d0de8d07cb72189b27ecb
---
M extension.json
M modules/ve-mw/dm/nodes/ve.dm.MWTableNode.js
M modules/ve-mw/i18n/en.json
M modules/ve-mw/i18n/qqq.json
M modules/ve-mw/ui/dialogs/ve.ui.MWTableDialog.js
5 files changed, 57 insertions(+), 12 deletions(-)
Approvals:
Bartosz Dziewoński: Looks good to me, approved
jenkins-bot: Verified
diff --git a/extension.json b/extension.json
index 128da8c..b6747eb 100644
--- a/extension.json
+++ b/extension.json
@@ -1240,6 +1240,8 @@
"visualeditor-beta-label",
"visualeditor-beta-warning",
"visualeditor-browserwarning",
+ "visualeditor-dialog-table-collapsed",
+ "visualeditor-dialog-table-collapsible",
"visualeditor-dialog-table-sortable",
"visualeditor-dialog-table-wikitable",
"visualeditor-diff-nochanges",
diff --git a/modules/ve-mw/dm/nodes/ve.dm.MWTableNode.js
b/modules/ve-mw/dm/nodes/ve.dm.MWTableNode.js
index 9e8c168..ebb09f4 100644
--- a/modules/ve-mw/dm/nodes/ve.dm.MWTableNode.js
+++ b/modules/ve-mw/dm/nodes/ve.dm.MWTableNode.js
@@ -36,7 +36,9 @@
ve.dm.MWTableNode.static.classAttributes = {
wikitable: { wikitable: true },
- sortable: { sortable: true }
+ sortable: { sortable: true },
+ 'mw-collapsible': { collapsible: true },
+ 'mw-collapsed': { collapsed: true }
};
// HACK: users of parentNodeTypes should be fixed to check for inherited
classes.
diff --git a/modules/ve-mw/i18n/en.json b/modules/ve-mw/i18n/en.json
index e676052..5dfe4c6 100644
--- a/modules/ve-mw/i18n/en.json
+++ b/modules/ve-mw/i18n/en.json
@@ -191,6 +191,8 @@
"visualeditor-dialog-meta-settings-toc-label": "Show the Table of
Contents",
"visualeditor-dialog-meta-templatesused-noresults": "No templates
found.",
"visualeditor-dialog-meta-title": "Options",
+ "visualeditor-dialog-table-collapsed": "Collapsed initially",
+ "visualeditor-dialog-table-collapsible": "Collapsible",
"visualeditor-dialog-table-sortable": "Sortable",
"visualeditor-dialog-table-wikitable": "Styled (wikitable)",
"visualeditor-dialog-template-title": "Template",
diff --git a/modules/ve-mw/i18n/qqq.json b/modules/ve-mw/i18n/qqq.json
index ee487e4..3696224 100644
--- a/modules/ve-mw/i18n/qqq.json
+++ b/modules/ve-mw/i18n/qqq.json
@@ -204,6 +204,8 @@
"visualeditor-dialog-meta-settings-toc-label": "Prompt to let the user
set the Table Of Contents (TOC) behaviour.",
"visualeditor-dialog-meta-templatesused-noresults": "Message displayed
when no existing templates found on the page.",
"visualeditor-dialog-meta-title": "Text of the title for the meta
dialog to set categories, language links and other page
settings.\n{{Identical|Options}}",
+ "visualeditor-dialog-table-collapsed": "Label for toggle to make a
table collapsed initially",
+ "visualeditor-dialog-table-collapsible": "Label for toggle to make a
table collapsible",
"visualeditor-dialog-table-sortable": "Label for toggle to make a table
sortable",
"visualeditor-dialog-table-wikitable": "Label for toggle to make a
table a wikitable",
"visualeditor-dialog-template-title": "{{Identical|Template}}",
diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWTableDialog.js
b/modules/ve-mw/ui/dialogs/ve.ui.MWTableDialog.js
index 6d69ff4..0663e52 100644
--- a/modules/ve-mw/ui/dialogs/ve.ui.MWTableDialog.js
+++ b/modules/ve-mw/ui/dialogs/ve.ui.MWTableDialog.js
@@ -32,7 +32,9 @@
var values = ve.ui.MWTableDialog.super.prototype.getValues.call( this );
return ve.extendObject( values, {
wikitable: this.wikitableToggle.getValue(),
- sortable: this.sortableToggle.getValue()
+ sortable: this.sortableToggle.getValue(),
+ collapsible: this.collapsibleToggle.getValue(),
+ collapsed: this.collapsedToggle.getValue()
} );
};
@@ -40,26 +42,40 @@
* @inheritdoc
*/
ve.ui.MWTableDialog.prototype.initialize = function () {
+ var wikitableField, sortableField, collapsibleField, collapsedField;
// Parent method
ve.ui.MWTableDialog.super.prototype.initialize.call( this );
this.wikitableToggle = new OO.ui.ToggleSwitchWidget();
- this.wikitableField = new OO.ui.FieldLayout( this.wikitableToggle, {
+ wikitableField = new OO.ui.FieldLayout( this.wikitableToggle, {
align: 'left',
label: ve.msg( 'visualeditor-dialog-table-wikitable' )
} );
- this.wikitableToggle.connect( this, { change: 'updateActions' } );
-
this.sortableToggle = new OO.ui.ToggleSwitchWidget();
- this.sortableField = new OO.ui.FieldLayout( this.sortableToggle, {
+ sortableField = new OO.ui.FieldLayout( this.sortableToggle, {
align: 'left',
label: ve.msg( 'visualeditor-dialog-table-sortable' )
} );
- this.sortableToggle.connect( this, { change: 'updateActions' } );
+ this.collapsibleToggle = new OO.ui.ToggleSwitchWidget();
+ collapsibleField = new OO.ui.FieldLayout( this.collapsibleToggle, {
+ align: 'left',
+ label: ve.msg( 'visualeditor-dialog-table-collapsible' )
+ } );
- this.panel.$element.prepend( this.wikitableField.$element,
this.sortableField.$element );
+ this.collapsedToggle = new OO.ui.ToggleSwitchWidget();
+ collapsedField = new OO.ui.FieldLayout( this.collapsedToggle, {
+ align: 'left',
+ label: ve.msg( 'visualeditor-dialog-table-collapsed' )
+ } );
+
+ this.wikitableToggle.connect( this, { change: 'updateActions' } );
+ this.sortableToggle.connect( this, { change: 'updateActions' } );
+ this.collapsibleToggle.connect( this, { change: 'onCollapsibleChange' }
);
+ this.collapsedToggle.connect( this, { change: 'updateActions' } );
+
+ this.panel.$element.append( wikitableField.$element,
sortableField.$element, collapsibleField.$element, collapsedField.$element );
};
/**
@@ -70,17 +86,23 @@
.next( function () {
var tableNode =
this.getFragment().getSelection().getTableNode(),
wikitable = !!tableNode.getAttribute(
'wikitable' ),
- sortable = !!tableNode.getAttribute( 'sortable'
);
+ sortable = !!tableNode.getAttribute( 'sortable'
),
+ collapsible = !!tableNode.getAttribute(
'collapsible' ),
+ collapsed = !!tableNode.getAttribute(
'collapsed' );
this.wikitableToggle.setValue( wikitable );
this.sortableToggle.setValue( sortable );
+ this.collapsibleToggle.setValue( collapsible );
+ this.collapsedToggle.setValue( collapsed );
ve.extendObject( this.initialValues, {
wikitable: wikitable,
- sortable: sortable
+ sortable: sortable,
+ collapsible: collapsible,
+ collapsed: collapsed
} );
- this.updateActions();
+ this.onCollapsibleChange( collapsible );
}, this );
};
@@ -96,12 +118,27 @@
fragment = surfaceModel.getLinearFragment(
this.getFragment().getSelection().tableRange, true );
fragment.changeAttributes( {
wikitable:
this.wikitableToggle.getValue(),
- sortable: this.sortableToggle.getValue()
+ sortable:
this.sortableToggle.getValue(),
+ collapsible:
this.collapsibleToggle.getValue(),
+ collapsed:
this.collapsedToggle.getValue()
} );
}
}, this );
};
+/**
+ * Handle change events from the collapsible toggle
+ *
+ * @param {boolean} New toggle value
+ */
+ve.ui.MWTableDialog.prototype.onCollapsibleChange = function ( collapsible ) {
+ this.collapsedToggle.setDisabled( !collapsible );
+ if ( !collapsible ) {
+ this.collapsedToggle.setValue( false );
+ }
+ this.updateActions();
+};
+
/* Registration */
ve.ui.windowFactory.register( ve.ui.MWTableDialog );
--
To view, visit https://gerrit.wikimedia.org/r/335888
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I647b2a544fd16952696d0de8d07cb72189b27ecb
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>
Gerrit-Reviewer: Bartosz Dziewoński <[email protected]>
Gerrit-Reviewer: DLynch <[email protected]>
Gerrit-Reviewer: Jforrester <[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