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:
authorsgiehl <stefan@matomo.org>2020-03-16 15:12:52 +0300
committersgiehl <stefan@matomo.org>2020-03-16 17:24:12 +0300
commite493fee87c983e02001a7d9438cefe58141a38af (patch)
tree6c8f97e69b7cac83f9bb0b670d658e4c871d4d79 /plugins/CoreAdminHome
parentf8c78e5f5f5c63ef660e1bb36fa059b59a1f7976 (diff)
parent7c1d70583ba18a5ec34b691bc7ca0862b8db17a1 (diff)
Merge branch '3.x-dev' into 4.x-dev
Diffstat (limited to 'plugins/CoreAdminHome')
-rw-r--r--plugins/CoreAdminHome/Tasks.php18
-rw-r--r--plugins/CoreAdminHome/templates/optOut.twig9
-rw-r--r--plugins/CoreAdminHome/tests/Integration/TasksTest.php1
3 files changed, 27 insertions, 1 deletions
diff --git a/plugins/CoreAdminHome/Tasks.php b/plugins/CoreAdminHome/Tasks.php
index d94979c9c3..1e3933f972 100644
--- a/plugins/CoreAdminHome/Tasks.php
+++ b/plugins/CoreAdminHome/Tasks.php
@@ -9,11 +9,14 @@
namespace Piwik\Plugins\CoreAdminHome;
use Piwik\API\Request;
+use Piwik\Archive;
+use Piwik\Archive\ArchiveInvalidator;
use Piwik\ArchiveProcessor\Rules;
use Piwik\Archive\ArchivePurger;
use Piwik\Common;
use Piwik\Config;
use Piwik\Container\StaticContainer;
+use Piwik\CronArchive;
use Piwik\DataAccess\ArchiveTableCreator;
use Piwik\Date;
use Piwik\Db;
@@ -60,6 +63,10 @@ class Tasks extends \Piwik\Plugin\Tasks
public function schedule()
{
+ // for browser triggered archiving, make sure we invalidate archives once a day just to make
+ // sure all archives that need to be invalidated get invalidated
+ $this->daily('invalidateOutdatedArchives', null, self::HIGH_PRIORITY);
+
// general data purge on older archive tables, executed daily
$this->daily('purgeOutdatedArchives', null, self::HIGH_PRIORITY);
@@ -81,6 +88,17 @@ class Tasks extends \Piwik\Plugin\Tasks
$this->scheduleTrackingCodeReminderChecks();
}
+ public function invalidateOutdatedArchives()
+ {
+ if (!Rules::isBrowserTriggerEnabled()) {
+ $this->logger->info("Browser triggered archiving disabled, archives will be invalidated during core:archive.");
+ return;
+ }
+
+ $cronArchive = new CronArchive();
+ $cronArchive->invalidateArchivedReportsForSitesThatNeedToBeArchivedAgain();
+ }
+
private function scheduleTrackingCodeReminderChecks()
{
$daysToTrackedVisitsCheck = (int) Config::getInstance()->General['num_days_before_tracking_code_reminder'];
diff --git a/plugins/CoreAdminHome/templates/optOut.twig b/plugins/CoreAdminHome/templates/optOut.twig
index e97389b281..957a2c72cd 100644
--- a/plugins/CoreAdminHome/templates/optOut.twig
+++ b/plugins/CoreAdminHome/templates/optOut.twig
@@ -33,7 +33,14 @@
#}
{% if showConfirmOnly %}
<p>{{ 'CoreAdminHome_OptingYouOut'|translate }}</p>
- <script>window.close();</script>
+ <script>
+ {# try to update nonce in iframe, so sending it a second time works #}
+ try {
+ window.opener.document.querySelector('[name="nonce"]').value = '{{ nonce }}';
+ window.opener.document.querySelector('form').action = window.opener.document.querySelector('form').action.replace(/nonce=[0-9a-z]+/, 'nonce={{ nonce }}');
+ } catch (e) {}
+ window.close();
+ </script>
<noscript>
{% endif %}
diff --git a/plugins/CoreAdminHome/tests/Integration/TasksTest.php b/plugins/CoreAdminHome/tests/Integration/TasksTest.php
index 431ab833f9..7449222454 100644
--- a/plugins/CoreAdminHome/tests/Integration/TasksTest.php
+++ b/plugins/CoreAdminHome/tests/Integration/TasksTest.php
@@ -132,6 +132,7 @@ class TasksTest extends IntegrationTestCase
$tasks = array_map(function (Task $task) { return $task->getMethodName() . '.' . $task->getMethodParameter(); }, $tasks);
$expected = [
+ 'invalidateOutdatedArchives.',
'purgeOutdatedArchives.',
'purgeInvalidatedArchives.',
'purgeOrphanedArchives.',