jenkins-bot has submitted this change and it was merged.
Change subject: Combine various history actions
......................................................................
Combine various history actions
Resubmit b/c of buggy tests
Change-Id: I98bb9d96a7c61200c0d43f8ed4d32432b72fb70d
---
M FlowActions.php
M Hooks.php
M includes/Block/BoardHistory.php
M includes/Block/Topic.php
M includes/Data/RootPostLoader.php
M includes/View/Post.php
M includes/View/PostActionMenu.php
M includes/View/Revision.php
M templates/post.html.php
M templates/topic.html.php
M tests/PermissionsTest.php
M tests/RevisionCollectionPermissionsTest.php
12 files changed, 52 insertions(+), 55 deletions(-)
Approvals:
Matthias Mullie: Looks good to me, approved
jenkins-bot: Verified
diff --git a/FlowActions.php b/FlowActions.php
index fdb1740..585fd8d 100644
--- a/FlowActions.php
+++ b/FlowActions.php
@@ -418,7 +418,7 @@
),
),
- 'post-history' => array(
+ 'history' => array(
'performs-writes' => false,
'log_type' => false,
'rc_insert' => false, // won't even be called, actually; only
for writes
@@ -463,14 +463,14 @@
* is the same as the moderation (e.g. if user
can't see
* suppress actions, he can't see restores from
suppress.
*/
- if ( $revision->getChangeType() ==
'restore-post' ) {
+ if ( strpos( $revision->getChangeType(),
'restore-' ) === 0 ) {
$previous =
$collection->getPrevRevision( $revision );
if ( $previous === null ||
$previous->getModerationState() === AbstractRevision::MODERATED_NONE ) {
return '';
}
- return $permissions->getPermission(
$previous, 'topic-history' );
+ return $permissions->getPermission(
$previous, 'history' );
}
return '';
@@ -483,15 +483,11 @@
'history' => array() // views don't generate history
),
- // post/topic/board history have exact same config
- 'topic-history' => 'post-history',
- 'board-history' => 'post-history',
-
// log & all other formatters have same config as history
- 'log' => 'post-history',
- 'recentchanges' => 'post-history',
- 'contributions' => 'post-history',
- 'checkuser' => 'post-history',
+ 'log' => 'history',
+ 'recentchanges' => 'history',
+ 'contributions' => 'history',
+ 'checkuser' => 'history',
/*
* Backwards compatibility; these are old values that may have made
their
@@ -527,4 +523,10 @@
*/
'censor-post' => 'suppress-post',
'censor-topic' => 'suppress-topic',
+ /*
+ * Backwards compatibility for old (separated) history actions
+ */
+ 'post-history' => 'history',
+ 'topic-history' => 'history',
+ 'board-history' => 'history',
);
diff --git a/Hooks.php b/Hooks.php
index 73b44d4..0c0e511 100644
--- a/Hooks.php
+++ b/Hooks.php
@@ -276,11 +276,11 @@
if ( self::$occupationController->isTalkpageOccupied( $title )
) {
$skname = $template->getSkinName();
- $selected = $template->getRequest()->getVal( 'action' )
== 'board-history';
+ $selected = $template->getRequest()->getVal( 'action' )
== 'history';
$links['views'] = array( array(
'class' => $selected ? 'selected' : '',
'text' => wfMessageFallback(
"$skname-view-history", "history_short" )->text(),
- 'href' => $title->getLocalURL(
'action=board-history' ),
+ 'href' => $title->getLocalURL( 'action=history'
),
) );
// hide all ?action= links unless whitelisted
diff --git a/includes/Block/BoardHistory.php b/includes/Block/BoardHistory.php
index ebe809d..0fdee39 100644
--- a/includes/Block/BoardHistory.php
+++ b/includes/Block/BoardHistory.php
@@ -19,7 +19,7 @@
*/
protected $permissions;
- protected $supportedGetActions = array( 'board-history' );
+ protected $supportedGetActions = array( 'history' );
public function init( $action, $user ) {
parent::init( $action, $user );
diff --git a/includes/Block/Topic.php b/includes/Block/Topic.php
index 559e79b..6c4c2bb 100644
--- a/includes/Block/Topic.php
+++ b/includes/Block/Topic.php
@@ -64,7 +64,7 @@
);
protected $supportedGetActions = array(
- 'view', 'post-history', 'topic-history', 'edit-post',
'edit-title', 'compare-post-revisions',
+ 'view', 'history', 'edit-post', 'edit-title',
'compare-post-revisions',
);
/**
@@ -401,7 +401,7 @@
}
public function render( Templating $templating, array $options, $return
= false ) {
- if ( in_array( $this->action, array( 'post-history',
'topic-history' ) ) ) {
+ if ( $this->action === 'history' ) {
$templating->getOutput()->addModuleStyles( array(
'ext.flow.history' ) );
$templating->getOutput()->addModules( array(
'ext.flow.history' ) );
} else {
@@ -412,15 +412,18 @@
$prefix = '';
switch( $this->action ) {
- case 'post-history':
- return $prefix . $this->renderPostHistory( $templating,
$options, $return );
-
- case 'topic-history':
- $history = $this->loadTopicHistory();
+ case 'history':
$root = $this->loadRootPost();
if ( !$root ) {
return '';
}
+
+ // BC: old history links used to also have postId for
topic history
+ if ( isset( $options['postId'] ) &&
!$root->getPostId()->equals( UUID::create( $options['postId'] ) ) ) {
+ return $prefix . $this->renderPostHistory(
$templating, $options, $return );
+ }
+
+ $history = $this->loadTopicHistory();
return $prefix . $templating->render(
"flow:topic-history.html.php", array(
'block' => $this,
@@ -708,7 +711,7 @@
/** @var PostRevision $revision */
// only check against the specific revision,
ignoring the most recent
- if ( !$this->permissions->isAllowed( $revision,
'post-history' ) ) {
+ if ( !$this->permissions->isAllowed( $revision,
'history' ) ) {
unset( $history[$i] );
}
}
@@ -824,7 +827,7 @@
/** @var PostRevision $revision */
// only check against the specific revision,
ignoring the most recent
- if ( !$this->permissions->isAllowed( $revision,
'topic-history' ) ) {
+ if ( !$this->permissions->isAllowed( $revision,
'history' ) ) {
unset( $history[$i] );
}
}
diff --git a/includes/Data/RootPostLoader.php b/includes/Data/RootPostLoader.php
index 6817607..cb4815b 100644
--- a/includes/Data/RootPostLoader.php
+++ b/includes/Data/RootPostLoader.php
@@ -53,7 +53,7 @@
} elseif( $rootId->equals( $post->getPostId() ) ) {
$res['root'] = $post;
} else {
- die( 'Unmatched: ' .
$post->getPostId()->getAlphadecimal() );
+ throw new InvalidDataException( 'Unmatched: ' .
$post->getPostId()->getAlphadecimal() );
}
}
// The above doesn't catch this condition
diff --git a/includes/View/Post.php b/includes/View/Post.php
index 5fd13ef..8795e3c 100644
--- a/includes/View/Post.php
+++ b/includes/View/Post.php
@@ -119,7 +119,7 @@
public function postHistoryLink( $blockName ) {
return $this->actions->actionUrl(
- 'post-history',
+ 'history',
array( $blockName . '_postId' =>
$this->post->getPostId()->getAlphadecimal() )
);
}
diff --git a/includes/View/PostActionMenu.php b/includes/View/PostActionMenu.php
index 760a7c6..03b7e9e 100644
--- a/includes/View/PostActionMenu.php
+++ b/includes/View/PostActionMenu.php
@@ -58,7 +58,11 @@
if ( !$this->permissions->isAllowed( $this->post, $action ) ) {
return false;
}
- $data = array( $this->block->getName() . '_postId' =>
$this->post->getPostId()->getAlphadecimal() );
+ if ( $this->post->isTopicTitle() ) {
+ $data = array();
+ } else {
+ $data = array( $this->block->getName() . '_postId' =>
$this->post->getPostId()->getAlphadecimal() );
+ }
if ( $this->getMethod( $action ) === 'POST' ) {
return $this->postAction( $action, $data, $content,
$class );
} else {
diff --git a/includes/View/Revision.php b/includes/View/Revision.php
index 90dd99a..de73b2b 100644
--- a/includes/View/Revision.php
+++ b/includes/View/Revision.php
@@ -373,7 +373,7 @@
$historyLink = $this->templating->getUrlGenerator()
->generateUrl(
$this->block->getWorkflow(),
- 'board-history'
+ 'history'
);
$headerMsg = wfMessage( 'flow-compare-revisions-header-header' )
->params(
@@ -398,7 +398,7 @@
public function getSingleViewHeader() {
$historyLink =
$this->templating->getUrlGenerator()->generateUrl(
$this->block->getWorkflow(),
- 'board-history'
+ 'history'
);
$compareLink = $this->getDiffLinkAgainstPrevious( $this->block
);
@@ -570,7 +570,7 @@
$historyLink = $this->templating->getUrlGenerator()
->generateUrl(
$this->block->getWorkflow(),
- 'post-history',
+ 'history',
array(
$this->block->getName().'_postId' =>
$newRevision->getPostId()->getAlphadecimal()
)
@@ -600,7 +600,7 @@
public function getSingleViewHeader() {
$historyLink =
$this->templating->getUrlGenerator()->generateUrl(
$this->block->getWorkflow(),
- 'post-history',
+ 'history',
array(
$this->block->getName().'_postId' =>
$this->revision->getPostId()->getAlphadecimal(),
)
diff --git a/templates/post.html.php b/templates/post.html.php
index 2d321b5..9c77872 100644
--- a/templates/post.html.php
+++ b/templates/post.html.php
@@ -101,7 +101,7 @@
<?php
endif;
- if ( $postView->actions()->isAllowedAny( 'hide-post',
'delete-post', 'suppress-post', 'restore-post', 'view', 'post-history' ) ): ?>
+ if ( $postView->actions()->isAllowedAny( 'history',
'hide-post', 'delete-post', 'suppress-post', 'restore-post', 'view' ) ): ?>
<div class="flow-tipsy flow-actions">
<a class="flow-tipsy-link" href="#"
title="<?php echo wfMessage( 'flow-post-actions' )->escaped(); ?>"><?php echo
wfMessage( 'flow-post-actions' )->escaped(); ?></a>
<div class="flow-tipsy-flyout">
@@ -121,7 +121,7 @@
// History link
if ( $post->getPrevRevisionId()
) {
$historyButton =
$postActionMenu->getButton(
- 'post-history',
+ 'history',
wfMessage(
'flow-post-action-post-history' )->escaped(),
'mw-ui-button
mw-ui-quiet flow-action-post-history-link'
);
diff --git a/templates/topic.html.php b/templates/topic.html.php
index c471299..c2dc40b 100644
--- a/templates/topic.html.php
+++ b/templates/topic.html.php
@@ -94,7 +94,7 @@
);
endif ?>
</div>
- <?php if ( $postActionMenu->isAllowedAny( 'view', 'hide-topic',
'delete-topic', 'suppress-topic', 'restore-topic', 'edit-title',
'topic-history' ) ): ?>
+ <?php if ( $postActionMenu->isAllowedAny( 'history', 'view',
'hide-topic', 'delete-topic', 'suppress-topic', 'restore-topic', 'edit-title' )
): ?>
<div class="flow-tipsy flow-actions">
<a class="flow-tipsy-link" href="#"><?php echo
wfMessage( 'flow-topic-actions' )->escaped(); ?></a>
<div class="flow-tipsy-flyout">
@@ -113,9 +113,9 @@
'mw-ui-button
mw-ui-quiet flow-action-permalink-link'
), '</li>';
} ?>
- <?php if ( $postActionMenu->isAllowed(
'topic-history' ) ) {
+ <?php if ( $postActionMenu->isAllowed(
'history' ) ) {
echo '<li
class="flow-action-topic-history">', $postActionMenu->getButton(
- 'topic-history',
+ 'history',
wfMessage(
'flow-topic-action-history' )->escaped(),
'mw-ui-button
mw-ui-quiet flow-action-topic-history-link'
), '</li>';
diff --git a/tests/PermissionsTest.php b/tests/PermissionsTest.php
index f7d6ffa..a8d0d60 100644
--- a/tests/PermissionsTest.php
+++ b/tests/PermissionsTest.php
@@ -116,9 +116,7 @@
array( $this->blockedUser(), $this->topic(),
'suppress-topic', false ),
array( $this->blockedUser(), $this->post(),
'restore-post', false ),
array( $this->blockedUser(), $this->topic(),
'restore-topic', false ),
- array( $this->blockedUser(), $this->post(),
'post-history', true ),
- array( $this->blockedUser(), $this->topic(),
'topic-history', true ),
- array( $this->blockedUser(), $this->topic(),
'board-history', true ),
+ array( $this->blockedUser(), $this->post(), 'history',
true ),
array( $this->blockedUser(), $this->post(), 'view',
true ),
array( $this->blockedUser(), $this->post(), 'reply',
false ),
@@ -136,9 +134,7 @@
array( $this->anonUser(), $this->topic(),
'suppress-topic', false ),
array( $this->anonUser(), $this->post(),
'restore-post', false ),
array( $this->anonUser(), $this->topic(),
'restore-topic', false ),
- array( $this->anonUser(), $this->post(),
'post-history', true ),
- array( $this->anonUser(), $this->topic(),
'topic-history', true ),
- array( $this->anonUser(), $this->topic(),
'board-history', true ),
+ array( $this->anonUser(), $this->post(), 'history',
true ),
array( $this->anonUser(), $this->post(), 'view', true ),
array( $this->anonUser(), $this->post(), 'reply', true
),
@@ -156,9 +152,7 @@
array( $this->unconfirmedUser(), $this->topic(),
'suppress-topic', false ),
array( $this->unconfirmedUser(), $this->post(),
'restore-post', false ), // $this->post is not hidden
array( $this->unconfirmedUser(), $this->topic(),
'restore-topic', false ), // $this->topic is not hidden
- array( $this->unconfirmedUser(), $this->post(),
'post-history', true ),
- array( $this->unconfirmedUser(), $this->topic(),
'topic-history', true ),
- array( $this->unconfirmedUser(), $this->topic(),
'board-history', true ),
+ array( $this->unconfirmedUser(), $this->post(),
'history', true ),
array( $this->unconfirmedUser(), $this->post(), 'view',
true ),
array( $this->unconfirmedUser(), $this->post(),
'reply', true ),
@@ -186,9 +180,7 @@
array( $this->confirmedUser(), $this->topic(),
'suppress-topic', false ),
array( $this->confirmedUser(), $this->post(),
'restore-post', false ), // $this->post is not hidden
array( $this->confirmedUser(), $this->topic(),
'restore-topic', false ), // $this->topic is not hidden
- array( $this->confirmedUser(), $this->post(),
'post-history', true ),
- array( $this->confirmedUser(), $this->topic(),
'topic-history', true ),
- array( $this->confirmedUser(), $this->topic(),
'board-history', true ),
+ array( $this->confirmedUser(), $this->post(),
'history', true ),
array( $this->confirmedUser(), $this->post(), 'view',
true ),
array( $this->confirmedUser(), $this->post(), 'reply',
true ),
array( $this->confirmedUser(), $this->hiddenPost(),
'restore-post', true ),
@@ -212,9 +204,7 @@
array( $this->sysopUser(), $this->topic(),
'suppress-topic', false ),
array( $this->sysopUser(), $this->post(),
'restore-post', false ), // $this->post is not hidden
array( $this->sysopUser(), $this->topic(),
'restore-topic', false ), // $this->topic is not hidden
- array( $this->sysopUser(), $this->post(),
'post-history', true ),
- array( $this->sysopUser(), $this->topic(),
'topic-history', true ),
- array( $this->sysopUser(), $this->topic(),
'board-history', true ),
+ array( $this->sysopUser(), $this->topic(), 'history',
true ),
array( $this->sysopUser(), $this->post(), 'view', true
),
array( $this->sysopUser(), $this->post(), 'reply', true
),
array( $this->sysopUser(), $this->hiddenPost(),
'restore-post', true ),
@@ -238,9 +228,7 @@
array( $this->oversightUser(), $this->topic(),
'suppress-topic', true ),
array( $this->oversightUser(), $this->post(),
'restore-post', false ), // $this->post is not hidden
array( $this->oversightUser(), $this->topic(),
'restore-topic', false ), // $this->topic is not hidden
- array( $this->oversightUser(), $this->post(),
'post-history', true ),
- array( $this->oversightUser(), $this->topic(),
'topic-history', true ),
- array( $this->oversightUser(), $this->topic(),
'board-history', true ),
+ array( $this->oversightUser(), $this->post(),
'history', true ),
array( $this->oversightUser(), $this->post(), 'view',
true ),
array( $this->oversightUser(), $this->post(), 'reply',
true ),
array( $this->oversightUser(), $this->hiddenPost(),
'restore-post', true ),
diff --git a/tests/RevisionCollectionPermissionsTest.php
b/tests/RevisionCollectionPermissionsTest.php
index 012b131..725f852 100644
--- a/tests/RevisionCollectionPermissionsTest.php
+++ b/tests/RevisionCollectionPermissionsTest.php
@@ -135,11 +135,11 @@
) ),
// bug 61715
- array( $this->confirmedUser(), 'topic-history', array(
+ array( $this->confirmedUser(), 'history', array(
array( 'new-post' => false ),
array( 'suppress-post' => false ),
) ),
- array( $this->confirmedUser(), 'topic-history', array(
+ array( $this->confirmedUser(), 'history', array(
array( 'new-post' => true ),
array( 'suppress-post' => false ),
array( 'restore-post' => false ),
--
To view, visit https://gerrit.wikimedia.org/r/117383
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I98bb9d96a7c61200c0d43f8ed4d32432b72fb70d
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: EBernhardson <[email protected]>
Gerrit-Reviewer: Matthias Mullie <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits