mirror of
https://github.com/kevinpapst/kimai2.git
synced 2025-03-18 06:42:53 +00:00
1.15.2 (#2782)
* fix division by zero * cleanup required directories, check configured data directory, do not check for freetype support * bump version number
This commit is contained in:
parent
d026460106
commit
204e0bc179
5 changed files with 27 additions and 43 deletions
config/packages
src
templates/embeds
|
@ -1,6 +1,6 @@
|
|||
# ---------------------------------------------------------------------------------------------
|
||||
# DO NOT EDIT THIS FILE, INSTEAD CREATE THE FILE "local.yaml" AND ADD YOUR SETTINGS IN THERE.
|
||||
# See https://www.kimai.org/documentation/configurations.html
|
||||
# See https://www.kimai.org/documentation/local-yaml.html
|
||||
#
|
||||
# Be aware that this file is YAML format and the indentation is important.
|
||||
# Each config level needs to be indented with 4 additional spaces.
|
||||
|
@ -9,19 +9,15 @@ kimai:
|
|||
|
||||
# --------------------------------------------------------------------------------
|
||||
# AUTHENTICATION
|
||||
# You can disable some user management functions in the authentication screens.
|
||||
# Both settings default to "true", see https://www.kimai.org/documentation/users.html
|
||||
# --------------------------------------------------------------------------------
|
||||
# user:
|
||||
# registration: false
|
||||
# password_reset: false
|
||||
# password_reset: true
|
||||
# --------------------------------------------------------------------------------
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------
|
||||
# TIME-TRACKING
|
||||
# All configs related to time-tracking, timesheets and record management
|
||||
# Most settings can be configured in the System configuration screen
|
||||
# --------------------------------------------------------------------------------
|
||||
timesheet:
|
||||
|
||||
|
@ -38,7 +34,6 @@ kimai:
|
|||
# time_increment: ~
|
||||
|
||||
# The time-tracking mode that should be used.
|
||||
# See https://www.kimai.org/documentation/timesheet.html#tracking-modes
|
||||
# mode: default
|
||||
|
||||
# The default time to pre-fill the "create timesheet" form (in some cases).
|
||||
|
@ -51,7 +46,6 @@ kimai:
|
|||
|
||||
# Rounding rules are used to round the begin & end dates and the duration for timesheet records.
|
||||
# The "default" rule will round "begin" down and "end" up to the full minute, the "duration" will not be rounded.
|
||||
# Find out more about rounding rules at https://www.kimai.org/documentation/timesheet.html
|
||||
# rounding:
|
||||
# default:
|
||||
# days: ['monday','tuesday','wednesday','thursday','friday','saturday','sunday']
|
||||
|
@ -62,7 +56,6 @@ kimai:
|
|||
|
||||
# If you want to apply different hourly rates for specific weekdays, you can uncomment the "rates" configuration.
|
||||
# The "weekend" rule will add 50% to each timesheet entry that will be recorded on "saturdays" or "sundays".
|
||||
# See documentation at: https://www.kimai.org/documentation/timesheet.html#rate-calculation
|
||||
# rates:
|
||||
# weekend:
|
||||
# days: ['saturday','sunday']
|
||||
|
@ -75,18 +68,11 @@ kimai:
|
|||
# and the user has to stop an active entry first
|
||||
# active_entries:
|
||||
# hard_limit: 3
|
||||
|
||||
# Rules that define timesheet validation and behaviour
|
||||
# allow_future_times: whether records in the future can be created
|
||||
# rules:
|
||||
# allow_future_times: true
|
||||
# --------------------------------------------------------------------------------
|
||||
|
||||
|
||||
# --------------------------------------------------------------------------------
|
||||
# PERMISSIONS
|
||||
# Find out more about the configurable permission system at:
|
||||
# https://www.kimai.org/documentation/permissions.html
|
||||
# --------------------------------------------------------------------------------
|
||||
permissions:
|
||||
# mapping complex rule sets of single permissions to named "sets" ("set name" = [array of "permissions and sets"])
|
||||
|
@ -146,7 +132,6 @@ kimai:
|
|||
|
||||
# --------------------------------------------------------------------------------
|
||||
# CALENDAR Configuration
|
||||
# See documentation at https://www.kimai.org/documentation/calendar.html
|
||||
# --------------------------------------------------------------------------------
|
||||
# calendar:
|
||||
# week_numbers: true
|
||||
|
@ -184,8 +169,6 @@ kimai:
|
|||
|
||||
# --------------------------------------------------------------------------------
|
||||
# DASHBOARD
|
||||
# Using the configurable widget sections.
|
||||
# See documentation at https://www.kimai.org/documentation/dashboard.html
|
||||
# --------------------------------------------------------------------------------
|
||||
dashboard:
|
||||
user_duration:
|
||||
|
@ -223,7 +206,6 @@ kimai:
|
|||
|
||||
# --------------------------------------------------------------------------------
|
||||
# LANGUAGES
|
||||
# Locale specific settings, like date formats
|
||||
# --------------------------------------------------------------------------------
|
||||
languages:
|
||||
cs:
|
||||
|
|
|
@ -17,11 +17,11 @@ class Constants
|
|||
/**
|
||||
* The current release version
|
||||
*/
|
||||
public const VERSION = '1.15.1';
|
||||
public const VERSION = '1.15.2';
|
||||
/**
|
||||
* The current release: major * 10000 + minor * 100 + patch
|
||||
*/
|
||||
public const VERSION_ID = 11501;
|
||||
public const VERSION_ID = 11502;
|
||||
/**
|
||||
* The current release status, either "stable" or "dev"
|
||||
*/
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Utils\FileHelper;
|
||||
use Composer\InstalledVersions;
|
||||
use PackageVersions\Versions;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
||||
|
@ -40,24 +41,18 @@ class DoctorController extends AbstractController
|
|||
*/
|
||||
public const DIRECTORIES_WRITABLE = [
|
||||
'var/cache/',
|
||||
'var/data/',
|
||||
'var/log/',
|
||||
'var/sessions/',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $projectDirectory;
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $environment;
|
||||
private $fileHelper;
|
||||
|
||||
public function __construct(string $projectDirectory, string $kernelEnvironment)
|
||||
public function __construct(string $projectDirectory, string $kernelEnvironment, FileHelper $fileHelper)
|
||||
{
|
||||
$this->projectDirectory = $projectDirectory;
|
||||
$this->environment = $kernelEnvironment;
|
||||
$this->fileHelper = $fileHelper;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -119,6 +114,8 @@ class DoctorController extends AbstractController
|
|||
$versions[$package] = InstalledVersions::getPrettyVersion($package);
|
||||
}
|
||||
} else {
|
||||
@trigger_error('Please upgrade your Composer to 2.x', E_USER_DEPRECATED);
|
||||
|
||||
// @deprecated since 1.14, will be removed with 2.0
|
||||
$rootPackage = Versions::rootPackageName();
|
||||
foreach (Versions::VERSIONS as $name => $version) {
|
||||
|
@ -155,12 +152,6 @@ class DoctorController extends AbstractController
|
|||
}
|
||||
}
|
||||
|
||||
$results['Freetype Support'] = true;
|
||||
// @see AvatarService::hasDependencies()
|
||||
if (!\function_exists('imagettfbbox')) {
|
||||
$results['Freetype Support'] = false;
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
|
@ -218,20 +209,31 @@ class DoctorController extends AbstractController
|
|||
|
||||
private function getFilePermissions()
|
||||
{
|
||||
$results = [];
|
||||
$testPaths = [];
|
||||
$baseDir = $this->projectDirectory . DIRECTORY_SEPARATOR;
|
||||
|
||||
foreach (self::DIRECTORIES_WRITABLE as $path) {
|
||||
$results[$path] = false;
|
||||
$fullPath = $this->projectDirectory . '/' . $path;
|
||||
$fullPath = $baseDir . $path;
|
||||
$fullUri = realpath($fullPath);
|
||||
|
||||
if ($fullUri === false && !file_exists($fullPath)) {
|
||||
@mkdir($fullPath);
|
||||
clearstatcache(true);
|
||||
$fullUri = realpath($fullPath);
|
||||
}
|
||||
|
||||
$testPaths[] = $fullUri;
|
||||
}
|
||||
|
||||
$results = [];
|
||||
$testPaths[] = $this->fileHelper->getDataDirectory();
|
||||
foreach ($testPaths as $fullUri) {
|
||||
$fullUri = rtrim($fullUri, DIRECTORY_SEPARATOR);
|
||||
$tmp = str_replace($baseDir, '', $fullUri) . DIRECTORY_SEPARATOR;
|
||||
if ($fullUri !== false && is_readable($fullUri) && is_writable($fullUri)) {
|
||||
$results[$path] = true;
|
||||
$results[$tmp] = true;
|
||||
} else {
|
||||
$results[$tmp] = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ final class Version20210717211144 extends AbstractMigration
|
|||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return '';
|
||||
return 'Adds the account column to the user table';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
|
|
|
@ -119,7 +119,7 @@
|
|||
<td class="text-nowrap text-right">{{ percentReached|number_format(2) }}%</td>
|
||||
</tr>
|
||||
{% set percentReached = 0 %}
|
||||
{% if stats.rate > 0 %}
|
||||
{% if stats.rateBillable > 0 %}
|
||||
{% set percentReached = (stats.internalRate / (stats.rateBillable / 100)) %}
|
||||
{% endif %}
|
||||
<tr>
|
||||
|
|
Loading…
Reference in a new issue