RevDel: Fix ChangeTags for archived items

Bug: T128980
Change-Id: Ibc9ec57da16e1b71c9efa0d2c062f8d7965f59bc
This commit is contained in:
Matthew Flaschen 2016-05-19 17:10:35 -04:00 committed by Umherirrender
parent 045357380d
commit 77884372c0
2 changed files with 51 additions and 14 deletions

View file

@ -41,15 +41,32 @@ class RevDelArchiveList extends RevDelRevisionList {
$timestamps[] = $db->timestamp( $id );
}
return $db->select( 'archive', Revision::selectArchiveFields(),
[
'ar_namespace' => $this->title->getNamespace(),
'ar_title' => $this->title->getDBkey(),
'ar_timestamp' => $timestamps
],
__METHOD__,
[ 'ORDER BY' => 'ar_timestamp DESC' ]
);
$tables = [ 'archive' ];
$fields = Revision::selectArchiveFields();
$conds = [
'ar_namespace' => $this->title->getNamespace(),
'ar_title' => $this->title->getDBkey(),
'ar_timestamp' => $timestamps,
];
$join_conds = [];
$options = [ 'ORDER BY' => 'ar_timestamp DESC' ];
ChangeTags::modifyDisplayQuery(
$tables,
$fields,
$conds,
$join_conds,
$options,
''
);
return $db->select( $tables,
$fields,
$conds,
__METHOD__,
$options,
$join_conds
);
}
public function newItem( $row ) {

View file

@ -94,13 +94,33 @@ class RevDelRevisionList extends RevDelList {
return $live;
}
// Check if any requested revisions are available fully deleted.
$archived = $db->select( [ 'archive' ], Revision::selectArchiveFields(),
[
'ar_rev_id' => $ids
$archiveQueryInfo = [
'tables' => [ 'archive' ],
'fields' => Revision::selectArchiveFields(),
'conds' => [
'ar_rev_id' => $ids,
],
'options' => [ 'ORDER BY' => 'ar_rev_id DESC' ],
'join_conds' => [],
];
ChangeTags::modifyDisplayQuery(
$archiveQueryInfo['tables'],
$archiveQueryInfo['fields'],
$archiveQueryInfo['conds'],
$archiveQueryInfo['join_conds'],
$archiveQueryInfo['options'],
''
);
// Check if any requested revisions are available fully deleted.
$archived = $db->select(
$archiveQueryInfo['tables'],
$archiveQueryInfo['fields'],
$archiveQueryInfo['conds'],
__METHOD__,
[ 'ORDER BY' => 'ar_rev_id DESC' ]
$archiveQueryInfo['options'],
$archiveQueryInfo['join_conds']
);
if ( $archived->numRows() == 0 ) {