Mattflaschen has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/354982 )

Change subject: Update \n handling for HTMLUsersMultiselectField
......................................................................

Update \n handling for HTMLUsersMultiselectField

Change-Id: I51b772946f1e50a21fb86cab969defb4647b820b
---
M includes/htmlform/fields/HTMLMultiSelectField.php
M includes/htmlform/fields/HTMLUsersMultiselectField.php
2 files changed, 21 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/82/354982/1

diff --git a/includes/htmlform/fields/HTMLMultiSelectField.php 
b/includes/htmlform/fields/HTMLMultiSelectField.php
index 2b6e066..6c51a6c 100644
--- a/includes/htmlform/fields/HTMLMultiSelectField.php
+++ b/includes/htmlform/fields/HTMLMultiSelectField.php
@@ -3,7 +3,7 @@
 /**
  * Multi-select field
  */
-class HTMLMultiSelectField extends HTMLFormField implements 
HTMLNestedFilterable {
+class HTMLMultiSelectField extends HTMLFormField {
        /**
         * @param array $params
         *   In adition to the usual HTMLFormField parameters, this can take 
the following fields:
diff --git a/includes/htmlform/fields/HTMLUsersMultiselectField.php 
b/includes/htmlform/fields/HTMLUsersMultiselectField.php
index 8829f66..7c6902b 100644
--- a/includes/htmlform/fields/HTMLUsersMultiselectField.php
+++ b/includes/htmlform/fields/HTMLUsersMultiselectField.php
@@ -14,14 +14,16 @@
  *
  * @note This widget is not likely to remain functional in non-OOUI forms.
  */
-class HTMLUsersMultiselectField extends HTMLUserTextField {
+class HTMLUsersMultiselectField extends HTMLUserTextField implements 
HTMLNestedFilterable {
 
        public function loadDataFromRequest( $request ) {
-               if ( !$request->getCheck( $this->mName ) ) {
-                       return $this->getDefault();
+               if ( $request->getCheck( $this->mName ) ) {
+                       $value = $request->getText( $this->mName );
+               } else {
+                       $value = $this->getDefault();
                }
 
-               $usersArray = explode( "\n", $request->getText( $this->mName ) 
);
+               $usersArray = explode( "\n", $value );
                // Remove empty lines
                $usersArray = array_values( array_filter( $usersArray, 
function( $username ) {
                        return trim( $username ) !== '';
@@ -29,6 +31,20 @@
                return $usersArray;
        }
 
+       /**
+        * Support for seperating multi-option preferences into multiple 
preferences
+        * Due to lack of array support.
+        *
+        * @param array $data
+        */
+       public function filterDataForSubmit( $data ) {
+               return [
+                       '' => implode( "\n", $data ),
+               ];
+       }
+
+
+
        public function validate( $value, $alldata ) {
                if ( !$this->mParams['exists'] ) {
                        return true;

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I51b772946f1e50a21fb86cab969defb4647b820b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Mattflaschen <mflasc...@wikimedia.org>

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

Reply via email to