From 65d98197430a523119f60aa3246db2031e15362c Mon Sep 17 00:00:00 2001 From: Zoltan Flamis Date: Fri, 21 May 2021 11:19:45 +1200 Subject: Modiy refer banner (#17598) --- plugins/Feedback/Feedback.php | 31 +++++++---- .../refer-banner/refer-banner.controller.js | 37 ++++++++----- .../refer-banner/refer-banner.directive.html | 63 +++++++++++----------- .../refer-banner/refer-banner.directive.less | 53 ++++++------------ plugins/Feedback/lang/en.json | 9 ++-- .../Feedback/tests/Integration/FeedbackTest.php | 9 +--- .../Feedback/tests/Integration/ReferBannerTest.php | 4 +- .../UI/expected-screenshots/FeedbackForm_show.png | 4 +- .../FeedbackPopup_feedback_popup.png | 4 +- .../ReferBannerTest_feedback_popup.png | 4 +- 10 files changed, 106 insertions(+), 112 deletions(-) (limited to 'plugins/Feedback') diff --git a/plugins/Feedback/Feedback.php b/plugins/Feedback/Feedback.php index dbbd2dd7ad..9ba74d2dac 100644 --- a/plugins/Feedback/Feedback.php +++ b/plugins/Feedback/Feedback.php @@ -12,7 +12,7 @@ use Piwik\Date; use Piwik\View; use Piwik\Piwik; use Piwik\Common; -use Piwik\Plugins\UsersManager\Model; +use Piwik\Plugin\Manager as PluginManager; use Piwik\Plugins\Feedback\FeedbackReminder; /** @@ -74,6 +74,7 @@ class Feedback extends \Piwik\Plugin $translationKeys[] = 'Feedback_ReferBannerSocialShareText'; $translationKeys[] = 'Feedback_ReferBannerEmailShareSubject'; $translationKeys[] = 'Feedback_ReferBannerEmailShareBody'; + $translationKeys[] = 'Feedback_WontShowAgain'; $translationKeys[] = 'General_Ok'; $translationKeys[] = 'General_Cancel'; } @@ -108,6 +109,10 @@ class Feedback extends \Piwik\Plugin public function showReferBanner() { + if ($this->getShouldPromptForFeedback()) { + return false; + } + if (Piwik::isUserIsAnonymous()) { return false; } @@ -135,13 +140,21 @@ class Feedback extends \Piwik\Plugin $nextReminderDate = $referReminder->getUserOption(); if ($nextReminderDate === false) { - return true; + $nextReminder = Date::now()->getStartOfDay()->addDay(135)->toString('Y-m-d'); + $referReminder->setUserOption($nextReminder); + + return false; } if ($nextReminderDate === self::NEVER_REMIND_ME_AGAIN) { return false; } + $pluginManager = PluginManager::getInstance(); + if ($pluginManager->hasPremiumFeatures()) { + return false; + } + $now = Date::now()->getTimestamp(); $nextReminderDate = Date::factory($nextReminderDate); @@ -167,17 +180,15 @@ class Feedback extends \Piwik\Plugin } if ($nextReminderDate === false) { - $model = new Model(); - $user = $model->getUser(Piwik::getCurrentUserLogin()); - if (empty($user['date_registered'])) { - return false; - } - $nextReminderDate = Date::factory($user['date_registered'])->addDay(90)->getStartOfDay(); - } else { - $nextReminderDate = Date::factory($nextReminderDate); + $nextReminder = Date::now()->getStartOfDay()->addDay(90)->toString('Y-m-d'); + $feedbackReminder->setUserOption($nextReminder); + + return false; } $now = Date::now()->getTimestamp(); + $nextReminderDate = Date::factory($nextReminderDate); + return $nextReminderDate->getTimestamp() <= $now; } diff --git a/plugins/Feedback/angularjs/refer-banner/refer-banner.controller.js b/plugins/Feedback/angularjs/refer-banner/refer-banner.controller.js index 7bd6db7c73..9babbe281e 100644 --- a/plugins/Feedback/angularjs/refer-banner/refer-banner.controller.js +++ b/plugins/Feedback/angularjs/refer-banner/refer-banner.controller.js @@ -7,9 +7,9 @@ (function () { angular.module('piwikApp').controller('ReferBannerController', ReferBannerController); - ReferBannerController.$inject = ['$scope']; + ReferBannerController.$inject = ['$scope', '$timeout']; - function ReferBannerController($scope) { + function ReferBannerController($scope, $timeout) { var setNextReminder = function(nextReminder) { var ajaxHandler = new ajaxHelper(); ajaxHandler.addParams({'module': 'Feedback', 'action': 'updateReferReminderDate'}, 'GET'); @@ -17,24 +17,34 @@ ajaxHandler.send(); }; - var closeBanner = function() { + var remindMeLater = function() { $scope.referBanner.show = false; - if ($scope.referBanner.shared === false) { - setNextReminder(6 * 30); - } + setNextReminder(6 * 30); + }; + + var dontShowAgain = function() { + $scope.referBanner.show = false; + + setNextReminder(-1); }; var share = function() { + var modal = M.Modal.getInstance($('.modal.open')); + + if (modal) { + modal.close(); + } + $scope.referBanner.showThanks = true; - $scope.referBanner.shared = true; + $scope.referBanner.show = false; setNextReminder(-1); } $scope.socialUrl = function (type) { var text = _pk_translate('Feedback_ReferBannerSocialShareText'); - var url = 'https://matomo.org/google-owns-your-data/?pk_campaign=share&pk_kwd=onpremise'; + var url = 'https://matomo.org/?pk_campaign=share&pk_kwd=onpremise'; if (type === 'twitter') { var base = 'https://twitter.com/intent/tweet?'; @@ -83,15 +93,16 @@ } var init = function() { - $scope.referBanner.show = false; $scope.referBanner.showThanks = false; - $scope.referBanner.closeBanner = closeBanner; + $scope.referBanner.remindMeLater = remindMeLater; + $scope.referBanner.dontShowAgain = dontShowAgain; $scope.referBanner.share = share; - $scope.referBanner.shared = false; if ($scope.showReferBanner === 1) { - $scope.referBanner.show = true; - }; + $timeout(function() { + $scope.referBanner.show = true; + }); + } }; init(); diff --git a/plugins/Feedback/angularjs/refer-banner/refer-banner.directive.html b/plugins/Feedback/angularjs/refer-banner/refer-banner.directive.html index d3ce1e862a..34bbd87d0b 100644 --- a/plugins/Feedback/angularjs/refer-banner/refer-banner.directive.html +++ b/plugins/Feedback/angularjs/refer-banner/refer-banner.directive.html @@ -1,44 +1,43 @@
-
-
-
-
-
- {{ 'Feedback_ReferBannerTitle'|translate }} - {{ 'Feedback_ReferBannerLonger'|translate }} -
+
- +
+

{{'Feedback_ReferBannerTitle'|translate }}

+
+ +
+

{{'Feedback_ReferBannerLonger'|translate }}

-
-
or share us on
- -
+ +
-
+
-
+

{{ 'Feedback_ThankYouForSpreading'|translate }}

+

{{ 'Feedback_WontShowAgain'|translate }}

diff --git a/plugins/Feedback/angularjs/refer-banner/refer-banner.directive.less b/plugins/Feedback/angularjs/refer-banner/refer-banner.directive.less index 829348231d..543918a97e 100644 --- a/plugins/Feedback/angularjs/refer-banner/refer-banner.directive.less +++ b/plugins/Feedback/angularjs/refer-banner/refer-banner.directive.less @@ -1,11 +1,3 @@ -@media only screen and (max-width: 600px) { - .refer-banner { - min-height: 48px; - height: auto !important; - font-size: 13px; - } -} - .flex { display: flex; } @@ -26,44 +18,31 @@ justify-content: center; } -.h-full { - height: 100%; +.justify-around { + justify-content: space-around; } -.refer-banner { - height: 48px; - position: fixed; - width: 100%; +.text-center { text-align: center; - color: #fff; - bottom: 0; - background: #263238; - clear: both; - z-index: 9999; } -.refer-banner .icon-close { - background: #263238; - font-size: 12px; - color: #fff; - cursor: pointer; - width: 18px; - margin-right: 4px; +.h-full { + height: 100%; +} + +.text-twitter-blue { + color: #00aced; } -.refer-banner .piwikOrgLink { - color: #fff; - text-decoration: underline; +.text-fb-blue { + color: #3b5998; } -.refer-banner .share-button { - color:#fff; - display:inline-block; - width:20px; - margin-left: 4px; +.text-li-blue { + color: #007bb6; } -.refer-banner .signUpPiwik, -.refer-banner .premiumDownloadPiwik { - margin: 5px; +.refer-banner .share-button { + width:60px; + margin-top:24px; } diff --git a/plugins/Feedback/lang/en.json b/plugins/Feedback/lang/en.json index 4a392a4560..d5c5c4e3e4 100644 --- a/plugins/Feedback/lang/en.json +++ b/plugins/Feedback/lang/en.json @@ -32,7 +32,7 @@ "ContactUs": "Contact us", "VisitTheForums": "Visit the %1$s Forums%2$s and get help from the community of Matomo users", "Forums": "Forums", - "ReviewMatomoTitle": "Believe in Matomo?", + "ReviewMatomoTitle": "Like Matomo?", "PleaseLeaveExternalReviewForMatomo": "Share your thoughts on one of these sites and inspire others to join our data revolution.", "RemindMeLater": "Remind me later", "NeverAskMeAgain": "Never ask me again", @@ -44,10 +44,11 @@ "SearchHelpResources": "Search matomo.org help resources", "PopularHelpTopics": "Popular help topics", "ReferMatomo": "Refer Matomo", - "ReferBannerTitle": "Don't let your friend's data end up in the wrong hands!", - "ReferBannerLonger": "Refer them to Matomo Analytics now to take back control!", + "ReferBannerTitle": "Believe in Matomo?", + "ReferBannerLonger": "Please help us spread the word about us so more people get control over their analytics data.", "ReferBannerEmailShareSubject": "Refer them to Matomo Analytics now to take back control!", "ReferBannerEmailShareBody": "I choose Matomo, an ethical alternative to Google Analytics that gives me 100%% data ownership and protects the data of my website visitors.\r\nI’m sharing this message in the hope that you too will take back the power from Google and get complete ownership of your own data.\r\n\r\nCheck out Matomo at https://matomo.org", - "ReferBannerSocialShareText": "If you’re using Google Analytics, stay in control by switching to an ethical alternative like Matomo now!" + "ReferBannerSocialShareText": "If you’re using Google Analytics, stay in control by switching to an ethical alternative like Matomo now!", + "WontShowAgain": "We won't show this message again." } } diff --git a/plugins/Feedback/tests/Integration/FeedbackTest.php b/plugins/Feedback/tests/Integration/FeedbackTest.php index 5b926e57d1..f55d6e20f2 100644 --- a/plugins/Feedback/tests/Integration/FeedbackTest.php +++ b/plugins/Feedback/tests/Integration/FeedbackTest.php @@ -78,13 +78,6 @@ class FeedbackTest extends IntegrationTestCase $this->assertFalse($this->feedback->getShouldPromptForFeedback()); } - public function test_shouldPromptForFeedback_noFeedbackReminderOptionForUser_newUser() - { - Date::$now = Date::factory('2019-06-01')->getTimestamp(); // 90 days - - $this->assertTrue($this->feedback->getShouldPromptForFeedback()); - } - public function test_shouldPromptForFeedback_dontRemindUserAgain() { Option::set('Feedback.nextFeedbackReminder.user1', '-1'); @@ -115,4 +108,4 @@ class FeedbackTest extends IntegrationTestCase $this->assertFalse($this->feedback->getShouldPromptForFeedback()); } -} \ No newline at end of file +} diff --git a/plugins/Feedback/tests/Integration/ReferBannerTest.php b/plugins/Feedback/tests/Integration/ReferBannerTest.php index 6e33a73604..b57377ee68 100644 --- a/plugins/Feedback/tests/Integration/ReferBannerTest.php +++ b/plugins/Feedback/tests/Integration/ReferBannerTest.php @@ -76,12 +76,12 @@ class ReferBannerTest extends IntegrationTestCase $this->assertFalse($this->feedback->showReferBanner()); } - public function test_shouldShowReferBannerTo_SuperUser() + public function test_shouldNotShowReferBannerTo_SuperUser_First() { FakeAccess::$identity = 'super'; FakeAccess::$superUser = true; - $this->assertTrue($this->feedback->showReferBanner()); + $this->assertFalse($this->feedback->showReferBanner()); } public function test_shouldNotShowReferBanner_ifNeverRemindOn() diff --git a/plugins/Feedback/tests/UI/expected-screenshots/FeedbackForm_show.png b/plugins/Feedback/tests/UI/expected-screenshots/FeedbackForm_show.png index 3637fa3dbb..935992cfa0 100644 --- a/plugins/Feedback/tests/UI/expected-screenshots/FeedbackForm_show.png +++ b/plugins/Feedback/tests/UI/expected-screenshots/FeedbackForm_show.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:084d20e309a39b4f07b16aa242baa2d2089d0b047f3cf56ac1db954e7a511e5b -size 269997 +oid sha256:a3371d2a1e343c77f1b3b5dcc14fe4e8a169023fe379ef515ddc01f867f7b23c +size 268928 diff --git a/plugins/Feedback/tests/UI/expected-screenshots/FeedbackPopup_feedback_popup.png b/plugins/Feedback/tests/UI/expected-screenshots/FeedbackPopup_feedback_popup.png index 9f8ecbe2da..47b7b15d4e 100644 --- a/plugins/Feedback/tests/UI/expected-screenshots/FeedbackPopup_feedback_popup.png +++ b/plugins/Feedback/tests/UI/expected-screenshots/FeedbackPopup_feedback_popup.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ceb0c8e5321b0b6542d2978e588b01eaee0d30db92b78ae92a65518bb9d86708 -size 28395 +oid sha256:569affdd2877633a19212a4d409a2254f76593e1f1d5629a2caf6703586495be +size 27962 diff --git a/plugins/Feedback/tests/UI/expected-screenshots/ReferBannerTest_feedback_popup.png b/plugins/Feedback/tests/UI/expected-screenshots/ReferBannerTest_feedback_popup.png index b33ed5d4c8..bc9ade9144 100644 --- a/plugins/Feedback/tests/UI/expected-screenshots/ReferBannerTest_feedback_popup.png +++ b/plugins/Feedback/tests/UI/expected-screenshots/ReferBannerTest_feedback_popup.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de4ce7f20f82c2c70a2ff0587ec3e14f5d93869e12f9cd4a6ac057d9747c0bc2 -size 14151 +oid sha256:001fa5fc54e4f316dfac5aab1b1802f9620e671dcb83e85279a4843afdfaef67 +size 14794 -- cgit v1.2.3