jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/364214 )
Change subject: Check constraint parameters on property pages
......................................................................
Check constraint parameters on property pages
This updates the gadget to use the new wbcheckconstraintparameters API
module to check constraint statements on a property page.
Bug: T169531
Change-Id: Ief70ee62f3d98d9712c927064a9ddb937bd84a33
---
M extension.json
M i18n/en.json
M i18n/qqq.json
M modules/gadget.css
M modules/gadget.js
5 files changed, 77 insertions(+), 6 deletions(-)
Approvals:
Jonas Kress (WMDE): Looks good to me, approved
jenkins-bot: Verified
diff --git a/extension.json b/extension.json
index 8d22649..edad5d6 100644
--- a/extension.json
+++ b/extension.json
@@ -52,7 +52,9 @@
"wikibase.quality.constraints.ui": {
"messages": [
"wbqc-potentialissues-short",
- "wbqc-potentialissues-long"
+ "wbqc-potentialissues-long",
+ "wbqc-badparameters-short",
+ "wbqc-badparameters-long"
]
},
"wikibase.quality.constraints.gadget": {
diff --git a/i18n/en.json b/i18n/en.json
index 069a662..d55b947 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -31,6 +31,8 @@
"wbqc-potentialissues-short": "Potential issues",
"wbqc-potentialissues-long": "This statement has some potential
issues.",
+ "wbqc-badparameters-short": "Bad parameters",
+ "wbqc-badparameters-long": "This constraint statement has some invalid
parameters.",
"apihelp-wbcheckconstraints-description": "Performs constraint checks
on any entity you want and returns the result.",
"apihelp-wbcheckconstraints-summary": "Performs constraint checks on
any entity you want and returns the result.",
diff --git a/i18n/qqq.json b/i18n/qqq.json
index 7a2840e..689eaa7 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -32,6 +32,8 @@
"wbqc-constraintreport-no-parameter": "Text that is displayed when
there was no value for a parameter given.\n{{Identical|None}}",
"wbqc-potentialissues-short": "Headline of the constraint report popup
shown on statements with constraint violations. Should be easy to understand
for users, and convey that the reported violations are not always errors, but
should be thought of as hints to the user that something might be
wrong.\n\n{{Related|wbqc-constraintreport}}",
"wbqc-potentialissues-long": "Title for the icon shown on statements
with constraint violations, usually displayed by the browser when the user
hovers over the icon with the mouse
cursor.{{Related|wbqc-potentialissues-short}}",
+ "wbqc-badparameters-short": "Headline of the constraint parameter
report popup shown on constraint statements with invalid constraint
parameters.",
+ "wbqc-badparameters-long": "Title for the icon shown on constraint
statements with invalid constraint parameters, usually displayed by the browser
when the user hovers over the icon with the mouse
cursor.{{Related|wbqc-badparameters-short}}",
"apihelp-wbcheckconstraints-description":
"{{doc-apihelp-description|wbcheckconstraints}}",
"apihelp-wbcheckconstraints-summary":
"{{doc-apihelp-summary|wbcheckconstraints}}",
"apihelp-wbcheckconstraints-param-id":
"{{doc-apihelp-param|wbcheckconstraints|id}}",
diff --git a/modules/gadget.css b/modules/gadget.css
index 73b9bc1..8e26c50 100644
--- a/modules/gadget.css
+++ b/modules/gadget.css
@@ -3,7 +3,8 @@
.wbqc-reports-button {
margin-left: 0.5em;
}
-.wbqc-report {
+.wbqc-report,
+.wbqc-parameter-report {
border-top: 1px solid #eaecf0; /* Base80 */
}
.wbqc-constraint-type-help {
diff --git a/modules/gadget.js b/modules/gadget.js
index 0c5d051..bf62e2c 100644
--- a/modules/gadget.js
+++ b/modules/gadget.js
@@ -3,10 +3,11 @@
var entityId;
- function buildWidget( reports ) {
+ function buildWidget( reports, messageKey, flags /* = '' */ ) {
var widget = new OO.ui.PopupButtonWidget( {
icon: 'alert',
- iconTitle: mw.message( 'wbqc-potentialissues-long'
).text(),
+ iconTitle: mw.message( 'wbqc-' + messageKey + '-long'
).text(),
+ flags: flags || '',
framed: false,
classes: [ 'wbqc-reports-button' ],
popup: {
@@ -19,7 +20,7 @@
width: 400,
padded: true,
head: true,
- label: $( '<strong>' ).text( mw.message(
'wbqc-potentialissues-short' ).text() )
+ label: $( '<strong>' ).text( mw.message(
'wbqc-' + messageKey + '-short' ).text() )
}
} );
widget.popup.$element.css( 'z-index', 2 ); // prevent collision
with rank selector and property grey field
@@ -64,6 +65,23 @@
}
}
+ function buildParameterReport( problem ) {
+ var $report, $heading, $body;
+
+ $report = $( '<div>' )
+ .addClass( 'wbqc-parameter-report' );
+ $heading = $( '<h4>' ); // empty for now
+ $report.append( $heading );
+ $body = $( '<p>' )
+ .html( problem[ 'message-html' ] );
+ $report.append( $body );
+
+ return new OO.ui.PanelLayout( {
+ expanded: false,
+ $content: $report
+ } );
+ }
+
function addReportsToStatement( entityData, $statement ) {
var match = $statement.parents( '.wikibase-statementview' )[ 0
].className.match(
/\bwikibase-statement-([^\s$]+\$[\dA-F-]+)\b/i
@@ -95,7 +113,42 @@
if ( $target.length === 0 ) {
$target = $statement;
}
- $target.append( buildWidget( reports ).$element );
+ $target.append( buildWidget( reports, 'potentialissues'
).$element );
+ }
+ }
+
+ function addParameterReports( parameterReports ) {
+ var constraintId,
+ status,
+ problems,
+ reports,
+ i,
+ report,
+ $statement,
+ $target;
+
+ for ( constraintId in parameterReports ) {
+ status = parameterReports[ constraintId ].status;
+ if ( status === 'okay' ) {
+ continue;
+ }
+
+ problems = parameterReports[ constraintId ].problems;
+ reports = [];
+ for ( i = 0; i < problems.length; i++ ) {
+ report = buildParameterReport( problems[ i ] );
+ if ( report !== null ) {
+ reports.push( report );
+ }
+ }
+
+ $statement = $( '.wikibase-statement-' +
constraintId.replace( /\$/g, '\\$' ) +
+ '
.wikibase-statementview-mainsnak .wikibase-snakview-value' );
+ $target = $statement.find( '.valueview-instaticmode' );
+ if ( $target.length === 0 ) {
+ $target = $statement;
+ }
+ $target.append( buildWidget( reports, 'badparameters',
'warning' ).$element );
}
}
@@ -126,6 +179,17 @@
.each( function () { addReportsToStatement(
data.wbcheckconstraints[ entityId ], $( this ) ); } );
} );
+ if ( mw.config.get( 'wgPageContentModel' ) ===
'wikibase-property' ) {
+ api.get( {
+ action: 'wbcheckconstraintparameters',
+ format: 'json',
+ uselang: lang,
+ propertyid: entityId
+ } ).then( function( data ) {
+ addParameterReports(
data.wbcheckconstraintparameters[ entityId ] );
+ } );
+ }
+
mw.hook( 'wikibase.statement.saved' ).add( function( entityId,
statementId ) {
api.get( {
action: 'wbcheckconstraints',
--
To view, visit https://gerrit.wikimedia.org/r/364214
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ief70ee62f3d98d9712c927064a9ddb937bd84a33
Gerrit-PatchSet: 13
Gerrit-Project: mediawiki/extensions/WikibaseQualityConstraints
Gerrit-Branch: master
Gerrit-Owner: Lucas Werkmeister (WMDE) <[email protected]>
Gerrit-Reviewer: Jonas Kress (WMDE) <[email protected]>
Gerrit-Reviewer: Lucas Werkmeister (WMDE) <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits