jenkins-bot has submitted this change and it was merged.
Change subject: Fix MonolingualTextValues for real, again
......................................................................
Fix MonolingualTextValues for real, again
Change-Id: I50b0ebf381082bf825306ebeeccac2a5a10a664b
---
M RELEASE-NOTES.md
M lib/jquery.ui/jquery.ui.languagesuggester.js
M src/ExpertExtender/ExpertExtender.LanguageSelector.js
3 files changed, 30 insertions(+), 13 deletions(-)
Approvals:
Jonas Kress (WMDE): Looks good to me, approved
jenkins-bot: Verified
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 7ac75d4..5fcd31d 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -1,5 +1,9 @@
# ValueView release notes
+## 0.15.9 (2016-02-03)
+
+* Correctly detect a changed language code when editing a
`MonolingualTextValue`
+
## 0.15.8 (2016-01-27)
* Added compatibility with DataValues JavaScript 0.8.0.
diff --git a/lib/jquery.ui/jquery.ui.languagesuggester.js
b/lib/jquery.ui/jquery.ui.languagesuggester.js
index 45789f0..9f019df 100644
--- a/lib/jquery.ui/jquery.ui.languagesuggester.js
+++ b/lib/jquery.ui/jquery.ui.languagesuggester.js
@@ -17,7 +17,7 @@
* @property {*}
* @protected
*/
- _selectedValue: null,
+ _selectedItem: null,
/**
* @inheritdoc
@@ -27,14 +27,21 @@
var self = this,
retVal = PARENT.prototype._initMenu.apply( this,
arguments );
- this.element.on( 'languagesuggesterchange', function () {
- self._selectedValue = null;
+ this.element.on( 'languagesuggesterchange', function ( e, data
) {
+ var curVal = self.element.val();
+ if ( data.item ) {
+ self._selectedItem = data.item;
+ } else if (
+ self._selectedItem && curVal !==
self._selectedItem.getLabel() &&
+ curVal !== self._selectedItem.getValue()
+ ) {
+ self._selectedItem = null;
+ }
} );
$( retVal )
.on( 'selected.languagesuggester', function( event, item ) {
- self._trigger( 'change' );
- self._selectedValue = item.getValue();
+ self._trigger( 'change', null, { item: item } );
self.element.val( item.getLabel() );
} );
@@ -106,7 +113,16 @@
* @return {*}
*/
getSelectedValue: function() {
- return this._selectedValue;
+ return this._selectedItem && this._selectedItem.getValue();
+ },
+
+ /**
+ * @param {string} value The language code
+ * @param {string} label The label
+ */
+ setSelectedValue: function( value, label ) {
+ this._selectedItem = this._createMenuItemFromSuggestion( {
label: label, code: value } );
+ this.element.val( label );
}
} );
diff --git a/src/ExpertExtender/ExpertExtender.LanguageSelector.js
b/src/ExpertExtender/ExpertExtender.LanguageSelector.js
index 8fe61e5..0f7afa3 100644
--- a/src/ExpertExtender/ExpertExtender.LanguageSelector.js
+++ b/src/ExpertExtender/ExpertExtender.LanguageSelector.js
@@ -108,7 +108,7 @@
source: $.map( this._labels, function(
label, code ) {
return { code: code, label:
label };
} )
- } ).on( 'change', this._onValueChange );
+ } ).on( 'languagesuggesterchange',
this._onValueChange );
} else {
this.$selector.on( 'eachchange',
this._onValueChange );
}
@@ -123,13 +123,10 @@
onInitialShow: function() {
var value = this._getUpstreamValue();
if ( this._labels ) {
- // Necessary for mapping to the language code
if the language is not changed.
- // FIXME: This is obviously an access
violation, and it's probably not a good idea
- // to track this through the suggester given
the current design.
- this.$selector.data( 'languagesuggester'
)._selectedValue = value;
- value = this._labels[ value ] || value;
+ this.$selector.data( 'languagesuggester'
).setSelectedValue( value, this._labels[ value ] || value );
+ } else {
+ this.$selector.val( value );
}
- this.$selector.val( value );
},
/**
--
To view, visit https://gerrit.wikimedia.org/r/268081
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I50b0ebf381082bf825306ebeeccac2a5a10a664b
Gerrit-PatchSet: 4
Gerrit-Project: data-values/value-view
Gerrit-Branch: master
Gerrit-Owner: Adrian Lang <[email protected]>
Gerrit-Reviewer: Adrian Lang <[email protected]>
Gerrit-Reviewer: Jonas Kress (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits