[Git][noosfero/noosfero][master] 2 commits: PiwikPulgin: Adds piwik link to user menu

Rodrigo Souto gitlab at mg.gitlab.com
Fri Nov 3 14:55:45 BRST 2017


Rodrigo Souto pushed to branch master at Noosfero / noosfero


Commits:
61e4d8b1 by Gabriel Silva at 2017-11-03T11:45:36-03:00
PiwikPulgin: Adds piwik link to user menu

Signed-off-by: Gabriel Silva <gabriel93.silva at gmail.com>

- - - - -
32b71242 by Rodrigo Souto at 2017-11-03T16:55:32+00:00
Merge branch 'piwik_link' into 'master'

PiwikPulgin: Adds piwik link to user menu

See merge request noosfero/noosfero!1340
- - - - -


4 changed files:

- plugins/piwik/lib/piwik_plugin.rb
- + plugins/piwik/public/images/piwik.png
- + plugins/piwik/public/style.scss
- + plugins/piwik/test/integration/user_menu_test.rb


Changes:

=====================================
plugins/piwik/lib/piwik_plugin.rb
=====================================
--- a/plugins/piwik/lib/piwik_plugin.rb
+++ b/plugins/piwik/lib/piwik_plugin.rb
@@ -13,6 +13,10 @@ class PiwikPlugin < Noosfero::Plugin
     _("Tracking and web analytics to your Noosfero's environment")
   end
 
+  def stylesheet?
+    true
+  end
+
   def body_ending
     domain = context.environment.piwik_domain
     site_id = context.environment.piwik_site_id
@@ -23,4 +27,19 @@ class PiwikPlugin < Noosfero::Plugin
     end
   end
 
+  def user_menu_items(user)
+    domain = context.environment.piwik_domain
+    if user.is_admin? && domain.present?
+      path = context.environment.piwik_path
+      id_site = context.environment.piwik_site_id
+      proc do
+        protocol = request.ssl? ? 'https' : 'http'
+        link_to "#{protocol}://#{domain}/#{path}?idSite=#{id_site}" do
+          content_tag('i', nil, class: 'icon-piwik') +
+          content_tag('strong', _('Piwik'))
+        end
+      end
+    end
+  end
+
 end


=====================================
plugins/piwik/public/images/piwik.png
=====================================
Binary files /dev/null and b/plugins/piwik/public/images/piwik.png differ


=====================================
plugins/piwik/public/style.scss
=====================================
--- /dev/null
+++ b/plugins/piwik/public/style.scss
@@ -0,0 +1,6 @@
+.icon-piwik {
+  background-image: url('/plugins/piwik/images/piwik.png');
+  background-size: 16px;
+  width: 16px;
+  height: 16px;
+}


=====================================
plugins/piwik/test/integration/user_menu_test.rb
=====================================
--- /dev/null
+++ b/plugins/piwik/test/integration/user_menu_test.rb
@@ -0,0 +1,52 @@
+require "test_helper"
+
+class AssetsMenuTest < ActionDispatch::IntegrationTest
+  def setup
+    @person = create_user('testuser', password: 'test').person
+    @environment = Environment.default
+
+    @environment.enable_plugin(PiwikPlugin)
+    @person.user.activate
+    login('testuser', 'test')
+  end
+
+  should 'not display link if piwik domain was not set' do
+    @environment.add_admin @person
+
+    get '/'
+    assert_no_tag 'a', attributes: { href: /piwik.org/ },
+                       ancestor: { tag: 'div', attributes: { id: 'user' } }
+  end
+
+  should 'not dsplay piwik link if the user is not admin' do
+    @environment.piwik_domain = 'piwik.org'
+    @environment.save
+
+    get '/'
+    assert_no_tag 'a', attributes: { href: /piwik.org/ },
+                       ancestor: { tag: 'div', attributes: { id: 'user' } }
+  end
+
+  should 'display piwik link with http if request does not use SSL' do
+    ActionDispatch::Request.any_instance.stubs(:ssl?).returns(false)
+    @environment.add_admin @person
+    @environment.piwik_domain = 'piwik.org'
+    @environment.save
+
+    get '/'
+    assert_tag 'a', attributes: { href: /http:\/\/piwik.org/ },
+                    ancestor: { tag: 'div', attributes: { id: 'user' } }
+  end
+
+  should 'display piwik link with https if request uses SSL' do
+    ActionDispatch::Request.any_instance.stubs(:ssl?).returns(true)
+    @environment.add_admin @person
+    @environment.piwik_domain = 'piwik.org'
+    @environment.save
+
+    get '/'
+    assert_tag 'a', attributes: { href: /https:\/\/piwik.org/ },
+                    ancestor: { tag: 'div', attributes: { id: 'user' } }
+  end
+
+end



View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/af969f549114723e5c684a2680648f0292dc20f3...32b7124200af02dc5287c28707cce4d929089a14

---
View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/af969f549114723e5c684a2680648f0292dc20f3...32b7124200af02dc5287c28707cce4d929089a14
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/20171103/fb9f3203/attachment-0001.html>


More information about the Noosfero-dev mailing list