Commit Graph

62 Commits

Author SHA1 Message Date
Fabien Potencier
1d711899b6 Merge branch '2.8' into 3.0
* 2.8:
  [Form] fix FQCN in tests added by #17798
  bug #17798 [Form] allow `choice_label` option to be `false`
  [DependencyInjection] Simplified code in AutowirePass
2016-02-28 16:05:39 +01:00
Fabien Potencier
82eb951186 Merge branch '2.7' into 2.8
* 2.7:
  bug #17798 [Form] allow `choice_label` option to be `false`
2016-02-28 15:59:45 +01:00
Jules Pietri
017e1d9e6e bug #17798 [Form] allow choice_label option to be false
When `ChoiceType`is expanded, `choice_label` option can be `false`
or return `false` for one or more choices by a callable.
2016-02-26 16:42:52 +01:00
Fabien Potencier
5554c76473 Merge branch '2.8' into 3.0
* 2.8:
  [Form] refactor `RadioListMapper::mapDataToForm()`
  [Form] fix choice value "false" in ChoiceType
2016-02-26 06:10:13 +01:00
Fabien Potencier
42467b31d7 Merge branch '2.7' into 2.8
* 2.7:
  [Form] refactor `RadioListMapper::mapDataToForm()`
  [Form] fix choice value "false" in ChoiceType
2016-02-26 06:06:51 +01:00
Fabien Potencier
a7f98315f3 bug #17760 [2.7] [Form] fix choice value "false" in ChoiceType (HeahDude)
This PR was merged into the 2.7 branch.

Discussion
----------

[2.7] [Form] fix choice value "false" in ChoiceType

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #17292, #14712, #17789
| License       | MIT
| Doc PR        | -

- [x] Add tests for choices with `boolean` and `null` values, and with a placeholder
- [x] Fix FQCN in 2.8 tests, see #17759
- [x] Remove `choices_as_values` in 3.0 tests, see #17886

Commits
-------

8f918e5 [Form] refactor `RadioListMapper::mapDataToForm()`
3eac469 [Form] fix choice value "false" in ChoiceType
2016-02-26 06:04:56 +01:00
Fabien Potencier
6782cfa011 Merge branch '2.8' into 3.0
* 2.8:
  fixed typo
  fixed typo
  Fixed a minor XML issue in a translation file
  Fix merge
  Fix merge
  Fix merge
  Fix merge
  Update twig.html.twig
  PhpUnitNoDedicateAssertFixer results
  Improve Norwegian translations
  [2.7] [FrameworkBundle] minor fix tests added by #17569
  Fixed the antialiasing of the toolbar text
  Simplify markdown for PR template
  fixed CS
  fixed CS
  documented the $url parameter better
  [Form] add test for ArrayChoiceList handling null
  [Form] fix edge cases with choice placeholder
  register commands from kernel when accessing list
  Update FileSystem
2016-02-23 16:16:06 +01:00
Jules Pietri
3eac4693ad [Form] fix choice value "false" in ChoiceType 2016-02-22 16:33:26 +01:00
Fabien Potencier
5324e5b315 Merge branch '2.7' into 2.8
* 2.7:
  Update twig.html.twig
  [2.7] [FrameworkBundle] minor fix tests added by #17569
  fixed CS
  fixed CS
  documented the $url parameter better
  [Form] add test for ArrayChoiceList handling null
  [Form] fix edge cases with choice placeholder
  register commands from kernel when accessing list
  Update FileSystem
2016-02-22 16:02:30 +01:00
Tobias Schultze
0efbc30304 [Form] fix edge cases with choice placeholder 2016-02-13 13:18:37 +01:00
Christian Flothmann
f204104c3b Merge branch '2.8' into 3.0
* 2.8:
  fixed CS
  [BrowserKit] Corrected HTTP_HOST logic #15398
  Fixed HTTP Digest auth not being passed user checker
  resolve aliases in factories
  resolve aliases in factory services
  Remove invalid CSS white-space value
  Fix FileSystem tests on Windows
  [Form] ArrayChoiceList can now deal with a null in choices
2016-01-27 12:34:55 +01:00
Christian Flothmann
c8d28b1fa6 Merge branch '2.7' into 2.8
* 2.7:
  fixed CS
  [BrowserKit] Corrected HTTP_HOST logic #15398
  resolve aliases in factories
  resolve aliases in factory services
  Remove invalid CSS white-space value
  Fix FileSystem tests on Windows
  [Form] ArrayChoiceList can now deal with a null in choices
