Daniel Werner has uploaded a new change for review.
https://gerrit.wikimedia.org/r/79150
Change subject: use jQuery.ui.inputextender's new "animation" event in
snakview value variation
......................................................................
use jQuery.ui.inputextender's new "animation" event in snakview value variation
REQUIRES If57ee1e in DataValues repo.
Change-Id: I3c01bd2d6e5a85d84c925dbd860d1dd1b5fc2b11
---
M
lib/resources/jquery.wikibase/jquery.wikibase.snakview/snakview.variations.Value.js
1 file changed, 39 insertions(+), 27 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/50/79150/1
diff --git
a/lib/resources/jquery.wikibase/jquery.wikibase.snakview/snakview.variations.Value.js
b/lib/resources/jquery.wikibase/jquery.wikibase.snakview/snakview.variations.Value.js
index 971fb56..10bf9d2 100644
---
a/lib/resources/jquery.wikibase/jquery.wikibase.snakview/snakview.variations.Value.js
+++
b/lib/resources/jquery.wikibase/jquery.wikibase.snakview/snakview.variations.Value.js
@@ -179,6 +179,8 @@
*/
_attachEventHandlers: function() {
var self = this;
+ var $viewPort = this.$viewPort;
+ var heightAnimationQueue = self.variationBaseClass +
'height'
this._removeEventHandlers();
@@ -189,46 +191,56 @@
.on( 'valueviewafterparse.' + this.variationBaseClass,
function( event ) {
self._viewState.notify( (
self._valueView.value() ) ? 'valid' : 'invalid' );
} )
- .on( 'inputextenderanimationstep.' +
this.variationBaseClass, function( event, now, tween ) {
- if( tween !== undefined && tween.prop ===
'opacity' ) {
- // Do not do anything when fading.
Animation will be performed when fading is
- // completed via the animation's
"complete" callback triggering an
- // "animationstep" event without
parameters.
- return;
- }
+ .on( 'inputextenderanimation.' +
this.variationBaseClass, function( animationEvent ) {
+ animationEvent.animationCallbacks.add( 'done',
function() {
+ var $input = $( animationEvent.target );
+ var $extension = $input.data(
'inputextender' ).extension();
+ var newHeight = 0;
- var $input = $( event.target ),
- $extension = $input.data(
'inputextender' ).extension(),
- newHeight = 0;
+ $viewPort.stop( heightAnimationQueue,
true );
- self.$viewPort.stop( true );
+ if( $extension ) {
+ newHeight =
$input.outerHeight() + $extension.outerHeight();
+ } else {
+ var currentHeight =
$viewPort.height();
+ $viewPort.css( 'height', 'auto'
);
+ newHeight = $viewPort.height();
+ $viewPort.height( currentHeight
);
+ }
- if( $extension ) {
- newHeight = $input.outerHeight() +
$extension.outerHeight();
- } else {
- var currentHeight =
self.$viewPort.height();
- self.$viewPort.css( 'height', 'auto' );
- newHeight = self.$viewPort.height();
- self.$viewPort.height( currentHeight );
- }
-
- if( tween === undefined ) {
- self.$viewPort.animate(
+ $viewPort.animate(
{ height: newHeight },
{
+ queue:
heightAnimationQueue,
duration: 250,
progress: function(
animation, progress, remainingMs ) {
$.ui.inputextender.redrawVisibleExtensions();
}
}
- );
- } else {
- self.$viewPort.height( newHeight );
- }
+ ).dequeue( heightAnimationQueue );
+ } );
// Using .height() and .animate() automatically
set overflow to "hidden" which we do
// not want since it clips the input element.
- self.$viewPort.css( 'overflow', 'visible' );
+ // TODO / FIXME: really required here?
+ $viewPort.css( 'overflow', 'visible' );
+ } )
+ .on( 'inputextendercontentanimation.' +
this.variationBaseClass, function( animationEvent ) {
+ var $input = $( animationEvent.target );
+ var inputHeight = $input.outerHeight();
+ var $extension = $input.data( 'inputextender'
).extension();
+
+ animationEvent.animationCallbacks
+ .add( 'progress', function() {
+ var newHeight = inputHeight +
$extension.outerHeight();
+ $viewPort.height( newHeight );
+ } )
+ .add( 'start', function() {
+ // Using .height() and .animate()
automatically set overflow to "hidden" which we do
+ // not want since it clips the input
element.
+ // TODO / FIXME: really required here?
+ $viewPort.css( 'overflow', 'visible' );
+ } );
} );
},
--
To view, visit https://gerrit.wikimedia.org/r/79150
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3c01bd2d6e5a85d84c925dbd860d1dd1b5fc2b11
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Daniel Werner <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits