Skip to content

Commit 224196b

Browse files
authored
[6.0] Upmerges - 2024-12-11
2 parents e154d76 + 721b5b9 commit 224196b

File tree

16 files changed

+949
-35
lines changed

16 files changed

+949
-35
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<form addfieldprefix="Joomla\Component\Scheduler\Administrator\Field">
3+
<fields name="filter">
4+
<field
5+
name="search"
6+
type="text"
7+
label="COM_SCHEDULER_FILTER_SEARCH_LABEL"
8+
description="COM_SCHEDULER_FILTER_SEARCH_HISTORY_DESC"
9+
inputmode="search"
10+
hint="JSEARCH_FILTER"
11+
/>
12+
<field
13+
name="type"
14+
type="taskType"
15+
label="COM_SCHEDULER_HEADING_TASK_TYPE"
16+
class="js-select-submit-on-change"
17+
>
18+
<option value="">COM_SCHEDULER_SELECT_TYPE</option>
19+
</field>
20+
<field
21+
name="exitcode"
22+
type="exitCode"
23+
label="COM_SCHEDULER_EXITCODE"
24+
class="js-select-submit-on-change"
25+
>
26+
<option value="">COM_SCHEDULER_FILTER_SELECT_OPTION_EXITCODE</option>
27+
</field>
28+
</fields>
29+
<fields name="list">
30+
<field
31+
name="fullordering"
32+
type="list"
33+
label="JGLOBAL_SORT_BY"
34+
class="js-select-submit-on-change"
35+
default="a.id DESC"
36+
validate="options"
37+
>
38+
<option value="">JGLOBAL_SORT_BY</option>
39+
<option value="a.taskname ASC">JGLOBAL_TITLE_ASC</option>
40+
<option value="a.taskname DESC">JGLOBAL_TITLE_DESC</option>
41+
<option value="a.tasktype ASC">COM_SCHEDULER_TASK_TYPE_ASC</option>
42+
<option value="a.tasktype DESC">COM_SCHEDULER_TASK_TYPE_DESC</option>
43+
<option value="a.taskid ASC">COM_SCHEDULER_TASK_TIMES_ASC</option>
44+
<option value="a.taskid DESC">COM_SCHEDULER_TASK_TIMES_DESC</option>
45+
<option value="a.lastdate ASC">COM_SCHEDULER_LAST_RUN_ASC</option>
46+
<option value="a.lastdate DESC">COM_SCHEDULER_LAST_RUN_DESC</option>
47+
<option value="a.duration ASC">COM_SCHEDULER_DURATION_ASC</option>
48+
<option value="a.duration DESC">COM_SCHEDULER_DURATION_DESC</option>
49+
<option value="a.exitcode ASC">COM_SCHEDULER_EXIT_CODE_ASC</option>
50+
<option value="a.exitcode DESC">COM_SCHEDULER_EXIT_CODE_DESC</option>
51+
<option value="a.nextdate ASC">COM_SCHEDULER_NEXT_RUN_ASC</option>
52+
<option value="a.nextdate DESC">COM_SCHEDULER_NEXT_RUN_DESC</option>
53+
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>
54+
<option value="a.id DESC">JGRID_HEADING_ID_DESC</option>
55+
</field>
56+
<field
57+
name="limit"
58+
type="limitbox"
59+
label="JGLOBAL_LIST_LIMIT"
60+
default="5"
61+
class="js-select-submit-on-change"
62+
/>
63+
</fields>
64+
</form>
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
<?php
2+
3+
/**
4+
* @package Joomla.Administrator
5+
* @subpackage com_scheduler
6+
*
7+
* @copyright (C) 2024 Open Source Matters, Inc. <https://www.joomla.org>
8+
* @license GNU General Public License version 2 or later; see LICENSE.txt
9+
*/
10+
11+
namespace Joomla\Component\Scheduler\Administrator\Controller;
12+
13+
use Joomla\CMS\Access\Exception\NotAllowed;
14+
use Joomla\CMS\Language\Text;
15+
use Joomla\CMS\MVC\Controller\AdminController;
16+
use Joomla\Utilities\ArrayHelper;
17+
18+
// phpcs:disable PSR1.Files.SideEffects
19+
\defined('_JEXEC') or die;
20+
// phpcs:enable PSR1.Files.SideEffects
21+
22+
/**
23+
* Logs list controller class.
24+
*
25+
* @since __DEPLOY_VERSION__
26+
*/
27+
class LogsController extends AdminController
28+
{
29+
/**
30+
* The prefix to use with controller messages.
31+
*
32+
* @var string
33+
*
34+
* @since __DEPLOY_VERSION__
35+
*/
36+
protected $text_prefix = 'COM_SCHEDULER_LOGS';
37+
38+
/**
39+
* Proxy for getModel.
40+
*
41+
* @param string $name The name of the model.
42+
* @param string $prefix The prefix for the PHP class name.
43+
* @param array $config Array of configuration parameters.
44+
*
45+
* @return \Joomla\CMS\MVC\Model\BaseDatabaseModel
46+
*
47+
* @since __DEPLOY_VERSION__
48+
*/
49+
public function getModel($name = 'Logs', $prefix = 'Administrator', $config = ['ignore_request' => true])
50+
{
51+
return parent::getModel($name, $prefix, $config);
52+
}
53+
54+
/**
55+
* Clean out the logs.
56+
*
57+
* @return void
58+
*
59+
* @since __DEPLOY_VERSION__
60+
*/
61+
public function purge()
62+
{
63+
// Check for request forgeries.
64+
$this->checkToken();
65+
66+
$model = $this->getModel('Logs');
67+
68+
if ($model->purge()) {
69+
$message = Text::_('COM_SCHEDULER_LOGS_CLEAR');
70+
} else {
71+
$message = Text::_('COM_SCHEDULER_CLEAR_FAIL');
72+
}
73+
74+
$this->setRedirect('index.php?option=com_scheduler&view=logs', $message);
75+
}
76+
77+
/**
78+
* Removes an item.
79+
*
80+
* Overrides Joomla\CMS\MVC\Controller\FormController::delete to check the core.admin permission.
81+
*
82+
* @return void
83+
*
84+
* @since __DEPLOY_VERSION__
85+
*/
86+
public function delete(): void
87+
{
88+
$ids = $this->input->get('cid', [], 'array');
89+
90+
if (!$this->app->getIdentity()->authorise('core.admin', $this->option)) {
91+
throw new NotAllowed(Text::_('JERROR_ALERTNOAUTHOR'), 403);
92+
}
93+
94+
if (empty($ids)) {
95+
$this->setMessage(Text::_('COM_SCHEDULER_NO_LOGS_SELECTED'), 'warning');
96+
$this->setRedirect('index.php?option=com_scheduler&view=logs');
97+
return;
98+
}
99+
100+
// Get the model.
101+
$model = $this->getModel();
102+
$ids = ArrayHelper::toInteger($ids);
103+
104+
// Remove the items.
105+
if ($model->delete($ids)) {
106+
$this->setMessage(Text::plural('COM_SCHEDULER_N_ITEMS_DELETED', \count($ids)));
107+
}
108+
109+
$this->setRedirect('index.php?option=com_scheduler&view=logs');
110+
}
111+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
/**
4+
* @package Joomla.Administrator
5+
* @subpackage com_scheduler
6+
*
7+
* @copyright (C) 2024 Open Source Matters, Inc. <https://www.joomla.org>
8+
* @license GNU General Public License version 2 or later; see LICENSE.txt
9+
*/
10+
11+
namespace Joomla\Component\Scheduler\Administrator\Field;
12+
13+
use Joomla\CMS\Form\Field\PredefinedlistField;
14+
15+
// phpcs:disable PSR1.Files.SideEffects
16+
\defined('_JEXEC') or die;
17+
// phpcs:enable PSR1.Files.SideEffects
18+
19+
/**
20+
* A predefined list field with all possible states for a com_scheduler entry.
21+
*
22+
* @since __DEPLOY_VERSION__
23+
*/
24+
class ExitCodeField extends PredefinedlistField
25+
{
26+
/**
27+
* The form field type.
28+
*
29+
* @var string
30+
* @since __DEPLOY_VERSION__
31+
*/
32+
public $type = 'exitCode';
33+
34+
/**
35+
* Available states
36+
*
37+
* @var string[]
38+
* @since __DEPLOY_VERSION__
39+
*/
40+
protected $predefinedOptions = [
41+
5 => 'COM_SCHEDULER_EXIT_CODE_FAILED',
42+
0 => 'COM_SCHEDULER_EXIT_CODE_EXECUTED',
43+
123 => 'COM_SCHEDULER_EXIT_CODE_WILLRESUME',
44+
'*' => 'JALL',
45+
];
46+
}

0 commit comments

Comments
 (0)