[Git][noosfero/noosfero][master] 2 commits: newsletter-plugins: dont display mailing public link on newsletter view
Rodrigo Souto
gitlab at mg.gitlab.com
Mon Sep 24 09:42:32 BRT 2018
Rodrigo Souto pushed to branch master at Noosfero / noosfero
Commits:
0c0da6a8 by Rodrigo Souto at 2018-09-21T13:39:32Z
newsletter-plugins: dont display mailing public link on newsletter view
- - - - -
35d29105 by Rodrigo Souto at 2018-09-24T12:42:26Z
Merge branch 'newsletter-mailing-link' into 'master'
Newsletter mailing link
See merge request noosfero/noosfero!1614
- - - - -
6 changed files:
- plugins/newsletter/features/newsletter_plugin.feature
- plugins/newsletter/lib/newsletter_plugin.rb
- plugins/newsletter/lib/newsletter_plugin/moderate_newsletter.rb
- plugins/newsletter/lib/newsletter_plugin/newsletter.rb
- plugins/newsletter/test/unit/newsletter_plugin_newsletter_mailing_test.rb
- plugins/newsletter/test/unit/newsletter_plugin_test.rb
Changes:
=====================================
plugins/newsletter/features/newsletter_plugin.feature
=====================================
@@ -22,8 +22,8 @@ Feature: newsletter plugin
When I go to the environment control panel
And I follow "Plugins"
And I follow "Configuration"
- And I follow "Save and visualize"
- Then I should see "If you can't view this email, click here"
+ When I follow "Save and visualize"
+ Then I should see "cancel your subscription here"
And I should not see "Newsletter settings"
@selenium
=====================================
plugins/newsletter/lib/newsletter_plugin.rb
=====================================
@@ -28,7 +28,7 @@ class NewsletterPlugin < Noosfero::Plugin
mailing = NewsletterPlugin::NewsletterMailing.create!(
:source => newsletter,
:subject => newsletter.subject,
- :body => newsletter.body,
+ :body => newsletter.body(mailing: true),
:person => newsletter.person,
:locale => newsletter.environment.default_locale,
)
=====================================
plugins/newsletter/lib/newsletter_plugin/moderate_newsletter.rb
=====================================
@@ -12,7 +12,7 @@ class NewsletterPlugin::ModerateNewsletter < Task
mailing = NewsletterPlugin::NewsletterMailing.create!(
:source => newsletter,
:subject => newsletter.subject,
- :body => newsletter.body(:post_ids => self.post_ids.reject{|id| id.to_i.zero?}),
+ :body => newsletter.body(mailing: true, :post_ids => self.post_ids.reject{|id| id.to_i.zero?}),
:person => newsletter.person,
:locale => newsletter.environment.default_locale,
)
=====================================
plugins/newsletter/lib/newsletter_plugin/newsletter.rb
=====================================
@@ -122,6 +122,10 @@ class NewsletterPlugin::Newsletter < ApplicationRecord
content_tag(:p, (_("If you can't view this email, %s.") % link_to(_('click here'), '{mailing_url}')).html_safe, :id => 'newsletter-public-link').html_safe
end
+ def public_view_link
+ content_tag(:div, message_to_public_link, :style => CSS['newsletter-public-link'])
+ end
+
def message_to_unsubscribe
content_tag(:div, _("This is an automatically generated email, please do not reply. If you do not wish to receive future newsletter emails, %s.").html_safe % link_to(_("cancel your subscription here"), self.unsubscribe_url, :style => CSS['public-link']), :style => CSS['newsletter-unsubscribe'], :id => 'newsletter-unsubscribe').html_safe
end
@@ -139,7 +143,8 @@ class NewsletterPlugin::Newsletter < ApplicationRecord
end
def body(data = {})
- content_tag(:div, content_tag(:div, message_to_public_link, :style => CSS['newsletter-public-link']).html_safe+content_tag(:table,(self.image.nil? ? '' : content_tag(:tr, content_tag(:th, tag(:img, :src => "#{self.environment.top_url}#{self.image.public_filename}", :style => CSS['header-image']),:colspan => 2),:style => CSS['newsletter-header'])).html_safe+self.posts(data).map do |post|
+ mailing_link = data[:mailing] ? public_view_link : ''
+ content_tag(:div, mailing_link.html_safe+content_tag(:table,(self.image.nil? ? '' : content_tag(:tr, content_tag(:th, tag(:img, :src => "#{self.environment.top_url}#{self.image.public_filename}", :style => CSS['header-image']),:colspan => 2),:style => CSS['newsletter-header'])).html_safe+self.posts(data).map do |post|
if post.image
post_with_image(post)
else
=====================================
plugins/newsletter/test/unit/newsletter_plugin_newsletter_mailing_test.rb
=====================================
@@ -25,7 +25,7 @@ class NewsletterPluginNewsletterMailingTest < ActiveSupport::TestCase
mailing = NewsletterPlugin::NewsletterMailing.create!(
:source => newsletter,
:subject => newsletter.subject,
- :body => newsletter.body,
+ :body => newsletter.body(mailing: true),
:person => newsletter.person,
:locale => environment.default_locale,
)
@@ -44,7 +44,7 @@ class NewsletterPluginNewsletterMailingTest < ActiveSupport::TestCase
mailing = NewsletterPlugin::NewsletterMailing.create!(
:source => newsletter,
:subject => newsletter.subject,
- :body => newsletter.body,
+ :body => newsletter.body(mailing: true),
:person => newsletter.person,
:locale => newsletter.environment.default_locale,
)
@@ -62,7 +62,7 @@ class NewsletterPluginNewsletterMailingTest < ActiveSupport::TestCase
mailing = NewsletterPlugin::NewsletterMailing.create!(
:source => newsletter,
:subject => newsletter.subject,
- :body => newsletter.body,
+ :body => newsletter.body(mailing: true),
:person => newsletter.person,
:locale => newsletter.environment.default_locale,
)
@@ -79,7 +79,7 @@ class NewsletterPluginNewsletterMailingTest < ActiveSupport::TestCase
mailing = NewsletterPlugin::NewsletterMailing.create!(
:source => newsletter,
:subject => newsletter.subject,
- :body => newsletter.body,
+ :body => newsletter.body(mailing: true),
:person => newsletter.person,
:locale => newsletter.environment.default_locale,
)
=====================================
plugins/newsletter/test/unit/newsletter_plugin_test.rb
=====================================
@@ -110,4 +110,24 @@ class NewsletterPluginTest < ActiveSupport::TestCase
end
end
+ should 'not include mailing public view link on newsletter body' do
+ newsletter = NewsletterPlugin::Newsletter.create!(
+ :environment => fast_create(Environment),
+ :enabled => true,
+ :subject => 'newsletter test',
+ :person => fast_create(Person))
+
+ assert_no_match /\{mailing_url\}/, newsletter.body(mailing: false)
+ end
+
+ should 'include mailing public view link on mailing body' do
+ newsletter = NewsletterPlugin::Newsletter.create!(
+ :environment => fast_create(Environment),
+ :enabled => true,
+ :subject => 'newsletter test',
+ :person => fast_create(Person))
+
+ assert_match /\{mailing_url\}/, newsletter.body(mailing: true)
+ end
+
end
View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/ad4c0723e801e3b9d3ba20a7be8328c02d30134e...35d29105592f273727a5a4f79c4fdca3f2665d81
--
View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/ad4c0723e801e3b9d3ba20a7be8328c02d30134e...35d29105592f273727a5a4f79c4fdca3f2665d81
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20180924/61f6d9f5/attachment-0001.html>
More information about the Noosfero-dev
mailing list