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