From f9528c0c7accd2da60f16864555b4982b940a1a0 Mon Sep 17 00:00:00 2001
From: Klap-in
Date: Sun, 27 Jan 2013 22:02:47 +0100
Subject: Added diff navigation Navigation links to move to previous edit
before revision in left column or next/last edit after revision in right
column.
---
inc/html.php | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 46 insertions(+), 1 deletion(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 5c1c75cf6..9d344a05f 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1151,6 +1151,18 @@ function html_diff($text='',$intro=true,$type=null){
}
$r_text = rawWiki($ID,$r_rev);
+ //look for previous/next revision
+ if($r_rev) {
+ $next_rev = getRelativeRevision($ID, $r_rev, 1);
+ } else {
+ $next_rev = false;
+ }
+ if($l_rev) {
+ $prev_rev = getRelativeRevision($ID, $l_rev, -1);
+ } else {
+ $prev_rev = false;
+ }
+
list($l_head, $r_head, $l_minor, $r_minor) = html_diff_head($l_rev, $r_rev);
}
@@ -1191,7 +1203,40 @@ function html_diff($text='',$intro=true,$type=null){
'rev2[1]' => $r_rev,
'difftype' => $type,
));
- ptln(''.$lang['difflink'].'
');
+ ptln(''.$lang['difflink'].'
');
+ if($prev_rev){
+ $diffurlprev = wl($ID, array(
+ 'do' => 'diff',
+ 'rev2[0]' => $prev_rev,
+ 'rev2[1]' => $l_rev,
+ 'difftype' => $type,
+ ));
+ ptln('← '.$lang['diffpreviousedit'].' - ');
+ }
+ $recenturl = wl($ID, array(
+ 'do' => 'revisions'
+ ));
+ ptln(''.$lang['overviewrevs'].'');
+ if($next_rev){
+ if($next_rev=='current') {
+ $diffurlnextparam = array(
+ 'do' => 'diff',
+ 'rev' => $r_rev,
+ 'difftype' => $type,
+ );
+ $navnexttitle = $lang['difflastedit'];
+ } else {
+ $diffurlnextparam = array(
+ 'do' => 'diff',
+ 'rev2[0]' => $r_rev,
+ 'rev2[1]' => $next_rev,
+ 'difftype' => $type,
+ );
+ $navnexttitle = $lang['diffnextedit'];
+ }
+ ptln(' - '.$navnexttitle.' →');
+ }
+ ptln('
');
ptln('');
}
?>
--
cgit v1.2.3
From f523c9718baf12a5bc99e2285bc0666796ab2a97 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Wed, 20 Nov 2013 13:36:22 +0100
Subject: update function calls to changelog functions
---
inc/html.php | 39 +++++++++++++++++++++------------------
1 file changed, 21 insertions(+), 18 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 91d8c1833..e1c69a043 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -414,20 +414,18 @@ function html_revisions($first=0, $media_id = false){
global $conf;
global $lang;
$id = $ID;
+ if ($media_id) $id = $media_id;
+
/* we need to get one additional log entry to be able to
* decide if this is the last page or is there another one.
* see html_recent()
*/
- if (!$media_id) $revisions = getRevisions($ID, $first, $conf['recent']+1);
- else {
- $revisions = getRevisions($media_id, $first, $conf['recent']+1, 8192, true);
- $id = $media_id;
- }
+ $pagelog = new PageRevisionLog($id);
+ $revisions = $pagelog->getRevisions($first, $conf['recent']+1, (boolean)$media_id);
if(count($revisions)==0 && $first!=0){
$first=0;
- if (!$media_id) $revisions = getRevisions($ID, $first, $conf['recent']+1);
- else $revisions = getRevisions($media_id, $first, $conf['recent']+1, 8192, true);
+ $revisions = $pagelog->getRevisions($first, $conf['recent']+1, (boolean)$media_id);
}
$hasNext = false;
if (count($revisions)>$conf['recent']) {
@@ -486,10 +484,12 @@ function html_revisions($first=0, $media_id = false){
$form->addElement(form_makeCloseTag('span'));
}
+ $pagelog->setChunkSize(1024);
+
$form->addElement(form_makeOpenTag('span', array('class' => 'user')));
if (!$media_id) $editor = $INFO['editor'];
else {
- $revinfo = getRevisionInfo($id, @filemtime(fullpath(mediaFN($id))), 1024, true);
+ $revinfo = $pagelog->getRevisionInfo(@filemtime(fullpath(mediaFN($id))), true);
if($revinfo['user']){
$editor = $revinfo['user'];
}else{
@@ -510,10 +510,10 @@ function html_revisions($first=0, $media_id = false){
foreach($revisions as $rev){
$date = dformat($rev);
if (!$media_id) {
- $info = getRevisionInfo($id,$rev,true);
+ $info = $pagelog->getRevisionInfo($rev);
$exists = page_exists($id,$rev);
} else {
- $info = getRevisionInfo($id,$rev,true,true);
+ $info = $pagelog->getRevisionInfo($rev,true);
$exists = @file_exists(mediaFN($id,$rev));
}
@@ -706,7 +706,8 @@ function html_recent($first=0, $show_changes='both'){
$href = '';
if ($recent['media']) {
- $diff = (count(getRevisions($recent['id'], 0, 1, 8192, true)) && @file_exists(mediaFN($recent['id'])));
+ $pagelog = new PageRevisionLog($recent['id']);
+ $diff = (count($pagelog->getRevisions(0, 1, true)) && @file_exists(mediaFN($recent['id'])));
if ($diff) {
$href = media_managerURL(array('tab_details' => 'history',
'mediado' => 'diff', 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&');
@@ -1008,10 +1009,11 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
$ml_or_wl = $media ? 'ml' : 'wl';
$l_minor = $r_minor = '';
+ $pagelog = new PageRevisionLog($id);
if(!$l_rev){
$l_head = '—';
}else{
- $l_info = getRevisionInfo($id,$l_rev,true, $media);
+ $l_info = $pagelog->getRevisionInfo($l_rev, $media);
if($l_info['user']){
$l_user = ''.editorinfo($l_info['user']).'';
if(auth_ismanager()) $l_user .= ' ('.$l_info['ip'].')';
@@ -1029,7 +1031,7 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
}
if($r_rev){
- $r_info = getRevisionInfo($id,$r_rev,true, $media);
+ $r_info = $pagelog->getRevisionInfo($r_rev, $media);
if($r_info['user']){
$r_user = ''.editorinfo($r_info['user']).'';
if(auth_ismanager()) $r_user .= ' ('.$r_info['ip'].')';
@@ -1045,7 +1047,7 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
$r_head_title.''.
$head_separator.$r_user.' '.$r_sum;
}elseif($_rev = @filemtime($media_or_wikiFN($id))){
- $_info = getRevisionInfo($id,$_rev,true, $media);
+ $_info = $pagelog->getRevisionInfo($_rev, $media);
if($_info['user']){
$_user = ''.editorinfo($_info['user']).'';
if(auth_ismanager()) $_user .= ' ('.$_info['ip'].')';
@@ -1082,6 +1084,7 @@ function html_diff($text='',$intro=true,$type=null){
global $lang;
global $INPUT;
global $INFO;
+ $pagelog = new PageRevisionLog($ID);
if(!$type) {
$type = $INPUT->str('difftype');
@@ -1140,7 +1143,7 @@ function html_diff($text='',$intro=true,$type=null){
$l_rev = $rev1;
}else{ // no revision was given, compare previous to current
$r_rev = '';
- $revs = getRevisions($ID, 0, 1);
+ $revs = $pagelog->getRevisions(0, 1);
$l_rev = $revs[0];
$REV = $l_rev; // store revision back in $REV
}
@@ -1155,12 +1158,12 @@ function html_diff($text='',$intro=true,$type=null){
//look for previous/next revision
if($r_rev) {
- $next_rev = getRelativeRevision($ID, $r_rev, 1);
+ $next_rev = $pagelog->getRelativeRevision($r_rev, 1);
} else {
$next_rev = false;
}
if($l_rev) {
- $prev_rev = getRelativeRevision($ID, $l_rev, -1);
+ $prev_rev = $pagelog->getRelativeRevision($l_rev, -1);
} else {
$prev_rev = false;
}
@@ -1219,7 +1222,7 @@ function html_diff($text='',$intro=true,$type=null){
));
ptln(''.$lang['overviewrevs'].'');
if($next_rev){
- if($next_rev=='current') {
+ if(PageRevisionLog::isCurrentRevision($next_rev)) {
$diffurlnextparam = array(
'do' => 'diff',
'rev' => $r_rev,
--
cgit v1.2.3
From ee33e0c5628d9cab52676a5aa2f55356c563c209 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Wed, 20 Nov 2013 13:47:13 +0100
Subject: isCurrentPage is page dependent
---
inc/html.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index e1c69a043..b48a17fc5 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1222,7 +1222,7 @@ function html_diff($text='',$intro=true,$type=null){
));
ptln(''.$lang['overviewrevs'].'');
if($next_rev){
- if(PageRevisionLog::isCurrentRevision($next_rev)) {
+ if($pagelog->isCurrentRevision($next_rev)) {
$diffurlnextparam = array(
'do' => 'diff',
'rev' => $r_rev,
--
cgit v1.2.3
From 047bad06fab8157452aa0dd04379a7c507b1f39f Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Thu, 21 Nov 2013 21:07:08 +0100
Subject: refactor PageRevisionLog into Media- and PageChangelog extending
Changelog
---
inc/html.php | 55 ++++++++++++++++++++++++++++++++-----------------------
1 file changed, 32 insertions(+), 23 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index b48a17fc5..442126f71 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -414,18 +414,23 @@ function html_revisions($first=0, $media_id = false){
global $conf;
global $lang;
$id = $ID;
- if ($media_id) $id = $media_id;
+ if ($media_id) {
+ $id = $media_id;
+ $changelog = new MediaChangeLog($id);
+ } else {
+ $changelog = new PageChangeLog($id);
+ }
/* we need to get one additional log entry to be able to
* decide if this is the last page or is there another one.
* see html_recent()
*/
- $pagelog = new PageRevisionLog($id);
- $revisions = $pagelog->getRevisions($first, $conf['recent']+1, (boolean)$media_id);
+
+ $revisions = $changelog->getRevisions($first, $conf['recent']+1);
if(count($revisions)==0 && $first!=0){
$first=0;
- $revisions = $pagelog->getRevisions($first, $conf['recent']+1, (boolean)$media_id);
+ $revisions = $changelog->getRevisions($first, $conf['recent']+1);
}
$hasNext = false;
if (count($revisions)>$conf['recent']) {
@@ -484,17 +489,18 @@ function html_revisions($first=0, $media_id = false){
$form->addElement(form_makeCloseTag('span'));
}
- $pagelog->setChunkSize(1024);
+ $changelog->setChunkSize(1024);
$form->addElement(form_makeOpenTag('span', array('class' => 'user')));
- if (!$media_id) $editor = $INFO['editor'];
- else {
- $revinfo = $pagelog->getRevisionInfo(@filemtime(fullpath(mediaFN($id))), true);
- if($revinfo['user']){
+ if($media_id) {
+ $revinfo = $changelog->getRevisionInfo(@filemtime(fullpath(mediaFN($id))));
+ if($revinfo['user']) {
$editor = $revinfo['user'];
- }else{
+ } else {
$editor = $revinfo['ip'];
}
+ } else {
+ $editor = $INFO['editor'];
}
$form->addElement((empty($editor))?('('.$lang['external_edit'].')'):editorinfo($editor));
$form->addElement(form_makeCloseTag('span'));
@@ -509,12 +515,11 @@ function html_revisions($first=0, $media_id = false){
foreach($revisions as $rev){
$date = dformat($rev);
- if (!$media_id) {
- $info = $pagelog->getRevisionInfo($rev);
- $exists = page_exists($id,$rev);
- } else {
- $info = $pagelog->getRevisionInfo($rev,true);
- $exists = @file_exists(mediaFN($id,$rev));
+ $info = $changelog->getRevisionInfo($rev);
+ if($media_id) {
+ $exists = @file_exists(mediaFN($id, $rev));
+ } else {
+ $exists = page_exists($id, $rev);
}
if ($info['type']===DOKU_CHANGE_TYPE_MINOR_EDIT)
@@ -706,8 +711,8 @@ function html_recent($first=0, $show_changes='both'){
$href = '';
if ($recent['media']) {
- $pagelog = new PageRevisionLog($recent['id']);
- $diff = (count($pagelog->getRevisions(0, 1, true)) && @file_exists(mediaFN($recent['id'])));
+ $medialog = new MediaChangeLog($recent['id']);
+ $diff = (count($medialog->getRevisions(0, 1)) && @file_exists(mediaFN($recent['id'])));
if ($diff) {
$href = media_managerURL(array('tab_details' => 'history',
'mediado' => 'diff', 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&');
@@ -1009,11 +1014,15 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
$ml_or_wl = $media ? 'ml' : 'wl';
$l_minor = $r_minor = '';
- $pagelog = new PageRevisionLog($id);
+ if($media) {
+ $log = new MediaChangeLog($id);
+ } else {
+ $log = new PageChangeLog($id);
+ }
if(!$l_rev){
$l_head = '—';
}else{
- $l_info = $pagelog->getRevisionInfo($l_rev, $media);
+ $l_info = $log->getRevisionInfo($l_rev);
if($l_info['user']){
$l_user = ''.editorinfo($l_info['user']).'';
if(auth_ismanager()) $l_user .= ' ('.$l_info['ip'].')';
@@ -1031,7 +1040,7 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
}
if($r_rev){
- $r_info = $pagelog->getRevisionInfo($r_rev, $media);
+ $r_info = $log->getRevisionInfo($r_rev);
if($r_info['user']){
$r_user = ''.editorinfo($r_info['user']).'';
if(auth_ismanager()) $r_user .= ' ('.$r_info['ip'].')';
@@ -1047,7 +1056,7 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
$r_head_title.''.
$head_separator.$r_user.' '.$r_sum;
}elseif($_rev = @filemtime($media_or_wikiFN($id))){
- $_info = $pagelog->getRevisionInfo($_rev, $media);
+ $_info = $log->getRevisionInfo($_rev);
if($_info['user']){
$_user = ''.editorinfo($_info['user']).'';
if(auth_ismanager()) $_user .= ' ('.$_info['ip'].')';
@@ -1084,7 +1093,7 @@ function html_diff($text='',$intro=true,$type=null){
global $lang;
global $INPUT;
global $INFO;
- $pagelog = new PageRevisionLog($ID);
+ $pagelog = new PageChangeLog($ID);
if(!$type) {
$type = $INPUT->str('difftype');
--
cgit v1.2.3
From 4f6e20c71de298e046e451fd51919a51779b7e17 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Thu, 21 Nov 2013 21:13:02 +0100
Subject: fix not updated call, renaming
---
inc/html.php | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 442126f71..03a760035 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1015,14 +1015,14 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
$l_minor = $r_minor = '';
if($media) {
- $log = new MediaChangeLog($id);
+ $changelog = new MediaChangeLog($id);
} else {
- $log = new PageChangeLog($id);
+ $changelog = new PageChangeLog($id);
}
if(!$l_rev){
$l_head = '—';
}else{
- $l_info = $log->getRevisionInfo($l_rev);
+ $l_info = $changelog->getRevisionInfo($l_rev);
if($l_info['user']){
$l_user = ''.editorinfo($l_info['user']).'';
if(auth_ismanager()) $l_user .= ' ('.$l_info['ip'].')';
@@ -1040,7 +1040,7 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
}
if($r_rev){
- $r_info = $log->getRevisionInfo($r_rev);
+ $r_info = $changelog->getRevisionInfo($r_rev);
if($r_info['user']){
$r_user = ''.editorinfo($r_info['user']).'';
if(auth_ismanager()) $r_user .= ' ('.$r_info['ip'].')';
@@ -1056,7 +1056,7 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
$r_head_title.''.
$head_separator.$r_user.' '.$r_sum;
}elseif($_rev = @filemtime($media_or_wikiFN($id))){
- $_info = $log->getRevisionInfo($_rev);
+ $_info = $changelog->getRevisionInfo($_rev);
if($_info['user']){
$_user = ''.editorinfo($_info['user']).'';
if(auth_ismanager()) $_user .= ' ('.$_info['ip'].')';
--
cgit v1.2.3
From f1f2f711ea957b8fa3c9b4982e63b1476208c4e2 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Sat, 15 Feb 2014 16:49:20 +0100
Subject: Merge remote-tracking branch 'origin/master' into diff_navigation
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
* include upstream change
* added dropdowns
---
inc/html.php | 90 +++++++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 65 insertions(+), 25 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 9951e4b57..b698d2e3d 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1193,6 +1193,7 @@ function html_diff($text='',$intro=true,$type=null){
if (!$text) {
ptln('');
+ //display type
$form = new Doku_Form(array('action'=>wl()));
$form->addHidden('id',$ID);
$form->addHidden('rev2[0]',$l_rev);
@@ -1211,44 +1212,83 @@ function html_diff($text='',$intro=true,$type=null){
$form->printForm();
$diffurl = wl($ID, array(
- 'do' => 'diff',
- 'rev2[0]' => $l_rev,
- 'rev2[1]' => $r_rev ? $r_rev : $INFO['lastmod'], // link to exactly this view FS#2835
- 'difftype' => $type,
- ));
+ 'do' => 'diff',
+ 'rev2[0]' => $l_rev,
+ 'rev2[1]' => $r_rev ? $r_rev : $INFO['lastmod'], // link to exactly this view FS#2835
+ 'difftype' => $type,
+ ));
ptln('
'.$lang['difflink'].'
');
+
+ //revisions navigation
+ list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
+ foreach($l_revs as $rev) {
+ $info = $pagelog->getRevisionInfo($rev);
+ $l_revisions[$rev] = array($rev, dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum']);
+ }
+ foreach($r_revs as $rev) {
+ $info = $pagelog->getRevisionInfo($rev);
+ $r_revisions[$rev] = array($rev, dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum']);
+ }
+
+
if($prev_rev){
$diffurlprev = wl($ID, array(
- 'do' => 'diff',
- 'rev2[0]' => $prev_rev,
- 'rev2[1]' => $l_rev,
- 'difftype' => $type,
- ));
- ptln('← '.$lang['diffpreviousedit'].' - ');
+ 'do' => 'diff',
+ 'rev2[0]' => $prev_rev,
+ 'rev2[1]' => $l_rev,
+ 'difftype' => $type,
+ ));
+ ptln('← '.$lang['diffpreviousedit'].'');
}
- $recenturl = wl($ID, array(
- 'do' => 'revisions'
- ));
- ptln(''.$lang['overviewrevs'].'');
+ var_dump($l_revisions);
+ $form = new Doku_Form(array('action'=>wl()));
+ $form->addHidden('id',$ID);
+ $form->addHidden('difftype',$type);
+ $form->addHidden('rev2[1]',$r_rev);
+ $form->addHidden('do','diff');
+ $form->addElement(form_makeListboxField(
+ 'rev2[0]',
+ $l_revisions,
+ $l_rev,
+ '','','',
+ array('class'=>'quickselect')));
+ $form->addElement(form_makeButton('submit', 'diff','Go'));
+ $form->printForm();
+
+ $form = new Doku_Form(array('action'=>wl()));
+ $form->addHidden('id',$ID);
+ $form->addHidden('rev2[0]',$l_rev);
+ $form->addHidden('difftype',$type);
+ $form->addHidden('do','diff');
+ $form->addElement(form_makeListboxField(
+ 'rev2[1]',
+ $r_revisions,
+ $r_rev ? $r_rev : $INFO['meta']['last_change']['date'],
+ '','','',
+ array('class'=>'quickselect')));
+ $form->addElement(form_makeButton('submit', 'diff','Go'));
+ $form->printForm();
+
if($next_rev){
if($pagelog->isCurrentRevision($next_rev)) {
$diffurlnextparam = array(
- 'do' => 'diff',
- 'rev' => $r_rev,
- 'difftype' => $type,
- );
+ 'do' => 'diff',
+ 'rev' => $r_rev,
+ 'difftype' => $type,
+ );
$navnexttitle = $lang['difflastedit'];
} else {
$diffurlnextparam = array(
- 'do' => 'diff',
- 'rev2[0]' => $r_rev,
- 'rev2[1]' => $next_rev,
- 'difftype' => $type,
- );
+ 'do' => 'diff',
+ 'rev2[0]' => $r_rev,
+ 'rev2[1]' => $next_rev,
+ 'difftype' => $type,
+ );
$navnexttitle = $lang['diffnextedit'];
}
- ptln(' - '.$navnexttitle.' →');
+ ptln(''.$navnexttitle.' →');
}
+
ptln('
');
ptln('
');
}
--
cgit v1.2.3
From eeb8f429f3a505770c8dcf81998b009ba9d884fd Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Sat, 15 Feb 2014 17:23:27 +0100
Subject: add disable options to form_makeListboxField. Disable out of range
revisions
---
inc/html.php | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index b698d2e3d..1c879e3d8 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1220,14 +1220,23 @@ function html_diff($text='',$intro=true,$type=null){
ptln(''.$lang['difflink'].'
');
//revisions navigation
+ $r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date'];
list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
foreach($l_revs as $rev) {
$info = $pagelog->getRevisionInfo($rev);
- $l_revisions[$rev] = array($rev, dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum']);
+ $l_revisions[$rev] = array(
+ $rev,
+ dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum'],
+ $rev >= $r_rev
+ );
}
foreach($r_revs as $rev) {
$info = $pagelog->getRevisionInfo($rev);
- $r_revisions[$rev] = array($rev, dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum']);
+ $r_revisions[$rev] = array(
+ $rev,
+ dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum'],
+ $rev <= $l_rev
+ );
}
@@ -1240,7 +1249,7 @@ function html_diff($text='',$intro=true,$type=null){
));
ptln('← '.$lang['diffpreviousedit'].'');
}
- var_dump($l_revisions);
+
$form = new Doku_Form(array('action'=>wl()));
$form->addHidden('id',$ID);
$form->addHidden('difftype',$type);
@@ -1263,7 +1272,7 @@ function html_diff($text='',$intro=true,$type=null){
$form->addElement(form_makeListboxField(
'rev2[1]',
$r_revisions,
- $r_rev ? $r_rev : $INFO['meta']['last_change']['date'],
+ $r_rev,
'','','',
array('class'=>'quickselect')));
$form->addElement(form_makeButton('submit', 'diff','Go'));
--
cgit v1.2.3
From 4fc1354a1dd021f7a1a04f18aa4ffe3f1891a5b6 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Sat, 15 Feb 2014 20:10:25 +0100
Subject: diff navigation: move prev/next on one side or both side
---
inc/html.php | 98 +++++++++++++++++++++++++++++++++---------------------------
1 file changed, 54 insertions(+), 44 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 1c879e3d8..5ea8ece4c 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1165,18 +1165,6 @@ function html_diff($text='',$intro=true,$type=null){
}
$r_text = rawWiki($ID,$r_rev);
- //look for previous/next revision
- if($r_rev) {
- $next_rev = $pagelog->getRelativeRevision($r_rev, 1);
- } else {
- $next_rev = false;
- }
- if($l_rev) {
- $prev_rev = $pagelog->getRelativeRevision($l_rev, -1);
- } else {
- $prev_rev = false;
- }
-
list($l_head, $r_head, $l_minor, $r_minor) = html_diff_head($l_rev, $r_rev, null, false, $type == 'inline');
}
@@ -1211,13 +1199,10 @@ function html_diff($text='',$intro=true,$type=null){
$form->addElement(form_makeButton('submit', 'diff','Go'));
$form->printForm();
- $diffurl = wl($ID, array(
- 'do' => 'diff',
- 'rev2[0]' => $l_rev,
- 'rev2[1]' => $r_rev ? $r_rev : $INFO['lastmod'], // link to exactly this view FS#2835
- 'difftype' => $type,
- ));
- ptln(''.$lang['difflink'].'
');
+ ptln('
');
+ // link to exactly this view FS#2835
+ html_diff_navigationlink($type, $lang['difflink'], $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
+ ptln('
');
//revisions navigation
$r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date'];
@@ -1239,15 +1224,16 @@ function html_diff($text='',$intro=true,$type=null){
);
}
+ $l_index = array_search($l_rev, $l_revs);
+ $l_prev = $l_revs[$l_index - 1];
+ $l_next = $l_revs[$l_index + 1];
+ $r_index = array_search($r_rev, $r_revs);
+ $r_prev = $r_revs[$r_index - 1];
+ $r_next = $r_revs[$r_index + 1];
- if($prev_rev){
- $diffurlprev = wl($ID, array(
- 'do' => 'diff',
- 'rev2[0]' => $prev_rev,
- 'rev2[1]' => $l_rev,
- 'difftype' => $type,
- ));
- ptln('← '.$lang['diffpreviousedit'].'');
+ if($l_prev) {
+ html_diff_navigationlink($type, '←← ', $l_prev, $r_prev);
+ html_diff_navigationlink($type, '← ', $l_prev, $r_rev);
}
$form = new Doku_Form(array('action'=>wl()));
@@ -1264,6 +1250,13 @@ function html_diff($text='',$intro=true,$type=null){
$form->addElement(form_makeButton('submit', 'diff','Go'));
$form->printForm();
+ if($l_next < $r_rev) {
+ html_diff_navigationlink($type, ' →', $l_next, $r_rev);
+ }
+ if($l_rev < $r_prev) {
+ html_diff_navigationlink($type, '← ', $l_rev, $r_prev);
+ }
+
$form = new Doku_Form(array('action'=>wl()));
$form->addHidden('id',$ID);
$form->addHidden('rev2[0]',$l_rev);
@@ -1278,27 +1271,16 @@ function html_diff($text='',$intro=true,$type=null){
$form->addElement(form_makeButton('submit', 'diff','Go'));
$form->printForm();
- if($next_rev){
- if($pagelog->isCurrentRevision($next_rev)) {
- $diffurlnextparam = array(
- 'do' => 'diff',
- 'rev' => $r_rev,
- 'difftype' => $type,
- );
- $navnexttitle = $lang['difflastedit'];
+ if($r_next) {
+ if($pagelog->isCurrentRevision($r_next)) {
+ html_diff_navigationlink($type, ' →', $l_rev); //last
} else {
- $diffurlnextparam = array(
- 'do' => 'diff',
- 'rev2[0]' => $r_rev,
- 'rev2[1]' => $next_rev,
- 'difftype' => $type,
- );
- $navnexttitle = $lang['diffnextedit'];
+ html_diff_navigationlink($type, ' →', $l_rev, $r_next); //next
}
- ptln(''.$navnexttitle.' →');
+ html_diff_navigationlink($type, ' →→', $l_next, $r_next);
}
- ptln('
');
+ ptln('
'); //todo paragraphs are a mess..
ptln('');
}
?>
@@ -1331,6 +1313,34 @@ function html_diff($text='',$intro=true,$type=null){
'diff',
+ 'rev' => $lrev,
+ 'difftype' => $type,
+ );
+ } else {
+ $urlparam = array(
+ 'do' => 'diff',
+ 'rev2[0]' => $lrev,
+ 'rev2[1]' => $rrev,
+ 'difftype' => $type,
+ );
+ }
+ ptln('' . $name . '');
+}
+
function html_insert_softbreaks($diffhtml) {
// search the diff html string for both:
// - html tags, so these can be ignored
--
cgit v1.2.3
From 7f92538e7173852561b0396626dd35783550ed92 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Sat, 15 Feb 2014 20:12:01 +0100
Subject: remove close p tag in diffview
---
inc/html.php | 1 -
1 file changed, 1 deletion(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 5ea8ece4c..ce5da488b 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1280,7 +1280,6 @@ function html_diff($text='',$intro=true,$type=null){
html_diff_navigationlink($type, ' →→', $l_next, $r_next);
}
- ptln(''); //todo paragraphs are a mess..
ptln('');
}
?>
--
cgit v1.2.3
From 2e608c527514d5fb03eb88c8da1c101f231d5736 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Sat, 15 Feb 2014 20:41:09 +0100
Subject: reverse revisions display order
---
inc/html.php | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index ce5da488b..3cce6ceab 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1225,11 +1225,11 @@ function html_diff($text='',$intro=true,$type=null){
}
$l_index = array_search($l_rev, $l_revs);
- $l_prev = $l_revs[$l_index - 1];
- $l_next = $l_revs[$l_index + 1];
+ $l_prev = $l_revs[$l_index + 1];
+ $l_next = $l_revs[$l_index - 1];
$r_index = array_search($r_rev, $r_revs);
- $r_prev = $r_revs[$r_index - 1];
- $r_next = $r_revs[$r_index + 1];
+ $r_prev = $r_revs[$r_index + 1];
+ $r_next = $r_revs[$r_index - 1];
if($l_prev) {
html_diff_navigationlink($type, '←← ', $l_prev, $r_prev);
--
cgit v1.2.3
From 723eeeaec752d354de90bba38d758de312da1732 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Mon, 17 Feb 2014 00:20:02 +0100
Subject: replace arrows in names of diff links by texts
---
inc/html.php | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 3cce6ceab..8f3f43fde 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1207,6 +1207,7 @@ function html_diff($text='',$intro=true,$type=null){
//revisions navigation
$r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date'];
list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
+ $l_revisions = array();
foreach($l_revs as $rev) {
$info = $pagelog->getRevisionInfo($rev);
$l_revisions[$rev] = array(
@@ -1215,6 +1216,7 @@ function html_diff($text='',$intro=true,$type=null){
$rev >= $r_rev
);
}
+ $r_revisions = array();
foreach($r_revs as $rev) {
$info = $pagelog->getRevisionInfo($rev);
$r_revisions[$rev] = array(
@@ -1232,8 +1234,8 @@ function html_diff($text='',$intro=true,$type=null){
$r_next = $r_revs[$r_index - 1];
if($l_prev) {
- html_diff_navigationlink($type, '←← ', $l_prev, $r_prev);
- html_diff_navigationlink($type, '← ', $l_prev, $r_rev);
+ html_diff_navigationlink($type, $lang['diffbothprevrev'], $l_prev, $r_prev);
+ html_diff_navigationlink($type, $lang['diffprevrev'], $l_prev, $r_rev);
}
$form = new Doku_Form(array('action'=>wl()));
@@ -1251,10 +1253,10 @@ function html_diff($text='',$intro=true,$type=null){
$form->printForm();
if($l_next < $r_rev) {
- html_diff_navigationlink($type, ' →', $l_next, $r_rev);
+ html_diff_navigationlink($type, $lang['diffnextrev'], $l_next, $r_rev);
}
if($l_rev < $r_prev) {
- html_diff_navigationlink($type, '← ', $l_rev, $r_prev);
+ html_diff_navigationlink($type, $lang['diffprevrev'], $l_rev, $r_prev);
}
$form = new Doku_Form(array('action'=>wl()));
@@ -1273,11 +1275,11 @@ function html_diff($text='',$intro=true,$type=null){
if($r_next) {
if($pagelog->isCurrentRevision($r_next)) {
- html_diff_navigationlink($type, ' →', $l_rev); //last
+ html_diff_navigationlink($type, $lang['difflastrev'], $l_rev);
} else {
- html_diff_navigationlink($type, ' →', $l_rev, $r_next); //next
+ html_diff_navigationlink($type, $lang['diffnextrev'], $l_rev, $r_next);
}
- html_diff_navigationlink($type, ' →→', $l_next, $r_next);
+ html_diff_navigationlink($type, $lang['diffbothnextrev'], $l_next, $r_next);
}
ptln('');
--
cgit v1.2.3
From 51684808ed7a3b426f3fdb92186448b3d68d0464 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Mon, 17 Feb 2014 00:46:50 +0100
Subject: add comments to html_diff
---
inc/html.php | 29 +++++++++++++++++++----------
1 file changed, 19 insertions(+), 10 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 8f3f43fde..3accaa038 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1181,7 +1181,9 @@ function html_diff($text='',$intro=true,$type=null){
if (!$text) {
ptln('');
- //display type
+ /*
+ * display type and exact reference
+ */
$form = new Doku_Form(array('action'=>wl()));
$form->addHidden('id',$ID);
$form->addHidden('rev2[0]',$l_rev);
@@ -1204,8 +1206,10 @@ function html_diff($text='',$intro=true,$type=null){
html_diff_navigationlink($type, $lang['difflink'], $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
ptln('
');
- //revisions navigation
- $r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date'];
+ /*
+ * Revisions navigation
+ */
+ $r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date']; //last timestamp is not in changelog
list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
$l_revisions = array();
foreach($l_revs as $rev) {
@@ -1213,7 +1217,7 @@ function html_diff($text='',$intro=true,$type=null){
$l_revisions[$rev] = array(
$rev,
dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum'],
- $rev >= $r_rev
+ $rev >= $r_rev //disable?
);
}
$r_revisions = array();
@@ -1222,10 +1226,10 @@ function html_diff($text='',$intro=true,$type=null){
$r_revisions[$rev] = array(
$rev,
dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum'],
- $rev <= $l_rev
+ $rev <= $l_rev //disable?
);
}
-
+ //determine previous/next revisions
$l_index = array_search($l_rev, $l_revs);
$l_prev = $l_revs[$l_index + 1];
$l_next = $l_revs[$l_index - 1];
@@ -1233,11 +1237,12 @@ function html_diff($text='',$intro=true,$type=null){
$r_prev = $r_revs[$r_index + 1];
$r_next = $r_revs[$r_index - 1];
+ //move back
if($l_prev) {
html_diff_navigationlink($type, $lang['diffbothprevrev'], $l_prev, $r_prev);
html_diff_navigationlink($type, $lang['diffprevrev'], $l_prev, $r_rev);
}
-
+ //left dropdown
$form = new Doku_Form(array('action'=>wl()));
$form->addHidden('id',$ID);
$form->addHidden('difftype',$type);
@@ -1252,13 +1257,14 @@ function html_diff($text='',$intro=true,$type=null){
$form->addElement(form_makeButton('submit', 'diff','Go'));
$form->printForm();
+ //move forward/back
if($l_next < $r_rev) {
html_diff_navigationlink($type, $lang['diffnextrev'], $l_next, $r_rev);
}
if($l_rev < $r_prev) {
html_diff_navigationlink($type, $lang['diffprevrev'], $l_rev, $r_prev);
}
-
+ //rigth dropdown
$form = new Doku_Form(array('action'=>wl()));
$form->addHidden('id',$ID);
$form->addHidden('rev2[0]',$l_rev);
@@ -1272,10 +1278,10 @@ function html_diff($text='',$intro=true,$type=null){
array('class'=>'quickselect')));
$form->addElement(form_makeButton('submit', 'diff','Go'));
$form->printForm();
-
+ //move forward
if($r_next) {
if($pagelog->isCurrentRevision($r_next)) {
- html_diff_navigationlink($type, $lang['difflastrev'], $l_rev);
+ html_diff_navigationlink($type, $lang['difflastrev'], $l_rev); //last revision is diff with current page
} else {
html_diff_navigationlink($type, $lang['diffnextrev'], $l_rev, $r_next);
}
@@ -1284,6 +1290,9 @@ function html_diff($text='',$intro=true,$type=null){
ptln('
');
}
+ /*
+ * Diff view
+ */
?>
--
cgit v1.2.3
From 98a6b21422744d0a705ef5afe6983e2797135d99 Mon Sep 17 00:00:00 2001
From: Anika Henke
Date: Mon, 17 Feb 2014 01:46:56 +0000
Subject: roughly styled diff nav row
---
inc/html.php | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 3accaa038..ad72b78a6 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1203,12 +1203,14 @@ function html_diff($text='',$intro=true,$type=null){
ptln('');
// link to exactly this view FS#2835
- html_diff_navigationlink($type, $lang['difflink'], $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
- ptln('
');
+ html_diff_navigationlink($type, 'difflink', $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
+ ptln('');
/*
* Revisions navigation
*/
+ ptln('');
+
$r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date']; //last timestamp is not in changelog
list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
$l_revisions = array();
@@ -1239,8 +1241,8 @@ function html_diff($text='',$intro=true,$type=null){
//move back
if($l_prev) {
- html_diff_navigationlink($type, $lang['diffbothprevrev'], $l_prev, $r_prev);
- html_diff_navigationlink($type, $lang['diffprevrev'], $l_prev, $r_rev);
+ html_diff_navigationlink($type, 'diffbothprevrev', $l_prev, $r_prev);
+ html_diff_navigationlink($type, 'diffprevrev', $l_prev, $r_rev);
}
//left dropdown
$form = new Doku_Form(array('action'=>wl()));
@@ -1259,10 +1261,10 @@ function html_diff($text='',$intro=true,$type=null){
//move forward/back
if($l_next < $r_rev) {
- html_diff_navigationlink($type, $lang['diffnextrev'], $l_next, $r_rev);
+ html_diff_navigationlink($type, 'diffnextrev', $l_next, $r_rev);
}
if($l_rev < $r_prev) {
- html_diff_navigationlink($type, $lang['diffprevrev'], $l_rev, $r_prev);
+ html_diff_navigationlink($type, 'diffprevrev', $l_rev, $r_prev);
}
//rigth dropdown
$form = new Doku_Form(array('action'=>wl()));
@@ -1281,14 +1283,15 @@ function html_diff($text='',$intro=true,$type=null){
//move forward
if($r_next) {
if($pagelog->isCurrentRevision($r_next)) {
- html_diff_navigationlink($type, $lang['difflastrev'], $l_rev); //last revision is diff with current page
+ html_diff_navigationlink($type, 'difflastrev', $l_rev); //last revision is diff with current page
} else {
- html_diff_navigationlink($type, $lang['diffnextrev'], $l_rev, $r_next);
+ html_diff_navigationlink($type, 'diffnextrev', $l_rev, $r_next);
}
- html_diff_navigationlink($type, $lang['diffbothnextrev'], $l_next, $r_next);
+ html_diff_navigationlink($type, 'diffbothnextrev', $l_next, $r_next);
}
- ptln('
');
+ ptln(''); // .diffnav
+ ptln(''); // .diffoptions
}
/*
* Diff view
@@ -1326,29 +1329,29 @@ function html_diff($text='',$intro=true,$type=null){
/**
* Create html link to a diff defined by two revisions
*
- * @param string $type display type
+ * @param string $difftype display type
+ * @param string $linktype
* @param int $lrev oldest revision
* @param int $rrev newest revision or null for diff with current revision
- * @param string $name
* @return string html of link to a diff
*/
-function html_diff_navigationlink($type, $name, $lrev, $rrev = null) {
- global $ID;
+function html_diff_navigationlink($difftype, $linktype, $lrev, $rrev = null) {
+ global $ID, $lang;
if($rrev === null) {
$urlparam = array(
'do' => 'diff',
'rev' => $lrev,
- 'difftype' => $type,
+ 'difftype' => $difftype,
);
} else {
$urlparam = array(
'do' => 'diff',
'rev2[0]' => $lrev,
'rev2[1]' => $rrev,
- 'difftype' => $type,
+ 'difftype' => $difftype,
);
}
- ptln('' . $name . '');
+ ptln('' . $lang[$linktype] . '');
}
function html_insert_softbreaks($diffhtml) {
--
cgit v1.2.3
From 04e99fe1c566aa96e5a6ccf95e51bde362c67b44 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Mon, 17 Feb 2014 14:31:35 +0100
Subject: Code reformatting html_diff
---
inc/html.php | 208 ++++++++++++++++++++++++++++++++---------------------------
1 file changed, 112 insertions(+), 96 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index ad72b78a6..0d2c21638 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1080,14 +1080,14 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
}
/**
- * show diff
+ * Show diff
*
* @author Andreas Gohr
- * @param string $text - compare with this text with most current version
- * @param bool $intro - display the intro text
- * @param string $type type of the diff (inline or sidebyside)
+ * @param string $text compare with this text with most current version
+ * @param bool $intro display the intro text
+ * @param string $type type of the diff (inline or sidebyside)
*/
-function html_diff($text='',$intro=true,$type=null){
+function html_diff($text = '', $intro = true, $type = null) {
global $ID;
global $REV;
global $lang;
@@ -1097,9 +1097,9 @@ function html_diff($text='',$intro=true,$type=null){
if(!$type) {
$type = $INPUT->str('difftype');
- if (empty($type)) {
+ if(empty($type)) {
$type = get_doku_pref('difftype', $type);
- if (empty($type) && $INFO['ismobile']) {
+ if(empty($type) && $INFO['ismobile']) {
$type = 'inline';
}
}
@@ -1112,45 +1112,45 @@ function html_diff($text='',$intro=true,$type=null){
$rev1 = $REV;
$rev2 = $INPUT->ref('rev2');
- if(is_array($rev2)){
+ if(is_array($rev2)) {
$rev1 = (int) $rev2[0];
$rev2 = (int) $rev2[1];
- if(!$rev1){
+ if(!$rev1) {
$rev1 = $rev2;
unset($rev2);
}
- }else{
+ } else {
$rev2 = $INPUT->int('rev2');
}
$r_minor = '';
$l_minor = '';
- if($text){ // compare text to the most current revision
- $l_rev = '';
- $l_text = rawWiki($ID,'');
- $l_head = ''.
- $ID.' '.dformat((int) @filemtime(wikiFN($ID))).' '.
+ if($text) { // compare text to the most current revision
+ $l_rev = '';
+ $l_text = rawWiki($ID, '');
+ $l_head = '' .
+ $ID . ' ' . dformat((int) @filemtime(wikiFN($ID))) . ' ' .
$lang['current'];
- $r_rev = '';
- $r_text = cleanText($text);
- $r_head = $lang['yours'];
- }else{
- if($rev1 && isset($rev2) && $rev2){ // two specific revisions wanted
+ $r_rev = '';
+ $r_text = cleanText($text);
+ $r_head = $lang['yours'];
+ } else {
+ if($rev1 && isset($rev2) && $rev2) { // two specific revisions wanted
// make sure order is correct (older on the left)
- if($rev1 < $rev2){
+ if($rev1 < $rev2) {
$l_rev = $rev1;
$r_rev = $rev2;
- }else{
+ } else {
$l_rev = $rev2;
$r_rev = $rev1;
}
- }elseif($rev1){ // single revision given, compare to current
+ } elseif($rev1) { // single revision given, compare to current
$r_rev = '';
$l_rev = $rev1;
- }else{ // no revision was given, compare previous to current
+ } else { // no revision was given, compare previous to current
$r_rev = '';
$revs = $pagelog->getRevisions(0, 1);
$l_rev = $revs[0];
@@ -1158,54 +1158,60 @@ function html_diff($text='',$intro=true,$type=null){
}
// when both revisions are empty then the page was created just now
- if(!$l_rev && !$r_rev){
+ if(!$l_rev && !$r_rev) {
$l_text = '';
- }else{
- $l_text = rawWiki($ID,$l_rev);
+ } else {
+ $l_text = rawWiki($ID, $l_rev);
}
- $r_text = rawWiki($ID,$r_rev);
+ $r_text = rawWiki($ID, $r_rev);
list($l_head, $r_head, $l_minor, $r_minor) = html_diff_head($l_rev, $r_rev, null, false, $type == 'inline');
}
- $df = new Diff(explode("\n",$l_text),explode("\n",$r_text));
+ $diff = new Diff(explode("\n", $l_text), explode("\n", $r_text));
- if($type == 'inline'){
- $tdf = new InlineDiffFormatter();
+ if($type == 'inline') {
+ $diffformatter = new InlineDiffFormatter();
} else {
- $tdf = new TableDiffFormatter();
+ $diffformatter = new TableDiffFormatter();
}
if($intro) print p_locale_xhtml('diff');
- if (!$text) {
+ if(!$text) {
ptln('');
/*
* display type and exact reference
*/
- $form = new Doku_Form(array('action'=>wl()));
- $form->addHidden('id',$ID);
- $form->addHidden('rev2[0]',$l_rev);
- $form->addHidden('rev2[1]',$r_rev);
- $form->addHidden('do','diff');
- $form->addElement(form_makeListboxField(
- 'difftype',
- array(
- 'sidebyside' => $lang['diff_side'],
- 'inline' => $lang['diff_inline']),
- $type,
- $lang['diff_type'],
- '','',
- array('class'=>'quickselect')));
- $form->addElement(form_makeButton('submit', 'diff','Go'));
+ $form = new Doku_Form(array('action' => wl()));
+ $form->addHidden('id', $ID);
+ $form->addHidden('rev2[0]', $l_rev);
+ $form->addHidden('rev2[1]', $r_rev);
+ $form->addHidden('do', 'diff');
+ $form->addElement(
+ form_makeListboxField(
+ 'difftype',
+ array(
+ 'sidebyside' => $lang['diff_side'],
+ 'inline' => $lang['diff_inline']
+ ),
+ $type,
+ $lang['diff_type'],
+ '', '',
+ array('class' => 'quickselect')
+ )
+ );
+ $form->addElement(form_makeButton('submit', 'diff', 'Go'));
$form->printForm();
ptln('
');
// link to exactly this view FS#2835
html_diff_navigationlink($type, 'difflink', $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
ptln('
');
+ }
+ if(!$text) {
/*
* Revisions navigation
*/
@@ -1218,7 +1224,7 @@ function html_diff($text='',$intro=true,$type=null){
$info = $pagelog->getRevisionInfo($rev);
$l_revisions[$rev] = array(
$rev,
- dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum'],
+ dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
$rev >= $r_rev //disable?
);
}
@@ -1227,7 +1233,7 @@ function html_diff($text='',$intro=true,$type=null){
$info = $pagelog->getRevisionInfo($rev);
$r_revisions[$rev] = array(
$rev,
- dformat($info['date']).' '.editorinfo($info['user']).' '.$info['sum'],
+ dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
$rev <= $l_rev //disable?
);
}
@@ -1245,18 +1251,21 @@ function html_diff($text='',$intro=true,$type=null){
html_diff_navigationlink($type, 'diffprevrev', $l_prev, $r_rev);
}
//left dropdown
- $form = new Doku_Form(array('action'=>wl()));
- $form->addHidden('id',$ID);
- $form->addHidden('difftype',$type);
- $form->addHidden('rev2[1]',$r_rev);
- $form->addHidden('do','diff');
- $form->addElement(form_makeListboxField(
- 'rev2[0]',
- $l_revisions,
- $l_rev,
- '','','',
- array('class'=>'quickselect')));
- $form->addElement(form_makeButton('submit', 'diff','Go'));
+ $form = new Doku_Form(array('action' => wl()));
+ $form->addHidden('id', $ID);
+ $form->addHidden('difftype', $type);
+ $form->addHidden('rev2[1]', $r_rev);
+ $form->addHidden('do', 'diff');
+ $form->addElement(
+ form_makeListboxField(
+ 'rev2[0]',
+ $l_revisions,
+ $l_rev,
+ '', '', '',
+ array('class' => 'quickselect')
+ )
+ );
+ $form->addElement(form_makeButton('submit', 'diff', 'Go'));
$form->printForm();
//move forward/back
@@ -1267,18 +1276,21 @@ function html_diff($text='',$intro=true,$type=null){
html_diff_navigationlink($type, 'diffprevrev', $l_rev, $r_prev);
}
//rigth dropdown
- $form = new Doku_Form(array('action'=>wl()));
- $form->addHidden('id',$ID);
- $form->addHidden('rev2[0]',$l_rev);
- $form->addHidden('difftype',$type);
- $form->addHidden('do','diff');
- $form->addElement(form_makeListboxField(
- 'rev2[1]',
- $r_revisions,
- $r_rev,
- '','','',
- array('class'=>'quickselect')));
- $form->addElement(form_makeButton('submit', 'diff','Go'));
+ $form = new Doku_Form(array('action' => wl()));
+ $form->addHidden('id', $ID);
+ $form->addHidden('rev2[0]', $l_rev);
+ $form->addHidden('difftype', $type);
+ $form->addHidden('do', 'diff');
+ $form->addElement(
+ form_makeListboxField(
+ 'rev2[1]',
+ $r_revisions,
+ $r_rev,
+ '', '', '',
+ array('class' => 'quickselect')
+ )
+ );
+ $form->addElement(form_makeButton('submit', 'diff', 'Go'));
$form->printForm();
//move forward
if($r_next) {
@@ -1293,37 +1305,41 @@ function html_diff($text='',$intro=true,$type=null){
ptln('
'); // .diffnav
ptln(''); // .diffoptions
}
+
/*
* Diff view
*/
?>
-
-
-
- >
-
- |
-
-
- >
-
- |
-
+
+
+
+
+ >
+
+ |
+
+
+
+ >
+
+ |
+
-
- >
-
- |
- >
-
- |
-
+
+ >
+
+ |
+ >
+
+ |
+
format($df)); ?>
+ echo html_insert_softbreaks($diffformatter->format($diff)); ?>
-
Date: Mon, 17 Feb 2014 15:52:54 +0100
Subject: Put diff navigation in diff view table
---
inc/html.php | 65 +++++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 42 insertions(+), 23 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 0d2c21638..fb44cd655 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1209,14 +1209,16 @@ function html_diff($text = '', $intro = true, $type = null) {
// link to exactly this view FS#2835
html_diff_navigationlink($type, 'difflink', $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
ptln('');
+
+ ptln(''); // .diffoptions
}
+ $l_nav = '';
+ $r_nav = '';
if(!$text) {
/*
* Revisions navigation
*/
- ptln('');
-
$r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date']; //last timestamp is not in changelog
list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
$l_revisions = array();
@@ -1245,10 +1247,11 @@ function html_diff($text = '', $intro = true, $type = null) {
$r_prev = $r_revs[$r_index + 1];
$r_next = $r_revs[$r_index - 1];
+
//move back
if($l_prev) {
- html_diff_navigationlink($type, 'diffbothprevrev', $l_prev, $r_prev);
- html_diff_navigationlink($type, 'diffprevrev', $l_prev, $r_rev);
+ $l_nav .= html_diff_navigationlink($type, 'diffbothprevrev', $l_prev, $r_prev);
+ $l_nav .= html_diff_navigationlink($type, 'diffprevrev', $l_prev, $r_rev);
}
//left dropdown
$form = new Doku_Form(array('action' => wl()));
@@ -1266,14 +1269,15 @@ function html_diff($text = '', $intro = true, $type = null) {
)
);
$form->addElement(form_makeButton('submit', 'diff', 'Go'));
- $form->printForm();
-
- //move forward/back
+ $l_nav .= $form->getForm();
+ //move forward
if($l_next < $r_rev) {
- html_diff_navigationlink($type, 'diffnextrev', $l_next, $r_rev);
+ $l_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_next, $r_rev);
}
+
+ //move back
if($l_rev < $r_prev) {
- html_diff_navigationlink($type, 'diffprevrev', $l_rev, $r_prev);
+ $r_nav .= html_diff_navigationlink($type, 'diffprevrev', $l_rev, $r_prev);
}
//rigth dropdown
$form = new Doku_Form(array('action' => wl()));
@@ -1291,19 +1295,16 @@ function html_diff($text = '', $intro = true, $type = null) {
)
);
$form->addElement(form_makeButton('submit', 'diff', 'Go'));
- $form->printForm();
+ $r_nav .= $form->getForm();
//move forward
if($r_next) {
if($pagelog->isCurrentRevision($r_next)) {
- html_diff_navigationlink($type, 'difflastrev', $l_rev); //last revision is diff with current page
+ $r_nav .= html_diff_navigationlink($type, 'difflastrev', $l_rev); //last revision is diff with current page
} else {
- html_diff_navigationlink($type, 'diffnextrev', $l_rev, $r_next);
+ $r_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_rev, $r_next);
}
- html_diff_navigationlink($type, 'diffbothnextrev', $l_next, $r_next);
+ $r_nav .= html_diff_navigationlink($type, 'diffbothnextrev', $l_next, $r_next);
}
-
- ptln('
'); // .diffnav
- ptln(''); // .diffoptions
}
/*
@@ -1313,12 +1314,22 @@ function html_diff($text = '', $intro = true, $type = null) {
+ if($type == 'inline') {
+ if(!$text) { ?>
+
+
+ |
+
+
+
+ >
+
+ |
+
+
-
- >
-
- |
+
+ |
@@ -1326,7 +1337,13 @@ function html_diff($text = '', $intro = true, $type = null) {
-
+
+
+ |
+ |
+
+
>
@@ -1367,7 +1384,9 @@ function html_diff_navigationlink($difftype, $linktype, $lrev, $rrev = null) {
'difftype' => $difftype,
);
}
- ptln('' . $lang[$linktype] . '');
+ return '' .
+ '' . $lang[$linktype] . '' .
+ '' . "\n";
}
function html_insert_softbreaks($diffhtml) {
--
cgit v1.2.3
From c7686ac1482eea421fa245b2a448d55ad2b483b7 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Mon, 17 Feb 2014 16:56:32 +0100
Subject: Reorganise generation and displaying of html. Added comments
---
inc/html.php | 193 +++++++++++++++++++++++++++++++++--------------------------
1 file changed, 107 insertions(+), 86 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index fb44cd655..cda971f3d 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1095,6 +1095,9 @@ function html_diff($text = '', $intro = true, $type = null) {
global $INFO;
$pagelog = new PageChangeLog($ID);
+ /*
+ * Determine diff type
+ */
if(!$type) {
$type = $INPUT->str('difftype');
if(empty($type)) {
@@ -1106,6 +1109,9 @@ function html_diff($text = '', $intro = true, $type = null) {
}
if($type != 'inline') $type = 'sidebyside';
+ /*
+ * Determine requested revision(s)
+ */
// we're trying to be clever here, revisions to compare can be either
// given as rev and rev2 parameters, with rev2 being optional. Or in an
// array in rev2.
@@ -1124,6 +1130,9 @@ function html_diff($text = '', $intro = true, $type = null) {
$rev2 = $INPUT->int('rev2');
}
+ /*
+ * Determine left and right revision, its texts and the header
+ */
$r_minor = '';
$l_minor = '';
@@ -1168,58 +1177,14 @@ function html_diff($text = '', $intro = true, $type = null) {
list($l_head, $r_head, $l_minor, $r_minor) = html_diff_head($l_rev, $r_rev, null, false, $type == 'inline');
}
- $diff = new Diff(explode("\n", $l_text), explode("\n", $r_text));
-
- if($type == 'inline') {
- $diffformatter = new InlineDiffFormatter();
- } else {
- $diffformatter = new TableDiffFormatter();
- }
-
- if($intro) print p_locale_xhtml('diff');
-
- if(!$text) {
- ptln('');
-
- /*
- * display type and exact reference
- */
- $form = new Doku_Form(array('action' => wl()));
- $form->addHidden('id', $ID);
- $form->addHidden('rev2[0]', $l_rev);
- $form->addHidden('rev2[1]', $r_rev);
- $form->addHidden('do', 'diff');
- $form->addElement(
- form_makeListboxField(
- 'difftype',
- array(
- 'sidebyside' => $lang['diff_side'],
- 'inline' => $lang['diff_inline']
- ),
- $type,
- $lang['diff_type'],
- '', '',
- array('class' => 'quickselect')
- )
- );
- $form->addElement(form_makeButton('submit', 'diff', 'Go'));
- $form->printForm();
-
- ptln(' ');
- // link to exactly this view FS#2835
- html_diff_navigationlink($type, 'difflink', $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
- ptln(' ');
-
- ptln(' '); // .diffoptions
- }
-
+ /*
+ * Build navigation
+ */
$l_nav = '';
$r_nav = '';
if(!$text) {
- /*
- * Revisions navigation
- */
$r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date']; //last timestamp is not in changelog
+ //retrieve revisions with additional info
list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
$l_revisions = array();
foreach($l_revs as $rev) {
@@ -1247,13 +1212,13 @@ function html_diff($text = '', $intro = true, $type = null) {
$r_prev = $r_revs[$r_index + 1];
$r_next = $r_revs[$r_index - 1];
-
+ //Left side:
//move back
if($l_prev) {
$l_nav .= html_diff_navigationlink($type, 'diffbothprevrev', $l_prev, $r_prev);
$l_nav .= html_diff_navigationlink($type, 'diffprevrev', $l_prev, $r_rev);
}
- //left dropdown
+ //dropdown
$form = new Doku_Form(array('action' => wl()));
$form->addHidden('id', $ID);
$form->addHidden('difftype', $type);
@@ -1275,11 +1240,12 @@ function html_diff($text = '', $intro = true, $type = null) {
$l_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_next, $r_rev);
}
+ //Right side:
//move back
if($l_rev < $r_prev) {
$r_nav .= html_diff_navigationlink($type, 'diffprevrev', $l_rev, $r_prev);
}
- //rigth dropdown
+ //dropdown
$form = new Doku_Form(array('action' => wl()));
$form->addHidden('id', $ID);
$form->addHidden('rev2[0]', $l_rev);
@@ -1306,54 +1272,109 @@ function html_diff($text = '', $intro = true, $type = null) {
$r_nav .= html_diff_navigationlink($type, 'diffbothnextrev', $l_next, $r_next);
}
}
+ /*
+ * Create diff object and the formatter
+ */
+ $diff = new Diff(explode("\n", $l_text), explode("\n", $r_text));
+
+ if($type == 'inline') {
+ $diffformatter = new InlineDiffFormatter();
+ } else {
+ $diffformatter = new TableDiffFormatter();
+ }
+ /*
+ * Display intro
+ */
+ if($intro) print p_locale_xhtml('diff');
/*
- * Diff view
+ * Display type and exact reference
+ */
+ if(!$text) {
+ ptln('');
+
+
+ $form = new Doku_Form(array('action' => wl()));
+ $form->addHidden('id', $ID);
+ $form->addHidden('rev2[0]', $l_rev);
+ $form->addHidden('rev2[1]', $r_rev);
+ $form->addHidden('do', 'diff');
+ $form->addElement(
+ form_makeListboxField(
+ 'difftype',
+ array(
+ 'sidebyside' => $lang['diff_side'],
+ 'inline' => $lang['diff_inline']
+ ),
+ $type,
+ $lang['diff_type'],
+ '', '',
+ array('class' => 'quickselect')
+ )
+ );
+ $form->addElement(form_makeButton('submit', 'diff', 'Go'));
+ $form->printForm();
+
+ ptln(' ');
+ // link to exactly this view FS#2835
+ html_diff_navigationlink($type, 'difflink', $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
+ ptln(' ');
+
+ ptln(' '); // .diffoptions
+ }
+
+ /*
+ * Display diff view table
*/
?>
-
+
+
+
+
+ |
+
+
+
+ >
+
+ |
+
+
-
- |
+
+ |
-
- >
-
+ |
+ >
+
|
-
-
-
- |
-
-
-
- >
-
- |
-
-
+
+
+ |
+ |
+
+
- |
- |
+ >
+
+ |
+ >
+
+ |
-
-
- >
-
- |
- >
-
- |
-
- format($diff)); ?>
+ format($diff)); ?>
+
Date: Mon, 17 Feb 2014 17:27:54 +0100
Subject: Improve PHPDocs html.php
---
inc/html.php | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index cda971f3d..05688e0aa 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -19,6 +19,7 @@ if(!defined('NL')) define('NL',"\n");
* @return string the HTML code of the link
*/
function html_wikilink($id,$name=null,$search=''){
+ /** @var Doku_Renderer_xhtml $xhtml_renderer */
static $xhtml_renderer = null;
if(is_null($xhtml_renderer)){
$xhtml_renderer = p_get_renderer('xhtml');
@@ -1410,6 +1411,12 @@ function html_diff_navigationlink($difftype, $linktype, $lrev, $rrev = null) {
'' . "\n";
}
+/**
+ * Insert soft breaks in diff html
+ *
+ * @param $diffhtml
+ * @return string
+ */
function html_insert_softbreaks($diffhtml) {
// search the diff html string for both:
// - html tags, so these can be ignored
@@ -1417,6 +1424,12 @@ function html_insert_softbreaks($diffhtml) {
return preg_replace_callback('/<[^>]*>|[^<> ]{12,}/','html_softbreak_callback',$diffhtml);
}
+/**
+ * callback which adds softbreaks
+ *
+ * @param array $match array with first the complete match
+ * @return string the replacement
+ */
function html_softbreak_callback($match){
// if match is an html tag, return it intact
if ($match[0]{0} == '<') return $match[0];
@@ -1528,7 +1541,7 @@ function html_updateprofile(){
global $conf;
global $INPUT;
global $INFO;
- /** @var auth_basic $auth */
+ /** @var DokuWiki_Auth_Plugin $auth */
global $auth;
print p_locale_xhtml('updateprofile');
@@ -1744,7 +1757,7 @@ function html_minoredit(){
function html_debug(){
global $conf;
global $lang;
- /** @var auth_basic $auth */
+ /** @var DokuWiki_Auth_Plugin $auth */
global $auth;
global $INFO;
--
cgit v1.2.3
From baf0c3e506eee97c63d130af88fe3547c31579cc Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Tue, 18 Feb 2014 21:59:16 +0100
Subject: extract navigation html to separated method
---
inc/html.php | 208 +++++++++++++++++++++++++++++++++--------------------------
1 file changed, 118 insertions(+), 90 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 05688e0aa..7d533282e 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1082,9 +1082,11 @@ function html_diff_head($l_rev, $r_rev, $id = null, $media = false, $inline = fa
/**
* Show diff
+ * between current page version and provided $text
+ * or between the revisions provided via GET or POST
*
* @author Andreas Gohr
- * @param string $text compare with this text with most current version
+ * @param string $text when non-empty: compare with this text with most current version
* @param bool $intro display the intro text
* @param string $type type of the diff (inline or sidebyside)
*/
@@ -1184,94 +1186,7 @@ function html_diff($text = '', $intro = true, $type = null) {
$l_nav = '';
$r_nav = '';
if(!$text) {
- $r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date']; //last timestamp is not in changelog
- //retrieve revisions with additional info
- list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
- $l_revisions = array();
- foreach($l_revs as $rev) {
- $info = $pagelog->getRevisionInfo($rev);
- $l_revisions[$rev] = array(
- $rev,
- dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
- $rev >= $r_rev //disable?
- );
- }
- $r_revisions = array();
- foreach($r_revs as $rev) {
- $info = $pagelog->getRevisionInfo($rev);
- $r_revisions[$rev] = array(
- $rev,
- dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
- $rev <= $l_rev //disable?
- );
- }
- //determine previous/next revisions
- $l_index = array_search($l_rev, $l_revs);
- $l_prev = $l_revs[$l_index + 1];
- $l_next = $l_revs[$l_index - 1];
- $r_index = array_search($r_rev, $r_revs);
- $r_prev = $r_revs[$r_index + 1];
- $r_next = $r_revs[$r_index - 1];
-
- //Left side:
- //move back
- if($l_prev) {
- $l_nav .= html_diff_navigationlink($type, 'diffbothprevrev', $l_prev, $r_prev);
- $l_nav .= html_diff_navigationlink($type, 'diffprevrev', $l_prev, $r_rev);
- }
- //dropdown
- $form = new Doku_Form(array('action' => wl()));
- $form->addHidden('id', $ID);
- $form->addHidden('difftype', $type);
- $form->addHidden('rev2[1]', $r_rev);
- $form->addHidden('do', 'diff');
- $form->addElement(
- form_makeListboxField(
- 'rev2[0]',
- $l_revisions,
- $l_rev,
- '', '', '',
- array('class' => 'quickselect')
- )
- );
- $form->addElement(form_makeButton('submit', 'diff', 'Go'));
- $l_nav .= $form->getForm();
- //move forward
- if($l_next < $r_rev) {
- $l_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_next, $r_rev);
- }
-
- //Right side:
- //move back
- if($l_rev < $r_prev) {
- $r_nav .= html_diff_navigationlink($type, 'diffprevrev', $l_rev, $r_prev);
- }
- //dropdown
- $form = new Doku_Form(array('action' => wl()));
- $form->addHidden('id', $ID);
- $form->addHidden('rev2[0]', $l_rev);
- $form->addHidden('difftype', $type);
- $form->addHidden('do', 'diff');
- $form->addElement(
- form_makeListboxField(
- 'rev2[1]',
- $r_revisions,
- $r_rev,
- '', '', '',
- array('class' => 'quickselect')
- )
- );
- $form->addElement(form_makeButton('submit', 'diff', 'Go'));
- $r_nav .= $form->getForm();
- //move forward
- if($r_next) {
- if($pagelog->isCurrentRevision($r_next)) {
- $r_nav .= html_diff_navigationlink($type, 'difflastrev', $l_rev); //last revision is diff with current page
- } else {
- $r_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_rev, $r_next);
- }
- $r_nav .= html_diff_navigationlink($type, 'diffbothnextrev', $l_next, $r_next);
- }
+ list($l_nav, $r_nav) = html_diff_navigation($pagelog, $type, $l_rev, $r_rev);
}
/*
* Create diff object and the formatter
@@ -1318,7 +1233,7 @@ function html_diff($text = '', $intro = true, $type = null) {
ptln('');
// link to exactly this view FS#2835
- html_diff_navigationlink($type, 'difflink', $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
+ echo html_diff_navigationlink($type, 'difflink', $l_rev, $r_rev ? $r_rev : $INFO['lastmod']);
ptln(' ');
ptln(''); // .diffoptions
@@ -1381,6 +1296,118 @@ function html_diff($text = '', $intro = true, $type = null) {
getRevisionsAround($l_rev, $r_rev);
+ $l_revisions = array();
+ foreach($l_revs as $rev) {
+ $info = $pagelog->getRevisionInfo($rev);
+ $l_revisions[$rev] = array(
+ $rev,
+ dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
+ $rev >= $r_rev //disable?
+ );
+ }
+ $r_revisions = array();
+ foreach($r_revs as $rev) {
+ $info = $pagelog->getRevisionInfo($rev);
+ $r_revisions[$rev] = array(
+ $rev,
+ dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
+ $rev <= $l_rev //disable?
+ );
+ }
+ //determine previous/next revisions
+ $l_index = array_search($l_rev, $l_revs);
+ $l_prev = $l_revs[$l_index + 1];
+ $l_next = $l_revs[$l_index - 1];
+ $r_index = array_search($r_rev, $r_revs);
+ $r_prev = $r_revs[$r_index + 1];
+ $r_next = $r_revs[$r_index - 1];
+
+
+ /*
+ * Left side:
+ */
+ $l_nav = '';
+ //move back
+ if($l_prev) {
+ $l_nav .= html_diff_navigationlink($type, 'diffbothprevrev', $l_prev, $r_prev);
+ $l_nav .= html_diff_navigationlink($type, 'diffprevrev', $l_prev, $r_rev);
+ }
+ //dropdown
+ $form = new Doku_Form(array('action' => wl()));
+ $form->addHidden('id', $ID);
+ $form->addHidden('difftype', $type);
+ $form->addHidden('rev2[1]', $r_rev);
+ $form->addHidden('do', 'diff');
+ $form->addElement(
+ form_makeListboxField(
+ 'rev2[0]',
+ $l_revisions,
+ $l_rev,
+ '', '', '',
+ array('class' => 'quickselect')
+ )
+ );
+ $form->addElement(form_makeButton('submit', 'diff', 'Go'));
+ $l_nav .= $form->getForm();
+ //move forward
+ if($l_next < $r_rev) {
+ $l_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_next, $r_rev);
+ }
+
+ /*
+ * Right side:
+ */
+ $r_nav = '';
+ //move back
+ if($l_rev < $r_prev) {
+ $r_nav .= html_diff_navigationlink($type, 'diffprevrev', $l_rev, $r_prev);
+ }
+ //dropdown
+ $form = new Doku_Form(array('action' => wl()));
+ $form->addHidden('id', $ID);
+ $form->addHidden('rev2[0]', $l_rev);
+ $form->addHidden('difftype', $type);
+ $form->addHidden('do', 'diff');
+ $form->addElement(
+ form_makeListboxField(
+ 'rev2[1]',
+ $r_revisions,
+ $r_rev,
+ '', '', '',
+ array('class' => 'quickselect')
+ )
+ );
+ $form->addElement(form_makeButton('submit', 'diff', 'Go'));
+ $r_nav .= $form->getForm();
+ //move forward
+ if($r_next) {
+ if($pagelog->isCurrentRevision($r_next)) {
+ $r_nav .= html_diff_navigationlink($type, 'difflastrev', $l_rev); //last revision is diff with current page
+ } else {
+ $r_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_rev, $r_next);
+ }
+ $r_nav .= html_diff_navigationlink($type, 'diffbothnextrev', $l_next, $r_next);
+ }
+ return array($l_nav, $r_nav);
+}
+
/**
* Create html link to a diff defined by two revisions
*
@@ -1715,6 +1742,7 @@ function html_edit(){
* Display the default edit form
*
* Is the default action for HTML_EDIT_FORMSELECTION.
+ * @param mixed[] $param
*/
function html_edit_form($param) {
global $TEXT;
--
cgit v1.2.3
From af59854ba94dae9584db04d5688dddb581503d33 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Tue, 18 Feb 2014 22:25:53 +0100
Subject: Check if revision is defined at all before comparing
---
inc/html.php | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 7d533282e..e7d401594 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1339,7 +1339,6 @@ function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
$r_prev = $r_revs[$r_index + 1];
$r_next = $r_revs[$r_index - 1];
-
/*
* Left side:
*/
@@ -1367,7 +1366,7 @@ function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
$form->addElement(form_makeButton('submit', 'diff', 'Go'));
$l_nav .= $form->getForm();
//move forward
- if($l_next < $r_rev) {
+ if($l_next && $l_next < $r_rev) {
$l_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_next, $r_rev);
}
--
cgit v1.2.3
From c130b0f8ec18ec66ac40422cf354a23268108866 Mon Sep 17 00:00:00 2001
From: Anika Henke
Date: Wed, 19 Feb 2014 01:34:14 +0000
Subject: improved positioning of diff options
---
inc/html.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index e7d401594..1a549824e 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1207,7 +1207,7 @@ function html_diff($text = '', $intro = true, $type = null) {
* Display type and exact reference
*/
if(!$text) {
- ptln('');
+ ptln(' ');
$form = new Doku_Form(array('action' => wl()));
--
cgit v1.2.3
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/html.php | 31 ++++++++++++++++++++++++-------
1 file changed, 24 insertions(+), 7 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 1a549824e..39d0eeada 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1308,21 +1308,27 @@ function html_diff($text = '', $intro = true, $type = null) {
function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
global $INFO, $ID;
- //last timestamp is not in changelog
+ //last timestamp is not in changelog (note: when page is removed, the metadata timestamp is zero as well)
$r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date'];
//retrieve revisions with additional info
list($l_revs, $r_revs) = $pagelog->getRevisionsAround($l_rev, $r_rev);
$l_revisions = array();
+ if(!$l_rev) {
+ $l_revisions[0] = array(0, "", false); //no left revision given, add dummy
+ }
foreach($l_revs as $rev) {
$info = $pagelog->getRevisionInfo($rev);
$l_revisions[$rev] = array(
$rev,
dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
- $rev >= $r_rev //disable?
+ $r_rev ? $rev >= $r_rev : false //disable?
);
}
$r_revisions = array();
+ if(!$r_rev) {
+ $r_revisions[0] = array(0, "", false); //no right revision given, add dummy
+ }
foreach($r_revs as $rev) {
$info = $pagelog->getRevisionInfo($rev);
$r_revisions[$rev] = array(
@@ -1331,13 +1337,24 @@ function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
$rev <= $l_rev //disable?
);
}
+
//determine previous/next revisions
$l_index = array_search($l_rev, $l_revs);
$l_prev = $l_revs[$l_index + 1];
$l_next = $l_revs[$l_index - 1];
- $r_index = array_search($r_rev, $r_revs);
- $r_prev = $r_revs[$r_index + 1];
- $r_next = $r_revs[$r_index - 1];
+ if($r_rev) {
+ $r_index = array_search($r_rev, $r_revs);
+ $r_prev = $r_revs[$r_index + 1];
+ $r_next = $r_revs[$r_index - 1];
+ } else {
+ //removed page
+ if($l_next) {
+ $r_prev = $r_revs[0];
+ } else {
+ $r_prev = null;
+ }
+ $r_next = null;
+ }
/*
* Left side:
@@ -1366,7 +1383,7 @@ function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
$form->addElement(form_makeButton('submit', 'diff', 'Go'));
$l_nav .= $form->getForm();
//move forward
- if($l_next && $l_next < $r_rev) {
+ if($l_next && ($l_next < $r_rev || !$r_rev)) {
$l_nav .= html_diff_navigationlink($type, 'diffnextrev', $l_next, $r_rev);
}
@@ -1418,7 +1435,7 @@ function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
*/
function html_diff_navigationlink($difftype, $linktype, $lrev, $rrev = null) {
global $ID, $lang;
- if($rrev === null) {
+ if(!$rrev) {
$urlparam = array(
'do' => 'diff',
'rev' => $lrev,
--
cgit v1.2.3
From 4d5954c8d1f8bcc5450f8cf70d8139cf5a1e697d Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Thu, 20 Feb 2014 14:03:29 +0100
Subject: improve comment in html_diff_navigation
---
inc/html.php | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 39d0eeada..2c7e8b1a6 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1308,7 +1308,8 @@ function html_diff($text = '', $intro = true, $type = null) {
function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
global $INFO, $ID;
- //last timestamp is not in changelog (note: when page is removed, the metadata timestamp is zero as well)
+ // last timestamp is not in changelog, retrieve timestamp from metadata
+ // note: when page is removed, the metadata timestamp is zero
$r_rev = $r_rev ? $r_rev : $INFO['meta']['last_change']['date'];
//retrieve revisions with additional info
--
cgit v1.2.3
From 01c9a118dacc1e2c07f2b0ddee84c514022e5927 Mon Sep 17 00:00:00 2001
From: Andreas Gohr
Date: Sun, 23 Feb 2014 09:54:47 +0100
Subject: have most current revision always available in $INFO
fixes fix for FS#2853
---
inc/html.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 0434f3b45..fcec29670 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1189,7 +1189,7 @@ function html_diff($text='',$intro=true,$type=null){
$diffurl = wl($ID, array(
'do' => 'diff',
'rev2[0]' => $l_rev,
- 'rev2[1]' => $r_rev ? $r_rev : $INFO['lastmod'], // link to exactly this view FS#2835
+ 'rev2[1]' => $r_rev ? $r_rev : $INFO['currentrev'], // link to exactly this view FS#2835
'difftype' => $type,
));
ptln(''.$lang['difflink'].' ');
--
cgit v1.2.3
From d59dea9fddf885a836f7dc2d8be1f93afb7e9542 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Tue, 25 Feb 2014 20:00:56 +0100
Subject: added new html_denied() method as well
---
inc/html.php | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index fcec29670..507ba511e 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -64,6 +64,25 @@ function html_login(){
print ''.NL;
}
+
+/**
+ * Denied page content
+ *
+ * @return string html
+ */
+function html_denied() {
+ global $lang;
+ $denied = p_locale_xhtml('denied');
+ $notloggedin = isset($_SERVER['REMOTE_USER']) ? '' : $lang['notloggedin'];
+
+ $denied = str_replace(
+ array('@NOTLOGGEDIN@'),
+ array($notloggedin),
+ $denied
+ );
+ print $denied;
+}
+
/**
* inserts section edit buttons if wanted or removes the markers
*
--
cgit v1.2.3
From f019ab46c33b430831053cd41b5b04a163fd529f Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Tue, 4 Mar 2014 21:27:10 +0100
Subject: added login form at denied access page
- restore lang string as well
---
inc/html.php | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 507ba511e..514f961e7 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -81,6 +81,10 @@ function html_denied() {
$denied
);
print $denied;
+
+ if(!$_SERVER['REMOTE_USER']){
+ html_login();
+ }
}
/**
--
cgit v1.2.3
From 0e80bb5e347ff00c6f81627d8e39dafaaa923bc5 Mon Sep 17 00:00:00 2001
From: Christopher Smith
Date: Wed, 5 Mar 2014 21:58:46 +0000
Subject: use empty() where array values might not be set
---
inc/html.php | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index fcec29670..41f26e5cd 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -691,7 +691,7 @@ function html_recent($first=0, $show_changes='both'){
$form->addElement(form_makeOpenTag('div', array('class' => 'li')));
- if ($recent['media']) {
+ if (!empty($recent['media'])) {
$form->addElement(media_printicon($recent['id']));
} else {
$icon = DOKU_BASE.'lib/images/fileicons/file.png';
@@ -705,7 +705,7 @@ function html_recent($first=0, $show_changes='both'){
$diff = false;
$href = '';
- if ($recent['media']) {
+ if (!empty($recent['media'])) {
$diff = (count(getRevisions($recent['id'], 0, 1, 8192, true)) && @file_exists(mediaFN($recent['id'])));
if ($diff) {
$href = media_managerURL(array('tab_details' => 'history',
@@ -715,7 +715,7 @@ function html_recent($first=0, $show_changes='both'){
$href = wl($recent['id'],"do=diff", false, '&');
}
- if ($recent['media'] && !$diff) {
+ if (!empty($recent['media']) && !$diff) {
$form->addElement(' ');
} else {
$form->addElement(form_makeOpenTag('a', array('class' => 'diff_link', 'href' => $href)));
@@ -729,7 +729,7 @@ function html_recent($first=0, $show_changes='both'){
$form->addElement(form_makeCloseTag('a'));
}
- if ($recent['media']) {
+ if (!empty($recent['media'])) {
$href = media_managerURL(array('tab_details' => 'history',
'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&');
} else {
@@ -745,7 +745,7 @@ function html_recent($first=0, $show_changes='both'){
)));
$form->addElement(form_makeCloseTag('a'));
- if ($recent['media']) {
+ if (!empty($recent['media'])) {
$href = media_managerURL(array('tab_details' => 'view', 'image' => $recent['id'], 'ns' => getNS($recent['id'])), '&');
$class = (file_exists(mediaFN($recent['id']))) ? 'wikilink1' : $class = 'wikilink2';
$form->addElement(form_makeOpenTag('a', array('class' => $class, 'href' => $href)));
--
cgit v1.2.3
From d1e9181ef12479db0c36d6d93f0ecff84523bf73 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Thu, 6 Mar 2014 23:50:05 +0100
Subject: removed 'not logged in' text, loginform is shown already
---
inc/html.php | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 514f961e7..4a355bdaf 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -71,16 +71,7 @@ function html_login(){
* @return string html
*/
function html_denied() {
- global $lang;
- $denied = p_locale_xhtml('denied');
- $notloggedin = isset($_SERVER['REMOTE_USER']) ? '' : $lang['notloggedin'];
-
- $denied = str_replace(
- array('@NOTLOGGEDIN@'),
- array($notloggedin),
- $denied
- );
- print $denied;
+ print p_locale_xhtml('denied');
if(!$_SERVER['REMOTE_USER']){
html_login();
--
cgit v1.2.3
From c006b6aa93675115413b85a83cbc0c8e3c0ce074 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Wed, 16 Apr 2014 13:41:55 +0200
Subject: use plaintext authornames in diff navigation dropdowns
---
inc/html.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 57a22b880..be7afae0c 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -1335,7 +1335,7 @@ function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
$info = $pagelog->getRevisionInfo($rev);
$l_revisions[$rev] = array(
$rev,
- dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
+ dformat($info['date']) . ' ' . editorinfo($info['user'], true) . ' ' . $info['sum'],
$r_rev ? $rev >= $r_rev : false //disable?
);
}
@@ -1347,7 +1347,7 @@ function html_diff_navigation($pagelog, $type, $l_rev, $r_rev) {
$info = $pagelog->getRevisionInfo($rev);
$r_revisions[$rev] = array(
$rev,
- dformat($info['date']) . ' ' . editorinfo($info['user']) . ' ' . $info['sum'],
+ dformat($info['date']) . ' ' . editorinfo($info['user'], true) . ' ' . $info['sum'],
$rev <= $l_rev //disable?
);
}
--
cgit v1.2.3
From fde860be8cb3ed16b2b0843b77b093a60397083e Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Fri, 16 May 2014 00:09:32 +0200
Subject: Move colon from code to language strings
---
inc/html.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index be7afae0c..1db181c49 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -411,8 +411,8 @@ function html_locked(){
print p_locale_xhtml('locked');
print '';
- print ''.$lang['lockedby'].': '.editorinfo($INFO['locked']).' ';
- print ''.$lang['lockexpire'].': '.$expire.' ('.$min.' min) ';
+ print ''.$lang['lockedby'].' '.editorinfo($INFO['locked']).' ';
+ print ''.$lang['lockexpire'].' '.$expire.' ('.$min.' min) ';
print ' ';
}
--
cgit v1.2.3
From 80679bafa1a5ed611bafc603afd0ae7b2b5954a7 Mon Sep 17 00:00:00 2001
From: Gerrit Uitslag
Date: Tue, 15 Jul 2014 16:01:11 +0200
Subject: add PHPDocs in html.php
---
inc/html.php | 8 ++++++++
1 file changed, 8 insertions(+)
(limited to 'inc/html.php')
diff --git a/inc/html.php b/inc/html.php
index 1db181c49..bda6fb398 100644
--- a/inc/html.php
+++ b/inc/html.php
@@ -922,6 +922,14 @@ function html_li_default($item){
* a member of an object.
*
* @author Andreas Gohr
+ *
+ * @param array $data array with item arrays
+ * @param string $class class of ul wrapper
+ * @param callable $func callback to print an list item
+ * @param string $lifunc callback to the opening li tag
+ * @param bool $forcewrapper Trigger building a wrapper ul if the first level is
+ 0 (we have a root object) or 1 (just the root content)
+ * @return string html of an unordered list
*/
function html_buildlist($data,$class,$func,$lifunc='html_li_default',$forcewrapper=false){
if (count($data) === 0) {
--
cgit v1.2.3
|