diff --git a/MultimediaViewer.php b/MultimediaViewer.php index 78e8b93bc..a5de6e683 100644 --- a/MultimediaViewer.php +++ b/MultimediaViewer.php @@ -344,6 +344,7 @@ $wgResourceModules += array( ), 'messages' => array( + 'multimediaviewer-viewfile-link', 'multimediaviewer-thumbnail-error', ), @@ -755,10 +756,6 @@ $wgResourceModules += array( 'mmv.ui', 'oojs', ), - - 'messages' => array( - 'multimediaviewer-viewfile-link', - ), ), 'mmv.logging.Logger' => $wgMediaViewerResourceTemplate + array( diff --git a/resources/mmv/mmv.js b/resources/mmv/mmv.js index a7e2bd281..8e8f79ef9 100644 --- a/resources/mmv/mmv.js +++ b/resources/mmv/mmv.js @@ -905,10 +905,6 @@ viewer.imageInfoProvider.get( viewer.currentImageFileTitle ).done( function ( imageInfo ) { document.location = imageInfo.url; } ); - } ).on( 'mmv-image-click', function () { - viewer.ui.panel.scroller.toggle( 'down' ).done( function () { - viewer.ui.buttons.showImageClickedHelp(); - } ); } ); }; diff --git a/resources/mmv/ui/mmv.ui.canvas.js b/resources/mmv/ui/mmv.ui.canvas.js index 8e2737adf..cddfa3a55 100644 --- a/resources/mmv/ui/mmv.ui.canvas.js +++ b/resources/mmv/ui/mmv.ui.canvas.js @@ -105,6 +105,7 @@ this.imageRawMetadata = imageRawMetadata; this.$image = $imageElement; + this.setUpImageClick(); this.$imageDiv.html( this.$image ); }; @@ -140,11 +141,30 @@ if ( !this.$image.is( imageElement ) ) { // http://bugs.jquery.com/ticket/4087 this.$image.replaceWith( $image ); this.$image = $image; + + this.setUpImageClick(); } this.setImageMaxDimensions(); }; + /** + * Registers click listener on the image, and a tooltip. + */ + C.setUpImageClick = function () { + var tooltipDelay = mw.config.get( 'wgMultimediaViewer').tooltipDelay; + + this.$image + .prop( 'title', mw.message( 'multimediaviewer-viewfile-link' ) ) + .tipsy( { + delayIn: tooltipDelay + } ) + .on( 'click.mmv-view-original', function () { + mw.mmv.actionLogger.log( 'view-original-file' ); + $( document ).trigger( 'mmv-viewfile' ); + } ); + }; + /** * Registers listeners. */ @@ -176,6 +196,10 @@ } this.$imageDiv.off( 'click.mmv-canvas' ); + + if ( this.$image ) { + this.$image.tipsy( 'hide' ); + } }; /** diff --git a/resources/mmv/ui/mmv.ui.canvas.less b/resources/mmv/ui/mmv.ui.canvas.less index d1f671875..c76ece272 100644 --- a/resources/mmv/ui/mmv.ui.canvas.less +++ b/resources/mmv/ui/mmv.ui.canvas.less @@ -46,4 +46,6 @@ margin-right: auto; margin-left: auto; background: url('//upload.wikimedia.org/wikipedia/commons/5/5d/Checker-16x16.png') repeat; + cursor: pointer; + cursor: zoom-in; } diff --git a/resources/mmv/ui/mmv.ui.canvasButtons.js b/resources/mmv/ui/mmv.ui.canvasButtons.js index 16f456d46..f99e97b95 100644 --- a/resources/mmv/ui/mmv.ui.canvasButtons.js +++ b/resources/mmv/ui/mmv.ui.canvasButtons.js @@ -29,27 +29,13 @@ * @param {jQuery} $fullscreenButton The fullscreen button from the parent class. */ function CanvasButtons( $container, $closeButton, $fullscreenButton ) { - var buttons = this, - tooltipDelay = mw.config.get( 'wgMultimediaViewer').tooltipDelay; + var buttons = this; mw.mmv.ui.Element.call( this, $container ); this.$close = $closeButton; this.$fullscreen = $fullscreenButton; - this.$viewFile = $( '