From 621bbd2a24f6ceac0310c04b27e11a2c7c325294 Mon Sep 17 00:00:00 2001 From: Gerrit Uitslag Date: Wed, 19 Feb 2014 17:58:36 +0100 Subject: 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. --- inc/changelog.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'inc/changelog.php') 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); -- cgit v1.2.3 From 585bf44e2b756eac2e1cfce7035ef237bc02a788 Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Thu, 6 Mar 2014 19:55:56 +0000 Subject: amend $_SERVER to $INPUT->server --- inc/changelog.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'inc/changelog.php') diff --git a/inc/changelog.php b/inc/changelog.php index 6ff1e0eca..cd46b1ec0 100644 --- a/inc/changelog.php +++ b/inc/changelog.php @@ -52,6 +52,8 @@ function parseChangelogLine($line) { */ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null){ global $conf, $INFO; + /** @var Input $INPUT */ + global $INPUT; // check for special flags as keys if (!is_array($flags)) { $flags = array(); } @@ -65,7 +67,7 @@ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extr if(!$date) $date = time(); //use current time if none supplied $remote = (!$flagExternalEdit)?clientIP(true):'127.0.0.1'; - $user = (!$flagExternalEdit)?$_SERVER['REMOTE_USER']:''; + $user = (!$flagExternalEdit)?$INPUT->server->str('REMOTE_USER'):''; $strip = array("\t", "\n"); $logline = array( @@ -117,12 +119,14 @@ function addLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extr */ function addMediaLogEntry($date, $id, $type=DOKU_CHANGE_TYPE_EDIT, $summary='', $extra='', $flags=null){ global $conf; + /** @var Input $INPUT */ + global $INPUT; $id = cleanid($id); if(!$date) $date = time(); //use current time if none supplied $remote = clientIP(true); - $user = $_SERVER['REMOTE_USER']; + $user = $INPUT->server->str('REMOTE_USER'); $strip = array("\t", "\n"); $logline = array( -- cgit v1.2.3