Henning Snater has uploaded a new change for review.
https://gerrit.wikimedia.org/r/67404
Change subject: Implemented TimeInput expert default messages
......................................................................
Implemented TimeInput expert default messages
Default messages will be used when the mediaWiki JavaScript object is not
available.
Change-Id: I36a93e481600b2b4dd056958a04bbf0da7ff0d52
---
M ValueView/resources/jquery.valueview/valueview.Expert.js
M ValueView/resources/jquery.valueview/valueview.experts/experts.TimeInput.js
2 files changed, 69 insertions(+), 35 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DataValues
refs/changes/04/67404/1
diff --git a/ValueView/resources/jquery.valueview/valueview.Expert.js
b/ValueView/resources/jquery.valueview/valueview.Expert.js
index 18bc156..dfb4df6 100644
--- a/ValueView/resources/jquery.valueview/valueview.Expert.js
+++ b/ValueView/resources/jquery.valueview/valueview.Expert.js
@@ -101,7 +101,7 @@
this.$viewPort = $( viewPortNode );
this.$viewPort.addClass( this.uiBaseClass );
- this._options = $.extend( {}, options || {} );
+ this._options = $.extend( ( !this._options ) ? {} :
this._options, options || {} );
this._init();
};
@@ -304,6 +304,28 @@
draw: dv.util.abstractMember,
/**
+ * Tries to get a message via mediaWiki (if set in the options)
or from the default options.
+ * @since 0.1
+ *
+ * @param {string} key
+ * @param {string[]} [params] Message parameters (forwarded to
mediaWiki messages only).
+ * @return {string|null}
+ */
+ _getMessage: function( key, params ) {
+ params = params || [];
+
+ if( this._options.mediaWiki ) {
+ return this._options.mediaWiki.msg( key, params
);
+ }
+
+ if( this._options && this._options.messages &&
this._options.messages[key] ) {
+ return this._options.messages[key];
+ }
+
+ return null;
+ },
+
+ /**
* Will set the focus if there is some focusable input elements.
*
* @since 0.1
diff --git
a/ValueView/resources/jquery.valueview/valueview.experts/experts.TimeInput.js
b/ValueView/resources/jquery.valueview/valueview.experts/experts.TimeInput.js
index fc23a57..cc48b11 100644
---
a/ValueView/resources/jquery.valueview/valueview.experts/experts.TimeInput.js
+++
b/ValueView/resources/jquery.valueview/valueview.experts/experts.TimeInput.js
@@ -20,8 +20,25 @@
*
* @constructor
* @extends jQuery.valueview.Expert
+ *
+ * @option {Object} messages Default messages used by the widget. The
keys correspond to
+ * mediaWiki message keys since these will be picked when in
MediaWiki environment and
+ * the mediaWiki JavaScript object has been passed to the
expert constructor.
*/
vv.experts.TimeInput = vv.expert( 'timeinput', PARENT, {
+
+ /**
+ * Default options
+ * @type {Object}
+ */
+ _options: {
+ messages: {
+ 'valueview-expert-timeinput-precision':
'Precision',
+ 'valueview-expert-timeinput-calendar':
'Calendar',
+ 'valueview-expert-advancedadjustments':
'advanced adjustments'
+ }
+ },
+
/**
* The the input element's node.
* @type {jQuery}
@@ -82,12 +99,7 @@
this.$precisionContainer = $( '<div/>' )
.addClass( this.uiBaseClass + '-precisioncontainer' )
.append(
- $( '<div/>' ).text(
- ( this._options.mediaWiki )
- ? this._options.mediaWiki.msg(
'valueview-expert-timeinput-precision' )
- // TODO: Use default messages
- : ''
- )
+ $( '<div/>' ).text( this._getMessage(
'valueview-expert-timeinput-precision' ) )
);
var precisionValues = [];
@@ -122,11 +134,7 @@
this.$calendarContainer = $( '<div/>' )
.addClass( this.uiBaseClass + '-calendarcontainer' )
.append(
- $( '<div/>' ).text(
- ( this._options.mediaWiki )
- ? this._options.mediaWiki.msg(
'valueview-expert-timeinput-calendar' )
- : ''
- )
+ $( '<div/>' ).text( this._getMessage(
'valueview-expert-timeinput-calendar' ) )
);
var calendarValues = [];
@@ -155,11 +163,7 @@
var $toggler = $( '<a/>' )
.addClass( this.uiBaseClass + '-advancedtoggler' )
- .text(
- ( this._options.mediaWiki )
- ? this._options.mediaWiki.msg(
'valueview-expert-advancedadjustments' )
- : ''
- );
+ .text( this._getMessage(
'valueview-expert-advancedadjustments' ) );
this.$calendarhint = $( '<div/>' )
.addClass( this.uiBaseClass + '-calendarhint' )
@@ -168,7 +172,8 @@
$( '<a/>' )
.addClass( this.uiBaseClass +
'-calendarhint-switch ui-state-default' )
.attr( 'href', 'javascript:void(0);' )
- );
+ )
+ .hide();
this.$input = $( '<input/>', {
type: 'text',
@@ -289,6 +294,15 @@
* @param {time.Time} [value] Message will get hidden when
omitted.
*/
_updateCalendarHint: function( value ) {
+ var msg = this._getMessage(
+ 'valueview-expert-timeinput-calendarhint',
+ value.calendarText()
+ );
+
+ if( !msg ) {
+ return;
+ }
+
if( value && value.year() > 1581 && value.year() < 1930
&& value.precision() > 10 ) {
var self = this;
@@ -296,25 +310,23 @@
? timeSettings.calendarnames[1][0]
: timeSettings.calendarnames[0][0];
- if( this._options.mediaWiki ) {
- this.$calendarhint.children( '.' +
this.uiBaseClass + '-calendarhint-message' )
- .text( this._options.mediaWiki.msg(
-
'valueview-expert-timeinput-calendarhint',
- value.calendarText()
- ) );
- }
+ this.$calendarhint.children( '.' +
this.uiBaseClass + '-calendarhint-message' )
+ .text( msg );
- this.$calendarhint.children( '.' +
this.uiBaseClass + '-calendarhint-switch' )
- .off( 'click.' + this.uiBaseClass )
- .on( 'click.' + this.uiBaseClass, function(
event ) {
- self.$calendar.data( 'listrotator'
).rotate( otherCalendar, function() {
- self._updateValue();
- } );
- } )
- .html( ( this._options.mediaWiki )
- ? this._options.mediaWiki.msg(
'valueview-expert-timeinput-calendarhint-switch', otherCalendar )
- : ''
+ msg = this._getMessage(
+
'valueview-expert-timeinput-calendarhint-switch',
+ otherCalendar
);
+ if( msg ) {
+ this.$calendarhint.children( '.' +
this.uiBaseClass + '-calendarhint-switch' )
+ .off( 'click.' + this.uiBaseClass )
+ .on( 'click.' + this.uiBaseClass,
function( event ) {
+ self.$calendar.data(
'listrotator' ).rotate( otherCalendar, function() {
+ self._updateValue();
+ } );
+ } )
+ .html( msg );
+ }
this.$calendarhint.show();
} else {
--
To view, visit https://gerrit.wikimedia.org/r/67404
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I36a93e481600b2b4dd056958a04bbf0da7ff0d52
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DataValues
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits