Index: trunk/extensions/CodeReview/SpecialCode.php |
— | — | @@ -40,9 +40,11 @@ |
41 | 41 | } elseif( $params[1] === 'comments' ) { |
42 | 42 | $view = new CodeCommentsListView( $params[0] ); |
43 | 43 | break; |
| 44 | + } elseif( $params[1] === 'path' ) { |
| 45 | + $view = new CodePathRevListView( $params[0] ); |
| 46 | + break; |
44 | 47 | } else { |
45 | | - # Nonsense parameters, back out |
46 | | - $view = new CodeRevisionListView( $params[0] ); |
| 48 | + $view = new CodeRevisionView( $params[0], $params[1] ); |
47 | 49 | break; |
48 | 50 | } |
49 | 51 | case 3: |
Index: trunk/extensions/CodeReview/CodeRevisionListView.php |
— | — | @@ -12,7 +12,6 @@ |
13 | 13 | $this->mPath = "/{$this->mPath}"; // make sure this is a valid path |
14 | 14 | } |
15 | 15 | $this->mAuthor = null; |
16 | | - $this->mStatus = null; |
17 | 16 | } |
18 | 17 | |
19 | 18 | function execute() { |
— | — | @@ -36,10 +35,8 @@ |
37 | 36 | global $wgOut, $wgScript; |
38 | 37 | if( $this->mAuthor ) { |
39 | 38 | $special = SpecialPage::getTitleFor( 'Code', $this->mRepo->getName().'/author/'.$this->mAuthor ); |
40 | | - } else if( $this->mStatus ) { |
41 | | - $special = SpecialPage::getTitleFor( 'Code', $this->mRepo->getName().'/status/'.$this->mStatus ); |
42 | 39 | } else { |
43 | | - $special = SpecialPage::getTitleFor( 'Code', $this->mRepo->getName() ); |
| 40 | + $special = SpecialPage::getTitleFor( 'Code', $this->mRepo->getName().'/path' ); |
44 | 41 | } |
45 | 42 | $wgOut->addHTML( |
46 | 43 | Xml::openElement( 'form', array( 'action' => $wgScript, 'method' => 'get' ) ) . |
Index: trunk/extensions/CodeReview/CodePathRevListView.php |
— | — | @@ -0,0 +1,45 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +// Special:Code/MediaWiki |
| 5 | +class CodePathRevListView extends CodeRevisionListView { |
| 6 | + function __construct( $repoName ) { |
| 7 | + parent::__construct( $repoName ); |
| 8 | + } |
| 9 | + |
| 10 | + function execute() { |
| 11 | + global $wgOut; |
| 12 | + if( !$this->mRepo ) { |
| 13 | + $view = new CodeRepoListView(); |
| 14 | + $view->execute(); |
| 15 | + return; |
| 16 | + } |
| 17 | + // No path! Use regular lister! |
| 18 | + if( !$this->mPath ) { |
| 19 | + $view = new CodeRevisionListView( $this->mRepo->getName() ); |
| 20 | + $view->execute(); |
| 21 | + return; |
| 22 | + } |
| 23 | + $this->showForm(); |
| 24 | + // Path should have a bit of length... |
| 25 | + if( strlen($this->mPath) > 3 ) { |
| 26 | + $pager = $this->getPager(); |
| 27 | + $wgOut->addHTML( |
| 28 | + $pager->getNavigationBar() . |
| 29 | + $pager->getLimitForm() . |
| 30 | + $pager->getBody() . |
| 31 | + $pager->getNavigationBar() |
| 32 | + ); |
| 33 | + } |
| 34 | + } |
| 35 | + |
| 36 | + function getPager() { |
| 37 | + return new SvnPathRevTablePager( $this ); |
| 38 | + } |
| 39 | +} |
| 40 | + |
| 41 | +// Pager for CodeRevisionListView |
| 42 | +class SvnPathRevTablePager extends SvnRevTablePager { |
| 43 | + function getTitle() { |
| 44 | + return SpecialPage::getTitleFor( 'Code', $this->mRepo->getName() . '/path' ); |
| 45 | + } |
| 46 | +} |
Property changes on: trunk/extensions/CodeReview/CodePathRevListView.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 47 | + native |
Index: trunk/extensions/CodeReview/CodeReview.php |
— | — | @@ -19,7 +19,7 @@ |
20 | 20 | |
21 | 21 | 1) Find out what revisions exist |
22 | 22 | 2) Get id/author/timestamp/notice basics |
23 | | -3) base path helps if available |
| 23 | + 3) base path helps if available |
24 | 24 | 4) get list of affected files |
25 | 25 | 5) get diffs |
26 | 26 | |
— | — | @@ -54,6 +54,7 @@ |
55 | 55 | $wgAutoloadClasses['CodeRevisionView'] = $dir . 'CodeRevisionView.php'; |
56 | 56 | $wgAutoloadClasses['CodeAuthorListView'] = $dir . 'CodeAuthorListView.php'; |
57 | 57 | $wgAutoloadClasses['CodeStatusListView'] = $dir . 'CodeStatusListView.php'; |
| 58 | +$wgAutoloadClasses['CodePathRevListView'] = $dir . 'CodePathRevListView.php'; |
58 | 59 | $wgAutoloadClasses['CodeTagListView'] = $dir . 'CodeTagListView.php'; |
59 | 60 | $wgAutoloadClasses['CodeCommentsListView'] = $dir . 'CodeCommentsListView.php'; |
60 | 61 | $wgAutoloadClasses['CodeComment'] = $dir . 'CodeComment.php'; |