| @@ -37,18 +37,16 @@ | ||
| 37 | 37 | 'all' => ['datepicker', 'thumbnail'], |
| 38 | 38 | ]; |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | - public function call(string $task): void | |
| 41 | + public function call(string $task, bool $isFront = false): void | |
| 42 | 42 | { |
| 43 | 43 | $task = $this->storeAndGetTask($task); |
| 44 | - parent::call($task); | |
| 44 | + parent::call($task, $isFront); | |
| 45 | 45 | } |
| 46 | 46 | |
| 47 | 47 | private function storeAndGetTask(string $task): string |
| 48 | 48 | { |
| 49 | - acym_session(); | |
| 50 | - | |
| 51 | 49 | $tasksToStore = [ |
| 52 | 50 | 'globalStats', |
| 53 | 51 | 'detailedStats', |
| 54 | 52 | 'clickMap', |
| @@ -56,24 +54,25 @@ | ||
| 56 | 54 | 'userClickDetails', |
| 57 | 55 | 'statsByList', |
| 58 | 56 | ]; |
| 59 | 57 | |
| 60 | - if ($this->taskCalled === 'listing' && empty($_SESSION['stats_task'])) { | |
| 58 | + $statsTask = acym_getVar('string', 'stats_task', '', 'SESSION'); | |
| 59 | + if ($this->taskCalled === 'listing' && empty($statsTask)) { | |
| 61 | 60 | return 'globalStats'; |
| 62 | 61 | } |
| 63 | 62 | |
| 64 | - if ((empty($this->taskCalled) || $this->taskCalled === 'listing') && !empty($_SESSION['stats_task']) && in_array($_SESSION['stats_task'], $tasksToStore)) { | |
| 65 | - return $_SESSION['stats_task']; | |
| 63 | + if ((empty($this->taskCalled) || $this->taskCalled === 'listing') && !empty($statsTask) && in_array($statsTask, $tasksToStore)) { | |
| 64 | + return $statsTask; | |
| 66 | 65 | } |
| 67 | 66 | |
| 68 | 67 | if (!empty($this->taskCalled) && !in_array($this->taskCalled, $tasksToStore) && method_exists($this, $this->taskCalled)) { |
| 69 | 68 | return $this->taskCalled; |
| 70 | 69 | } elseif (!empty($this->taskCalled) && $this->taskCalled != 'listing' && in_array($this->taskCalled, $tasksToStore)) { |
| 71 | - $_SESSION['stats_task'] = $this->taskCalled; | |
| 70 | + acym_setSession('stats_task', $this->taskCalled); | |
| 72 | 71 | |
| 73 | 72 | return $task; |
| 74 | - } elseif (!empty($_SESSION['stats_task']) && method_exists($this, $_SESSION['stats_task'])) { | |
| 75 | - return $_SESSION['stats_task']; | |
| 73 | + } elseif (!empty($statsTask) && method_exists($this, $statsTask)) { | |
| 74 | + return $statsTask; | |
| 76 | 75 | } else { |
| 77 | 76 | return $this->defaulttask; |
| 78 | 77 | } |
| 79 | 78 | } |
| @@ -117,14 +116,18 @@ | ||
| 117 | 116 | public function prepareDefaultPageInfo(array &$data, bool $needMailId = false): bool |
| 118 | 117 | { |
| 119 | 118 | $data['workflowHelper'] = new WorkflowHelper(); |
| 120 | 119 | |
| 121 | - $overrideFilterMailIds = false; | |
| 120 | + //If we unselect all email in the dropdown the getVarFiltersListing is not resetting correctly the selected mails ids | |
| 121 | + $overrideFilterMailIds = acym_getVar('string', 'task', '') === 'listing' && empty(acym_getVar('array', 'mail_ids', [])); | |
| 122 | + $data['selectedMailid'] = $this->getVarFiltersListing('array', 'mail_ids', [], $overrideFilterMailIds); | |
| 122 | 123 | |
| 123 | - if (acym_getVar('string', 'task', '') == 'listing' && empty(acym_getVar('array', 'mail_ids', []))) $overrideFilterMailIds = true; | |
| 124 | + foreach ($data['selectedMailid'] as $i => $mailId) { | |
| 125 | + if (empty($mailId)) { | |
| 126 | + unset($data['selectedMailid'][$i]); | |
| 127 | + } | |
| 128 | + } | |
| 124 | 129 | |
| 125 | - $data['selectedMailid'] = $this->getVarFiltersListing('array', 'mail_ids', [], $overrideFilterMailIds); | |
| 126 | - | |
| 127 | 130 | if ($needMailId && empty($data['selectedMailid'])) { |
| 128 | 131 | $this->globalStats(); |
| 129 | 132 | |
| 130 | 133 | return false; |
| @@ -138,9 +141,11 @@ | ||
| 138 | 141 | if (count($data['selectedMailid']) == 1) { |
| 139 | 142 | $overrideFilterMailIdVersion = !empty(acym_getVar('array', 'mail_ids', [])); |
| 140 | 143 | |
| 141 | 144 | $versionMailSelected = $this->getVarFiltersListing('int', 'mail_id_version', 0, $overrideFilterMailIdVersion); |
| 142 | - if (!empty($versionMailSelected)) $data['selectedMailid'] = [$versionMailSelected]; | |
| 145 | + if (!empty($versionMailSelected)) { | |
| 146 | + $data['selectedMailid'] = [$versionMailSelected]; | |
| 147 | + } | |
| 143 | 148 | } |
| 144 | 149 | |
| 145 | 150 | $mailClass = new MailClass(); |
| 146 | 151 | if (count($data['selectedMailid']) == 1) { |