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