Skip to content
Code-Schnipsel Gruppen Projekte
Commit cf820864 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

Merge branch 'next-2.x' into 'main'

feat: add required attribute to cron.xml

See merge request !27
Übergeordnete 964bd3d6 311f2c3a
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
2 Merge Requests!28Update 'next-3.x' with latest changes from 'main',!27feat: add required attribute to cron.xml
Pipeline-Nr. 16661 mit Warnungen bestanden
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
</cron> </cron>
<!-- region Cleanup Temp-Folder --> <!-- region Cleanup Temp-Folder -->
<cron exec="\QUI\Cron\QuiqqerCrons::cleanupCronHistory"> <cron exec="\QUI\Cron\QuiqqerCrons::cleanupCronHistory" required="1">
<title> <title>
<locale group="quiqqer/cron" var="cron.cleanup.history.title"/> <locale group="quiqqer/cron" var="cron.cleanup.history.title"/>
</title> </title>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<!-- endregion --> <!-- endregion -->
<!-- region Cleanup Temp-Folder --> <!-- region Cleanup Temp-Folder -->
<cron exec="\QUI\Cron\QuiqqerCrons::clearTempFolder"> <cron exec="\QUI\Cron\QuiqqerCrons::clearTempFolder" required="1">
<title> <title>
<locale group="quiqqer/cron" var="cron.cleanup.temp.title"/> <locale group="quiqqer/cron" var="cron.cleanup.temp.title"/>
</title> </title>
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
<!-- endregion --> <!-- endregion -->
<!-- region Cleanup Sessions --> <!-- region Cleanup Sessions -->
<cron exec="\QUI\Cron\QuiqqerCrons::clearSessions"> <cron exec="\QUI\Cron\QuiqqerCrons::clearSessions" required="1">
<title> <title>
<locale group="quiqqer/cron" var="cron.cleanup.sessions.title"/> <locale group="quiqqer/cron" var="cron.cleanup.sessions.title"/>
</title> </title>
......
...@@ -33,6 +33,8 @@ class EventHandler ...@@ -33,6 +33,8 @@ class EventHandler
if ($Package->getName() === 'quiqqer/cron') { if ($Package->getName() === 'quiqqer/cron') {
self::checkCronTable(); self::checkCronTable();
} }
self::createAutoCreateCrons(null, true);
} }
/** /**
...@@ -191,15 +193,27 @@ class EventHandler ...@@ -191,15 +193,27 @@ class EventHandler
* Create all crons with a <autocreate> items. * Create all crons with a <autocreate> items.
* *
* @param string|null $scope (optional) - Only create crons for given scope (see Manager::AUTOCREATE_SCOPE_*) * @param string|null $scope (optional) - Only create crons for given scope (see Manager::AUTOCREATE_SCOPE_*)
* @param bool $onlyRequired - Only create required crons
* @return void * @return void
*/ */
public static function createAutoCreateCrons(?string $scope = null): void public static function createAutoCreateCrons(
{ ?string $scope = null,
bool $onlyRequired = false
): void {
$CronManager = new Manager(); $CronManager = new Manager();
foreach ($CronManager->getAvailableCrons() as $cron) { foreach ($CronManager->getAvailableCrons() as $cron) {
$title = $cron['title']; $title = $cron['title'];
$exec = $cron['exec']; $exec = $cron['exec'];
$required = $cron['required'];
if ($onlyRequired && $required === false) {
continue;
}
if (empty($cron['autocreate'])) {
continue;
}
foreach ($cron['autocreate'] as $autocreate) { foreach ($cron['autocreate'] as $autocreate) {
// Check if cron already exists // Check if cron already exists
...@@ -211,18 +225,11 @@ class EventHandler ...@@ -211,18 +225,11 @@ class EventHandler
continue; continue;
} }
switch ($autocreate['scope']) { $createWithParams = match ($autocreate['scope']) {
case Manager::AUTOCREATE_SCOPE_PROJECTS: Manager::AUTOCREATE_SCOPE_PROJECTS => self::getCronsToCreateForProjectsScope($params),
$createWithParams = self::getCronsToCreateForProjectsScope($params); Manager::AUTOCREATE_SCOPE_LANGUAGES => self::getCronsToCreateForLanguagesScope($params),
break; default => [$params],
};
case Manager::AUTOCREATE_SCOPE_LANGUAGES:
$createWithParams = self::getCronsToCreateForLanguagesScope($params);
break;
default:
$createWithParams = [$params];
}
// Create crons // Create crons
foreach ($createWithParams as $createParams) { foreach ($createWithParams as $createParams) {
...@@ -283,14 +290,8 @@ class EventHandler ...@@ -283,14 +290,8 @@ class EventHandler
foreach ($projectCronParams as $k => $v) { foreach ($projectCronParams as $k => $v) {
$projectCronParams[$k] = str_replace( $projectCronParams[$k] = str_replace(
[ ['[projectName]', '[projectLang]'],
'[projectName]', [$projectName, $language],
'[projectLang]'
],
[
$projectName,
$language
],
$v $v
); );
} }
......
...@@ -798,6 +798,7 @@ class Manager ...@@ -798,6 +798,7 @@ class Manager
$title = ''; $title = '';
$desc = ''; $desc = '';
$required = false;
$params = []; $params = [];
/* @var $Cron DOMElement */ /* @var $Cron DOMElement */
...@@ -805,6 +806,13 @@ class Manager ...@@ -805,6 +806,13 @@ class Manager
$Desc = $Cron->getElementsByTagName('description'); $Desc = $Cron->getElementsByTagName('description');
$Params = $Cron->getElementsByTagName('params'); $Params = $Cron->getElementsByTagName('params');
if (
$Cron->getAttribute('required')
&& ($Cron->getAttribute('required') === '1' || $Cron->getAttribute('required') === 'true')
) {
$required = true;
}
if ($Title->length) { if ($Title->length) {
$title = QUI\Utils\DOM::getTextFromNode($Title->item(0)); $title = QUI\Utils\DOM::getTextFromNode($Title->item(0));
} }
...@@ -920,6 +928,7 @@ class Manager ...@@ -920,6 +928,7 @@ class Manager
$result[] = [ $result[] = [
'title' => $title, 'title' => $title,
'description' => $desc, 'description' => $desc,
'required' => $required,
'exec' => $Cron->getAttribute('exec'), 'exec' => $Cron->getAttribute('exec'),
'params' => $params, 'params' => $params,
'autocreate' => $autocreate 'autocreate' => $autocreate
......
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren