Duration only mode #131 (#134)

This commit is contained in:
Kevin Papst
2018-02-10 22:19:49 +01:00
committed by GitHub
parent 93e1cd5095
commit 5a4bb0d081
19 changed files with 671 additions and 135 deletions

View File

@@ -12,12 +12,13 @@ namespace App\DependencyInjection;
use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
use Symfony\Component\Config\Definition\Exception\InvalidDefinitionException;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
/**
* This is the class that loads and manages your bundle configuration
*/
class AppExtension extends Extension
class AppExtension extends Extension implements PrependExtensionInterface
{
/**
* {@inheritdoc}
@@ -32,9 +33,17 @@ class AppExtension extends Extension
$config = [];
}
$this->createTimesheetParameter($config, $container);
$this->createInvoiceParameter($config, $container);
}
public function createTimesheetParameter(array $config, ContainerBuilder $container)
{
$container->setParameter('kimai.timesheet.rates', $config['timesheet']['rates']);
$container->setParameter('kimai.timesheet.rounding', $config['timesheet']['rounding']);
$container->setParameter('kimai.timesheet.duration_only', $config['timesheet']['duration_only']);
}
/**
* @param array $config
* @param ContainerBuilder $container
@@ -52,8 +61,30 @@ class AppExtension extends Extension
}
$container->setParameter('kimai.invoice', $config['invoice']);
$container->setParameter('kimai.timesheet.rates', $config['timesheet']['rates']);
$container->setParameter('kimai.timesheet.rounding', $config['timesheet']['rounding']);
}
/**
* @param ContainerBuilder $container
*/
public function prepend(ContainerBuilder $container)
{
$configuration = new Configuration();
$configs = $container->getExtensionConfig($this->getAlias());
try {
$config = $this->processConfiguration($configuration, $configs);
} catch (InvalidConfigurationException $e) {
trigger_error('Found invalid "kimai" configuration: ' . $e->getMessage());
$config = [];
}
$container->prependExtensionConfig(
'twig',
[
'globals' => [
'duration_only' => $config['timesheet']['duration_only'],
],
]
);
}
/**