diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 4c7903685..e5ca0d403 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -366,6 +366,9 @@ protected function addFlashConfig(ArrayNodeDefinition $rootNode) ->arrayNode('flash') ->addDefaultsIfNotSet() ->children() + ->booleanNode('closeable') + ->defaultFalse() + ->end() ->arrayNode('mapping') ->addDefaultsIfNotSet() ->children() diff --git a/DependencyInjection/MopaBootstrapExtension.php b/DependencyInjection/MopaBootstrapExtension.php index 4b3a46474..3798490e3 100644 --- a/DependencyInjection/MopaBootstrapExtension.php +++ b/DependencyInjection/MopaBootstrapExtension.php @@ -86,8 +86,9 @@ public function load(array $configs, ContainerBuilder $container) * Flash */ if (isset($config['flash'])) { - $mapping = array(); + $container->setParameter('mopa_bootstrap.flash.closeable', $config['flash']['closeable']); + $mapping = array(); foreach ($config['flash']['mapping'] as $alertType => $flashTypes) { foreach ($flashTypes as $type) { $mapping[$type] = $alertType; diff --git a/Resources/config/twig.xml b/Resources/config/twig.xml index 3d23735a2..5bc3f9f5c 100644 --- a/Resources/config/twig.xml +++ b/Resources/config/twig.xml @@ -23,6 +23,7 @@ + %mopa_bootstrap.flash.closeable% diff --git a/Resources/doc/configuration-reference.md b/Resources/doc/configuration-reference.md index 31256903a..fc95887df 100644 --- a/Resources/doc/configuration-reference.md +++ b/Resources/doc/configuration-reference.md @@ -88,6 +88,7 @@ mopa_bootstrap: diagnostic_mode: false flash: + closeable: false mapping: # alertType => [flashType1, ..] success: [success] diff --git a/Resources/views/flash.html.twig b/Resources/views/flash.html.twig index 5b3eac273..7977a82db 100644 --- a/Resources/views/flash.html.twig +++ b/Resources/views/flash.html.twig @@ -46,7 +46,7 @@ {% set domain = 'FOSUserBundle' %} {% endif %} {% for message in messages %} - {{ flash_messages.flash(mapping[type], message, close, use_raw, class, domain) }} + {{ flash_messages.flash(mapping[type], message, mopa_bootstrap_flash_closeable(close), use_raw, class, domain) }} {% endfor %} {% endfor %} {% endif %} diff --git a/Twig/FlashExtension.php b/Twig/FlashExtension.php index 8dd9b8ea6..3261f1159 100644 --- a/Twig/FlashExtension.php +++ b/Twig/FlashExtension.php @@ -11,8 +11,6 @@ namespace Mopa\Bundle\BootstrapBundle\Twig; -use Symfony\Component\HttpFoundation\Response; - /** * MopaBootstrap Flash Extension. * @@ -20,6 +18,11 @@ */ class FlashExtension extends \Twig_Extension { + /** + * @var string + */ + protected $closeable; + /** * @var array */ @@ -29,10 +32,12 @@ class FlashExtension extends \Twig_Extension * Constructor. * * @param array $mapping + * @param string $closeable */ - public function __construct(array $mapping) + public function __construct(array $mapping, $closeable) { $this->mapping = $mapping; + $this->closeable = $closeable; } /** @@ -42,9 +47,18 @@ public function getFunctions() { return array( new \Twig_SimpleFunction('mopa_bootstrap_flash_mapping', array($this, 'getMapping'), array('is_safe' => array('html'))), + new \Twig_SimpleFunction('mopa_bootstrap_flash_closeable', array($this, 'getCloseable')), ); } + public function getCloseable($close = null) + { + if ($close === null) { + return $this->closeable; + } + return $close; + } + /** * Get flash mapping. *