2016-01-27 12:34:40 +01:00
Issei.M
68292bb52b [Form] ArrayChoiceList can now deal with a null in choices 2016-01-23 17:56:23 +09:00
Nicolas Grekas
ed0e26a620 [Form] Remove choices_as_values option on ChoiceType 2015-11-28 10:26:50 +01:00
Nicolas Grekas
ba3afdb189 Merge branch '2.8'
* 2.8:
  [ci] Force update of ./phpunit deps
  [PhpUnitBridge] fix typo
  [Bridge\PhpUnit] Display the stack trace of a deprecation on-demand
  [Form] Fixed: Duplicate choice labels are remembered when using "choices_as_values" = false
  [Process] Don't catch RuntimeException when it complicates tests debugging
  [appveyor] Workaround transient segfault when APCu is enabled

Conflicts:
	appveyor.yml
	src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php
2015-11-28 10:12:47 +01:00
Nicolas Grekas
5a88fb619f [Bridge\PhpUnit] Display the stack trace of a deprecation on-demand 2015-11-27 17:34:29 +01:00
Fabien Potencier
9b9fa3d262 Merge branch '2.8'
* 2.8:
  [Form] Deprecated setting "choices_as_values" to "false"
  [Form] Deprecated setting "choices_as_values" to "false"
  [Form] Deprecated ArrayKeyChoiceList
  [Form] Deprecated TimezoneType::getTimezones()
2015-11-27 11:23:00 +01:00
Bernhard Schussek
3ab8189080 [Form] Deprecated setting "choices_as_values" to "false" 2015-11-27 10:37:24 +01:00
Fabien Potencier
b29691067d feature #16690 [Form] Deprecated ArrayKeyChoiceList (webmozart)
This PR was merged into the 2.8 branch.

Discussion
----------

[Form] Deprecated ArrayKeyChoiceList

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

5386752 [Form] Deprecated ArrayKeyChoiceList
2015-11-27 10:03:43 +01:00
Bernhard Schussek
5d7678e432 [Form] Deprecated setting "choices_as_values" to "false" 2015-11-27 10:00:10 +01:00
Bernhard Schussek
5386752bf9 [Form] Deprecated ArrayKeyChoiceList 2015-11-26 18:38:25 +01:00
Nicolas Grekas
7685cddf95 Add more callable type hints 2015-10-05 18:52:37 +02:00
Mikael Pajunen
4e0c6e1b55 Replace is_callable checks with type hints
Also removes tests checking the exceptions thrown from
the removed is_callable checks.
2015-10-05 16:57:27 +02:00
Fabien Potencier
33f3400a81 [Form] removed deprecated features 2015-10-01 16:20:48 +02:00
Nicolas Grekas
e49739c469 [2.7] Clean deprecated interfaces 2015-09-04 22:16:46 +02:00
Abdellatif Ait boudad
835aa788d4 [Form][2.7][ Choice type] fixed groups with empty array. 2015-08-31 20:22:13 +00:00
Nicolas Grekas
464a1b3152 Various fixes esp. on Windows 2015-08-27 08:45:45 +02:00
Christophe Coevoet
5df64dca52 Fix the retrieval of the value with property path when using a loader 2015-08-26 18:42:09 +02:00
Christophe Coevoet
f31fa8c786 Fix the handling of values for multiple choice types
Choice values must always be strings, but a place was missing the
casting, breaking the comparison of selected choices when the callback
does not return a string.
2015-08-25 11:17:05 +02:00
Fabien Potencier
c0e4495b66 fixes CS 2015-08-24 09:13:45 +02:00
Fabien Potencier
b4de379a15 bug #15561 [Form] only use PropertyPath if not already callable (Tobion)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] only use PropertyPath if not already callable

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | could be in edge cases
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #15542
| License       | MIT
| Doc PR        | -

Currently it uses a PropertyPath even when the string is already a callable. But the callable string should have higher priority since that is also the one documented in ChoiceListFactoryInterface.

Commits
-------

470b140 [Form] only use PropertyPath if not already callable
2015-08-22 09:21:30 +02:00
Fabien Potencier
5bede45e29 bug #15546 [Form] fixed BC-break on grouped choice lists (origaminal)
This PR was squashed before being merged into the 2.7 branch (closes #15546).

Discussion
----------

[Form] fixed BC-break on grouped choice lists

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #15037
| License       | MIT
| Doc PR        |

Commits
-------

12a7dd1 [Form] fixed BC-break on grouped choice lists
2015-08-22 09:11:11 +02:00
origaminal
12a7dd1714 [Form] fixed BC-break on grouped choice lists 2015-08-22 09:11:02 +02:00
Tobias Schultze
470b1400d6 [Form] only use PropertyPath if not already callable 2015-08-15 21:15:17 +02:00
Tobias Schultze
747c1a5aee [Form] fix reworked choice list phpdoc 2015-08-15 20:22:17 +02:00
Fabien Potencier
b16fc6c2f6 bug #15061 [Form] Fixed handling of choices passed in choice groups (webmozart)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Fixed handling of choices passed in choice groups

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | **yes**
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #14915
| License       | MIT
| Doc PR        | -

I introduced a bug in the 2.7 ChoiceList implementation when choices are passed as groups:

```
$form->add('response', 'choice', array(
    'choices' => array(
        'Decided' => array($yesObj, $noObj),
        'Undecided' => array($maybeObj),
    ),
    // use getName() for the labels
    'choice_label' => 'name',
    'choices_as_values' => true,
));
```

In this example, since the choices `$yesObj` and `$maybeObj` have the same array index `0`, the same label is displayed for the two options. The problem is that we rely on the keys passed in the "choices" option to identify choices in a choice list (which are, as you see, not guaranteed to be free of duplicates).

This PR changes the new choice list implementation to identify choices by values instead. We already have the guarantee that choices can be identified uniquely by their string values.

This PR should be included in 2.7.2 to fix the regression.

Unfortunately, a few BC breaks in the new implementation are necessary to make this fix:

* The legacy `ChoiceListInterface` was reverted to how it was in 2.6 and does *not* extend the new `ChoiceListInterface` anymore.
* As a consequence, legacy choice lists need to be wrapped into a `LegacyChoiceListAdapter` when they are passed to any place in the framework where a new choice list is expected.
* The new `ChoiceListInterface` has two additional methods `getStructuredValues()` and `getOriginalKeys()` now.
* `ArrayKeyChoiceList::toArrayKey()` was marked as internal.
* `ChoiceListFactoryInterface::createView()` does not accept arrays and Traversables anymore for the `$groupBy` parameter (for simplicity).

@fabpot Where should we document the upgrade path for 2.7.1 => 2.7.2?

Commits
-------

7623dc8 [Form] Fixed handling of choices passed in choice groups
2015-06-30 14:46:52 +02:00
Bernhard Schussek
497433cf03 [Form] Fixed: Support objects with __toString() in choice groups 2015-06-22 17:19:42 +02:00
Bernhard Schussek
7623dc87e8 [Form] Fixed handling of choices passed in choice groups 2015-06-22 14:31:47 +02:00
Nicolas Grekas
909d2b9020 [Form] Swap new ChoiceView constructor arguments to ease migrating from the deprecated one 2015-06-10 17:47:24 +02:00
Alexander Schwenn
a98e484020 [Form] Fix ChoiceType with legacy ChoiceList 2015-05-05 03:32:51 +02:00
Nicolas Grekas
3f58862513 [Form] Cleanup deprecation notices 2015-04-08 11:29:16 +02:00
Nicolas Grekas
f3dbb5dea2 [Form] Fix BC break introduced in #14050 2015-04-05 20:38:35 +02:00
Bernhard Schussek
94d18e961c [Form] Fixed CS 2015-04-01 11:48:14 +02:00
Bernhard Schussek
1d89922782 [Form] Fixed tests using legacy functionality 2015-04-01 11:48:11 +02:00
Bernhard Schussek
d6179c830b [Form] Fixed PR comments 2015-04-01 11:47:34 +02:00
Bernhard Schussek
26eba769b5 [Form] Fixed regression: Choices are compared by their values if a value callback is given 2015-03-31 14:43:48 +02:00
Bernhard Schussek
a289deb973 [Form] Fixed new ArrayChoiceList to compare choices by their values, if enabled 2015-03-31 14:43:48 +02:00
Bernhard Schussek
03efce1b56 [Form] Refactored choice lists to support dynamic label, value, index and attribute generation 2015-03-31 14:43:48 +02:00
Bernhard Schussek
54e66c518f [Form] Reorganized code into "form extensions"
The extension classes are now the only constructor argument of the FormFactory class. They replace the existing "type loader" classes.

    new FormFactory(array(
        new CoreExtension($validator, $storage),
        new CsrfExtension($csrfProvider),
        new DoctrineOrmExtension($em),
    ));

Together with a few upcoming commits this mechanism will make

 * extension of the form framework in bundles and
 * usage of the forms outside of Symfony2

much easier.
2011-04-22 17:41:21 +02:00
Bernhard Schussek
c9c8b5c98e [Form] Improved test coverage of MonthChoiceList and fixed timezone used in it. Fixes https://github.com/symfony/symfony/pull/433
Based on dfb93b1bcebf1f34d3a880d00f36acb2bcca0f08:

[FORM] Fixed DateField Month Choices

The month choices were calculated using the current day of the month with
gmmktime rather than the 1st of the month. Additionally, this provides a
UTC timestamp which is passed to the formatter (IntlDateFormatter) which
converts the timestamp using the current timezone. This means that the UTC
timestamp for 1st March was being converted for my timezone (EST) and giving
a date of 28th February, leading to Feb appearing again in the popup form
instead of Mar.
2011-04-15 12:26:07 +02:00