Daniel Kinzler has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/236545

Change subject: Use a proper StringParser instead of NullParser for 
StringValues.
......................................................................

Use a proper StringParser instead of NullParser for StringValues.

So far, we had a NullParser defiend for parsing values for the commonsMedia,
url, and string data types. Since NullParser always returns an UnknownValue,
this setup was not actually usable by the frontend, causing special case
handling to be implemented in JS. To avoid this, we can now use the new
StringParser.

Using StringParser also allows us to apply unicode normalization to all
incoming string values.

This restores what was already implemented with I226f0dff9.

Bug: T104873
Change-Id: Ifefc996e5fe8d498d4014060086ec1f8a673ee2f
---
M repo/WikibaseRepo.datatypes.php
1 file changed, 9 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/45/236545/1

diff --git a/repo/WikibaseRepo.datatypes.php b/repo/WikibaseRepo.datatypes.php
index 69674e5..62682b2 100644
--- a/repo/WikibaseRepo.datatypes.php
+++ b/repo/WikibaseRepo.datatypes.php
@@ -19,11 +19,12 @@
  */
 
 use DataValues\Geo\Parsers\GlobeCoordinateParser;
-use ValueParsers\NullParser;
 use ValueParsers\QuantityParser;
+use ValueParsers\StringParser;
 use ValueParsers\ValueParser;
 use Wikibase\Lib\EntityIdValueParser;
 use Wikibase\Lib\Parsers\TimeParserFactory;
+use Wikibase\Lib\WikibaseStringValueNormalizer;
 use Wikibase\Parsers\MonolingualTextParser;
 use Wikibase\Repo\WikibaseRepo;
 
@@ -39,8 +40,10 @@
                return new EntityIdValueParser( $repo->getEntityIdParser() );
        };
 
-       $newNullParser = function( ValueParsers\ParserOptions $options ) {
-               return new NullParser();
+       $newStringParser = function( ValueParsers\ParserOptions $options ) {
+               $repo = WikibaseRepo::getDefaultInstance();
+               $normalizer = new WikibaseStringValueNormalizer( 
$repo->getStringNormalizer() );
+               return new StringParser( $normalizer );
        };
 
        return array(
@@ -49,7 +52,7 @@
                                $factory = 
WikibaseRepo::getDefaultValidatorBuilders();
                                return $factory->buildStringValidators();
                        },
-                       'parser-factory-callback' => $newNullParser, //TODO: 
use StringParser
+                       'parser-factory-callback' => $newStringParser,
 
                ),
                'globe-coordinate' => array(
@@ -86,7 +89,7 @@
                                $factory = 
WikibaseRepo::getDefaultValidatorBuilders();
                                return $factory->buildStringValidators();
                        },
-                       'parser-factory-callback' => $newNullParser, //TODO: 
use StringParser
+                       'parser-factory-callback' => $newStringParser,
                ),
                'time' => array(
                        'validator-factory-callback' => function () {
@@ -103,7 +106,7 @@
                                $factory = 
WikibaseRepo::getDefaultValidatorBuilders();
                                return $factory->buildUrlValidators();
                        },
-                       'parser-factory-callback' => $newNullParser, //TODO: 
use StringParser
+                       'parser-factory-callback' => $newStringParser,
                ),
                'wikibase-item' => array(
                        'validator-factory-callback' => function () {

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifefc996e5fe8d498d4014060086ec1f8a673ee2f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Daniel Kinzler <daniel.kinz...@wikimedia.de>

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

Reply via email to