Tpt has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/90741


Change subject: Move rendering of Page: pages to ProofreadPageViewAction
......................................................................

Move rendering of Page: pages to ProofreadPageViewAction

Change-Id: I6ad5d7488e47d9c3184d5d2a9e4bb9aae67166eb
---
M ProofreadPage.body.php
M ProofreadPage.php
M includes/page/EditProofreadPagePage.php
M includes/page/ProofreadPageContent.php
M includes/page/ProofreadPageContentHandler.php
M includes/page/ProofreadPagePage.php
A includes/page/ProofreadPageViewAction.php
7 files changed, 107 insertions(+), 45 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ProofreadPage 
refs/changes/41/90741/1

diff --git a/ProofreadPage.body.php b/ProofreadPage.body.php
index 3156ffe..242037b 100644
--- a/ProofreadPage.body.php
+++ b/ProofreadPage.body.php
@@ -198,14 +198,7 @@
                $out->proofreadPageDone = true;
                $title = $out->getTitle();
 
-               if ( $title->inNamespace( self::getPageNamespaceId() ) ) {
-                       //TODO move it somewhere better
-                       $page = ProofreadPagePage::newFromTitle( $title );
-                       $content = $page->getContent();
-                       $out->addJsConfigVars( array(
-                               'prpPageQuality' => 
$content->getLevel()->getLevel()
-                       ) );
-               } elseif ( $title->inNamespace( self::getIndexNamespaceId() ) ) 
{
+               if ( $title->inNamespace( self::getIndexNamespaceId() ) ) {
                        if( !$isEdit ) {
                                $out->addModuleStyles( 'ext.proofreadpage.base' 
);
                        }
diff --git a/ProofreadPage.php b/ProofreadPage.php
index 7b579b1..c51d630 100644
--- a/ProofreadPage.php
+++ b/ProofreadPage.php
@@ -59,6 +59,7 @@
 $wgAutoloadClasses['ProofreadPageContent'] = 
$dir.'includes/page/ProofreadPageContent.php';
 $wgAutoloadClasses['ProofreadPageLevel'] = 
$dir.'includes/page/ProofreadPageLevel.php';
 $wgAutoloadClasses['ProofreadPageContentHandler'] = 
$dir.'includes/page/ProofreadPageContentHandler.php';
+$wgAutoloadClasses['ProofreadPageViewAction'] = $dir . 
'includes/page/ProofreadPageViewAction.php';
 
 $wgExtensionCredits['other'][] = array(
        'path'           => __FILE__,
diff --git a/includes/page/EditProofreadPagePage.php 
b/includes/page/EditProofreadPagePage.php
index a61a85b..fe4178a 100644
--- a/includes/page/EditProofreadPagePage.php
+++ b/includes/page/EditProofreadPagePage.php
@@ -82,20 +82,20 @@
                $content = $page->getContentForEdition();
 
                $wgOut->addHTML(
-                       $page->createPageContainer(
-                               Html::openElement( 'div', array( 'class' => 
'prp-page-edit-header' ) ) .
-                               Html::element( 'label', array( 'for' => 
'wpHeaderTextbox' ), wfMessage( 'proofreadpage_header' )->text() ) .
-                               Html::textarea( 'wpHeaderTextbox', 
$content->getHeader()->serialize(), $headerAttributes ) .
-                               Html::closeElement( 'div' ) .
-                               Html::openElement( 'div', array( 'class' => 
'prp-page-edit-body' ) ) .
-                               Html::element( 'label', array( 'for' => 
'wpTextbox1' ), wfMessage( 'proofreadpage_body' )->text() ) .
-                               Html::textarea( 'wpTextbox1', 
$content->getBody()->serialize(), $bodyAttributes ) .
-                               Html::closeElement( 'div' ) .
-                               Html::openElement( 'div', array( 'class' => 
'prp-page-edit-footer' ) ) .
-                               Html::element( 'label', array( 'for' => 
'wpFooterTextbox' ), wfMessage( 'proofreadpage_footer' )->text() ) .
-                               Html::textarea( 'wpFooterTextbox', 
$content->getFooter()->serialize(), $footerAttributes ) .
-                               Html::closeElement( 'div' )
-                       )
+                       $page->getPageContainerBegin() .
+                       Html::openElement( 'div', array( 'class' => 
'prp-page-edit-header' ) ) .
+                       Html::element( 'label', array( 'for' => 
'wpHeaderTextbox' ), wfMessage( 'proofreadpage_header' )->text() ) .
+                       Html::textarea( 'wpHeaderTextbox', 
$content->getHeader()->serialize(), $headerAttributes ) .
+                       Html::closeElement( 'div' ) .
+                       Html::openElement( 'div', array( 'class' => 
'prp-page-edit-body' ) ) .
+                       Html::element( 'label', array( 'for' => 'wpTextbox1' ), 
wfMessage( 'proofreadpage_body' )->text() ) .
+                       Html::textarea( 'wpTextbox1', 
$content->getBody()->serialize(), $bodyAttributes ) .
+                       Html::closeElement( 'div' ) .
+                       Html::openElement( 'div', array( 'class' => 
'prp-page-edit-footer' ) ) .
+                       Html::element( 'label', array( 'for' => 
'wpFooterTextbox' ), wfMessage( 'proofreadpage_footer' )->text() ) .
+                       Html::textarea( 'wpFooterTextbox', 
$content->getFooter()->serialize(), $footerAttributes ) .
+                       Html::closeElement( 'div' ) .
+                       $page->getPageContainerEnd()
                );
                $wgOut->addModules( 'ext.proofreadpage.page.edit' );
        }
diff --git a/includes/page/ProofreadPageContent.php 
b/includes/page/ProofreadPageContent.php
index 11fb4d3..fa26c99 100644
--- a/includes/page/ProofreadPageContent.php
+++ b/includes/page/ProofreadPageContent.php
@@ -235,7 +235,6 @@
                if ( $options === null ) {
                        $options = 
$this->getContentHandler()->makeParserOptions( 'canonical' );
                }
-               $page = new ProofreadPagePage( $title, $this );
 
                //create content
                $wikitextContent = new WikitextContent(
@@ -247,32 +246,18 @@
                        $title->getText()
                );
 
-               //add dependencies on the image and on the index
-               $index = $page->getIndex();
-               if ( $index ) {
-                       $indexTitle = $index->getTitle();
-                       $parserOutput->addTemplate( $indexTitle, 
$indexTitle->getArticleID(), $indexTitle->getLatestRevID() );
-               }
-               $image = $page->getImage();
-               if ( $image ) {
-                       $parserOutput->addImage( 
$image->getTitle()->getDBkey(), $image->getTimestamp(), $image->getSha1() );
-               }
 
-               //page html
+               //html container
                $html = Html::openElement( 'div', array( 'class' => 
'prp-page-qualityheader quality' . $this->level->getLevel() ) ) .
                        wfMessage( 'proofreadpage_quality' . 
$this->level->getLevel() . '_message' )->inContentLanguage()->parse() .
                        Html::closeElement( 'div' ) .
                        Html::openElement( 'div', array( 'class' => 'pagetext' 
) ) .
                        $parserOutput->getText() .
                        Html::closeElement( 'div' );
-               $parserOutput->setText( $page->createPageContainer( $html ) );
+               $parserOutput->setText( $html );
 
                //add modules
-               $parserOutput->addModules( 'ext.proofreadpage.page' );
-               $parserOutput->addModuleStyles( array(
-                       'ext.proofreadpage.base',
-                       'ext.proofreadpage.page'
-               ) );
+               $parserOutput->addModuleStyles( 'ext.proofreadpage.base' );
 
                return $parserOutput;
        }
diff --git a/includes/page/ProofreadPageContentHandler.php 
b/includes/page/ProofreadPageContentHandler.php
index 3f0d755..f81b6d9 100644
--- a/includes/page/ProofreadPageContentHandler.php
+++ b/includes/page/ProofreadPageContentHandler.php
@@ -110,6 +110,15 @@
        }
 
        /**
+        * @see ContentHandler::getActionOverrides
+        */
+       public function getActionOverrides() {
+               return array(
+                       'view' => 'ProofreadPageViewAction'
+               );
+       }
+
+       /**
         * @see ContentHandler::makeEmptyContent
         */
        public function makeEmptyContent() {
diff --git a/includes/page/ProofreadPagePage.php 
b/includes/page/ProofreadPagePage.php
index 2f3c14e..953a0e8 100644
--- a/includes/page/ProofreadPagePage.php
+++ b/includes/page/ProofreadPagePage.php
@@ -236,15 +236,21 @@
        }
 
        /**
-        * Embed the page content into a container and add the image
-        * @param string $content html content of the page
+        * Return the part of the page container that is before page content
         * @return string
         */
