diff options
author | Gerrit Uitslag <klapinklapin@gmail.com> | 2014-02-19 17:58:36 +0100 |
---|---|---|
committer | Gerrit Uitslag <klapinklapin@gmail.com> | 2014-02-19 17:58:36 +0100 |
commit | 621bbd2a24f6ceac0310c04b27e11a2c7c325294 (patch) | |
tree | 8a68b48ee6810ce580900f11f7e2a39698139bbd /inc/changelog.php | |
parent | c130b0f8ec18ec66ac40422cf354a23268108866 (diff) | |
download | rpg-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.php | 16 |
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); |