From ca35a8a0814c24263094e116b95df650b70d09bb Mon Sep 17 00:00:00 2001 From: Thomas Steur <tsteur@users.noreply.github.com> Date: Sat, 13 May 2017 11:12:14 +1200 Subject: [PATCH] Add possibility to ignore "no data recorded" screen for one hour (#11686) * Add possibility to ignore "no data recorded" screen for one hour * update screens * update wording --- plugins/SitesManager/Controller.php | 13 +++++++++++++ plugins/SitesManager/SitesManager.php | 6 ++++++ plugins/SitesManager/lang/en.json | 3 ++- .../SitesManager/templates/siteWithoutData.twig | 5 +++++ .../EmptySite_emptySiteDashboard.png | Bin 131 -> 131 bytes .../EmptySite_emptySiteDashboard_ignored.png | Bin 0 -> 131 bytes tests/UI/specs/EmptySite_spec.js | 7 +++++++ 7 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 tests/UI/expected-screenshots/EmptySite_emptySiteDashboard_ignored.png diff --git a/plugins/SitesManager/Controller.php b/plugins/SitesManager/Controller.php index b488c39d89..91744e84b2 100644 --- a/plugins/SitesManager/Controller.php +++ b/plugins/SitesManager/Controller.php @@ -13,6 +13,7 @@ use Piwik\API\ResponseBuilder; use Piwik\Common; use Piwik\Exception\UnexpectedWebsiteFoundException; use Piwik\Piwik; +use Piwik\Session; use Piwik\Settings\Measurable\MeasurableSettings; use Piwik\SettingsPiwik; use Piwik\Site; @@ -130,6 +131,18 @@ class Controller extends \Piwik\Plugin\ControllerAdmin return file_get_contents($path . $filename); } + public function ignoreNoDataMessage() + { + Piwik::checkUserHasSomeViewAccess(); + + $session = new Session\SessionNamespace('siteWithoutData'); + $session->ignoreMessage = true; + $session->setExpirationSeconds($oneHour = 60 * 60); + + $url = Url::getCurrentUrlWithoutQueryString() . Url::getCurrentQueryStringWithParametersModified(array('module' => 'CoreHome', 'action' => 'index')); + Url::redirectToUrl($url); + } + public function siteWithoutData() { $javascriptGenerator = new TrackerCodeGenerator(); diff --git a/plugins/SitesManager/SitesManager.php b/plugins/SitesManager/SitesManager.php index 1154e2cc10..a588191901 100644 --- a/plugins/SitesManager/SitesManager.php +++ b/plugins/SitesManager/SitesManager.php @@ -17,6 +17,7 @@ use Piwik\Plugins\PrivacyManager\PrivacyManager; use Piwik\Settings\Storage\Backend\MeasurableSettingsTable; use Piwik\Tracker\Cache; use Piwik\Tracker\Model as TrackerModel; +use Piwik\Session\SessionNamespace; /** * @@ -69,6 +70,11 @@ class SitesManager extends \Piwik\Plugin $trackerModel = new TrackerModel(); if ($trackerModel->isSiteEmpty($siteId)) { + $session = new SessionNamespace('siteWithoutData'); + if (!empty($session->ignoreMessage)) { + return; + } + $module = 'SitesManager'; $action = 'siteWithoutData'; } diff --git a/plugins/SitesManager/lang/en.json b/plugins/SitesManager/lang/en.json index 1375674e1c..c4925ed7f1 100644 --- a/plugins/SitesManager/lang/en.json +++ b/plugins/SitesManager/lang/en.json @@ -76,6 +76,7 @@ "SiteWithoutDataSetupTracking": "Please set up the %1$stracking code%2$s below into your website or mobile app if you haven't done already.", "SiteWithoutDataMessageDisappears": "This message will disappear as soon as some data was tracked for this website.", "SiteWithoutDataSetupGoals": "In the meantime, maybe you would like to %1$sset up some goals%2$s or learn more about the %3$sfeatures%4$s of Piwik in one of our %5$sguides%6$s or %7$sFAQs%8$s.", + "SiteWithoutDataIgnoreMessage": "Don't show this message for the next hour", "SuperUserAccessCan": "A user with Super User access can also %1$s specify global settings%2$s for new websites.", "Timezone": "Time zone", "TrackingSiteSearch": "Tracking Internal Site Search", @@ -92,4 +93,4 @@ "YouCurrentlyHaveAccessToNWebsites": "You currently have access to %s websites.", "YourCurrentIpAddressIs": "Your current IP address is %s" } -} \ No newline at end of file +} diff --git a/plugins/SitesManager/templates/siteWithoutData.twig b/plugins/SitesManager/templates/siteWithoutData.twig index bf0db36a39..a767fb3c04 100644 --- a/plugins/SitesManager/templates/siteWithoutData.twig +++ b/plugins/SitesManager/templates/siteWithoutData.twig @@ -45,6 +45,11 @@ '<a href="https://piwik.org/features/" rel="noreferrer" target="_blank">', "</a>", '<a href="https://piwik.org/docs/" rel="noreferrer" target="_blank">', "</a>", '<a href="https://piwik.org/faq/" rel="noreferrer" target="_blank">', "</a>")|raw }} + + <br /> + <br /> + <a href="{{ linkTo({module: 'SitesManager', action: 'ignoreNoDataMessage'}) }}" + class="btn ignoreSitesWithoutData">{{ 'SitesManager_SiteWithoutDataIgnoreMessage'|translate }}</a> </p> {{ trackingHelp|raw }} diff --git a/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png b/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard.png index 6433c2ab72c12fda4ee8db4491d9b27d8a06bc46..25a957f5846c0967f43c846d895eab65cbe35d27 100644 GIT binary patch delta 84 zcmV~$u@QhE3<c1$WeP_K2_Z0qLlDTnv$nHk0Y~<|eeC0_7a0p=n39ZQ*|i9xxiQE) emOy6&80eucXqHXK<g8Sx#**~hZ=B5Bs-z#-1Qy5u delta 84 zcmV~$u@QhE3<c1mWeP_~2;aaE4gn##v$nHk0Y~<|op$=p%Zssa^u|LLhEX>S5)6q3 eOcO+Pb?Y;Pnpjn=z)&UgPJ#T~uOEe#!1)L9xECh? diff --git a/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard_ignored.png b/tests/UI/expected-screenshots/EmptySite_emptySiteDashboard_ignored.png new file mode 100644 index 0000000000000000000000000000000000000000..4977052015d0e6f8e3efc6be8e6ba66a73c58a6b GIT binary patch literal 131 zcmWN?OA^8$3;@tQr{Dq>2qXi&4WA&)sO=c+!qe;9yo=v5kCz^6ow6HqpX>JMvi%>Q zven~h<m75Dr;gdQj0{M7jm298ZU8o?%!x4|1}Nl#sIYA<P{SOHvp&|~GKHQp7O<9D N?@H#EHAM78>IVfSCyM|8 literal 0 HcmV?d00001 diff --git a/tests/UI/specs/EmptySite_spec.js b/tests/UI/specs/EmptySite_spec.js index 31b8524d6f..b4978ebd20 100644 --- a/tests/UI/specs/EmptySite_spec.js +++ b/tests/UI/specs/EmptySite_spec.js @@ -19,4 +19,11 @@ describe("EmptySite", function () { page.load(urlToTest); }, done); }); + + it('should be possible to ignore this screen for one hour', function (done) { + expect.screenshot('emptySiteDashboard_ignored').to.be.captureSelector('.page', function (page) { + page.click('.ignoreSitesWithoutData'); + page.wait(1000) + }, done); + }); }); -- GitLab