Jonas Kress (WMDE) has uploaded a new change for review.
https://gerrit.wikimedia.org/r/289611
Change subject: Pretty formatting of results
......................................................................
Pretty formatting of results
Show column label as title.
Allow embedding of images.
Change-Id: Ia80dce1e5ec3ad4dcc0bc1f8540d87c45a24211b
---
M wikibase/queryService/ui/resultBrowser/helper/FormatterHelper.js
1 file changed, 70 insertions(+), 14 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/wikidata/query/gui
refs/changes/11/289611/1
diff --git a/wikibase/queryService/ui/resultBrowser/helper/FormatterHelper.js
b/wikibase/queryService/ui/resultBrowser/helper/FormatterHelper.js
index 11c384c..2b3745f 100644
--- a/wikibase/queryService/ui/resultBrowser/helper/FormatterHelper.js
+++ b/wikibase/queryService/ui/resultBrowser/helper/FormatterHelper.js
@@ -10,6 +10,17 @@
var EXPLORE_URL = 'http://www.wikidata.org/entity/Q';
var COMMONS_FILE_PATH =
'http://commons.wikimedia.org/wiki/special:filepath/';
+ var DATATYPE_DATETIME = 'http://www.w3.org/2001/XMLSchema#dateTime';
+ var DATATYPE_URI = 'uri';
+
+ var DATETIME_FORMAT_OPTIONS = {
+ year: 'numeric',
+ month: 'short',
+ era: 'short',
+ day: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit'
+ };
var NUMBER_TYPES = [
'http://www.w3.org/2001/XMLSchema#double',
'http://www.w3.org/2001/XMLSchema#float',
@@ -41,16 +52,16 @@
* Format a data row
*
* @param {Object} row
+ * @param {boolean} embed media files
* @return {jQuery} element
*/
- SELF.prototype.formatRow = function( row ) {
+ SELF.prototype.formatRow = function( row, embed ) {
var self = this;
var $result = $( '<div/>' );
$.each( row, function( key, value ) {
- $result.prepend( $( '<div/>' ).text( key + ': ' )
- .append( self.formatValue( value, key )
) );
+ $result.prepend( $( '<div>' ).append( self.formatValue(
value, key, embed ) ) );
} );
return $result;
@@ -60,24 +71,40 @@
* Format a data value
*
* @param {Object} data
- * @param {string} key
+ * @param {string} title
+ * @param {boolean} embed media files
* @return {jQuery} element
*/
- SELF.prototype.formatValue = function( data, key ) {
+ SELF.prototype.formatValue = function( data, title, embed ) {
var value = data.value, $html = $( '<span>' );
- if ( !data.type ) {
- return value;
+ if ( !title ) {
+ title = data.dataType || '';
}
- if ( data.type === 'uri' ) {
- var $link = $( '<a>' ).attr( 'href', value ).attr(
'target', '_blank' );
+ if ( !data.type ) {
+ return $( '<span>' ).text( value ).attr( 'title', title
);
+ }
+
+ switch ( data.datatype || data.type ) {
+ case DATATYPE_URI:
+ var $link = $( '<a>' ).attr( 'href', value ).attr(
'target', '_blank' ).attr( 'title',
+ title );
$html.append( $link );
if ( this.isCommonsResource( value ) ) {
- $link.text( 'commons:' +
- decodeURIComponent(
this.getCommonsResourceFileName( value ) ) );
- $html.prepend( this.createGalleryButton( value,
key ), ' ' );
+
+ if ( embed ) {
+ $link.click(
this.handleCommonResourceItem );
+ $link.append(
+ $( '<img>' ).attr(
'src',
+
this.getCommonsResourceFileNameThumbnail( value, '120' ) ) )
+ .width( '120' );
+ } else {
+ $link.text( 'commons:' +
+ decodeURIComponent(
this.getCommonsResourceFileName( value ) ) );
+ $html.prepend(
this.createGalleryButton( value, title ), ' ' );
+ }
} else {
$link.text( this.abbreviateUri( value ) );
@@ -85,11 +112,21 @@
$html.prepend(
this.createExploreButton( value ), ' ' );
}
}
+ break;
+ case DATATYPE_DATETIME:
+ var date = this.parseDate( value );
+ date = date.toLocaleDateString( $( 'html' ).attr(
'lang' ), DATETIME_FORMAT_OPTIONS );
+ var $dateLabel = $( '<span>' ).text( date );
+ $dateLabel.attr( 'title', title + ': ' + value );
+ $html.append( $dateLabel );
+ break;
- } else {
+ default:
var $label = $( '<span>' ).text( value );
if ( data['xml:lang'] ) {
- $label.attr( 'title', value + '@' +
data['xml:lang'] );
+ $label.attr( 'title', title + ': ' + value +
'@' + data['xml:lang'] );
+ } else {
+ $label.attr( 'title', title );
}
$html.append( $label );
}
@@ -98,6 +135,25 @@
};
/**
+ * Parse dateTime string to Date object
+ * Allows negative years without leading zeros
http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15.1
+ *
+ * @param {string} dateTime
+ * @return {Object}
+ */
+ SELF.prototype.parseDate = function( dateTime ) {
+
+ //Add leading zeros to negative year
+ dateTime = dateTime.replace( /^-(\d{1})-/, '-00000$1-' )
+ .replace( /^-(\d{2})-/, '-0000$1-' )
+ .replace( /^-(\d{3})-/, '-000$1-' )
+ .replace( /^-(\d{4})-/, '-00$1-' )
+ .replace( /^-(\d{5})-/, '-0$1-' );
+
+ return new Date( Date.parse( dateTime ) );
+ };
+
+ /**
* Checks whether given URL is available for explorer
*
* @param {string} url
--
To view, visit https://gerrit.wikimedia.org/r/289611
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia80dce1e5ec3ad4dcc0bc1f8540d87c45a24211b
Gerrit-PatchSet: 1
Gerrit-Project: wikidata/query/gui
Gerrit-Branch: master
Gerrit-Owner: Jonas Kress (WMDE) <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits