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

Reply via email to