Florianschmidtwelzow has uploaded a new change for review.
https://gerrit.wikimedia.org/r/216128
Change subject: Some design to the matrol link and use ajax to patrol
......................................................................
Some design to the matrol link and use ajax to patrol
* Use a neutral button for the matrol link instead of a simple text link
* Use mediawiki.page.patrol for ajax patrolling a revision instead of
redirecting
to a new page
Depends on: Id09ccf60aec9b693d7df648a6dfcde629545f620
Bug: T101491
Change-Id: I08b871fb1608f8cc576cec73ef2e9864d26a9a38
---
M includes/Resources.php
M includes/diff/InlineDifferenceEngine.php
M includes/specials/SpecialMobileDiff.php
A resources/mobile.patrol.ajax/init.js
4 files changed, 60 insertions(+), 3 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend
refs/changes/28/216128/1
diff --git a/includes/Resources.php b/includes/Resources.php
index ec25274..ec07ba2 100644
--- a/includes/Resources.php
+++ b/includes/Resources.php
@@ -1413,6 +1413,16 @@
),
),
+ 'mobile.patrol.ajax' => $wgMFResourceFileModuleBoilerplate + array(
+ 'dependencies' => array(
+ 'mobile.startup',
+ 'mediawiki.page.patrol',
+ ),
+ 'scripts' => array(
+ 'resources/mobile.patrol.ajax/init.js'
+ ),
+ ),
+
// Custom ResourceLoaderModule classes
'mobile.site' => array(
'dependencies' => array( 'mobile.startup' ),
diff --git a/includes/diff/InlineDifferenceEngine.php
b/includes/diff/InlineDifferenceEngine.php
index b101347..70782ad 100644
--- a/includes/diff/InlineDifferenceEngine.php
+++ b/includes/diff/InlineDifferenceEngine.php
@@ -142,6 +142,19 @@
* @return String
*/
public function getPatrolledLink() {
- return $this->markPatrolledLink();
+ $linkInfo = $this->getMarkPatrolledLinkInfo(
'mobile.patrol.ajax' );
+ if ( $linkInfo ) {
+ return Html::linkButton(
+ $this->msg( 'markaspatrolleddiff' )->escaped(),
+ array(
+ 'href' => $this->mNewPage->getLocalUrl(
array(
+ 'action' => 'markpatrolled',
+ 'rcid' => $linkInfo['rcid'],
+ 'token' => $linkInfo['token'],
+ ) ),
+ )
+ );
+ }
+ return '';
}
}
diff --git a/includes/specials/SpecialMobileDiff.php
b/includes/specials/SpecialMobileDiff.php
index 9c6b5cc..1ed81ff 100644
--- a/includes/specials/SpecialMobileDiff.php
+++ b/includes/specials/SpecialMobileDiff.php
@@ -311,8 +311,15 @@
);
}
- if ( $this->mDiffEngine instanceof InlineDifferenceEngine ) {
- $output->addHtml(
$this->mDiffEngine->getPatrolledLink() );
+ $diffEngine = $this->mDiffEngine;
+ if ( $diffEngine instanceof InlineDifferenceEngine ) {
+ $output->addHtml( Html::rawElement(
+ 'div',
+ array(
+ 'class' => 'patrollink'
+ ),
+ $diffEngine->getPatrolledLink()
+ ) );
}
$output->addHtml(
diff --git a/resources/mobile.patrol.ajax/init.js
b/resources/mobile.patrol.ajax/init.js
new file mode 100644
index 0000000..f6c3b71
--- /dev/null
+++ b/resources/mobile.patrol.ajax/init.js
@@ -0,0 +1,27 @@
+/*!
+ * Animate patrol links to use asynchronous API requests to
+ * patrol pages, rather than navigating to a different URI.
+ *
+ * @author Florian Schmidt <[email protected]>
+ */
+( function ( M, $ ) {
+ if ( !mw.user.tokens.exists( 'patrolToken' ) ) {
+ // Current user has no patrol right, or an old cached version
of user.tokens
+ // that didn't have patrolToken yet.
+ return;
+ }
+ $( function () {
+ var $patrolLinks = $( '.patrollink a' ),
+ Icon = M.require( 'Icon' );
+
+ mw.patrol.setup( {
+ links: $patrolLinks,
+ // use Icon and not icons.spinner() to avoid adding
classes (and styles) we don't
+ // want/need
+ spinner: $( new Icon( {
+ name: 'spinner',
+ additionalClassNames: 'savespinner loading'
+ } ).toHtmlString() )
+ } );
+ } );
+}( mw.mobileFrontend, jQuery ) );
--
To view, visit https://gerrit.wikimedia.org/r/216128
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I08b871fb1608f8cc576cec73ef2e9864d26a9a38
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Florianschmidtwelzow <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits