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