Adding language settings to config.php so that people can control the language output...
[viewsvn.git] / log.php
diff --git a/log.php b/log.php
index 8514335aa0321c31151b6d56657318284d15cca6..d7b3ac7100cd725264ae99adf3f2932a1d9ee6a7 100644 (file)
--- a/log.php
+++ b/log.php
@@ -2,7 +2,7 @@
 /*=====================================================================*\
 || ###################################################################
 || # ViewSVN [#]version[#]
-|| # Copyright ©2002-[#]year[#] Iris Studios, Inc.
+|| # Copyright ©2002-[#]year[#] Blue Static
 || #
 || # This program is free software; you can redistribute it and/or modify
 || # it under the terms of the GNU General Public License as published by
@@ -21,7 +21,9 @@
 
 $fetchtemplates = array(
        'log_node',
-       'log'
+       'log',
+       'pagenav_bit',
+       'pagenav'
 );
 
 define('SVN', '$Id$');
@@ -30,6 +32,28 @@ require_once('./global.php');
 
 $navbar = ConstructNavbar();
 
+$paginate = BSRegister::LoadModule('Pagination');
+
+function _PageBitCallback($baselink, $nolink, $number, $paginator)
+{
+       eval('$data = "' . BSRegister::Get('template')->fetch('pagenav_bit') . '";');
+       return $data;
+}
+
+function _PageNavCallback($baselink, $nextpage, $prevpage, $show, $pagebits, $paginator)
+{
+       eval('$data = "' . BSRegister::Get('template')->fetch('pagenav') . '";');
+       return $data;
+}
+
+$paginate->setPageLinks(2);
+$paginate->setPageVar('p');
+$paginate->setMaxPerPage(20);
+$paginate->setDefaultPerPage(20);
+$paginate->setBitProcessor('_PageBitCallback');
+$paginate->setNavigatorProcessor('_PageNavCallback');
+$paginate->processIncomingData();
+
 // ###################################################################
 
 $logs = BSXml::Parse($lib->run('log --xml ' . $lib->arg($repos->fetchPath($input->in['repos']) . '/' . $input->in['path']), true));
@@ -38,8 +62,16 @@ $nodes = '';
 
 BSXml::UnifyNode($logs['log']['logentry']);
 
-foreach ($logs['log']['logentry'] AS $index => $log)
+$paginate->setTotal(sizeof($logs['log']['logentry']));
+$paginate->splitPages();
+
+$i = $paginate->fetchLimit() - $paginate->getPerPage();
+$i = ($i <= 0 ? 0: $i);
+for (; $i < $paginate->fetchLimit($paginate->getPage()); $i++)
 {
+
+       $log = $logs['log']['logentry'][$i];
+       
        $log['author'] = $log['author']['value'];
        $log['date'] = FormatSvnDate($log['date']['value']);
        $log['message_clean'] = FormatLogMessage($log['msg']['value']);
@@ -51,6 +83,8 @@ foreach ($logs['log']['logentry'] AS $index => $log)
        eval('$nodes .= "' . $template->fetch('log_node') . '";');
 }
 
+$pagenav = $paginate->constructPageNav(ConstructLink('log', $input->in['repos'], $input->in['path'], 0) . '&amp;', false);
+
 // ###################################################################
 
 eval('$template->flush("' . $template->fetch('log') . '");');