From 57ea8a81048f4e9f6f6e4be0a115b7b86efa9775 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bartosz=20Dziewo=C5=84ski?= Date: Fri, 2 Oct 2015 01:30:52 +0200 Subject: [PATCH] mw.widgets.ComplexTitleInputWidget: Add infusion helpers * reusePreInfuseDOM * gatherPreInfuseState * restorePreInfuseState Depends on I3c21b3710d16dbb4dbcbdd3871a70fdfd0e7b536 in OOjs UI. Bug: T114134 Bug: T117310 Change-Id: I939551579fe1d03603d65b3562c1c977681994a6 --- .../mw.widgets.ComplexTitleInputWidget.js | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js b/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js index 0c6c15e475..ddae9b1f7f 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.ComplexTitleInputWidget.js @@ -50,6 +50,43 @@ OO.inheritClass( mw.widgets.ComplexTitleInputWidget, OO.ui.Widget ); + /* Static Methods */ + /*jshint -W024*/ + + /** + * @inheritdoc + */ + mw.widgets.ComplexTitleInputWidget.static.reusePreInfuseDOM = function ( node, config ) { + config = mw.widgets.ComplexTitleInputWidget.parent.static.reusePreInfuseDOM( node, config ); + config.namespace = mw.widgets.NamespaceInputWidget.static.reusePreInfuseDOM( + $( node ).find( '.mw-widget-namespaceInputWidget' ), + config.namespace + ); + config.title = mw.widgets.TitleInputWidget.static.reusePreInfuseDOM( + $( node ).find( '.mw-widget-titleInputWidget' ), + config.title + ); + return config; + }; + + /** + * @inheritdoc + */ + mw.widgets.ComplexTitleInputWidget.static.gatherPreInfuseState = function ( node, config ) { + var state = mw.widgets.ComplexTitleInputWidget.parent.static.gatherPreInfuseState( node, config ); + state.namespace = mw.widgets.NamespaceInputWidget.static.gatherPreInfuseState( + $( node ).find( '.mw-widget-namespaceInputWidget' ), + config.namespace + ); + state.title = mw.widgets.TitleInputWidget.static.gatherPreInfuseState( + $( node ).find( '.mw-widget-titleInputWidget' ), + config.title + ); + return state; + }; + + /*jshint +W024*/ + /* Methods */ /** @@ -60,4 +97,13 @@ this.title.setNamespace( Number( this.namespace.getValue() ) ); }; + /** + * @inheritdoc + */ + mw.widgets.ComplexTitleInputWidget.prototype.restorePreInfuseState = function ( state ) { + mw.widgets.ComplexTitleInputWidget.parent.prototype.restorePreInfuseState.call( this, state ); + this.namespace.restorePreInfuseState( state.namespace ); + this.title.restorePreInfuseState( state.title ); + }; + }( jQuery, mediaWiki ) ); -- 2.20.1