Rework leaflet dca callbacks to a listener service.

This commit is contained in:
David Molineus
2017-10-06 13:56:46 +02:00
parent 5a4fd9b434
commit 6c7b136c0e
10 changed files with 49 additions and 46 deletions

View File

@@ -10,46 +10,44 @@
* @filesource * @filesource
*/ */
namespace Netzmacht\Contao\Leaflet\Dca; namespace Netzmacht\Contao\Leaflet\Listener\Dca;
use Contao\DataContainer;
use Netzmacht\Contao\Leaflet\Model\LayerModel; use Netzmacht\Contao\Leaflet\Model\LayerModel;
use Netzmacht\Contao\Toolkit\Dca\Callback\CallbackFactory;
use Netzmacht\LeafletPHP\Value\LatLng; use Netzmacht\LeafletPHP\Value\LatLng;
use Symfony\Component\Filesystem\Filesystem;
/** /**
* Class Leaflet is the base helper providing different methods. * Class Leaflet is the base helper providing different methods.
* *
* @package Netzmacht\Contao\Leaflet\Dca * @package Netzmacht\Contao\Leaflet\Dca
*/ */
class LeafletCallbacks class LeafletDcaListener
{ {
/** /**
* File system. * File system.
* *
* @var \Files * @var Filesystem
*/ */
private $fileSystem; private $fileSystem;
/** /**
* LeafletCallbacks constructor. * Cache dir.
* *
* @param \Files $fileSystem File system. * @var string
*/ */
public function __construct(\Files $fileSystem) private $cacheDir;
{
$this->fileSystem = $fileSystem;
}
/** /**
* Generate the callback definition. * LeafletCallbacks constructor.
* *
* @param string $methodName Callback method name. * @param Filesystem $fileSystem File system.
* * @param string $cacheDir Cache dir.
* @return callable
*/ */
public static function callback($methodName) public function __construct(Filesystem $fileSystem, string $cacheDir)
{ {
return CallbackFactory::service('leaflet.dca.common', $methodName); $this->fileSystem = $fileSystem;
$this->cacheDir = $cacheDir;
} }
/** /**
@@ -65,7 +63,7 @@ class LeafletCallbacks
/** /**
* Get the geocoder wizard. * Get the geocoder wizard.
* *
* @param \DataContainer $dataContainer The dataContainer driver. * @param DataContainer $dataContainer The dataContainer driver.
* *
* @return string * @return string
*/ */
@@ -78,10 +76,9 @@ class LeafletCallbacks
$latLng = LatLng::fromString($dataContainer->value); $latLng = LatLng::fromString($dataContainer->value);
$template->marker = json_encode($latLng); $template->marker = json_encode($latLng);
} catch (\Exception $e) { } catch (\Exception $e) {
// LatLng throws an exeption of value could not be created. Just let the value empty when. // LatLng throws an exception of value could not be created. Just let the value empty when.
} }
return $template->parse(); return $template->parse();
} }
@@ -113,7 +110,7 @@ class LeafletCallbacks
*/ */
public function clearCache($value = null) public function clearCache($value = null)
{ {
$this->fileSystem->rrdir('system/cache/leaflet', true); $this->fileSystem->remove($this->cacheDir);
return $value; return $value;
} }

View File

@@ -1,4 +1,10 @@
services: services:
netzmacht.contao_leaflet_maps.listeners.dca.leaflet:
class: Netzmacht\Contao\Leaflet\Listener\Dca\LeafletDcaListener
arguments:
- '@filesystem'
- '%netzmacht.contao_leaflet_maps.cache_dir%'
netzmacht.contao_leaflet_maps.listeners.dca.map: netzmacht.contao_leaflet_maps.listeners.dca.map:
class: Netzmacht\Contao\Leaflet\Listener\Dca\MapDcaListener class: Netzmacht\Contao\Leaflet\Listener\Dca\MapDcaListener
arguments: arguments:

View File

@@ -27,7 +27,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_control'] = array
) )
), ),
'onsubmit_callback' => [ 'onsubmit_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
@@ -227,7 +227,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_control'] = array
'eval' => array('tl_class' => 'w50'), 'eval' => array('tl_class' => 'w50'),
'sql' => "char(1) NOT NULL default ''", 'sql' => "char(1) NOT NULL default ''",
'save_callback' => [ 'save_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
'zoomInText' => array 'zoomInText' => array

View File

@@ -24,7 +24,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_icon'] = array
) )
), ),
'onsubmit_callback' => [ 'onsubmit_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
@@ -228,7 +228,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_icon'] = array
'eval' => array('tl_class' => 'w50'), 'eval' => array('tl_class' => 'w50'),
'sql' => "char(1) NOT NULL default ''", 'sql' => "char(1) NOT NULL default ''",
'save_callback' => [ 'save_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
'iconImage' => array 'iconImage' => array

View File

@@ -31,7 +31,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
}, },
], ],
'onsubmit_callback' => [ 'onsubmit_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
], ],
'list' => [ 'list' => [
@@ -294,7 +294,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
'eval' => ['tl_class' => 'w50'], 'eval' => ['tl_class' => 'w50'],
'sql' => "char(1) NOT NULL default ''", 'sql' => "char(1) NOT NULL default ''",
'save_callback' => [ 'save_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
], ],
'tile_provider' => [ 'tile_provider' => [
@@ -452,7 +452,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['disableClusteringAtZoom'], 'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['disableClusteringAtZoom'],
'exclude' => true, 'exclude' => true,
'inputType' => 'select', 'inputType' => 'select',
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'), 'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
'default' => '', 'default' => '',
'eval' => [ 'eval' => [
'maxlength' => 4, 'maxlength' => 4,
@@ -541,7 +541,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['minZoom'], 'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['minZoom'],
'exclude' => true, 'exclude' => true,
'inputType' => 'select', 'inputType' => 'select',
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'), 'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
'eval' => [ 'eval' => [
'maxlength' => 4, 'maxlength' => 4,
'rgxp' => 'digit', 'rgxp' => 'digit',
@@ -555,7 +555,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['maxZoom'], 'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['maxZoom'],
'exclude' => true, 'exclude' => true,
'inputType' => 'select', 'inputType' => 'select',
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'), 'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
'eval' => [ 'eval' => [
'maxlength' => 4, 'maxlength' => 4,
'rgxp' => 'digit', 'rgxp' => 'digit',
@@ -569,7 +569,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_layer'] = [
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['maxNativeZoom'], 'label' => &$GLOBALS['TL_LANG']['tl_leaflet_layer']['maxNativeZoom'],
'exclude' => true, 'exclude' => true,
'inputType' => 'select', 'inputType' => 'select',
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'), 'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
'eval' => [ 'eval' => [
'maxlength' => 4, 'maxlength' => 4,
'rgxp' => 'digit', 'rgxp' => 'digit',

View File

@@ -30,7 +30,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
} }
), ),
'onsubmit_callback' => [ 'onsubmit_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
@@ -194,7 +194,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
\Netzmacht\Contao\Leaflet\Dca\Validator::callback('validateCoordinates'), \Netzmacht\Contao\Leaflet\Dca\Validator::callback('validateCoordinates'),
), ),
'wizard' => array( 'wizard' => array(
Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getGeocoder') ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getGeocoder']
), ),
'eval' => array( 'eval' => array(
'maxlength' => 255, 'maxlength' => 255,
@@ -243,7 +243,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['zoom'], 'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['zoom'],
'exclude' => true, 'exclude' => true,
'inputType' => 'select', 'inputType' => 'select',
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'), 'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
'default' => '', 'default' => '',
'eval' => array( 'eval' => array(
'maxlength' => 4, 'maxlength' => 4,
@@ -268,7 +268,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['minZoom'], 'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['minZoom'],
'exclude' => true, 'exclude' => true,
'inputType' => 'select', 'inputType' => 'select',
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'), 'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
'eval' => array( 'eval' => array(
'maxlength' => 4, 'maxlength' => 4,
'rgxp' => 'digit', 'rgxp' => 'digit',
@@ -283,7 +283,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['maxZoom'], 'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['maxZoom'],
'exclude' => true, 'exclude' => true,
'inputType' => 'select', 'inputType' => 'select',
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'), 'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
'eval' => array( 'eval' => array(
'maxlength' => 4, 'maxlength' => 4,
'rgxp' => 'digit', 'rgxp' => 'digit',
@@ -555,7 +555,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_map'] = array
'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaxZoom'], 'label' => &$GLOBALS['TL_LANG']['tl_leaflet_map']['locateMaxZoom'],
'exclude' => true, 'exclude' => true,
'inputType' => 'select', 'inputType' => 'select',
'options_callback' => Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getZoomLevels'), 'options_callback' => ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getZoomLevels'],
'eval' => array( 'eval' => array(
'maxlength' => 4, 'maxlength' => 4,
'rgxp' => 'digit', 'rgxp' => 'digit',

View File

@@ -29,7 +29,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_marker'] = array
['netzmacht.contao_leaflet_maps.listeners.dca.marker', 'initialize'], ['netzmacht.contao_leaflet_maps.listeners.dca.marker', 'initialize'],
), ),
'onsubmit_callback' => [ 'onsubmit_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
@@ -199,7 +199,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_marker'] = array
array('netzmacht.contao_leaflet_maps.listeners.dca.marker', 'loadCoordinates') array('netzmacht.contao_leaflet_maps.listeners.dca.marker', 'loadCoordinates')
), ),
'wizard' => array( 'wizard' => array(
Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getGeocoder') ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getGeocoder']
), ),
'eval' => array( 'eval' => array(
'maxlength' => 255, 'maxlength' => 255,
@@ -243,7 +243,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_marker'] = array
'eval' => array('tl_class' => 'w50'), 'eval' => array('tl_class' => 'w50'),
'sql' => "char(1) NOT NULL default ''", 'sql' => "char(1) NOT NULL default ''",
'save_callback' => [ 'save_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
'tooltip' => array 'tooltip' => array

View File

@@ -24,7 +24,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_popup'] = array
) )
), ),
'onsubmit_callback' => [ 'onsubmit_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
@@ -297,7 +297,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_popup'] = array
'eval' => array('tl_class' => 'w50'), 'eval' => array('tl_class' => 'w50'),
'sql' => "char(1) NOT NULL default ''", 'sql' => "char(1) NOT NULL default ''",
'save_callback' => [ 'save_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
), ),

View File

@@ -24,7 +24,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_style'] = array
) )
), ),
'onsubmit_callback' => [ 'onsubmit_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
@@ -305,7 +305,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_style'] = array
'eval' => array('tl_class' => 'w50'), 'eval' => array('tl_class' => 'w50'),
'sql' => "char(1) NOT NULL default ''", 'sql' => "char(1) NOT NULL default ''",
'save_callback' => [ 'save_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
), ),

View File

@@ -31,7 +31,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = array
} }
), ),
'onsubmit_callback' => [ 'onsubmit_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
@@ -247,7 +247,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = array
'eval' => array('tl_class' => 'w50'), 'eval' => array('tl_class' => 'w50'),
'sql' => "char(1) NOT NULL default ''", 'sql' => "char(1) NOT NULL default ''",
'save_callback' => [ 'save_callback' => [
\Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('clearCache'), ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'clearCache'],
], ],
), ),
'addPopup' => array 'addPopup' => array
@@ -322,7 +322,7 @@ $GLOBALS['TL_DCA']['tl_leaflet_vector'] = array
\Netzmacht\Contao\Leaflet\Dca\Validator::callback('validateCoordinates') \Netzmacht\Contao\Leaflet\Dca\Validator::callback('validateCoordinates')
), ),
'wizard' => array( 'wizard' => array(
Netzmacht\Contao\Leaflet\Dca\LeafletCallbacks::callback('getGeocoder') ['netzmacht.contao_leaflet_maps.listeners.dca.leaflet', 'getGeocoder']
), ),
'eval' => array( 'eval' => array(
'maxlength' => 255, 'maxlength' => 255,