summaryrefslogtreecommitdiff
path: root/inc/changelog.php
diff options
context:
space:
mode:
authorGerrit Uitslag <klapinklapin@gmail.com>2014-02-19 17:58:36 +0100
committerGerrit Uitslag <klapinklapin@gmail.com>2014-02-19 17:58:36 +0100
commit621bbd2a24f6ceac0310c04b27e11a2c7c325294 (patch)
tree8a68b48ee6810ce580900f11f7e2a39698139bbd /inc/changelog.php
parentc130b0f8ec18ec66ac40422cf354a23268108866 (diff)
downloadrpg-621bbd2a24f6ceac0310c04b27e11a2c7c325294.tar.gz
rpg-621bbd2a24f6ceac0310c04b27e11a2c7c325294.tar.bz2
diff of removed page, require handling right rev=0
When page is removed, and diff can be requested between a revision and current situation. This results in right revision is 0. Similar case just after creating a page. A diff between the first version and nothing before, result in left revision is 0. In these cases a empty dummy revision is placed as selected value in dropdown. Otherwise user got distracted by the revisions details shown in select field, which are not related to the diff below.
Diffstat (limited to 'inc/changelog.php')
-rw-r--r--inc/changelog.php16
1 files changed, 11 insertions, 5 deletions
diff --git a/inc/changelog.php b/inc/changelog.php
index d2ad23c08..28e53e77a 100644
--- a/inc/changelog.php
+++ b/inc/changelog.php
@@ -642,7 +642,7 @@ abstract class ChangeLog {
* When available it returns $max entries for each revision
*
* @param int $rev1 oldest revision timestamp
- * @param int $rev2 newest revision timestamp
+ * @param int $rev2 newest revision timestamp (0 looks up last revision)
* @param int $max maximum number of revisions returned
* @return array with two arrays with revisions surrounding rev1 respectively rev2
*/
@@ -651,10 +651,16 @@ abstract class ChangeLog {
$rev1 = max($rev1, 0);
$rev2 = max($rev2, 0);
- if($rev2 < $rev1) {
- $rev = $rev2;
- $rev2 = $rev1;
- $rev1 = $rev;
+ if($rev2) {
+ if($rev2 < $rev1) {
+ $rev = $rev2;
+ $rev2 = $rev1;
+ $rev1 = $rev;
+ }
+ } else {
+ //empty right side means a removed page. Look up last revision.
+ $revs = $this->getRevisions(-1, 1);
+ $rev2 = $revs[0];
}
//collect revisions around rev2
list($revs2, $allrevs, $fp, $lines, $head, $tail) = $this->retrieveRevisionsAround($rev2, $max);