added default settings for new customer form (#358)

This commit is contained in:
Toby Batch
2018-10-21 14:27:43 +01:00
committed by Kevin Papst
parent b46e752d0a
commit 3075276a52
7 changed files with 80 additions and 1 deletions

View File

@@ -28,6 +28,19 @@ use Symfony\Component\Routing\Annotation\Route;
*/
class CustomerController extends AbstractController
{
/**
* @var array
*/
private $defaults;
/**
* @param array $defaults
*/
public function __construct(array $defaults)
{
$this->defaults = $defaults;
}
/**
* @return \App\Repository\CustomerRepository
*/
@@ -67,7 +80,12 @@ class CustomerController extends AbstractController
*/
public function createAction(Request $request)
{
return $this->renderCustomerForm(new Customer(), $request);
$customer = new Customer();
$customer->setCountry($this->defaults['customer']['country']);
$customer->setCurrency($this->defaults['customer']['currency']);
$customer->setTimezone($this->defaults['customer']['timezone']);
return $this->renderCustomerForm($customer, $request);
}
/**

View File

@@ -39,6 +39,7 @@ class AppExtension extends Extension implements PrependExtensionInterface
$container->setParameter('kimai.dashboard', $config['dashboard']);
$container->setParameter('kimai.widgets', $config['widgets']);
$container->setParameter('kimai.invoice.documents', $config['invoice']['documents']);
$container->setParameter('kimai.defaults', $config['defaults']);
$this->createUserParameter($config, $container);
$this->createTimesheetParameter($config, $container);

View File

@@ -39,6 +39,7 @@ class Configuration implements ConfigurationInterface
->append($this->getThemeNode())
->append($this->getDashboardNode())
->append($this->getWidgetsNode())
->append($this->getDefaultsNode())
->end()
->end();
@@ -303,4 +304,26 @@ class Configuration implements ConfigurationInterface
return $node;
}
protected function getDefaultsNode()
{
$builder = new TreeBuilder();
$node = $builder->root('defaults');
$node
->addDefaultsIfNotSet()
->children()
->arrayNode('customer')
->addDefaultsIfNotSet()
->children()
->scalarNode('timezone')->defaultValue('Europe/Berlin')->end()
->scalarNode('country')->defaultValue('DE')->end()
->scalarNode('currency')->defaultValue('EUR')->end()
->end()
->end()
->end()
;
return $node;
}
}