Skip to content

Commit

Permalink
Merge 29f8314 into 2b4db99
Browse files Browse the repository at this point in the history
  • Loading branch information
soerenmartius committed Oct 21, 2014
2 parents 2b4db99 + 29f8314 commit 8e95b0d
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 22 deletions.
3 changes: 0 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ language: php
php: 5.3.3

env:
- SYMFONY_VERSION="2.1.*"
- SYMFONY_VERSION="2.2.*"
- SYMFONY_VERSION="2.3.*"
- SYMFONY_VERSION="2.4.*"
- SYMFONY_VERSION="2.5.*"

Expand Down
67 changes: 52 additions & 15 deletions Form/Type/PlacesAutocompleteType.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Bundle\FrameworkBundle\Translation\Translator;

/**
* Google Map places autocomplete type.
Expand All @@ -30,19 +31,44 @@ class PlacesAutocompleteType extends AbstractType
/** @var \Ivory\GoogleMap\Helper\Places\AutocompleteHelper */
protected $autocompleteHelper;

/** @var \Symfony\Component\HttpFoundation\Request */
protected $request;
/** @var \Symfony\Component\HttpFoundation\RequestStack */
protected $requestStack;

/** @var \Symfony\Bundle\FrameworkBundle\Translation\Translator */
protected $translator;

/**
* Creates a places autocomplete form type.
*
* @param \Ivory\GoogleMap\Helper\Places\AutocompleteHelper $autocompleteHelper The autocomplete helper.
* @param \Ivory\GoogleMapBundle\Form\Type\Request $request The http request.
* @param \Ivory\GoogleMapBundle\Form\Type\RequestStack $requestStack The http request stack.
* @param \Symfony\Bundle\FrameworkBundle\Translation\Translator $translator the translator component.
*/
public function __construct(AutocompleteHelper $autocompleteHelper, Request $request)
public function __construct(AutocompleteHelper $autocompleteHelper, RequestStack $requestStack, Translator $translator)
{
$this->setAutocompleteHelper($autocompleteHelper);
$this->setRequest($request);
$this->setRequestStack($requestStack);
$this->setTranslator($translator);
}

/**
* Gets the translator
*
* @return \Symfony\Bundle\FrameworkBundle\Translation\Translator the translator compoment
*/
public function getTranslator()
{
return $this->translator;
}

/**
* Sets the translator
*
* @param \Symfony\Bundle\FrameworkBundle\Translation\Translator $translator the translator
*/
public function setTranslator($translator)
{
$this->translator = $translator;
}

/**
Expand All @@ -66,23 +92,23 @@ public function setAutocompleteHelper(AutocompleteHelper $autocompleteHelper)
}

/**
* Gets the http request.
* Gets the http request stack.
*
* @return \Symfony\Component\HttpFoundation\Request The http request.
* @return \Symfony\Component\HttpFoundation\RequestStack The http request stack.
*/
public function getRequest()
public function getRequestStack()
{
return $this->request;
return $this->requestStack;
}

/**
* Sets the http request.
* Sets the http request stack.
*
* @param \Symfony\Component\HttpFoundation\Request $request The http request.
* @param \Symfony\Component\HttpFoundation\Request $requestStack The http request stack.
*/
public function setRequest(Request $request)
public function setRequestStack(RequestStack $requestStack)
{
$this->request = $request;
$this->requestStack = $requestStack;
}

/**
Expand Down Expand Up @@ -129,11 +155,22 @@ public function buildForm(FormBuilderInterface $builder, array $options)
*/
public function buildView(FormView $view, FormInterface $form, array $options)
{

$autocomplete = $form->getConfig()->getAttribute('autocomplete');
$autocomplete->setInputId($view->vars['id']);
$autocomplete->setValue($view->vars['value']);
$autocomplete->setInputAttribute('name', $view->vars['full_name']);

if(isset($view->vars['attr']['placeholder'])) {
$autocomplete->setInputAttribute('placeholder',
$this->getTranslator()->trans($view->vars['attr']['placeholder'],
array(),
$view->vars['translation_domain']
));
} else {
$autocomplete->setInputAttribute('placeholder', null);
}

$view->vars['html'] = $this->getAutocompleteHelper()->renderHtmlContainer($autocomplete);
$view->vars['javascripts'] = $this->getAutocompleteHelper()->renderJavascripts($autocomplete);
}
Expand All @@ -149,7 +186,7 @@ public function setDefaultOptions(OptionsResolverInterface $resolver)
'types' => array(),
'component_restrictions' => array(),
'async' => false,
'language' => $this->getRequest()->getLocale(),
'language' => $this->getRequestStack()->getMasterRequest()->getLocale(),
));

$resolver->setAllowedTypes(array(
Expand Down
5 changes: 2 additions & 3 deletions Resources/config/services/places_autocomplete.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@
<service
id="ivory_google_map.places_autocomplete.form.type"
class="%ivory_google_map.places_autocomplete.form.type.class%"
scope="request"
>
<argument type="service" id="ivory_google_map.places_autocomplete.helper" />
<argument type="service" id="request" />

<argument type="service" id="request_stack" />
<argument type="service" id="translator" />
<tag name="form.type" alias="places_autocomplete" />
</service>

Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
],
"require": {
"php": ">=5.3.0",
"symfony/framework-bundle": "~2.1",
"symfony/framework-bundle": "~2.4",
"egeloen/google-map": "~1.4.0"
},
"require-dev": {
Expand Down

0 comments on commit 8e95b0d

Please sign in to comment.