Balloonguy has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/62005


Change subject: (bug 40207) Make image pagination not require a page load
......................................................................

(bug 40207) Make image pagination not require a page load

Progressively enhance multi-page image navigation so that the paginated
part is changed without requiring a full page load. Currently, the url
is not updated to reflect the current page after navigation occurs, but
if desired, this functionality could be added using history.pushState.

Bug: 40207
Change-Id: Icd1cde7c62c4d462f5b697b9f49f5c08f6e7482b
---
M includes/ImagePage.php
M resources/Resources.php
A resources/mediawiki.page/mediawiki.page.image.pagination.js
3 files changed, 41 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/05/62005/1

diff --git a/includes/ImagePage.php b/includes/ImagePage.php
old mode 100644
new mode 100755
index e687046..f0b364b
--- a/includes/ImagePage.php
+++ b/includes/ImagePage.php
@@ -395,6 +395,7 @@
 
                                $isMulti = $this->displayImg->isMultipage() && 
$this->displayImg->pageCount() > 1;
                                if ( $isMulti ) {
+                                       $out->addModules( 
'mediawiki.page.image.pagination' );
                                        $out->addHTML( '<table 
class="multipageimage"><tr><td>' );
                                }
 
diff --git a/resources/Resources.php b/resources/Resources.php
old mode 100644
new mode 100755
index 0d8b330..3c16934
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -873,6 +873,9 @@
                        'watcherrortext',
                ),
        ),
+       'mediawiki.page.image.pagination' => array(
+               'scripts' => 
'resources/mediawiki.page/mediawiki.page.image.pagination.js'
+       ),
 
        /* MediaWiki Special pages */
 
diff --git a/resources/mediawiki.page/mediawiki.page.image.pagination.js 
b/resources/mediawiki.page/mediawiki.page.image.pagination.js
new file mode 100644
index 0000000..f79f6f4
--- /dev/null
+++ b/resources/mediawiki.page/mediawiki.page.image.pagination.js
@@ -0,0 +1,37 @@
+/**
+ * Change multi-page image navigation so that the current page display can be 
changed
+ * without a page reload. Currently, the only image formats that can be 
multi-page images are
+ * PDF and DjVu files
+ */
+( function (mw, $) {
+
+       // Use jQuery's load function to specifically select and replace 
table.multipageimage
+       // with the new page's table.multipageimage
+       function loadPage( page ) {
+               $( 'table.multipageimage' ).load( page + ' 
table.multipageimage', ajaxifyPageNavigation );
+       }
+
+       function ajaxifyPageNavigation() {
+
+               // Intercept the default action of the links in the thumbnail 
navigation
+               $( '.thumbinner' ).one( 'click', 'a', function( event ) {
+                       event.stopImmediatePropagation();
+                       loadPage( this.href );
+                       return false;
+               });
+
+               // Prevent the submission of the page select form and instead 
call loadPage
+               $( 'form[name="pageselector"]' ).removeAttr( 'onchange' ).one( 
'change submit', function (event) {
+                       event.stopImmediatePropagation();
+                       loadPage( this.action + '?' + $(this).serialize() );
+                       return false;
+               });
+       }
+
+       // The presence of table.multipageimage signifies that this file is a 
multi-page image
+       if( mw.config.get( 'wgNamespaceNumber' ) === 6 && $( 
'table.multipageimage' ).length !== 0 ) {
+               $( ajaxifyPageNavigation );
+       }
+
+}( mediaWiki, jQuery ) );
+

-- 
To view, visit https://gerrit.wikimedia.org/r/62005
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icd1cde7c62c4d462f5b697b9f49f5c08f6e7482b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Balloonguy <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to