jenkins-bot has submitted this change and it was merged. Change subject: Update VE core submodule to master (64650c6) ......................................................................
Update VE core submodule to master (64650c6) Switch to using FieldLayout for laying out forms. New changes: 64650c6 Update OOjs UI to v0.1.0-pre (424b40373e) Change-Id: I757aecf3485673f54aa9e7f38e88c079dda4451d --- M modules/ve-mw/i18n/en.json M modules/ve-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js M modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js M modules/ve-mw/ui/dialogs/ve.ui.MWReferenceListDialog.js M modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js M modules/ve-mw/ui/pages/ve.ui.MWCategoriesPage.js M modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js M modules/ve-mw/ui/pages/ve.ui.MWTemplateParameterPage.js M modules/ve-mw/ui/styles/ve.ui.MWWidget.css M modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js 10 files changed, 120 insertions(+), 89 deletions(-) Approvals: Catrope: Looks good to me, approved jenkins-bot: Verified diff --git a/modules/ve-mw/i18n/en.json b/modules/ve-mw/i18n/en.json index 865b4e9..6c902f6 100644 --- a/modules/ve-mw/i18n/en.json +++ b/modules/ve-mw/i18n/en.json @@ -78,9 +78,9 @@ "visualeditor-dialog-meta-settings-redirect-placeholder": "Target page for redirection", "visualeditor-dialog-meta-settings-redirect-staticlabel": "Prevent this redirect being updated when target page is moved.", "visualeditor-dialog-meta-settings-section": "Page settings", - "visualeditor-dialog-meta-settings-toc-default": "Show if needed", - "visualeditor-dialog-meta-settings-toc-disable": "Never show", - "visualeditor-dialog-meta-settings-toc-force": "Always show", + "visualeditor-dialog-meta-settings-toc-default": "If needed", + "visualeditor-dialog-meta-settings-toc-disable": "Never", + "visualeditor-dialog-meta-settings-toc-force": "Always", "visualeditor-dialog-meta-settings-toc-label": "Show the Table of Contents", "visualeditor-dialog-meta-title": "Options", "visualeditor-dialog-reference-insert-button": "Insert reference", diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js b/modules/ve-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js index b5f51fd..11fa3a1 100644 --- a/modules/ve-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js +++ b/modules/ve-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js @@ -224,7 +224,7 @@ 'icon': 'parameter' } ); - this.sizeErrorLabel = new OO.ui.InputLabelWidget( { + this.sizeErrorLabel = new OO.ui.LabelWidget( { '$': this.$, 'label': ve.msg( 'visualeditor-dialog-media-size-originalsize-error' ) } ); diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js b/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js index 8d9fc7b..c46dddb 100644 --- a/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js +++ b/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js @@ -238,9 +238,9 @@ } ); // TODO: Use a drop-down or something, and populate with existing groups instead of free-text this.referenceGroupInput = new OO.ui.TextInputWidget( { '$': this.$ } ); - this.referenceGroupLabel = new OO.ui.InputLabelWidget( { + this.referenceGroupField = new OO.ui.FieldLayout( this.referenceGroupInput, { '$': this.$, - 'input': this.referenceGroupInput, + 'align': 'top', 'label': ve.msg( 'visualeditor-dialog-reference-options-group-label' ) } ); this.search = new ve.ui.MWReferenceSearchWidget( @@ -269,7 +269,7 @@ // Initialization this.panels.addItems( [ this.editPanel, this.searchPanel ] ); this.editPanel.$element.append( this.contentFieldset.$element, this.optionsFieldset.$element ); - this.optionsFieldset.$element.append( this.referenceGroupLabel.$element, this.referenceGroupInput.$element ); + this.optionsFieldset.addItems( [ this.referenceGroupField ] ); this.searchPanel.$element.append( this.search.$element ); this.$body.append( this.panels.$element ); this.$foot.append( diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceListDialog.js b/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceListDialog.js index 0c65652..0850278 100644 --- a/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceListDialog.js +++ b/modules/ve-mw/ui/dialogs/ve.ui.MWReferenceListDialog.js @@ -53,9 +53,9 @@ } ); this.groupInput = new OO.ui.TextInputWidget( { '$': this.$ } ); - this.groupLabel = new OO.ui.InputLabelWidget( { + this.groupField = new OO.ui.FieldLayout( this.groupInput, { '$': this.$, - 'input': this.groupInput, + 'align': 'top', 'label': ve.msg( 'visualeditor-dialog-reference-options-group-label' ) } ); @@ -69,7 +69,7 @@ this.applyButton.connect( this, { 'click': [ 'close', { 'action': 'apply' } ] } ); // Initialization - this.optionsFieldset.$element.append( this.groupLabel.$element, this.groupInput.$element ); + this.optionsFieldset.addItems( [ this.groupField ] ); this.editPanel.$element.append( this.optionsFieldset.$element ); this.$body.append( this.editPanel.$element ); this.$foot.append( this.applyButton.$element ); diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js b/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js index b47cd69..beb2d12 100644 --- a/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js +++ b/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js @@ -303,7 +303,7 @@ this.$saveOptions = this.$( '<div>' ).addClass( 've-ui-mwSaveDialog-options' ).append( this.$( '<div>' ).addClass( 've-ui-mwSaveDialog-checkboxes' ), - new OO.ui.InputLabelWidget( { '$': this.$, 'label': 'text' } ).$element + new OO.ui.LabelWidget( { '$': this.$, 'label': 'text' } ).$element .addClass( 've-ui-mwSaveDialog-editSummary-count' ).text( this.editSummaryByteLimit ) .attr( 'title', ve.msg( 'visualeditor-editsummary-bytes-remaining' ) ) ); diff --git a/modules/ve-mw/ui/pages/ve.ui.MWCategoriesPage.js b/modules/ve-mw/ui/pages/ve.ui.MWCategoriesPage.js index aa2d6bd..af7d2c1 100644 --- a/modules/ve-mw/ui/pages/ve.ui.MWCategoriesPage.js +++ b/modules/ve-mw/ui/pages/ve.ui.MWCategoriesPage.js @@ -46,11 +46,14 @@ this.defaultSortInput = new OO.ui.TextInputWidget( { '$': this.$, 'placeholder': this.fallbackDefaultSortKey } ); - this.defaultSortLabel = new OO.ui.InputLabelWidget( { - '$': this.$, - 'input': this.defaultSortInput, - 'label': ve.msg( 'visualeditor-dialog-meta-categories-defaultsort-label' ) - } ); + this.defaultSort = new OO.ui.FieldLayout( + this.defaultSortInput, + { + '$': this.$, + 'align': 'top', + 'label': ve.msg( 'visualeditor-dialog-meta-categories-defaultsort-label' ) + } + ); // Events this.metaList.connect( this, { @@ -68,10 +71,7 @@ // Initialization this.categoryWidget.addItems( this.getCategoryItems() ); this.categoriesFieldset.$element.append( this.categoryWidget.$element ); - this.categoryOptionsFieldset.$element.append( - this.defaultSortLabel.$element, - this.defaultSortInput.$element - ); + this.categoryOptionsFieldset.addItems( [ this.defaultSort ] ); this.$element.append( this.categoriesFieldset.$element, this.categoryOptionsFieldset.$element ); }; diff --git a/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js b/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js index a1f13d5..efa9bde 100644 --- a/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js +++ b/modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js @@ -24,6 +24,9 @@ this.metaList = surface.getModel().metaList; this.tocOptionTouched = false; this.redirectOptionsTouched = false; + this.tableOfContentsTouched = false; + this.label = ve.msg( 'visualeditor-dialog-meta-settings-section' ); + this.settingsFieldset = new OO.ui.FieldsetLayout( { '$': this.$, 'label': ve.msg( 'visualeditor-dialog-meta-settings-label' ), @@ -33,58 +36,81 @@ // Initialization // Table of Contents items - this.tocOptionSelector = new OO.ui.SelectWidget( { '$': this.$ } ); - this.tocOptionWidgets = { - 'default': new OO.ui.OptionWidget( - 'default', - { 'label': ve.msg( 'visualeditor-dialog-meta-settings-toc-default' ) } - ), - 'mwTOCForce': new OO.ui.OptionWidget( - 'mwTOCForce', - { 'label': ve.msg( 'visualeditor-dialog-meta-settings-toc-force' ) } - ), - 'mwTOCDisable': new OO.ui.OptionWidget( - 'mwTOCDisable', - { 'label': ve.msg( 'visualeditor-dialog-meta-settings-toc-disable' ) } - ) - }; - this.tocOptionSelector.addItems( ve.getObjectValues( this.tocOptionWidgets ) ); - this.settingsFieldset.$element.append( - this.$( '<span>' ) - .text( ve.msg( 'visualeditor-dialog-meta-settings-toc-label' ) ), - this.tocOptionSelector.$element + this.tableOfContents = new OO.ui.FieldLayout( + new OO.ui.ButtonSelectWidget( { '$': this.$ } ) + .addItems( [ + new OO.ui.ButtonOptionWidget( + 'mwTOCForce', + { 'label': ve.msg( 'visualeditor-dialog-meta-settings-toc-force' ) } + ), + new OO.ui.ButtonOptionWidget( + 'default', + { 'label': ve.msg( 'visualeditor-dialog-meta-settings-toc-default' ) } + ), + new OO.ui.ButtonOptionWidget( + 'mwTOCDisable', + { 'label': ve.msg( 'visualeditor-dialog-meta-settings-toc-disable' ) } + ) + ] ) + .connect( this, { 'select': 'onTableOfContentsFieldChange' } ), + { + '$': this.$, + 'align': 'top', + 'label': ve.msg( 'visualeditor-dialog-meta-settings-toc-label' ) + } ); - this.tocOptionSelector.connect( this, { 'select': 'onTOCOptionChange' } ); // Redirect items - this.enableRedirectInput = new OO.ui.CheckboxWidget( { - '$': this.$, - 'label': ve.msg( 'visualeditor-dialog-meta-settings-redirect-label' ) - } ); + this.enableRedirectInput = new OO.ui.CheckboxInputWidget( { '$': this.$ } ); + this.enableRedirectField = new OO.ui.FieldLayout( + this.enableRedirectInput, + { + '$': this.$, + 'align': 'inline', + 'label': ve.msg( 'visualeditor-dialog-meta-settings-redirect-label' ) + } + ); this.redirectTargetInput = new OO.ui.TextInputWidget( { '$': this.$, 'placeholder': ve.msg( 'visualeditor-dialog-meta-settings-redirect-placeholder' ), } ); - this.enableStaticRedirectInput = new OO.ui.CheckboxWidget( { - '$': this.$, - 'label': ve.msg( 'visualeditor-dialog-meta-settings-redirect-staticlabel' ) - } ); - this.settingsFieldset.$element.append( - this.enableRedirectInput.$element, - this.redirectTargetInput.$element, - this.enableStaticRedirectInput.$element + this.redirectTargetField = new OO.ui.FieldLayout( + this.redirectTargetInput, + { + '$': this.$, + 'align': 'top' + } + ); + this.enableStaticRedirectInput = new OO.ui.CheckboxInputWidget( { '$': this.$ } ); + this.enableStaticRedirectField = new OO.ui.FieldLayout( + this.enableStaticRedirectInput, + { + '$': this.$, + 'align': 'inline', + 'label': ve.msg( 'visualeditor-dialog-meta-settings-redirect-staticlabel' ) + } ); this.enableRedirectInput.connect( this, { 'change': 'onEnableRedirectChange' } ); this.redirectTargetInput.connect( this, { 'change': 'onRedirectTargetChange' } ); this.enableStaticRedirectInput.connect( this, { 'change': 'onEnableStaticRedirectChange' } ); // Disable section edit links items - this.disableSectionEditLinksInput = new OO.ui.CheckboxWidget( { - '$': this.$, - 'label': ve.msg( 'visualeditor-dialog-meta-settings-noeditsection-label' ) - } ); - this.settingsFieldset.$element.append( this.disableSectionEditLinksInput.$element ); + this.disabledSectionEditLinks = new OO.ui.FieldLayout( + new OO.ui.CheckboxInputWidget( { '$': this.$ } ), + { + '$': this.$, + 'align': 'inline', + 'label': ve.msg( 'visualeditor-dialog-meta-settings-noeditsection-label' ), + } + ); + this.settingsFieldset.addItems( [ + this.enableRedirectField, + this.redirectTargetField, + this.enableStaticRedirectField, + this.tableOfContents, + this.disabledSectionEditLinks + ] ); this.$element.append( this.settingsFieldset.$element ); }; @@ -115,8 +141,8 @@ * * @method */ -ve.ui.MWSettingsPage.prototype.onTOCOptionChange = function () { - this.tocOptionTouched = true; +ve.ui.MWSettingsPage.prototype.onTableOfContentsFieldChange = function () { + this.tableOfContentsTouched = true; }; /** @@ -124,7 +150,7 @@ * * @returns {ve.dm.MetaItem|null} TOC option, if any */ -ve.ui.MWSettingsPage.prototype.getTOCOptionItem = function () { +ve.ui.MWSettingsPage.prototype.getTableOfContentsMetaItem = function () { return this.metaList.getItemsInGroup( 'mwTOC' )[0] || null; }; @@ -193,8 +219,10 @@ */ ve.ui.MWSettingsPage.prototype.setup = function () { var // Table of Contents items - tocOption = this.getTOCOptionItem(), - tocType = tocOption && tocOption.element.type || 'default', + tableOfContentsMetaItem = this.getTableOfContentsMetaItem(), + tableOfContentsField = this.tableOfContents.getField(), + tableOfContentsMode = tableOfContentsMetaItem && + tableOfContentsMetaItem.getType() || 'default', // Redirect items redirectTargetItem = this.getRedirectTargetItem(), @@ -202,8 +230,8 @@ redirectStatic = this.getRedirectStaticItem(); // Table of Contents items - this.tocOptionSelector.selectItem( this.tocOptionWidgets[tocType] ); - this.tocOptionTouched = false; + tableOfContentsField.selectItem( tableOfContentsField.getItemFromData( tableOfContentsMode ) ); + this.tableOfContentsTouched = false; // Redirect items (disabled states set by change event) this.enableRedirectInput.setValue( !!redirectTargetItem ); @@ -213,7 +241,7 @@ this.redirectOptionsTouched = false; // Disable section edit links items - this.disableSectionEditLinksInput.setValue( !!this.getDisableSectionEditLinksItem() ); + this.disabledSectionEditLinks.getField().setValue( !!this.getDisableSectionEditLinksItem() ); }; /** @@ -226,8 +254,9 @@ data = data || {}; var // Table of Contents items - currentTOCItem = this.getTOCOptionItem(), - newTOCData = this.tocOptionSelector.getSelectedItem(), + tableOfContentsMetaItem = this.getTableOfContentsMetaItem(), + tableOfContentsSelectedItem = this.tableOfContents.getField().getSelectedItem(), + tableOfContentsValue = tableOfContentsSelectedItem && tableOfContentsSelectedItem.getData(), // Redirect items currentRedirectTargetItem = this.getRedirectTargetItem(), @@ -239,22 +268,22 @@ // Disable section edit links items currentDisableSectionEditLinksItem = this.getDisableSectionEditLinksItem(), - newDisableSectionEditState = this.disableSectionEditLinksInput.getValue(); + newDisableSectionEditState = this.disabledSectionEditLinks.getField().getValue(); // Alter the TOC option flag iff it's been touched & is actually different - if ( this.tocOptionTouched ) { - if ( newTOCData.data === 'default' ) { - if ( currentTOCItem ) { - currentTOCItem.remove(); + if ( this.tableOfContentsTouched ) { + if ( tableOfContentsValue === 'default' ) { + if ( tableOfContentsMetaItem ) { + tableOfContentsMetaItem.remove(); } } else { - if ( !currentTOCItem ) { - this.metaList.insertMeta( { 'type': newTOCData.data } ); - } else if ( currentTOCItem.getType() !== newTOCData.data ) { - currentTOCItem.replaceWith( + if ( !tableOfContentsMetaItem ) { + this.metaList.insertMeta( { 'type': tableOfContentsValue } ); + } else if ( tableOfContentsMetaItem.getType() !== tableOfContentsValue ) { + tableOfContentsMetaItem.replaceWith( ve.extendObject( true, {}, - currentTOCItem.getElement(), - { 'type': newTOCData.data } + tableOfContentsMetaItem.getElement(), + { 'type': tableOfContentsValue } ) ); } diff --git a/modules/ve-mw/ui/pages/ve.ui.MWTemplateParameterPage.js b/modules/ve-mw/ui/pages/ve.ui.MWTemplateParameterPage.js index d8a0ea4..539fafd 100644 --- a/modules/ve-mw/ui/pages/ve.ui.MWTemplateParameterPage.js +++ b/modules/ve-mw/ui/pages/ve.ui.MWTemplateParameterPage.js @@ -25,16 +25,16 @@ // Properties this.parameter = parameter; this.spec = spec; - this.textInput = new OO.ui.TextInputWidget( { + this.valueInput = new OO.ui.TextInputWidget( { '$': this.$, 'multiline': true, 'classes': [ 've-ui-mwTransclusionDialog-input' ] } ) .setValue( this.parameter.getValue() ) .connect( this, { 'change': 'onTextInputChange' } ); - this.inputLabel = new OO.ui.InputLabelWidget( { + this.valueField = new OO.ui.FieldLayout( this.valueInput, { '$': this.$, - 'input': this.textInput, + 'align': 'top', 'label': this.spec.getParameterDescription( this.parameter.getName() ) || '' } ); this.removeButton = new OO.ui.ButtonWidget( { @@ -50,7 +50,7 @@ '$': this.$, 'label': this.spec.getParameterLabel( this.parameter.getName() ), 'icon': 'parameter', - '$content': this.inputLabel.$element.add( this.textInput.$element ) + 'items': [ this.valueInput ] } ); // TODO: Use spec.required @@ -91,7 +91,7 @@ }; ve.ui.MWTemplateParameterPage.prototype.onTextInputChange = function () { - this.parameter.setValue( this.textInput.getValue() ); + this.parameter.setValue( this.valueInput.getValue() ); }; ve.ui.MWTemplateParameterPage.prototype.onRemoveButtonClick = function () { diff --git a/modules/ve-mw/ui/styles/ve.ui.MWWidget.css b/modules/ve-mw/ui/styles/ve.ui.MWWidget.css index 1d942e0..088d4b0 100644 --- a/modules/ve-mw/ui/styles/ve.ui.MWWidget.css +++ b/modules/ve-mw/ui/styles/ve.ui.MWWidget.css @@ -183,7 +183,7 @@ display: block; } -.ve-ui-mwCategoryPopupWidget-sortKeyForm .oo-ui-inputLabelWidget { +.ve-ui-mwCategoryPopupWidget-sortKeyForm .oo-ui-labelWidget { padding: 0 0.125em 0.5em 0.125em; } diff --git a/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js b/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js index 36746fe..cef3fce 100644 --- a/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js +++ b/modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js @@ -34,11 +34,13 @@ 'title': ve.msg( 'visualeditor-inspector-remove-tooltip' ) } ); this.sortKeyInput = new OO.ui.TextInputWidget( { '$': this.$ } ); - this.sortKeyLabel = new OO.ui.InputLabelWidget( - { '$': this.$, '$input': this.sortKeyInput, 'label': ve.msg ( 'visualeditor-dialog-meta-categories-sortkey-label' ) } - ); + this.sortKeyField = new OO.ui.FieldLayout( this.sortKeyInput, { + '$': this.$, + 'align': 'top', + 'label': ve.msg ( 'visualeditor-dialog-meta-categories-sortkey-label' ) + } ); this.$sortKeyForm = this.$( '<form>' ).addClass( 've-ui-mwCategoryPopupWidget-sortKeyForm' ) - .append( this.sortKeyLabel.$element, this.sortKeyInput.$element ); + .append( this.sortKeyField.$element ); // Events this.connect( this, { 'hide': 'onHide' } ); -- To view, visit https://gerrit.wikimedia.org/r/108958 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I757aecf3485673f54aa9e7f38e88c079dda4451d Gerrit-PatchSet: 9 Gerrit-Project: mediawiki/extensions/VisualEditor Gerrit-Branch: master Gerrit-Owner: Trevor Parscal <tpars...@wikimedia.org> Gerrit-Reviewer: Catrope <roan.katt...@gmail.com> Gerrit-Reviewer: Siebrand <siebr...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits