Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZoltan Flamis <zoltan@innocraft.com>2021-05-21 02:19:45 +0300
committerGitHub <noreply@github.com>2021-05-21 02:19:45 +0300
commit65d98197430a523119f60aa3246db2031e15362c (patch)
tree15d9701418ce2a3a6d1a0df0f339e18a08320655 /plugins/Feedback
parent5d9cf649aeefa7a1390574c2b147ce972b1b5c39 (diff)
Modiy refer banner (#17598)
Diffstat (limited to 'plugins/Feedback')
-rw-r--r--plugins/Feedback/Feedback.php31
-rw-r--r--plugins/Feedback/angularjs/refer-banner/refer-banner.controller.js37
-rw-r--r--plugins/Feedback/angularjs/refer-banner/refer-banner.directive.html63
-rw-r--r--plugins/Feedback/angularjs/refer-banner/refer-banner.directive.less53
-rw-r--r--plugins/Feedback/lang/en.json9
-rw-r--r--plugins/Feedback/tests/Integration/FeedbackTest.php9
-rw-r--r--plugins/Feedback/tests/Integration/ReferBannerTest.php4
-rw-r--r--plugins/Feedback/tests/UI/expected-screenshots/FeedbackForm_show.png4
-rw-r--r--plugins/Feedback/tests/UI/expected-screenshots/FeedbackPopup_feedback_popup.png4
-rw-r--r--plugins/Feedback/tests/UI/expected-screenshots/ReferBannerTest_feedback_popup.png4
10 files changed, 106 insertions, 112 deletions
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 @@
<div ng-controller="ReferBannerController">
- <div class="refer-banner" ng-show="referBanner.show">
- <div class="flex items-center justify-center h-full" id="default-text">
- <div class="flex-none"></div>
- <div class="flex items-center justify-center flex-grow">
- <div>
- {{ 'Feedback_ReferBannerTitle'|translate }}
- <span class="hide-on-med-and-down">{{ 'Feedback_ReferBannerLonger'|translate }}</span>
- </div>
+ <div class="refer-banner ui-confirm"
+ piwik-dialog="referBanner.show"
+ yes="referBanner.remindMeLater()"
+ no="referBanner.dontShowAgain()"
+ close=""
+ >
- <div>
- <a ng-href="{{ referEmail() }}" ng-click="referBanner.share()" target="_blank" class="btn premiumDownloadPiwik" rel="noreferrer noopener" id="send-email" style="width: max-content;">
- {{ 'Feedback_ReferMatomo'|translate }}
- </a>
- </div>
+ <div class="intro">
+ <h2>{{'Feedback_ReferBannerTitle'|translate }}</h2>
+ </div>
+
+ <div class="text-center">
+ <p>{{'Feedback_ReferBannerLonger'|translate }}</p>
- <div class="hide-on-med-and-down flex items-center">
- <div>or share us on</div>
- <div class="flex items-center">
- <a ng-href="{{ socialUrl('twitter') }}" ng-click="referBanner.share()" class="share-button" target="_blank" rel="noreferrer noopener">
- <ng-include src="'plugins/Feedback/images/twitter_logo.svg'" />
- </a>
- <a ng-href="{{ socialUrl('facebook') }}" ng-click="referBanner.share()" class="share-button" target="_blank" rel="noreferrer noopener">
- <ng-include src="'plugins/Feedback/images/facebook_logo.svg'" />
- </a>
- <a ng-href="{{ socialUrl('linkedin') }}" ng-click="referBanner.share()" class="share-button" target="_blank" rel="noreferrer noopener">
- <ng-include src="'plugins/Feedback/images/linkedin_logo.svg'" />
- </a>
- <a ng-show="{{ false }}" href="{{ socialUrl('mastodon') }}" ng-click="referBanner.share()" class="share-button" target="_blank" rel="noreferrer noopener">
- <ng-include src="'plugins/Feedback/images/mastodon_logo.svg'" />
- </a>
- </div>
- </div>
+ <div class="flex items-center justify-around">
+ <a ng-href="{{ socialUrl('twitter') }}" ng-click="referBanner.share()" class="share-button text-twitter-blue" target="_blank" rel="noreferrer noopener">
+ <ng-include src="'plugins/Feedback/images/twitter_logo.svg'" />
+ </a>
+ <a ng-href="{{ socialUrl('facebook') }}" ng-click="referBanner.share()" class="share-button text-fb-blue" target="_blank" rel="noreferrer noopener">
+ <ng-include src="'plugins/Feedback/images/facebook_logo.svg'" />
+ </a>
+ <a ng-href="{{ socialUrl('linkedin') }}" ng-click="referBanner.share()" class="share-button text-li-blue" target="_blank" rel="noreferrer noopener">
+ <ng-include src="'plugins/Feedback/images/linkedin_logo.svg'" />
+ </a>
+ <a ng-show="{{ false }}" href="{{ socialUrl('mastodon') }}" ng-click="referBanner.share()" class="share-button" target="_blank" rel="noreferrer noopener">
+ <ng-include src="'plugins/Feedback/images/mastodon_logo.svg'" />
+ </a>
</div>
+ </div>
- <div title="Close" class="icon-close flex-none" ng-click="referBanner.closeBanner()"></div>
+ <div class="footer">
+ <input type="button" value="{{ 'Feedback_RemindMeLater'|translate }}" role="yes"/>
+ <input type="button" value="{{ 'Feedback_NeverAskMeAgain'|translate }}" role="no"/>
</div>
</div>
- <div class="ui-confirm ratefeatureDialog" piwik-dialog="referBanner.showThanks" yes="">
+ <div class="ui-confirm" piwik-dialog="referBanner.showThanks" yes="">
<h2>{{ 'Feedback_ThankYouForSpreading'|translate }}</h2>
+ <p style="text-align: center">{{ 'Feedback_WontShowAgain'|translate }}</p>
<input type="button" value="{{ 'General_Ok'|translate }}" role="yes"/>
</div>
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