Yurik has uploaded a new change for review.
https://gerrit.wikimedia.org/r/323788
Change subject: Added "sources" field to tabular & map data
......................................................................
Added "sources" field to tabular & map data
* Now both tabular and map data supports an optional
unlimited "sources" string field treated as a wiki markup.
* Cleaned up the pre-populated "new page" content.
Change-Id: Ic2cdb4fc77a80363180942c763f034c06d091a0c
---
M includes/JCDataContent.php
M includes/JCMapDataContentView.php
M includes/JCTabularContentView.php
3 files changed, 48 insertions(+), 5 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/JsonConfig
refs/changes/88/323788/1
diff --git a/includes/JCDataContent.php b/includes/JCDataContent.php
index 8850277..fe99fcd 100644
--- a/includes/JCDataContent.php
+++ b/includes/JCDataContent.php
@@ -4,7 +4,10 @@
use Html;
use Language;
+use Parser;
+use ParserOptions;
use stdClass;
+use Title;
/**
* @package JsonConfig
@@ -24,6 +27,7 @@
$this->test( 'license', JCValidators::isStringLine(),
self::isValidLicense() );
$this->testOptional( 'info', [ 'en' => '' ],
JCValidators::isLocalizedString() );
+ $this->testOptional( 'sources', '', JCValidators::isString() );
}
/** Returns a validator function to check if the value is a valid string
@@ -72,6 +76,9 @@
'url' => wfMessage( 'jsonconfig-license-url-' .
$data->license )->plain(),
];
}
+ if ( property_exists( $data, 'sources' ) ) {
+ $result->sources = $data->sources;
+ }
}
public function renderInfo( $lang ) {
@@ -103,4 +110,17 @@
return $html;
}
+
+ public function renderSources( Parser $parser, Title $title, $revId,
ParserOptions $options ) {
+ $sources = $this->getField( 'sources' );
+
+ if ( $sources && !$sources->error() ) {
+ $text = $parser->parse( $sources->getValue(), $title,
$options, true, true, $revId );
+ $html = Html::rawElement( 'p', [ 'class' =>
'mw-jsonconfig-sources' ], $text );
+ } else {
+ $html = '';
+ }
+
+ return $html;
+ }
}
diff --git a/includes/JCMapDataContentView.php
b/includes/JCMapDataContentView.php
index 3ed21f0..8ec1c55 100644
--- a/includes/JCMapDataContentView.php
+++ b/includes/JCMapDataContentView.php
@@ -29,6 +29,8 @@
$generateHtml,
ParserOutput &$output ) {
global $wgParser;
+ $parser = $wgParser->getFreshParser();
+
$localizedData = $content->getLocalizedData(
$options->getUserLangObj() );
if ( $localizedData ) {
@@ -67,12 +69,13 @@
}
}
$output =
- $wgParser->getFreshParser()->parse( $text,
$title, $options, true, true, $revId );
+ $parser->parse( $text, $title, $options, true,
true, $revId );
}
return
$content->renderInfo( $options->getUserLangObj() ) .
'<br>' .
$output->getRawText() . '<br clear=all>' .
+ $content->renderSources( $parser, $title, $revId,
$options ) .
$content->renderLicense();
}
@@ -85,13 +88,24 @@
public function getDefault( $modelId ) {
return <<<EOT
{
- "info": { "en": "description" },
- "license": "CC0-1.0",
+ // !!!!! All comments will be automatically deleted on save !!!!!
+
+ // Optional "info" field to describe this map
+ "info": {"en": "map description"},
+
+ // Optional "sources" field to describe the sources of the map. Can use
Wiki Markup
+ "sources": "Copied from [http://example.com Example Map Source]",
+
+ // Mandatory "license" field. Only CC-0 (public domain dedication) is
supported.
+ "license": "CC0-1.0",
+
"zoom": 3,
"latitude": 0,
"longitude": 0,
"data": {
- ...
+
+ ... GeoJSON ...
+
}
}
EOT;
diff --git a/includes/JCTabularContentView.php
b/includes/JCTabularContentView.php
index 265c96a..c7c1cab 100644
--- a/includes/JCTabularContentView.php
+++ b/includes/JCTabularContentView.php
@@ -118,10 +118,13 @@
}
}
+ global $wgParser;
+
$html =
$content->renderInfo( $lang ) .
Html::rawElement( 'table', $dataAttrs,
Html::rawElement( 'tbody', null, implode( "\n",
$result ) ) ) .
+ $content->renderSources( $wgParser->getFreshParser(),
$title, $revId, $options ) .
$content->renderLicense();
return $html;
@@ -154,8 +157,14 @@
public function getDefault( $modelId ) {
return <<<EOT
{
- // All comments will be automatically deleted on save
+ // !!!!! All comments will be automatically deleted on save !!!!!
+ // Optional "info" field to describe this data
+ "info": {"en": "table description"},
+
+ // Optional "sources" field to describe the sources of the data. Can use
Wiki Markup
+ "sources": "Copied from [http://example.com Example Data Source]",
+
// Mandatory "license" field. Only CC-0 (public domain dedication) is
supported.
"license": "CC0-1.0",
--
To view, visit https://gerrit.wikimedia.org/r/323788
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic2cdb4fc77a80363180942c763f034c06d091a0c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/JsonConfig
Gerrit-Branch: master
Gerrit-Owner: Yurik <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits