jenkins-bot has submitted this change and it was merged.

Change subject: Add in NewsletterDiffEngine to explore history
......................................................................


Add in NewsletterDiffEngine to explore history

Bug: T138462
Change-Id: I2dcc79762f8e129996e8f5f5dd6c568b0144102e
---
M extension.json
A includes/content/NewsletterDiffEngine.php
2 files changed, 65 insertions(+), 0 deletions(-)

Approvals:
  01tonythomas: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/extension.json b/extension.json
index 740310f..6876d65 100644
--- a/extension.json
+++ b/extension.json
@@ -83,6 +83,7 @@
                "ApiNewsletterSubscribe": 
"includes/api/ApiNewsletterSubscribe.php",
                "NewsletterContent": "includes/content/NewsletterContent.php",
                "NewsletterContentHandler": 
"includes/content/NewsletterContentHandler.php",
+               "NewsletterDiffEngine": 
"includes/content/NewsletterDiffEngine.php",
                "NewsletterDeletionUpdate": 
"includes/content/NewsletterDeletionUpdate.php",
                "EchoNewsletterUserLocator": 
"includes/Echo/EchoNewsletterUserLocator.php",
                "EchoNewsletterFormatter": 
"includes/Echo/EchoNewsletterFormatter.php",
diff --git a/includes/content/NewsletterDiffEngine.php 
b/includes/content/NewsletterDiffEngine.php
new file mode 100644
index 0000000..939c81d
--- /dev/null
+++ b/includes/content/NewsletterDiffEngine.php
@@ -0,0 +1,64 @@
+<?php
+
+class NewsletterDiffEngine extends DifferenceEngine {
+       public function generateContentDiffBody( Content $old, Content $new ) {
+               if ( !( $old instanceof NewsletterContent )
+                       || !( $new instanceof NewsletterContent ) ) {
+                       throw new Exception( 'Cannot diff content types other 
than NewsletterContent' );
+               }
+
+               $output = '';
+
+               $descDiff = $this->generateTextDiffBody(
+                       $old->getDescription(), $new->getDescription()
+               );
+
+               if ( $descDiff ) {
+                       if ( trim( $descDiff ) !== '' ) {
+                               $output .= Html::openElement( 'tr' );
+                               $output .= Html::openElement( 'td',
+                                       [ 'colspan' => 4, 'id' => 
'mw-newsletter-diffdescheader' ] );
+                               $output .= Html::element( 'h4', [],
+                                       $this->msg( 
'newsletter-diff-descheader' )->text() );
+                               $output .= Html::closeElement( 'td' );
+                               $output .= Html::closeElement( 'tr' );
+                               $output .= $descDiff;
+                       }
+               }
+
+               $mainPageDiff = $this->generateTextDiffBody(
+                       $old->getMainPage(), $new->getMainPage()
+               );
+
+               if ( $mainPageDiff ) {
+                       if( trim( $mainPageDiff ) !== '' ) {
+                               $output .= Html::openElement( 'tr' );
+                               $output .= Html::openElement( 'td',
+                                       [ 'colspan' => 4, 'id' => 
'mw-newsletter-diffmainpageheader' ] );
+                               $output .= Html::element( 'h4', [],
+                                       $this->msg( 
'newsletter-diff-mainpageheader' )->text() );
+                               $output .= Html::closeElement( 'td' );
+                               $output .= Html::closeElement( 'tr' );
+                               $output .= $mainPageDiff;
+                       }
+               }
+
+               $publishersDiff = $this->generateTextDiffBody(
+                       implode( $old->getPublishers(), "\n" ),
+                       implode( $new->getPublishers(), "\n" )
+               );
+
+               if ( trim( $publishersDiff ) !== '' ) {
+                       $output .= Html::openElement( 'tr' );
+                       $output .= Html::openElement( 'td',
+                               [ 'colspan' => 4, 'id' => 
'mw-massmessage-diffpublishersheader' ] );
+                       $output .= Html::element( 'h4', [],
+                               $this->msg( 'massmessage-diff-publishersheader' 
)->text() );
+                       $output .= Html::closeElement( 'td' );
+                       $output .= Html::closeElement( 'tr' );
+                       $output .= $publishersDiff;
+               }
+
+               return $output;
+       }
+}
\ No newline at end of file

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I2dcc79762f8e129996e8f5f5dd6c568b0144102e
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Newsletter
Gerrit-Branch: master
Gerrit-Owner: 01tonythomas <[email protected]>
Gerrit-Reviewer: 01tonythomas <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to