Merge "LogEventsList: Use DerivativeContext"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 23 Jul 2018 16:28:45 +0000 (16:28 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 23 Jul 2018 16:28:45 +0000 (16:28 +0000)
includes/htmlform/fields/HTMLCheckField.php
includes/htmlform/fields/HTMLMultiSelectField.php

index 7523b5f..aad9f6e 100644 (file)
@@ -116,10 +116,9 @@ class HTMLCheckField extends HTMLFormField {
        public function loadDataFromRequest( $request ) {
                $invert = isset( $this->mParams['invert'] ) && $this->mParams['invert'];
 
-               // GetCheck won't work like we want for checks.
                // Fetch the value in either one of the two following case:
-               // - we have a valid submit attempt (form was just submitted, or a GET URL forged by the user)
-               // - checkbox name has a value (false or true), ie is not null
+               // - we have a valid submit attempt (form was just submitted)
+               // - we have a value (an URL manually built by the user, or GET form with no wpFormIdentifier)
                if ( $this->isSubmitAttempt( $request ) || $request->getVal( $this->mName ) !== null ) {
                        return $invert
                                ? !$request->getBool( $this->mName )
index 4b1bc55..2038606 100644 (file)
@@ -214,10 +214,14 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable
         * @return string|array
         */
        public function loadDataFromRequest( $request ) {
-               if ( $this->isSubmitAttempt( $request ) ) {
+               $fromRequest = $request->getArray( $this->mName, [] );
+               // Fetch the value in either one of the two following case:
+               // - we have a valid submit attempt (form was just submitted)
+               // - we have a value (an URL manually built by the user, or GET form with no wpFormIdentifier)
+               if ( $this->isSubmitAttempt( $request ) || $fromRequest ) {
                        // Checkboxes are just not added to the request arrays if they're not checked,
                        // so it's perfectly possible for there not to be an entry at all
-                       return $request->getArray( $this->mName, [] );
+                       return $fromRequest;
                } else {
                        // That's ok, the user has not yet submitted the form, so show the defaults
                        return $this->getDefault();