improved duration and minute selector (#2264)
* do not close modal if form is dirty * deprecated TimesheetConfiguration * inject timezone in form types * cleanup usage of UserDateTimeFactory * allow to configure increment steps for minutes * use 15 minutes step for datetimepicker in project edit form * use rounding rules for increments in minute select for begin and end * allow duration in multi user and admin timesheet forms * make dropdown values configurable
This commit is contained in:
@@ -61,19 +61,19 @@ class AppExtension extends Extension
|
||||
$this->setLanguageFormats($config['languages'], $container);
|
||||
unset($config['languages']);
|
||||
|
||||
$container->setParameter('kimai.calendar', $config['calendar']);
|
||||
$container->setParameter('kimai.calendar', $config['calendar']); // @deprecated since 1.13
|
||||
$container->setParameter('kimai.dashboard', $config['dashboard']);
|
||||
$container->setParameter('kimai.widgets', $config['widgets']);
|
||||
$container->setParameter('kimai.invoice.documents', $config['invoice']['documents']);
|
||||
$container->setParameter('kimai.export.documents', $config['export']['documents']);
|
||||
$container->setParameter('kimai.defaults', $config['defaults']);
|
||||
$container->setParameter('kimai.defaults', $config['defaults']); // @deprecated since 1.13
|
||||
|
||||
$this->createPermissionParameter($config['permissions'], $container);
|
||||
$this->createThemeParameter($config['theme'], $container);
|
||||
$this->createUserParameter($config['user'], $container);
|
||||
$container->setParameter('kimai.saml', $config['saml']);
|
||||
$container->setParameter('kimai.saml.connection', $config['saml']['connection']);
|
||||
$container->setParameter('kimai.timesheet', $config['timesheet']);
|
||||
$container->setParameter('kimai.timesheet', $config['timesheet']); // @deprecated since 1.13
|
||||
$container->setParameter('kimai.timesheet.rates', $config['timesheet']['rates']);
|
||||
$container->setParameter('kimai.timesheet.rounding', $config['timesheet']['rounding']);
|
||||
|
||||
|
||||
@@ -94,6 +94,32 @@ class Configuration implements ConfigurationInterface
|
||||
->booleanNode('markdown_content')
|
||||
->defaultValue(false)
|
||||
->end()
|
||||
->scalarNode('duration_increment')
|
||||
->defaultNull()
|
||||
->validate()
|
||||
->ifTrue(function ($value) {
|
||||
if ($value !== null) {
|
||||
return ((int) $value) < 0;
|
||||
}
|
||||
|
||||
return false;
|
||||
})
|
||||
->thenInvalid('Duration increment is invalid')
|
||||
->end()
|
||||
->end()
|
||||
->scalarNode('time_increment')
|
||||
->defaultNull()
|
||||
->validate()
|
||||
->ifTrue(function ($value) {
|
||||
if ($value !== null) {
|
||||
return ((int) $value) < 1;
|
||||
}
|
||||
|
||||
return false;
|
||||
})
|
||||
->thenInvalid('Time increment is invalid')
|
||||
->end()
|
||||
->end()
|
||||
->arrayNode('rounding')
|
||||
->requiresAtLeastOneElement()
|
||||
->useAttributeAsKey('key')
|
||||
|
||||
Reference in New Issue
Block a user