-       public function createPageContainer( $content ) {
+       public function getPageContainerBegin() {
                return
                        Html::openElement( 'div', array( 'class' => 
'prp-page-container' )  ) .
-                       Html::openElement( 'div', array( 'class' => 
'prp-page-content' ) ) .
-                       $content .
+                       Html::openElement( 'div', array( 'class' => 
'prp-page-content' ) );
+       }
+
+       /**
+        * Return the part of the page container that after page cnotent
+        * @return string
+        */
+       public function getPageContainerEnd() {
+               return
                        Html::closeElement( 'div' ) .
                        Html::openElement( 'div', array( 'class' => 
'prp-page-image' ) ) .
                        $this->getImageHtml( array( 'max-width' => 800 ) ) .
diff --git a/includes/page/ProofreadPageViewAction.php 
b/includes/page/ProofreadPageViewAction.php
new file mode 100644
index 0000000..b489fc2
--- /dev/null
+++ b/includes/page/ProofreadPageViewAction.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup ProofreadPage
+ */
+
+/**
+ * ViewAction for a Page: page
+ */
+class ProofreadPageViewAction extends ViewAction {
+
+       /**
+        * @see FormlessAction::show()
+        */
+       public function show() {
+               $out = $this->getOutput();
+               $title = $this->page->getTitle();
+               if ( !$title->inNamespace( ProofreadPage::getPageNamespaceId() 
) ||
+                       $out->isPrintable() ||
+                       $this->getContext()->getRequest()->getCheck( 'diff' )
+               ) {
+                       $this->page->view();
+                       return;
+               }
+
+               $wikiPage = $this->page->getPage();
+               $content = $wikiPage->getContent( Revision::FOR_THIS_USER, 
$this->getUser() );
+               if ( $content === null ||
+                       $content->getModel() !== CONTENT_MODEL_PROOFREAD_PAGE ||
+                       $content->isRedirect()
+               ) {
+                       $this->page->view();
+                       return;
+               }
+               $page = new ProofreadPagePage( $wikiPage->getTitle(), $content 
);
+               $out = $this->getOutput();
+
+               //render HTML
+               $out->addHTML( $page->getPageContainerBegin() );
+               $this->page->view();
+               $out->addHTML( $page->getPageContainerEnd() );
+
+               //add modules
+               $out->addModules( 'ext.proofreadpage.page' );
+               $out->addModuleStyles( array(
+                       'ext.proofreadpage.base',
+                       'ext.proofreadpage.page'
+               ) );
+               $out->addJsConfigVars( array(
+                       'prpPageQuality' => $content->getLevel()->getLevel()
+               ) );
+       }
+}
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/90741
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6ad5d7488e47d9c3184d5d2a9e4bb9aae67166eb
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ProofreadPage
Gerrit-Branch: pagePagesRefactoring
Gerrit-Owner: Tpt <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to