From f63a2c8ef68cdaffc66f499e536ccfe207fd47a8 Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Tue, 16 Nov 2021 10:51:01 +0100 Subject: [PATCH] Release 1.16 (#2929) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: J. Lavoie Co-authored-by: Yaron Shahrabani Co-authored-by: Wellington Terumi Uemura Co-authored-by: Oğuz Ersen Co-authored-by: SC Co-authored-by: dkstiler Co-authored-by: Milo Ivir --- .github_changelog_generator | 2 +- SECURITY.md | 4 ++-- src/Constants.php | 2 +- .../Compiler/ExportServiceCompilerPass.php | 6 +++++ src/Kernel.php | 23 ++++++++----------- src/Twig/LocaleFormatExtensions.php | 2 +- translations/actions.de.xlf | 2 +- translations/actions.el.xlf | 2 +- translations/actions.en.xlf | 2 +- translations/actions.fr.xlf | 2 +- translations/actions.he.xlf | 2 +- translations/actions.hr.xlf | 6 ++++- translations/actions.it.xlf | 2 +- translations/actions.pt.xlf | 2 +- translations/actions.pt_BR.xlf | 2 +- translations/actions.tr.xlf | 2 +- translations/messages.de.xlf | 2 +- translations/messages.de_CH.xlf | 2 +- translations/messages.el.xlf | 6 ++++- translations/messages.en.xlf | 4 ++-- translations/messages.es.xlf | 2 +- translations/messages.fr.xlf | 6 ++++- translations/messages.he.xlf | 6 ++++- translations/messages.hr.xlf | 8 +++++++ translations/messages.it.xlf | 2 +- translations/messages.pt.xlf | 6 ++++- translations/messages.pt_BR.xlf | 6 ++++- translations/messages.tr.xlf | 6 ++++- translations/system-configuration.de.xlf | 2 +- translations/system-configuration.el.xlf | 2 +- translations/system-configuration.en.xlf | 2 +- translations/system-configuration.fr.xlf | 4 ++-- translations/system-configuration.he.xlf | 2 +- translations/system-configuration.hr.xlf | 2 +- translations/system-configuration.it.xlf | 2 +- translations/system-configuration.pt.xlf | 2 +- translations/system-configuration.pt_BR.xlf | 2 +- translations/system-configuration.ro.xlf | 2 +- translations/system-configuration.tr.xlf | 2 +- 39 files changed, 91 insertions(+), 52 deletions(-) diff --git a/.github_changelog_generator b/.github_changelog_generator index ffa810ff..96623608 100644 --- a/.github_changelog_generator +++ b/.github_changelog_generator @@ -1,5 +1,5 @@ unreleased=true -future-release=1.15.6 +future-release=1.16 exclude-labels=duplicate,support,question,invalid,wontfix,release,waiting for feedback,documentation enhancement_labels=>enhancement,Enhancement,feature request,translation i18n,technical debt,documentation issues-wo-labels=false diff --git a/SECURITY.md b/SECURITY.md index 68157057..1f1921d3 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -7,8 +7,8 @@ As announced in the [README](README.md) I only support the latest available rele | Version | Supported | | ------- | ------------------ | | master | :white_check_mark: | -| 1.15 | :white_check_mark: | -| < 1.15 | :x: | +| 1.16 | :white_check_mark: | +| < 1.16 | :x: | ## Reporting a Vulnerability diff --git a/src/Constants.php b/src/Constants.php index d3034e05..1deece0d 100644 --- a/src/Constants.php +++ b/src/Constants.php @@ -25,7 +25,7 @@ class Constants /** * The current release status, either "stable" or "dev" */ - public const STATUS = 'dev'; + public const STATUS = 'prod'; /** * The software name */ diff --git a/src/DependencyInjection/Compiler/ExportServiceCompilerPass.php b/src/DependencyInjection/Compiler/ExportServiceCompilerPass.php index 2b2d98e3..de4cbcc1 100644 --- a/src/DependencyInjection/Compiler/ExportServiceCompilerPass.php +++ b/src/DependencyInjection/Compiler/ExportServiceCompilerPass.php @@ -56,6 +56,9 @@ class ExportServiceCompilerPass implements CompilerPassInterface foreach (glob($path . $exportPath . '/*.html.twig') as $htmlTpl) { $tplName = basename($htmlTpl); + if (stripos($tplName, '-bundle') !== false) { + continue; + } $serviceId = 'exporter_renderer.' . str_replace('.', '_', $tplName); @@ -70,6 +73,9 @@ class ExportServiceCompilerPass implements CompilerPassInterface foreach (glob($path . $exportPath . '/*.pdf.twig') as $pdfHtml) { $tplName = basename($pdfHtml); + if (stripos($tplName, '-bundle') !== false) { + continue; + } $serviceId = 'exporter_renderer.' . str_replace('.', '_', $tplName); diff --git a/src/Kernel.php b/src/Kernel.php index b0e90cf9..6e5988ab 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -120,33 +120,26 @@ class Kernel extends BaseKernel } } else { // ... or we load them dynamically from the plugins directory - foreach ($this->getBundleDirectories() as $bundleDir) { - $bundleName = $bundleDir->getRelativePathname(); - $pluginClass = 'KimaiPlugin\\' . $bundleName . '\\' . $bundleName; + foreach ($this->getBundleClasses() as $pluginClass) { yield new $pluginClass(); } } } - private function getBundleDirectories(): array + private function getBundleClasses(): array { $pluginsDir = $this->getProjectDir() . '/var/plugins'; if (!file_exists($pluginsDir)) { return []; } - $directories = []; + $plugins = []; $finder = new Finder(); $finder->ignoreUnreadableDirs()->directories()->name('*Bundle'); /** @var SplFileInfo $bundleDir */ foreach ($finder->in($pluginsDir) as $bundleDir) { $bundleName = $bundleDir->getRelativePathname(); - $bundleFilename = $bundleDir->getRealPath() . '/' . $bundleName . '.php'; - if (!file_exists($bundleFilename)) { - continue; - } - if (file_exists($bundleDir->getRealPath() . '/.disabled')) { continue; } @@ -156,10 +149,10 @@ class Kernel extends BaseKernel continue; } - $directories[] = $bundleDir; + $plugins[] = $pluginClass; } - return $directories; + return $plugins; } protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader) @@ -223,7 +216,11 @@ class Kernel extends BaseKernel foreach ($this->bundles as $bundle) { if (strpos(\get_class($bundle), 'KimaiPlugin\\') !== false) { - $routes->import($bundle->getPath() . '/Resources/config/routes' . self::CONFIG_EXTS, '/', 'glob'); + if (is_dir($bundle->getPath() . '/Resources/config/')) { + $routes->import($bundle->getPath() . '/Resources/config/routes' . self::CONFIG_EXTS, '/', 'glob'); + } elseif (is_dir($bundle->getPath() . '/config/')) { + $routes->import($bundle->getPath() . '/config/routes' . self::CONFIG_EXTS, '/', 'glob'); + } } } } diff --git a/src/Twig/LocaleFormatExtensions.php b/src/Twig/LocaleFormatExtensions.php index 2387dbb7..c0c8d6dc 100644 --- a/src/Twig/LocaleFormatExtensions.php +++ b/src/Twig/LocaleFormatExtensions.php @@ -205,7 +205,7 @@ final class LocaleFormatExtensions extends AbstractExtension public function dateWeekday(DateTime $date): string { - return $this->dayName($date, true) . ', ' . $this->getFormatter()->dateFormat($date, 'd'); + return $this->dayName($date, true) . ' ' . $this->getFormatter()->dateFormat($date, 'd'); } /** diff --git a/translations/actions.de.xlf b/translations/actions.de.xlf index 386cdbf2..5c063084 100644 --- a/translations/actions.de.xlf +++ b/translations/actions.de.xlf @@ -94,7 +94,7 @@ invoice.paid Rechnung bezahlt - + invoice.cancel Rechnung stornieren diff --git a/translations/actions.el.xlf b/translations/actions.el.xlf index 790633d7..94f35c54 100644 --- a/translations/actions.el.xlf +++ b/translations/actions.el.xlf @@ -98,7 +98,7 @@ filter Φιλτράρισμα δεδομένων - + invoice.cancel Ακύρωση τιμολογίου diff --git a/translations/actions.en.xlf b/translations/actions.en.xlf index 6ad1e50d..51687e0d 100644 --- a/translations/actions.en.xlf +++ b/translations/actions.en.xlf @@ -94,7 +94,7 @@ invoice.paid Invoice paid - + invoice.cancel Cancel invoice diff --git a/translations/actions.fr.xlf b/translations/actions.fr.xlf index ca222b0b..c153d76e 100644 --- a/translations/actions.fr.xlf +++ b/translations/actions.fr.xlf @@ -98,7 +98,7 @@ filter Filtrer les données - + invoice.cancel Annuler la facture diff --git a/translations/actions.he.xlf b/translations/actions.he.xlf index dc1ff7d1..a987ffb6 100644 --- a/translations/actions.he.xlf +++ b/translations/actions.he.xlf @@ -98,7 +98,7 @@ filter סינון נתונים - + invoice.cancel ביטול חשבונית diff --git a/translations/actions.hr.xlf b/translations/actions.hr.xlf index fb5da646..8ca826f9 100644 --- a/translations/actions.hr.xlf +++ b/translations/actions.hr.xlf @@ -1,4 +1,4 @@ - + @@ -98,6 +98,10 @@ filter Filtriraj podatke + + invoice.cancel + Prekini račun + diff --git a/translations/actions.it.xlf b/translations/actions.it.xlf index f84b55b1..137e9281 100644 --- a/translations/actions.it.xlf +++ b/translations/actions.it.xlf @@ -98,7 +98,7 @@ filter Filtra i dati - + invoice.cancel Annulla la fattura diff --git a/translations/actions.pt.xlf b/translations/actions.pt.xlf index aa148d63..a4db200f 100644 --- a/translations/actions.pt.xlf +++ b/translations/actions.pt.xlf @@ -98,7 +98,7 @@ filter Filtrar por data - + invoice.cancel Cancelar fatura diff --git a/translations/actions.pt_BR.xlf b/translations/actions.pt_BR.xlf index 2b5f8e83..8304f8d8 100644 --- a/translations/actions.pt_BR.xlf +++ b/translations/actions.pt_BR.xlf @@ -98,7 +98,7 @@ filter Filtre por data - + invoice.cancel Cancelar fatura diff --git a/translations/actions.tr.xlf b/translations/actions.tr.xlf index fb32e913..cd4ff959 100644 --- a/translations/actions.tr.xlf +++ b/translations/actions.tr.xlf @@ -98,7 +98,7 @@ filter Verileri filtrele - + invoice.cancel Faturayı iptal et diff --git a/translations/messages.de.xlf b/translations/messages.de.xlf index 57831229..e1949532 100644 --- a/translations/messages.de.xlf +++ b/translations/messages.de.xlf @@ -1083,7 +1083,7 @@ status.paid Bezahlt - + status.canceled Storniert diff --git a/translations/messages.de_CH.xlf b/translations/messages.de_CH.xlf index 1abb99de..b79ceeea 100644 --- a/translations/messages.de_CH.xlf +++ b/translations/messages.de_CH.xlf @@ -1206,7 +1206,7 @@ label.budgetType_full Lebenszyklus - + status.canceled Storniert diff --git a/translations/messages.el.xlf b/translations/messages.el.xlf index 209e953d..4fd901cb 100644 --- a/translations/messages.el.xlf +++ b/translations/messages.el.xlf @@ -1268,10 +1268,14 @@ quick_entry.title Εβδομαδιαίες ώρες εργασίας - + status.canceled Ακυρώθηκε + + label.hours_24 + 24 ώρες + diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf index c47ed1e8..2b5c2a0b 100644 --- a/translations/messages.en.xlf +++ b/translations/messages.en.xlf @@ -333,7 +333,7 @@ label.skin Display: colors - + Display: layout Display: layout @@ -1083,7 +1083,7 @@ status.paid Paid - + status.canceled Canceled diff --git a/translations/messages.es.xlf b/translations/messages.es.xlf index ad98ea6a..454fe7cb 100644 --- a/translations/messages.es.xlf +++ b/translations/messages.es.xlf @@ -1256,7 +1256,7 @@ default_value_new Valores predeterminados para entradas nuevas - + status.canceled Cancelado diff --git a/translations/messages.fr.xlf b/translations/messages.fr.xlf index c124e9ee..d5c7104a 100644 --- a/translations/messages.fr.xlf +++ b/translations/messages.fr.xlf @@ -1268,10 +1268,14 @@ label.budgetType_full Cycle de vie - + status.canceled Annulée + + label.hours_24 + 24 heures + diff --git a/translations/messages.he.xlf b/translations/messages.he.xlf index 23ac337b..54ba5267 100644 --- a/translations/messages.he.xlf +++ b/translations/messages.he.xlf @@ -1201,10 +1201,14 @@ label.budgetType_full מחזור חיים - + status.canceled בוטל + + label.hours_24 + 24 שעות + diff --git a/translations/messages.hr.xlf b/translations/messages.hr.xlf index e511f38c..ab890312 100644 --- a/translations/messages.hr.xlf +++ b/translations/messages.hr.xlf @@ -1272,6 +1272,14 @@ label.budgetType_full Životni ciklus + + label.hours_24 + 24 sata + + + status.canceled + Prekinuti + diff --git a/translations/messages.it.xlf b/translations/messages.it.xlf index a9650c48..b62670b1 100644 --- a/translations/messages.it.xlf +++ b/translations/messages.it.xlf @@ -1271,7 +1271,7 @@ label.includeBudgetType_full Mostra le voci con «ciclo di vita» bilancio - + status.canceled Annullata diff --git a/translations/messages.pt.xlf b/translations/messages.pt.xlf index 1454f294..f7bdd66c 100644 --- a/translations/messages.pt.xlf +++ b/translations/messages.pt.xlf @@ -1268,10 +1268,14 @@ label.budgetType_full Ciclo de vida - + status.canceled Cancelado + + label.hours_24 + 24 horas + diff --git a/translations/messages.pt_BR.xlf b/translations/messages.pt_BR.xlf index d679452e..4c9c2653 100644 --- a/translations/messages.pt_BR.xlf +++ b/translations/messages.pt_BR.xlf @@ -1271,10 +1271,14 @@ label.includeBudgetType_full Mostre as entradas com orçamento com "ciclo de vida" - + status.canceled Cancelado + + label.hours_24 + 24 horas + diff --git a/translations/messages.tr.xlf b/translations/messages.tr.xlf index bd9999de..75d182c2 100644 --- a/translations/messages.tr.xlf +++ b/translations/messages.tr.xlf @@ -1271,10 +1271,14 @@ label.includeBudgetType_month "Aylık" bütçeli kayıtları göster - + status.canceled İptal edildi + + label.hours_24 + 24 saat + diff --git a/translations/system-configuration.de.xlf b/translations/system-configuration.de.xlf index 73c5b1ec..4234a27c 100644 --- a/translations/system-configuration.de.xlf +++ b/translations/system-configuration.de.xlf @@ -6,7 +6,7 @@ title Einstellungen - + Time tracking Zeiterfassung diff --git a/translations/system-configuration.el.xlf b/translations/system-configuration.el.xlf index fef359d2..fac50082 100644 --- a/translations/system-configuration.el.xlf +++ b/translations/system-configuration.el.xlf @@ -6,7 +6,7 @@ title Ρυθμίσεις - + Time tracking Παρακολούθηση Χρόνου diff --git a/translations/system-configuration.en.xlf b/translations/system-configuration.en.xlf index 2d81b24b..37a49ee8 100644 --- a/translations/system-configuration.en.xlf +++ b/translations/system-configuration.en.xlf @@ -6,7 +6,7 @@ title Settings - + Time tracking Time tracking diff --git a/translations/system-configuration.fr.xlf b/translations/system-configuration.fr.xlf index b17f8b45..fb10024e 100644 --- a/translations/system-configuration.fr.xlf +++ b/translations/system-configuration.fr.xlf @@ -6,9 +6,9 @@ title Paramètres - + Time tracking - Suivi du temps + Feuille d'heures theme diff --git a/translations/system-configuration.he.xlf b/translations/system-configuration.he.xlf index 3739a0b4..ff5df27b 100644 --- a/translations/system-configuration.he.xlf +++ b/translations/system-configuration.he.xlf @@ -6,7 +6,7 @@ title הגדרות - + Time tracking מעקב אחר שעות diff --git a/translations/system-configuration.hr.xlf b/translations/system-configuration.hr.xlf index db520444..4e0d7f83 100644 --- a/translations/system-configuration.hr.xlf +++ b/translations/system-configuration.hr.xlf @@ -10,7 +10,7 @@ subtitle Promijeni globalne konfiguracije evidentiranja vremena - + Time tracking Praćenje vremena diff --git a/translations/system-configuration.it.xlf b/translations/system-configuration.it.xlf index 06f95aba..b71b4578 100644 --- a/translations/system-configuration.it.xlf +++ b/translations/system-configuration.it.xlf @@ -6,7 +6,7 @@ title Impostazioni - + Time tracking Rilevamento del tempo diff --git a/translations/system-configuration.pt.xlf b/translations/system-configuration.pt.xlf index 378fc80e..5a596206 100644 --- a/translations/system-configuration.pt.xlf +++ b/translations/system-configuration.pt.xlf @@ -6,7 +6,7 @@ title Configurações - + Time tracking Rastreamento de tempo diff --git a/translations/system-configuration.pt_BR.xlf b/translations/system-configuration.pt_BR.xlf index c7433f02..eca035ef 100644 --- a/translations/system-configuration.pt_BR.xlf +++ b/translations/system-configuration.pt_BR.xlf @@ -6,7 +6,7 @@ title Configurações - + Time tracking Rastreamento de tempo diff --git a/translations/system-configuration.ro.xlf b/translations/system-configuration.ro.xlf index 5e5ab472..ef74767e 100644 --- a/translations/system-configuration.ro.xlf +++ b/translations/system-configuration.ro.xlf @@ -6,7 +6,7 @@ title Setari - + Time tracking Monitorizarea timpului diff --git a/translations/system-configuration.tr.xlf b/translations/system-configuration.tr.xlf index 14f52082..8215e1c2 100644 --- a/translations/system-configuration.tr.xlf +++ b/translations/system-configuration.tr.xlf @@ -6,7 +6,7 @@ title Ayarlar - + Time tracking Zaman izleme