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 95905cbe48caa3de7d6d809a8f0d0cffc9df4720 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 11 Aug 2013 12:18:38 +0200 Subject: make extension manager the default plugin This moves the old plugin manager down to the "other" plugins. It should probably be removed when when we decide the new one is good to go. --- 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 96c4eaa1a..00b929c75 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1710,12 +1710,12 @@ function html_admin(){ } unset($menu['acl']); - if($menu['plugin']){ + if($menu['extension']){ ptln('
  • '); + ''. + $menu['extension']['prompt'].''); } - unset($menu['plugin']); + unset($menu['extension']); if($menu['config']){ 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 e89b7c1e9d73d3a7ae9916d048a7ea43f56d279a Mon Sep 17 00:00:00 2001 From: Christopher Smith Date: Fri, 14 Feb 2014 17:37:42 +0000 Subject: Add Apache module list to ?do=debug information This should make it possible to see if mod_security is involved, at least on servers running mod_php. --- inc/html.php | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'inc/html.php') diff --git a/inc/html.php b/inc/html.php index 5941a9af2..928991ae2 100644 --- a/inc/html.php +++ b/inc/html.php @@ -1634,6 +1634,17 @@ function html_debug(){ print_r($inis); print ''; + if (function_exists('apache_get_version')) { + $apache['version'] = apache_get_version(); + + if (function_exists('apache_get_modules')) { + $apache['modules'] = apache_get_modules(); + } + print 'Apache
    ';
    +        print_r($apache);
    +        print '
    '; + } + print ''; } -- cgit v1.2.3 From 04032c735ec3e60ef6a82418ad3b35560e41c194 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 15 Feb 2014 15:48:06 +0100 Subject: when creating a diff link always link to exact rev FS#2835 --- 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 928991ae2..0434f3b45 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, + 'rev2[1]' => $r_rev ? $r_rev : $INFO['lastmod'], // link to exactly this view FS#2835 'difftype' => $type, )); ptln('

    '.$lang['difflink'].'

    '); -- 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