Gabriel Birke has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/358563 )

Change subject: Connect text inputs to store
......................................................................

Connect text inputs to store

Change-Id: I675661e3b61201a15ebf4d74fbaf150a301fe25c
---
M extension.json
M modules/ext.advancedSearch.init.js
A modules/ui/ext.advancedSearch.TextInput.js
3 files changed, 54 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/AdvancedSearch 
refs/changes/63/358563/1

diff --git a/extension.json b/extension.json
index 54d1f83..46169a2 100644
--- a/extension.json
+++ b/extension.json
@@ -69,7 +69,8 @@
                                "ext.advancedSearch.ui.ImageDimensionInput",
                                "ext.advancedSearch.ui.MenuedInput",
                                "ext.advancedSearch.ui.OptionalElementLayout",
-                               "ext.advancedSearch.ui.SearchPreview"
+                               "ext.advancedSearch.ui.SearchPreview",
+                               "ext.advancedSearch.ui.TextInput"
                        ]
                },
                "ext.advancedSearch.ui.ArbitraryWordInput": {
@@ -154,6 +155,14 @@
                                "oojs-ui"
                        ]
                },
+               "ext.advancedSearch.ui.TextInput": {
+                       "scripts": [
+                               "modules/ui/ext.advancedSearch.TextInput.js"
+                       ],
+                       "dependencies": [
+                               "oojs-ui"
+                       ]
+               },
                "ext.advancedSearch.dm.SearchModel": {
                        "scripts": [
                                "modules/dm/ext.advancedSearch.SearchModel.js"
diff --git a/modules/ext.advancedSearch.init.js 
b/modules/ext.advancedSearch.init.js
index c375d1e..c40a043 100644
--- a/modules/ext.advancedSearch.init.js
+++ b/modules/ext.advancedSearch.init.js
@@ -445,11 +445,9 @@
                var paramName = 'advancedSearchOption-' + option.id;
 
                var widgetInit = option.init || function () {
-                       return new OO.ui.TextInputWidget( {
+                       return new mw.libs.advancedSearch.ui.TextInput( state, {
                                id: paramName,
-                               // TODO: These names are to long.
-                               name: paramName,
-                               value: mw.util.getParamValue( paramName )
+                               optionId: option.id
                        } );
                },
                widget = widgetInit();
diff --git a/modules/ui/ext.advancedSearch.TextInput.js 
b/modules/ui/ext.advancedSearch.TextInput.js
new file mode 100644
index 0000000..8d2063d
--- /dev/null
+++ b/modules/ui/ext.advancedSearch.TextInput.js
@@ -0,0 +1,42 @@
+( function ( mw ) {
+       'use strict';
+
+       mw.libs = mw.libs || {};
+       mw.libs.advancedSearch = mw.libs.advancedSearch || {};
+       mw.libs.advancedSearch.ui = mw.libs.advancedSearch.ui || {};
+
+       /**
+        * @class
+        * @extends {OO.ui.TextInputWidget}
+        * @constructor
+        *
+        * @param  {ext.advancedSearch.dm.SearchModel} store
+        * @param  {Object} config
+        */
+       mw.libs.advancedSearch.ui.TextInput = function ( store, config ) {
+               var myConfig = $.extend( {}, config || {} );
+               this.store = store;
+               this.optionId = config.optionId;
+
+               this.store.connect( this, { update: 'onStoreUpdate' } );
+
+               mw.libs.advancedSearch.ui.TextInput.parent.call( this, myConfig 
);
+
+               this.populateFromStore();
+       };
+
+       OO.inheritClass( mw.libs.advancedSearch.ui.TextInput, 
OO.ui.TextInputWidget );
+
+       mw.libs.advancedSearch.ui.TextInput.prototype.onStoreUpdate = function 
() {
+               this.populateFromStore();
+       };
+
+       mw.libs.advancedSearch.ui.TextInput.prototype.populateFromStore = 
function () {
+               var val = this.store.getOption( this.optionId );
+               if ( this.getValue() === val ) {
+                       return;
+               }
+               this.setValue( val );
+       };
+
+} )( mediaWiki );

-- 
To view, visit https://gerrit.wikimedia.org/r/358563
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I675661e3b61201a15ebf4d74fbaf150a301fe25c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/AdvancedSearch
Gerrit-Branch: master
Gerrit-Owner: Gabriel Birke <gabriel.bi...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to