Commit Graph

940 Commits

Author SHA1 Message Date
stloyd
4e3406d633 Sync with master and clean up 2011-06-23 14:01:11 +02:00
stloyd
ad5d2c13e1 Added to TimeType extension possibility to render form as single_text (similar to DateType option) (issue #1205)
Adjusted `DateTimeType` to allow usage of this new feature
2011-06-23 11:40:24 +02:00
Fabien Potencier
6de97c56e1 [Form] made required part of the algorithm to determine if an empty value should be added to a choice 2011-06-23 07:56:13 +02:00
stloyd
7783a050c2 Removed unused code from DateType
Additional tests for ChoiceType and DateType based code
2011-06-20 18:45:30 +02:00
stloyd
cdd39ac3e2 Added ability to set "empty_value" for DateTimeType, DateType and TimeType
Additional tests covering added code
2011-06-20 12:56:16 +02:00
stloyd
af4a7d77d9 More tests and more compatible code, with some suggestions from @helmer 2011-06-20 09:54:47 +02:00
stloyd
527b7383b9 Test covered version of fix for issue #1336 2011-06-20 09:54:47 +02:00
Joseph Bielawski
af67de43a2 Added missing quote for UnexpectedTypeException 2011-06-16 08:56:29 -07:00
Fabien Potencier
f1b955be8c [Form] changed transformers to not change the timezone of the provided value (closes #1340) 2011-06-16 08:31:59 +02:00
Fabien Potencier
139a45f173 [Form] fixed AbstractExtension when an extension does not have a guesser 2011-06-16 08:06:24 +02:00
Fabien Potencier
1467a9bd9d [HttpFoundation] refactored Session 2011-06-15 16:01:57 +02:00
Fabien Potencier
c7d5fd16e0 fixed CS 2011-06-15 13:46:46 +02:00
Fabien Potencier
aad2f5868a merged branch mvrhov/form_attributes_option (PR #1032)
Commits
-------

e8326aa Renamed attributes to attr to be consistent with templating.
c707467 Added support for additional attributes in Form types that list field as their parent.

Discussion
----------

[Form] Added support for additional attributes

Added support for additional attributes in Form types that list field as their parent.

This is needed particularity for html5 data and data- attributes support, unfortunately $options['data'] is already taken, so adding a general $options['attributes'] is the easiest solution without breaking BC.

Now I know that this will be tempting for some to stuck style and class attributes here also, but I'd rather not restrict the keys that are passed in.

---------------------------------------------------------------------------

by Seldaek at 2011/05/22 14:51:02 -0700

Maybe it should be called attr for consistency with the template stuff, or the other should be renamed attributes. Other than that, I'm +1, data-* attributes are awesome, and abusers will find ways to abuse things either way.

---------------------------------------------------------------------------

by mvrhov at 2011/05/22 21:48:01 -0700

Naming it attr also crossed my mind when I was signing off yesterday.
Along with the possibility to go the way xml attributes are handled when node is converted to/from array.
So every option with @ prefix would automatically become html attribute. However going the latter path, it'd be harder to implement.

---------------------------------------------------------------------------

by fabpot at 2011/06/13 07:43:52 -0700

Can you give an example of a real-world use case? Thanks.

---------------------------------------------------------------------------

by Seldaek at 2011/06/13 07:54:51 -0700

You can use `array('attr' => array('data-foo' => 'bar'))`, which will output `data-foo="bar"`, which can be read easily by jQuery for example as `$('el').data('foo')`. It's a standard compliant and elegant way to pass extra data needed by the JS code along with DOM nodes, without polluting everything with script tags and all.

---------------------------------------------------------------------------

by fabpot at 2011/06/13 08:01:08 -0700

@Seldaek: I understand that. But why not doing this in the template?

---------------------------------------------------------------------------

by Seldaek at 2011/06/13 08:04:10 -0700

Well, I agree it most likely belongs in the template, but it's kind of data stuff that is not directly impacting the display rules of the element, so in some cases having the possibility to set that from the php code might be useful. Anyway I'll let @mvrhov answer maybe he had a more concrete use case. I just think it's nice to leave the door open, but I don't really need it.

---------------------------------------------------------------------------

by mvrhov at 2011/06/13 10:27:03 -0700

A bit late to the party. Ok, here is my use-case.
I have a pretty large form where part of the data is of tabular form. The number of rows is almost every time a lot larger than the number of columns
So I can either output a lot of text inputs filled with data and make already a large form intimidating. Or I can use a grid that supports editing. So I serialize that tabular data as json and put it as a value into one hidden field. Somehow I also have to get the column definitions to that grid. I decided to I serialize it and put it inside data-* attribute. Putting it into another hidden field doesn't make sense as when data is submitted back I don't need the column definitions as only the number of rows changes.

---------------------------------------------------------------------------

by fabpot at 2011/06/13 10:44:58 -0700

@mvrhov: ok, but what prevents you from doing this in the template directly?

---------------------------------------------------------------------------

by mvrhov at 2011/06/13 11:22:53 -0700

I have to get it into the view somehow. What I'd really not like to do is, iterate through that data in a controller and then pass it as another template variable.

---------------------------------------------------------------------------

by fabpot at 2011/06/14 00:10:22 -0700

But the controller is where you prepare the data that you want to send to the view. Without any concrete example, I'm going to close this PR.

---------------------------------------------------------------------------

by mvrhov at 2011/06/14 01:21:10 -0700

IMHO this has to go out through form as this is the part of the form also I do have a very slim controllers in this case 10 LOC, where half of them is just setting up an view data..
Nonetheless I went looking again very closely at the AbstractType and I do have buildView function available which I can override and set the column data I need there, and then provide custom view for that, so at least from this part this is an non issue.

With this PR all default form attributes can be set from outside and when searching for a good use-case I have found out that @henrikbjorn has implemented this via extensions [1], maybe he has a good use-case for this.

[1] - https://github.com/Comways/ComwaysFormExtraBundle/blob/master/Form/Extension/FieldTypeExtension.php

---------------------------------------------------------------------------

by henrikbjorn at 2011/06/14 01:48:53 -0700

Convenience is the only use case

---------------------------------------------------------------------------

by stof at 2011/06/14 02:08:09 -0700

@fabpot The issue is that passing it from the controller as another template variable makes it really hard when you use the type twice with different values. Passing them from the form would be the easiest way

---------------------------------------------------------------------------

by shuogawa at 2011/06/14 19:37:50 -0700

hello. thanks for great form library.
I want to support two ways to display additional attributes for form elements.
1) control in template like
{{ form_row(form.name, { 'width': '30' }) }}
2) control from php
$builder->add('name', 'text', array('attr'=>array('width'=>'30')));

If form elements configure by end user like cms,
and form elements dynamically change.
The second method is useful.

template designer can write {{form_row(form)}}
but
template designer can not write {{form_row(form.name), { 'width': '30' }}}

Thank you

---------------------------------------------------------------------------

by fabpot at 2011/06/14 23:01:18 -0700

@shuogawa: That's what I fear. Setting the `width` or any other attribute in PHP is wrong. This belongs to the templates.

---------------------------------------------------------------------------

by stloyd at 2011/06/15 00:09:05 -0700

@fabpot Then maybe just restrict allowed tags to `data-*` and don't use `attr` but some other not confusing name ? Just like we do with i.e. `maxlength`.

---------------------------------------------------------------------------

by fabpot at 2011/06/15 04:44:25 -0700

I'm going to merge it as a "convenience" tool, but the documentation should clearly state that the only usage should be for `data-*` attributes.
2011-06-15 13:44:37 +02:00
Fabien Potencier
73dc8c96af merged branch vicb/form-proto (PR #1315)
Commits
-------

07fa82d [Form] Revert changes impacting perfomance and readability
b709551 [Order] Make Form::types and FormView::types use the same order (Parent > Child)
e56dad6 [Form] simplify the code
bdd755e [Form] Fix the exception message when no block is found
c68c511 [Form] Make theming form prototypes consistent (start by looking for a '_<id>_<section>' block)
9ec9960 [Form] Simplify the code
4e3e276 [Form] Make the prototype view child of the collection view

Discussion
----------

[Form] Make the prototype view child of the collection view

This PR should be a base for discussion.

The [current implementation](https://github.com/symfony/symfony/pull/1188) has some drawbacks because the prototype view is not a child of the collection view:

  * The 'multipart' attribute is not propagated from the prototype to the collection,
  * The prototype view do not use the theme from the collection.

Those 2 points are fixed by the proposed implementation and one more benefit is that the template markup might be easier to work with:

before:

```html
<div id="form_emails">
  <div>
    <label for="form_emails_0">0</label>
    <input type="email" id="form_emails_0" name="form[emails][0]" value="a@b.com">
  </div>
  <script type="text/html" id="form_emails_prototype">
    <div>
      <label for="$$name$$">$$name$$</label>
      <input type="email" id="$$name$$" name="$$name$$" value="" />
    </div>
  </script>
</div>
```
after:

```html
<div id="form_emails">
  <div>
    <label for="form_emails_0">0</label>
    <input type="email" id="form_emails_0" name="form[emails][0]" value="a@b.com">
  </div>
  <script type="text/html" id="form_emails_prototype">
    <div>
      <label for="form_emails_$$name$$">$$name$$</label>
      <input type="email" id="form_emails_$$name$$" name="form[emails][$$name$$]" value="" />
    </div>
  </script>
</div>
```

@kriswallsmith I'd like to get your feedback on this PR. thanks.

---------------------------------------------------------------------------

by stof at 2011/06/14 07:01:01 -0700

@fabpot any ETA about merging it ? Using the prototype currently is a pain to build the name. The change makes it far easier

---------------------------------------------------------------------------

by fabpot at 2011/06/14 07:09:46 -0700

The templates are much better but I'm a bit concerned that we need to add the logic into the Form class directly. That looks quite ugly. If there is no other way, I will merge it.

---------------------------------------------------------------------------

by vicb at 2011/06/14 07:14:32 -0700

I have found no better way... I am testing some minor tweaks I want to submit.

---------------------------------------------------------------------------

by kriswallsmith at 2011/06/14 07:34:25 -0700

I'm not happy with the code in Form.php either... would creating a PrototypeType accomplish the same thing?

---------------------------------------------------------------------------

by vicb at 2011/06/14 07:42:07 -0700

@kriswallsmith tried and dismissed, the id and name are bad & you have to go for `render_widget(form.get('proto'))` in the template. That should be fixeable but not any better.

---------------------------------------------------------------------------

by kriswallsmith at 2011/06/14 07:45:21 -0700

What do you mean the id and name are bad? If we have a distinct type for the prototype, can't we do whatever we want using buildView() and the template?

---------------------------------------------------------------------------

by vicb at 2011/06/14 07:53:31 -0700

@kriswallsmith the id would be smthg like `form_emails_$$name$$_prototype` but yes we should be able to do whatever we want but the code might end up being more complex.

I am done with the tweaks but still open to feedback on this PR.

---------------------------------------------------------------------------

by kriswallsmith at 2011/06/14 08:08:21 -0700

Yes, that is the type of name I would expect.

---------------------------------------------------------------------------

by kriswallsmith at 2011/06/14 08:08:33 -0700

Oops -- I mean id.

---------------------------------------------------------------------------

by kriswallsmith at 2011/06/14 08:09:42 -0700

Maybe I'm confused what id you're referring to. I'll try to spend some time on this today.

---------------------------------------------------------------------------

by vicb at 2011/06/14 08:23:56 -0700

That should be the id of the `<input>`, the id of the script would be `form_emails_$$name$$_prototype_prototype` (if prototype is the name of the nested node).

I am trying to setup a branch with my code (playing with git & netbeans local history)

---------------------------------------------------------------------------

by vicb at 2011/06/14 08:46:25 -0700

@kriswallsmith https://github.com/vicb/symfony/tree/kris/proto if that can help (there are still changes in Form.php)

---------------------------------------------------------------------------

by kriswallsmith at 2011/06/14 08:47:08 -0700

Thanks, I'll take a look.

---------------------------------------------------------------------------

by vicb at 2011/06/15 00:48:38 -0700

I would have expected it to be faster however `array_map` is about twice slower... reverted !
2011-06-15 11:27:12 +02:00
Fabien Potencier
168a61b9ea [Form] fixed typo (patch from mgatto) 2011-06-15 11:25:50 +02:00
Victor Berchet
07fa82dff1 [Form] Revert changes impacting perfomance and readability 2011-06-15 09:45:11 +02:00
Victor Berchet
b709551252 [Order] Make Form::types and FormView::types use the same order (Parent > Child) 2011-06-15 01:45:26 +02:00
Victor Berchet
e56dad6b5e [Form] simplify the code 2011-06-15 01:41:37 +02:00
Victor Berchet
9ec99608df [Form] Simplify the code 2011-06-14 16:30:48 +02:00
Fabien Potencier
c6cc427e4b [EventDispatcher] added a way to set the priority for event subscribers 2011-06-14 14:40:27 +02:00
Fabien Potencier
a232c148eb fixed CS 2011-06-14 12:54:32 +02:00
Victor Berchet
4e3e2768fb [Form] Make the prototype view child of the collection view 2011-06-14 09:33:19 +02:00
Fabien Potencier
c364008a3b [Form] allowed an empty value to be displayed for choices even when required is true
Rules are as follows:

* If multiple is true, then the empty_value is ignored
* If not, and if the field is not required, the empty_value is set to the empty string by default and displayed
* If the field is required, and if the user explicitely set the empty_value, then it is displayed
2011-06-14 08:27:19 +02:00
Fabien Potencier
d16a708cc8 [Form] simplified file type class
File uploads documentation is here:

https://github.com/symfony/symfony-docs/pull/400
2011-06-13 18:11:18 +02:00
Fabien Potencier
0c29a25d89 Merge remote branch 'kriswallsmith/form/collection-proto'
* kriswallsmith/form/collection-proto:
  added script[type="text/html"] collection prototype to form themes
  [Form] removed collection prototype from form tree
2011-06-13 11:51:18 +02:00
Fabien Potencier
41b7190efc Revert "[Form] changed the way default type names are created to avoid collisions"
This reverts commit d044498cde.

The reason for reverting is that the name is actually used to customize
the template on a per field basis:

{% block _post_excerpt_widget %}
    ***{{ block('text_widget') }}***
{% endblock %}

Here, post is the name of the Type.
2011-06-13 11:47:21 +02:00
Brikou CARRE
66ae994528 [Form] added phpdoc (inherit) for types 2011-06-11 11:59:28 +02:00
Fabien Potencier
96045739b1 [TwigBundle] removed the extensions setting 2011-06-11 07:50:14 +02:00
Fabien Potencier
c79e51c9aa Merge remote branch 'kriswallsmith/form/lazier-csrf-token'
* kriswallsmith/form/lazier-csrf-token:
  [Form] fixed xpath
  [Form] moved csrf listener to its own class
  fix issue with csrf token not present on collection fields because of resize listener
2011-06-11 07:36:51 +02:00
Fabien Potencier
8d58826085 [Routing] fixed unit tests for previous commit 2011-06-11 07:33:55 +02:00
Kris Wallsmith
fe4382eb73 [Form] moved csrf listener to its own class 2011-06-10 13:00:44 -07:00
Bulat Shakirzyanov
cb53414e91 fix issue with csrf token not present on collection fields because of resize listener 2011-06-10 11:12:35 -07:00
Kris Wallsmith
8d55df42de [Form] fixed isValid() on readOnly forms that have children 2011-06-10 07:11:50 -07:00
Fabien Potencier
44816ebca0 Merge remote branch 'Infranology/minor-code-simplification'
* Infranology/minor-code-simplification:
  [Form] minor code simplification
2011-06-10 15:55:26 +02:00
Fabien Potencier
03a05661f9 [Form] fixed more cases where the delegating validator did not match the validator paths 2011-06-10 15:35:49 +02:00
Fabien Potencier
1daca76197 [Form] unified the way form and data path are created 2011-06-10 15:35:35 +02:00
Fabien Potencier
7de4d28a05 Merge remote branch 'yethee/delegating_validator'
* yethee/delegating_validator:
  [Form] Fixed path mapping for DelegatingValidator
2011-06-10 13:54:44 +02:00
Eriksen Costa
c9acf2e60c [Form] minor code simplification 2011-06-09 13:24:55 -03:00
Fabien Potencier
ea93e4cafa [Form] added a circular reference safeguard for form type 2011-06-09 17:58:22 +02:00
Fabien Potencier
d044498cde [Form] changed the way default type names are created to avoid collisions 2011-06-09 16:43:02 +02:00
Fabien Potencier
f3cafcb355 merged symfony/form-simplification 2011-06-09 13:29:31 +02:00
Fabien Potencier
852a4c9c6a [Form] removed the file upload temporary storage feature
The current implementation is not ready for inclusion in 2.0. It has several
known problems (security, not possible to disable it, not "cloud-compatible",
...) and it's not a must have feature anyway.

Some references:

 * Security issue in FileType: https://github.com/symfony/symfony/issues/1001
 * Validation fails on file, still stored in TemporaryStorage: https://github.com/symfony/symfony/issues/908
 * Add a size argument & ability to configure TemporaryStorage: https://github.com/symfony/symfony/pull/748

This feature should be reworked and discussed for inclusion in 2.1.
2011-06-09 12:44:36 +02:00
Fabien Potencier
2ee0c284bc [Form] fixed CS 2011-06-09 11:40:24 +02:00
Fabien Potencier
fd97dd0059 [Form] text is now the default type when not explicitely set and when no data class is set 2011-06-09 11:37:06 +02:00
Fabien Potencier
a6a3789a54 [Form] tweaked an error message 2011-06-09 11:33:25 +02:00
Fabien Potencier
d9500418cd [Form] tweaked an error message 2011-06-09 11:32:20 +02:00
Fabien Potencier
88184394b5 [Form] tweaked the error message when a form with a file upload does not have the enctype attribute correctly configured 2011-06-09 08:36:40 +02:00
Kris Wallsmith
5ecb252ddf [Form] removed collection prototype from form tree 2011-06-08 08:34:20 -04:00
Fabien Potencier
566511e9e7 moved some FormView methods to FormUtil where they really belongs 2011-06-08 14:07:04 +02:00
Fabien Potencier
1aabc5da64 fixed CS 2011-06-08 12:16:48 +02:00
Fabien Potencier
62e4342a86 fixed CS 2011-06-08 12:12:55 +02:00
Fabien Potencier
6881f01fd6 Merge remote branch 'CodeMeme/default-validator-improved-synchronized-error'
* CodeMeme/default-validator-improved-synchronized-error:
  FormError when not synchronized tells you the form name for easier debugging
2011-06-08 08:58:04 +02:00
Fabien Potencier
2573c8968f [Form] fixed choices when keys are integers
This fixes choices when all the keys are strings (but integers really).

That's because in PHP, if you have the following array:

array('1' => 'foo', '2' => 'bar');

PHP "converts" it automatically to the following array:

array(1 => 'foo', 2 => 'bar');
2011-06-07 21:53:59 +02:00
Fabien Potencier
462a8c79ad [Form] tweaked previous commit 2011-06-07 21:45:36 +02:00
Fabien Potencier
91aedf5995 Merge remote branch 'fivestar/single-choice-expanded'
* fivestar/single-choice-expanded:
  [Form] Fixed FixRadioInputListener to not ignore 0.
  [Form] Fixed single expanded choice type to set checked attribute when passed boolean value
2011-06-07 20:53:21 +02:00
Victor Berchet
eed54c137e [Form] Fix the FormView::isRendered() method 2011-06-06 12:31:30 +02:00
Fabien Potencier
87fefcae62 [Form] removed obsolete comment 2011-06-05 08:49:06 +02:00
Fabien Potencier
dd5f088abb Merge remote branch 'jwage/master'
* jwage/master:
  Revert back to using gmmktime and use day 15 instead of 1 to avoid edge case
  Use mktime instead of gmmaketime. On the 1st of every month the following options are generated:
2011-06-05 08:47:49 +02:00
Matthieu Vachon
954bdb5813 [Form] Updated DateTimeType to accept a custom date pattern for the DateType child
* Added a test also about this change
2011-06-03 11:05:11 -04:00
Matthieu Vachon
e7e744f00a [Form] Synced changes in this branch with current Symfony master branch 2011-06-03 10:51:08 -04:00
Matthieu Vachon
436cb95223 [Form] Changed to a CreateException when the 'format' option is invalid
* Updated DateTypeTest also
2011-06-03 10:47:00 -04:00
Matthieu Vachon
a8152326fb [Form] The IntlDateFormatter pattern can now be passed via the format option
* Also changed the default value of the calendar paramter to \IntlDateFormatter:GREGORIAN
   in DateTimeToLocalizedStringTransformer which is the same as the default value in
   StubIntlDateFormatter
2011-06-03 10:46:58 -04:00
Amal Raghav
52a1e1d281 moved date_pattern to IntlDateFormatter
added code to use custom date_pattern
2011-06-03 10:46:55 -04:00
Amal Raghav
dd104bc8c0 added code to use custom date_pattern 2011-06-03 10:46:54 -04:00
stloyd
4e03db63d7 Remove all is_null alias calls. 2011-06-03 11:16:32 +02:00
Jonathan H. Wage
611dbf1bfe Revert back to using gmmktime and use day 15 instead of 1 to avoid edge case 2011-06-02 13:47:58 -07:00
Katsuhiro OGAWA
790284f2a8 [Form] Fixed FixRadioInputListener to not ignore 0. 2011-06-02 19:19:43 +09:00
Katsuhiro OGAWA
5893874ed5 [Form] Fixed single expanded choice type to set checked attribute when passed boolean value 2011-06-02 19:19:42 +09:00
Jonathan H. Wage
cd99d2a07d Use mktime instead of gmmaketime. On the 1st of every month the following options are generated:
<select id="filter_start_date_month" name="filter[start][date][month]">
<option value="1">Dec</option>
<option value="2">Jan</option>
<option value="3">Feb</option>
<option value="4">Mar</option>
<option value="5">Apr</option>
<option value="6" selected="selected">May</option>
<option value="7">Jun</option>
<option value="8">Jul</option>
<option value="9">Aug</option>
<option value="10">Sep</option>
<option value="11">Oct</option>
<option value="12">Nov</option>
</select>

I do not totally understand the problem but using mktime instead of gmmktime fixes the issue.
2011-06-01 12:09:28 -05:00
Fabien Potencier
c8034c04a8 Merge remote branch 'vicb/form-rendering'
* vicb/form-rendering:
  [Form] The variable stack should not persist between section rendering (fixes #1157)
  [Twig][Form] Tweak form extension phpDoc and code
  [Form] Tweak phpDoc
  [FormView] fix phpDoc
  [Form] Some tweaks
2011-06-01 10:32:40 +02:00
Fabien Potencier
79e709cdc9 removed the ON_ prefix for Form event names 2011-05-31 07:19:18 +02:00
Victor Berchet
cbfc146ac8 [Form] Tweak phpDoc 2011-05-30 15:21:15 +02:00
Victor Berchet
99bf22c464 [Form] Some tweaks 2011-05-30 14:57:33 +02:00
Fabien Potencier
9b7e14dd10 [Form] converted code to the new event dispatcher 2011-05-30 09:37:42 +02:00
Fabien Potencier
5059559035 Merge remote branch 'Seldaek/events' into events1
* Seldaek/events:
  [EventDispatcher] Removed temporary code
  [FrameworkBundle] Improved code readability
  [FrameworkBundle] Clarified code and fixed regression
  Update Core and Security events to latest model
  [EventDispatcher] Allow registration of arbitrary callbacks
  [EventDispatcher] Remove useless code
  [EventDispatcher] Minor memory optimization to getListeners()
  [FrameworkBundle] Small optimization, remove some function calls
2011-05-30 08:58:49 +02:00
Pascal Borreli
824e48efa7 [Various] Fixed phpdoc 2011-05-29 23:33:36 +00:00
Pascal Borreli
46cdf02750 [Various] Fixed typo 2011-05-29 14:19:02 +00:00
Fabien Potencier
40b84320d6 [Form] tweaked comment 2011-05-28 18:06:11 +02:00
Fabien Potencier
3b0089967f Merge remote branch 'stloyd/patch-11'
* stloyd/patch-11:
  [Form] Force hidden fields to not have "required" attribute (#1091)
2011-05-28 18:05:27 +02:00
Miha Vrhovnik
b8144c62ad DateType single-text should be single_text 2011-05-27 16:23:59 +02:00
Joseph Bielawski
4b476ad267 [Form] Force hidden fields to not have "required" attribute (#1091) 2011-05-27 04:48:14 -07:00
Fabien Potencier
6507eeff3c Merge remote branch 'CodeMeme/1058-fix-radio-input-listener'
* CodeMeme/1058-fix-radio-input-listener:
  Fix for RadioInputListener's empty value erroneously becoming extra data Refs #1058
  Added test for RadioInputListener bug treating no data as extra data
2011-05-26 17:31:09 +02:00
Fabien Potencier
43817de633 Merge remote branch 'maoueh/date_type_dead_code'
* maoueh/date_type_dead_code:
  [Form] Removed dead code in the buildForm method of DateType.php  * With the introduction of the getAllowedOptionValues mechanics, the check    is performed prior to the buildForm call. There is no more needs to check    it again in DateType.
2011-05-26 14:57:54 +02:00
Jordi Boggiano
1246503e55 [EventDispatcher] Allow registration of arbitrary callbacks
This in effect removes the direct link between event name and the method name on the handler.
Any callback can be given as a handler and the event name becomes an arbitrary string. Allowing for easier namespacing (see next commit)
2011-05-26 11:54:06 +02:00
Eric Clemmons
c06a157759 Fix for RadioInputListener's empty value erroneously becoming extra data
Refs #1058
2011-05-25 22:24:49 -07:00
Eric Clemmons
c13cdd34c5 FormError when not synchronized tells you the form name for easier debugging 2011-05-25 12:50:34 -07:00
Fabien Potencier
179864414e [Form] fixed CS 2011-05-25 08:03:21 +02:00
hlecorche
400de9c541 IntegerToLocalizedStringTransformer must return "null" if input value is null 2011-05-24 10:52:28 +02:00
jdhoek
7e4419368e Add missing {} around @inheritDoc to fix this class in SF beta2. 2011-05-24 00:38:15 -07:00
Miha Vrhovnik
e8326aa650 Renamed attributes to attr to be consistent with templating. 2011-05-23 08:10:03 +02:00
Fabien Potencier
60b811947b [Form] fixed error message (closes #1034) 2011-05-23 08:06:43 +02:00
Miha Vrhovnik
c7074672ba Added support for additional attributes in Form types that list field as their parent. 2011-05-22 22:59:00 +02:00
Matthieu Vachon
87176e39d1 [Form] Removed dead code in the buildForm method of DateType.php
* With the introduction of the getAllowedOptionValues mechanics, the check
   is performed prior to the buildForm call. There is no more needs to check
   it again in DateType.
2011-05-22 13:51:00 -04:00
Fabien Potencier
2d2de7e8b0 Merge remote branch 'vicb/form-field'
* vicb/form-field:
  [Form] Tweak the field type
2011-05-22 08:29:54 +02:00
Fabien Potencier
2c85a59599 Merge remote branch 'vicb/form-rendered'
* vicb/form-rendered:
  [Form] Fix for nested forms getting erroneously set as rendered
2011-05-22 08:16:24 +02:00
Amal Raghav
517f95d8a4 added missing single-text option 2011-05-20 19:19:23 +05:30
Victor Berchet
e117613550 [Form] Fix for nested forms getting erroneously set as rendered 2011-05-20 15:48:55 +02:00
Victor Berchet
e0ff7d2613 [Form] Tweak the field type 2011-05-20 11:08:48 +02:00
Michel Weimerskirch
fd92105fa0 Fix merge error (function "guess" was in there twice) 2011-05-19 05:45:29 -07:00
Bernhard Schussek
dcc61a9a98 Merge remote branch 'shieldo/search_field' into shieldo_merge 2011-05-19 01:41:59 +02:00
Bernhard Schussek
13a964ae6d [Form] Form::isBound() and Form::isValid() work correctly now for read-only forms 2011-05-19 01:24:28 +02:00
Bernhard Schussek
c3e8569f73 Merge remote branch 'vicb/form-csrf' into vicb_merge 2011-05-18 23:56:11 +02:00
Bernhard Schussek
a7ff4f484a [Form] Further simplified PropertyPath code 2011-05-18 23:39:49 +02:00
Bernhard Schussek
857042458a Merge remote branch 'vicb/form-ppath-optim' into vicb_merge 2011-05-18 23:34:53 +02:00
Bernhard Schussek
af66beed76 [Form] Added test for 6c337d1cc0 2011-05-18 23:20:37 +02:00
Bernhard Schussek
a3d84bc681 Merge remote branch 'vicb/form-9731' into vicb_merge 2011-05-18 23:12:27 +02:00
Bernhard Schussek
216d7e415d Merge remote branch 'mweimerskirch/form_pattern_attribute' into mweimerskirch_merge
Conflicts:
	src/Symfony/Bundle/TwigBundle/Resources/views/Form/div_layout.html.twig
	src/Symfony/Component/Form/Extension/Core/Type/FieldType.php
	src/Symfony/Component/Form/Extension/Validator/ValidatorTypeGuesser.php
2011-05-18 22:49:27 +02:00
Bernhard Schussek
520e3761e9 [Form] Removed unused option "pattern" of date and time type 2011-05-18 22:34:34 +02:00
Bernhard Schussek
f467317bab [Form] Renamed view variable "name" to "full_name"
The variable "name" now contains the local, short name (equivalent to $form->getName()).
2011-05-18 22:16:16 +02:00
Bernhard Schussek
b39a21fbaf [Form] Renamed collection option "type_options" to "options" to be consistent with the repeated type 2011-05-18 21:52:59 +02:00
Bernhard Schussek
2711fbc418 Merge remote branch 'jaugustin/fix_form' into jaugustin_merge
Conflicts:
	src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php
	src/Symfony/Component/Form/Extension/Core/Type/CollectionType.php
2011-05-18 21:40:20 +02:00
Victor Berchet
ebb0e83a7e [Form] CSRF documentation and a few CS changes 2011-05-18 12:45:01 +02:00
Victor Berchet
ba31b5acc5 [Form] Move CSRF options from types to the CSRF extension 2011-05-18 10:37:31 +02:00
Fabien Potencier
eb202bb7b7 merged kriswallsmith/form/csrf-intention 2011-05-17 15:25:50 +02:00
Fabien Potencier
75f0ab5d40 Merge remote branch 'vicb/form-fluid'
* vicb/form-fluid:
  [Form] Fix the Form fluid interface
  [Form] Fix the fluid interface of FormBuilder
  [Form] Fix the fluid interface of FormBuilder
2011-05-17 09:45:29 +02:00
Fabien Potencier
d118e32783 Merge remote branch 'vicb/924-cosmetic'
* vicb/924-cosmetic:
  [Form] CS related changes
2011-05-17 09:19:41 +02:00
Fabien Potencier
d0b403b7e4 Merge remote branch 'vicb/924-real'
* vicb/924-real:
  [Form] Implement a fluid interface FormView
2011-05-17 09:19:39 +02:00
Kris Wallsmith
914620f948 [Form] renamed CSRF page_id to intention 2011-05-16 14:16:29 -07:00
Victor Berchet
42698608cb [Form] CS related changes 2011-05-15 21:39:22 +02:00
Victor Berchet
39efc49da0 [Form] Implement a fluid interface FormView 2011-05-15 21:38:12 +02:00
Douglas Greenshields
bf2f9d2a02 [Form] Added a search form field type 2011-05-15 18:31:36 +01:00
Victor Berchet
971aad0593 Merge branch 'master' into form-phpdoc-2 2011-05-15 19:24:09 +02:00
Deni
e75edf205d [Form] Fixed path mapping for DelegatingValidator 2011-05-14 13:38:34 +04:00
Fabien Potencier
dbdb3da6bf Merge remote branch 'vicb/form-misc-fix-2'
* vicb/form-misc-fix-2:
  [Form] fix calling closures
  [Form] Add a missing property delcaration in the ResizeFormListener
2011-05-14 11:04:50 +02:00
Victor Berchet
3b9c1e3fee [Form] Optimization of PropertyPath 2011-05-13 19:29:41 +02:00
Bernhard Schussek
e0ff61949e [Form] Renamed the value "text" of the "widget" option of the "date" type to "single-text" 2011-05-13 19:17:28 +02:00
Bernhard Schussek
7570e04589 [Form] Implemented getAllowedOptionValues() for core types 2011-05-13 18:58:19 +02:00
Bernhard Schussek
da28f8e3b3 [Form] Added FormTypeInterface::getAllowedOptionValues() to better validate passed options 2011-05-13 18:44:03 +02:00
Bernhard Schussek
21013b930c [Form] Improved test coverage of FormFactory and improved error handling 2011-05-13 18:29:18 +02:00
Bernhard Schussek
fdd18250b3 [Form] Added getType() to FormFactoryInterface 2011-05-13 17:16:36 +02:00
Victor Berchet
ae4bfbada4 [Form] fix calling closures 2011-05-13 11:01:31 +02:00
Victor Berchet
b2b3b190ef [Form] Add a missing property delcaration in the ResizeFormListener 2011-05-13 11:01:27 +02:00
Victor Berchet
87a6fd0f99 [Form] phpDoc 2011-05-13 11:00:04 +02:00
Jeremy Mikola
61dc1af65b [Form] Refer to FormView explicitly in its own getParent() type-hint
Using "self" makes mocking impossible, as the type-hint would then refer to the extending class and make the declaration incompatible.
2011-05-11 14:11:43 -07:00
Victor Berchet
f68d16fdff [Form] Fix the Form fluid interface 2011-05-11 17:08:53 +02:00
Jeremie Augustin
0077963584 fix file permissions to 644 2011-05-11 11:19:21 +02:00
Jeremie Augustin
b5277752b7 [Form] add type_options for CollectionType to be abble to set options to type 2011-05-11 11:19:21 +02:00
Victor Berchet
2db53b5e28 [Form] Order method according to their visibility to respect the CS 2011-05-11 11:00:32 +02:00
Victor Berchet
5536d41906 [Form] Add phpDoc for form builder and fix method declaration order to conform to the CS 2011-05-11 11:00:32 +02:00
Fabien Potencier
1ae5ef6849 Merge remote branch 'vicb/form-padded-choice-list'
* vicb/form-padded-choice-list:
  [Form] Allow for arbitrary keys in PaddedChoiceList
2011-05-11 10:18:30 +02:00
Fabien Potencier
b62cd109f0 Merge remote branch 'vicb/form-fixes'
* vicb/form-fixes:
  [Form] Make the PropertyPathMapper class use the UnexpectedTypeException
  [Form] Fix adding transformers in the FormBuilder
  [Form] Fix the ReversedTransform class
2011-05-11 10:13:24 +02:00
Fabien Potencier
9651175914 Merge remote branch 'vicb/form-transformers'
* vicb/form-transformers:
  [Form] Add argument type checking in BaseDateTimeTransformer
  [Form] Catch exceptions in DataTransformers
2011-05-11 10:12:23 +02:00
Fabien Potencier
723a8f2bf3 [Form] fixed CS 2011-05-11 10:09:27 +02:00
Victor Berchet
adef14f687 [Form] Make the PropertyPathMapper class use the UnexpectedTypeException 2011-05-10 20:25:46 +02:00
Victor Berchet
daccf9bc17 [Form] Fix adding transformers in the FormBuilder 2011-05-10 20:25:30 +02:00
Victor Berchet
486294b50b [Form] Fix the ReversedTransform class 2011-05-10 20:25:22 +02:00
Victor Berchet
2e68801ff3 [Form] Add argument type checking in BaseDateTimeTransformer 2011-05-10 20:21:02 +02:00
Victor Berchet
dac798c791 [Form] Catch exceptions in DataTransformers 2011-05-10 20:21:02 +02:00
Victor Berchet
aa71d16812 [Form] Make TimezoneChoiceList implement ChoiceListInterface rather than extend ArrayChoiceList 2011-05-10 20:14:11 +02:00
Victor Berchet
eca6453558 [Form] Fix the fluid interface of FormBuilder 2011-05-10 20:09:37 +02:00
Victor Berchet
75a499b0e2 [Form] Fix the fluid interface of FormBuilder 2011-05-10 20:09:28 +02:00
Victor Berchet
2d62dfdf83 [Form] Fix some phpDoc 2011-05-10 16:55:05 +02:00
Victor Berchet
2a8f2d2bfa [Form] fix and add some phpDoc 2011-05-10 15:33:02 +02:00
Fabien Potencier
80a5074746 [Form] tweaked code (closes #855) 2011-05-09 17:53:18 +02:00
Victor Berchet
6c337d1cc0 [Form] Do not set the value attribute for file inputs 2011-05-09 17:00:19 +02:00
Victor Berchet
e0f03471ae Merge branch 'master' into form-padded-choice-list 2011-05-09 15:30:04 +02:00
Deni
a15abc09bd [Form] Added missing import statement of namespaces. 2011-05-09 14:30:04 +04:00
Kris Wallsmith
f3b077a0dd [Form] removed a bunch of unused use statements 2011-05-06 14:07:16 -07:00
Victor Berchet
68b3d0d5ac [Form] Allow for arbitrary keys in PaddedChoiceList 2011-05-06 10:31:51 +02:00
Michel Weimerskirch
476644a92c [Form] Support for the HTML5 "pattern" attribute, see http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#the-pattern-attribute
If you use the MinLength validator with your entities, the ValidatorTypeGuesser gets the value, stored as "minlength". Then, the FormFactory generates a "pattern" attribute out of minlength and maxlength.
Modern browsers such as Chrome use this attribute to validate the form before submitting.
a "pattern" attribute is generated that validates the
2011-05-04 23:16:41 +02:00
Bernhard Schussek
74cca63938 [Form] CSRF fields are not included in the children of a FormView anymore if the view is not the root 2011-05-04 18:27:20 +02:00
Bernhard Schussek
173beeba74 [Form] FormView::offsetUnset() is now supported. It was possible anyway using getChildren() and setChildren(). 2011-05-04 18:21:49 +02:00
Bernhard Schussek
3cc5d9f4cd [Form] Split the option "modifiable" of the "collection" type into "allow_add" and "allow_delete" 2011-05-04 17:29:59 +02:00
Bernhard Schussek
bf1dfbbe99 [Form] Added test for last commit by kriswallsmith and improved dealing with original names
The form component should now guarantee to always pass an UploadedFile object to your model. There you can call getOriginalName() to retrieve the original name of the uploaded file. For security reasons, the real file name is a generated hash value.
2011-05-04 17:04:44 +02:00
Kris Wallsmith
4ea274244d [Form] updated listener to check that data is an array 2011-05-02 15:56:35 -07:00
Amal Raghav
26bfa43bfc fixed a typo 2011-04-28 23:37:40 +05:30
Fabien Potencier
05f1481c6a [Form] added the possibility to configure the CSRF field name and the disabling of the CSRF feature altogether 2011-04-28 11:28:44 +02:00
Fabien Potencier
751eaab326 Merge remote branch 'mweimerskirch/form_fixes'
* mweimerskirch/form_fixes:
  Fix DateTimeType by adding missing default options
2011-04-28 08:18:28 +02:00
Fabien Potencier
f865a79742 [Form] fixed DateTimeToTimestampTransformer to use the proper exception class 2011-04-28 08:07:19 +02:00
Fabien Potencier
0007702321 Merge remote branch 'Seldaek/datetime'
* Seldaek/datetime:
  [Form] Use proper transformation exception in case of failure
2011-04-28 08:05:08 +02:00
Jeremy Mikola
f59423626a [Form] Remove unnecessary use statements in EventListeners 2011-04-27 12:18:45 -04:00
Eriksen Costa
164ce5210d capitalized 'boolean' 2011-04-27 02:35:10 -03:00
Eriksen Costa
4db0752894 replaced 'bool' with 'Boolean' 2011-04-27 02:35:03 -03:00
Jordi Boggiano
d11b7baa7e [Form] Use proper transformation exception in case of failure 2011-04-26 16:02:01 +02:00
Michel Weimerskirch
87c609b4a4 Fix DateTimeType by adding missing default options 2011-04-26 14:21:00 +02:00
Victor Berchet
f83e92bf44 Make casting scalar to array consistent 2011-04-26 12:16:35 +02:00
Fabien Potencier
c0a160b5f9 partially reverted previous merge 2011-04-24 22:02:19 +02:00
Fabien Potencier
c6e0ccfdcd Merge remote branch 'pborreli/form-typo'
* pborreli/form-typo:
  [Form] Fixed typos
2011-04-24 21:56:47 +02:00
Fabien Potencier
f251eab92f Revert "[Form] added a way to register a Form extension after creation of the FormFactory"
This reverts commit 2b8c7f84b5.
2011-04-24 21:56:06 +02:00
Fabien Potencier
2f3ddb88ef Merge remote branch 'bschussek/form'
* bschussek/form:
  [Form] Automatically setting "data_class" option if objects are passed at the creation of a form
  [Form] Improved the way passed data is handled in FormFactory
  [Form] Simplified FileType code
  [HttpFoundation] TemporaryStorage automatically creates the directory if it doesn't exist yet
  [Form] Changed FormBuilder::build() to FormBuilder::create(). You hvae to pass the resulting builder to FormBuilder::add() manually now
  [Form] Added FieldTypeValidatorExtension and fixed FQCN of DelegatingValidator
2011-04-24 21:53:24 +02:00
Pascal Borreli
06b3c386d9 [Form] Fixed typos 2011-04-24 14:05:16 +00:00
Fabien Potencier
08bf2af455 fixed email 2011-04-24 13:59:46 +02:00
Bernhard Schussek
e790587dc2 [Form] Automatically setting "data_class" option if objects are passed at the creation of a form
$form = $this->get('form.factory')->create(new PostType(), $post);
2011-04-24 13:38:12 +02:00
Bernhard Schussek
d58c610833 [Form] Improved the way passed data is handled in FormFactory 2011-04-24 13:32:29 +02:00
Bernhard Schussek
335f7e776a [Form] Simplified FileType code 2011-04-24 12:08:56 +02:00
Bernhard Schussek
675e5ded9e [Form] Changed FormBuilder::build() to FormBuilder::create(). You hvae to pass the resulting builder to FormBuilder::add() manually now
$builder->add(
    $builder->create('child', 'form')
        ->add('foo', 'text')
        ->add('bar', 'text')
);
2011-04-24 12:08:50 +02:00
Fabien Potencier
823be5d956 Merge remote branch 'ornicar/fixDelegatingValidatorNamespace'
* ornicar/fixDelegatingValidatorNamespace:
  [Form] Fix DelegatingValidator namespace
2011-04-24 08:45:50 +02:00
ornicar
b5055bb4fd [Form] Fix DelegatingValidator namespace 2011-04-23 23:20:56 -07:00
Ryan Weaver
181ef3cc08 [Form] Removing an unused variable in TimeType 2011-04-23 20:52:26 -05:00
Ryan Weaver
af8aad9c34 [Form] Throwing exception for invalid "input" type of DateType
Also fixed typo in test of previous commit
2011-04-23 20:36:40 -05:00
Ryan Weaver
f435ed7e7e [Form] Removing unused private property and adding PHPDoc 2011-04-23 20:14:12 -05:00
Ryan Weaver
0681e443d5 [Form] Fixing wrong variable name 2011-04-23 20:08:24 -05:00
Ryan Weaver
78b2062c5e [Form] Adding an exception for an invalid widget option in DateType 2011-04-23 19:42:40 -05:00
Pascal Borreli
8c0beea677 [Phpdoc] Cleaning/fixing 2011-04-23 15:18:47 +00:00
Fabien Potencier
50d3c92e22 tweaked TemporaryStorage directory creation 2011-04-23 15:19:30 +02:00
Fabien Potencier
2b8c7f84b5 [Form] added a way to register a Form extension after creation of the FormFactory 2011-04-23 09:28:29 +02:00
Fabien Potencier
b69c5956d3 [Form] added missing use statement 2011-04-23 09:27:47 +02:00
Bernhard Schussek
6f1bc356a8 [Form] Refactored code from CoreExtension to new ValidatorExtension
CoreExtension is now independent of the Symfony2 validator.
2011-04-22 19:38:21 +02:00
Bernhard Schussek
1ce2db87e2 [Form] Added FormTypeExtensionInterface
With implementations of this interface, existing types can be amended.
The Csrf extension, for example, now contains a class FormTypeCsrfExtension
that adds CSRF capabilities to the "form" type.

To register new type extensions in the DIC, tag them with "form.type_extension"
and the name of the extended type as alias.
2011-04-22 19:24:38 +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
a97366fbcb [Form] Split signature of FormFactory::create() into create() and createNamed()
The data can now be passed to all creation methods:

    $form = $factory->create('form', $data);

By default, a form will receive the name of its type ("form" in above example). If you wish to pass a custom name, use createNamed():

    $form = $factory->createNamed('form', 'myform', $data);
2011-04-22 10:42:21 +02:00
Ryan Weaver
df50e2b161 [Form] Removing excess option in the TimezoneType 2011-04-21 19:57:53 -05:00
Bernhard Schussek
c58b05a6d6 [Form] Removed obsolete code in TextType 2011-04-21 10:17:04 +02:00
Ryan Weaver
967a42b797 [Form] Adding a check that the choice_list option on the ChoiceType implements the ChoiceListInterface.
Also removed an unused "use" statement.
2011-04-20 08:52:31 -05:00
Fabien Potencier
3ca5f513a4 [Form] added support for groups in form validation (when using array data) 2011-04-19 09:56:49 +02:00
Fabien Potencier
5242859920 [Form] fixed error bubbling for choices when expanded is true 2011-04-19 09:13:29 +02:00
Bernhard Schussek
d93e10160c [Form] Removed obsolete view variables 2011-04-18 15:47:18 +02:00
Bernhard Schussek
b93f5a372a [Form] Renamed ChoiceUtil to FormUtil and gave its methods more general names 2011-04-18 15:07:12 +02:00
Bernhard Schussek
abb0d0cde1 [Form] Removed StripTagsListener. Its implementation is insufficient and needs to be replaced by a better one.
The current implementation does not sanitize HTML properly. See [1] and [2] for more information.

[1] https://github.com/padraic/wibble
[2] http://blog.astrumfutura.com/?s=html+sanitising
2011-04-18 14:19:20 +02:00
Fabien Potencier
bee5d07d86 [Form] added a way to specify the form constraint when building the form (useful if you work with arrays instead of objects) 2011-04-18 14:09:29 +02:00
Bernhard Schussek
57722550de [Form] Added test for 'email' type and fixed a few bugs 2011-04-18 13:04:18 +02:00
Bernhard Schussek
23e9ad7a99 Merge remote branch 'mvrhov/email_type' into mvrhov_merge 2011-04-18 12:57:38 +02:00
Bernhard Schussek
eb21dc9fea [Form] Removed obsolete constraints from validation.xml 2011-04-18 12:57:19 +02:00
Bernhard Schussek
325049ac73 Revert "[Form] removed validation.xml file (not used anymore)"
This reverts commit 3e476e1c30.
2011-04-18 12:53:41 +02:00
Miha Vrhovnik
50011fa344 Added html5 email input to the forms 2011-04-18 11:17:41 +02:00
Miha Vrhovnik
43bcadbb80 Updating renamed event 2011-04-18 11:00:26 +02:00
Fabien Potencier
3a2ca3dd92 moved Doctrine2 Entity Type guesser to the Doctrine bridge 2011-04-18 08:44:37 +02:00
Fabien Potencier
4bfd5bf079 [Form] tweaked Date time transformer to allow fields with 0 as hour/minute/... 2011-04-17 22:50:22 +02:00
Fabien Potencier
3e476e1c30 [Form] removed validation.xml file (not used anymore) 2011-04-17 22:33:31 +02:00
Bernhard Schussek
be5738564f [Form] Improved regular expression in AbstractType::getName() and added unit tests 2011-04-17 18:01:22 +02:00
Bernhard Schussek
4905bfd285 Merge remote branch 'brikou/form' into form 2011-04-17 18:01:17 +02:00
Tobias Naumann
f6ce451e2c [Form] Made FormView implement Countable 2011-04-16 13:54:31 +02:00
Brikou CARRE
a83046f470 fixed regex (we don't need '?') 2011-04-15 19:04:53 +02:00
Brikou CARRE
28121e4a57 [Form] AbstractType::getName() improvement 2011-04-15 18:58:15 +02:00
Bernhard Schussek
30922d9375 [Form] Fixed: Checkboxes in an expanded choice field never have the 'required' HTML5 attribute. Closes http://trac.symfony-project.org/ticket/9588 2011-04-15 16:10:04 +02:00
Bernhard Schussek
9582221862 [Form] ResizeFormListener::preBind() now handles empty strings. Fixes https://github.com/symfony/symfony/pull/40 2011-04-15 15:43:02 +02:00
Bernhard Schussek
d0c572716a Merge remote branch 'henrikbjorn/form' into henrik_merge 2011-04-15 15:34:29 +02:00
Henrik Bjørnskov
e687685f98 [Form] change FormView::setVar,getVar,getVars,hasVar to set,get,all,has
[Form] Fixed {get,set,has}Var references in templating php

[Form] Added getVars to FormView to ease usage in Twig. Also added some phpdoc and cleaned up the get method by adding a default value

[Form] Fix

[Form] Delete file generated by test
2011-04-15 15:25:37 +02:00
Bernhard Schussek
e787d5dc22 [Form] PropertyPath now can handle elements with special characters 2011-04-15 15:25:19 +02:00
Bernhard Schussek
4f1ae660fa [Form] Fixed choice labels in expanded choice fields 2011-04-15 15:04:44 +02:00
Bernhard Schussek
41c6ab0ac7 [Form] Field labels can now be passed in the 'label' option 2011-04-15 15:03:10 +02:00
Bernhard Schussek
8fe21285ba [Form] Renamed Form::getView() to createView() to clearly indicate that each call returns a new object 2011-04-15 13:52:11 +02:00
Bernhard Schussek
276b23a344 [Form] Moved creation logic of FormView to Form class 2011-04-15 13:41:45 +02:00
Bernhard Schussek
44fa9bbeaa [Form] Fixed: CSRF token is regenerated if validation fails to avoid stalled tokens. Closes https://github.com/symfony/symfony/pull/415 2011-04-15 12:50:50 +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
Bernhard Schussek
77bea81ed5 [Form] Improved test coverage of ResizeFormListener. Fixed https://github.com/symfony/symfony/pull/493 2011-04-15 11:06:51 +02:00
Bernhard Schussek
fa457b1cc4 [Form] Renamed 'filter' listeners to 'on' to match naming conventions across the framework 2011-04-15 10:57:32 +02:00
Bernhard Schussek
e3db366116 [Form] Passing FormFactory to FormBuilder in its constructor 2011-04-14 15:25:30 +02:00
Bernhard Schussek
72b17cd67c [Form] Renamed TemplateContext to FormView 2011-04-14 15:02:51 +02:00
Bernhard Schussek
ca6ae09779 [Form] Removed TemplateContext::create() 2011-04-14 14:42:17 +02:00
Bernhard Schussek
ce5f3073bd Fixed test suite and names of accessor methods in TemplateContext 2011-04-14 03:52:52 +02:00
Fabien Potencier
7913d7978e [Form] removed DefaultFormFactory as it does not help that much and adds some confusion 2011-04-13 13:24:56 +02:00
Fabien Potencier
49dc836521 [Form] moved the template context creation to the Form class
Moving the template context creation makes sense and allows for simpler code for the end user:

Before:

        return array('post' => $post, 'form' => $this->get('form.factory')->createTemplateContext($form));

After:

        return array('post' => $post, 'form' => $form->getContext());
2011-04-13 09:31:13 +02:00
Fabien Potencier
7f2294395c [Form] reverted the templating part to be similar to what we have today 2011-04-11 16:42:51 +02:00
Fabien Potencier
dfa1da0416 [Form] removed unused use statement and fixed phpdoc 2011-04-07 09:00:01 +02:00
Bernhard Schussek
3482ff73b7 [Form] Fixed empty value in choice fields 2011-04-06 15:59:09 +02:00
Bernhard Schussek
e476231e8a [Form] Removed invalid tests, cleaned up some tests, added test coverage 2011-04-06 15:58:53 +02:00
Bernhard Schussek
72a41f8c94 [Form] Fixed: Booleans can be used as choice keys now 2011-04-02 18:26:28 +02:00
Bernhard Schussek
a5d0b3aea6 [Form] Changed FormBuilder::set(Client|Norm)Transformer to FormBuilder::prepend(Client|Norm)Transformer and FormBuilder::append(Client|Norm)Transformer to facilitate extension of types 2011-04-02 16:39:19 +02:00
Bernhard Schussek
be9ef42af9 [Form] Renamed choice transformers for better clarity 2011-04-02 16:11:20 +02:00
Bernhard Schussek
fc59936740 [Form] Fixed: ThemeRenderer::isChoiceSelected() works correctly for boolean choices 2011-04-02 16:00:46 +02:00
Bernhard Schussek
a4bbc40ac6 [Form] Cleaned up ChoiceListInterface 2011-04-02 15:41:43 +02:00
Bernhard Schussek
d3b7c4e8c1 [Form] Moved getLabel(), isChoiceSelected() and isChoiceGroup() from ChoiceListInterface to ThemeRenderer 2011-04-02 14:14:18 +02:00
Bernhard Schussek
94f2baa895 [Form] Fixed BooleanToStringTransformer::reverseTransform() to accept NULL values. Fixes ChoiceTypeTest 2011-04-02 13:00:19 +02:00
Bernhard Schussek
37e8e1270c [Form][FrameworkBundle][TwigBundle] Renamed view variable 'disabled' to 'read_only' to match with the according FormInterface methods 2011-04-02 12:18:43 +02:00
Bernhard Schussek
35d9b7f800 [Form] Improved test coverage of Form. The emptyValue closure now receives the Form instance to use form data when constructing new objects 2011-04-02 12:00:19 +02:00
Bernhard Schussek
4f39234741 [Form] bind() is ignored if a form is read-only 2011-04-02 11:39:15 +02:00
Bernhard Schussek
ca20aef379 [Form] Improved test coverage of DelegatingValidator and fixed validation group inheritance 2011-04-02 11:35:58 +02:00
Bernhard Schussek
33b0011f86 [Form] Improved test coverage of Form 2011-04-02 11:22:29 +02:00
Bernhard Schussek
c864d7fae1 [Form] Improved test coverage of Form class 2011-03-31 15:23:33 +02:00
Bernhard Schussek
1ef18360fa [Form] Made name immutable in FormBuilder to avoid synchronization problems with name and property path 2011-03-31 13:48:06 +02:00
Fabien Potencier
30f26ed091 [Form] changed DefaultFormFactory to be more 'useable' 2011-03-31 07:35:43 +02:00
Fabien Potencier
c7ccb6643b [Form] removed unused constructor argument from Type\FieldType (themeFactory and template) 2011-03-31 07:34:04 +02:00
Fabien Potencier
a1fc882fad [Form] fixed DefaultFormFactory 2011-03-30 23:38:40 +02:00
Bernhard Schussek
53838abf3f Merge remote branch 'symfony/master' into experimental
Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/money_field.html.php
	src/Symfony/Bundle/FrameworkBundle/Resources/views/Form/percent_field.html.php
	src/Symfony/Component/Form/Resources/config/validation.xml
2011-03-28 22:52:15 +02:00
Fabien Potencier
52c3a1d53d fixed typo 2011-03-28 22:48:18 +02:00
Bernhard Schussek
e2198b0dc6 [Form] Fixed a few references to AssertTrue/AssertFalse 2011-03-28 17:45:11 +02:00
Bernhard Schussek
e7df781c34 [Form] Fixed calls to ThemeRenderer::renderPart() 2011-03-28 11:22:27 +02:00
Bernhard Schussek
65f58c9fd1 [Form] Introduced generic RendererInterface 2011-03-27 23:43:14 +02:00
Bernhard Schussek
1fa004ceb2 [Form] Simplified the interface names of the Renderer subnamespace 2011-03-27 23:39:01 +02:00
Bernhard Schussek
4ec6ba8674 [Form] Fixed: set data is treated as string except if a transformer is set 2011-03-27 23:09:46 +02:00
Bernhard Schussek
cfaa03eeec [Form] Fixed: empty objects are only created upon binding forms with empty data 2011-03-27 23:07:30 +02:00
Bernhard Schussek
8a981dd047 [Form] Removed unused variable 2011-03-27 17:37:42 +02:00
Bernhard Schussek
58b8555cb6 [Form] Removed unused use-statements 2011-03-27 15:59:35 +02:00
Bernhard Schussek
edfae73cd4 [Form] Moved PropertyPath, PropertyPathIterator and VirtualFormAwareIterator to subnamespace Util 2011-03-27 15:37:13 +02:00
Bernhard Schussek
29d412c15a [Form] Changed name of VirtualFormIterator to VirtualFormAwareIterator 2011-03-27 15:33:04 +02:00
Bernhard Schussek
b180319371 [Form] Moved creation of empty data to Form to clean up DataMapperInterface 2011-03-27 15:12:35 +02:00
Bernhard Schussek
5ac979b043 [Form] Fixed default value of 'validation_groups' option, removed duplicate definition 2011-03-27 14:52:03 +02:00
Bernhard Schussek
80116be577 [Form] Removed unused 'template' option 2011-03-27 14:42:44 +02:00
Bernhard Schussek
6588a47ba7 [Form] Removed FormBuilder::setDataClass(). Use the FieldType option "data_class" instead.
The problem was that "data_class" was used in two places: FormBuilder::build() and PropertyPathMapper.

PropertyPathMapper was already constructed during FormType::buildForm(), so any data class changes made to the FormBuilder wouldn't affect the data class of the PropertyPathMapper anymore and so lead to an inconsistent state.
2011-03-27 14:34:48 +02:00
Bernhard Schussek
364b0f5208 [Form] Fixed: FormBuilder::add() accepts FormTypeInterface instances 2011-03-27 14:05:06 +02:00
Bernhard Schussek
dc38eeffe3 [Form] Changed the default value of the 'property_path' option to NULL. Explicitely set it to '' or false to disable mapping for a field/form 2011-03-27 14:02:24 +02:00
Bernhard Schussek
67d85c6bc7 [Form] Fixed signature of FormThemeInterface::render() 2011-03-27 13:48:38 +02:00
Bernhard Schussek
b21929423e [Form] Completely removed the fields variable in the renderer. The renderer itself supports ArrayAccess and Traversable 2011-03-27 13:48:36 +02:00
Bernhard Schussek
eaff9c641e [Form] Fixed: the default template is only set on the root renderer and reused by children 2011-03-26 19:39:31 +01:00
Bernhard Schussek
89361d036f [Form] Renamed FormType::configure() to FormType::buildForm() 2011-03-26 18:52:24 +01:00
Bernhard Schussek
a58cfab37d [Form] Removed form.type.loader tag and according compiler pass to simplify configuration. Custom types that are not in the DIC can be instantiated manually and passed wherever a type is desired. 2011-03-26 18:48:55 +01:00
Bernhard Schussek
9ff91dc997 Merge remote branch 'beberlei/FormsCollectionPrototype' into beberlei-merge 2011-03-26 18:39:20 +01:00
Bernhard Schussek
fae319e77a [Form] Renderers are now created explicitely using FormFactory::createRenderer(). This improves performance on requests where a form does not need to be rendered 2011-03-26 16:03:34 +01:00
Bernhard Schussek
8c7a93c90c [Form] Added FormTypeInterface::buildRendererBottomUp() which is called after children are initialized 2011-03-26 16:03:34 +01:00
Bernhard Schussek
c786fac303 [Form] Sample fix implementation of renderers 2011-03-26 16:03:34 +01:00
Johannes M. Schmitt
7887f04dc2 removed Assert prefix from all constraints, renamed annotation namespace to assert 2011-03-26 15:26:05 +01:00
Benjamin Eberlei
f9e2864030 [Form] Set prototype to true by default. 2011-03-26 14:56:59 +01:00
Benjamin Eberlei
d87651b6a2 [Form] Add option "prototype" defaulting to true. 2011-03-26 14:52:03 +01:00
Bernhard Schussek
41c3aea668 Merge remote branch 'beberlei/FormRendererItrator' into beberlei-merge 2011-03-26 13:43:33 +01:00
Benjamin Eberlei
f882a511a0 [Form] Initialize on iterator access. 2011-03-26 12:28:46 +01:00
Benjamin Eberlei
cd1ce86aee [Form] Iterator support for ThemeRenderer 2011-03-26 12:25:47 +01:00
Benjamin Eberlei
73d8470a76 [Form] Fix children implementation, setChildren() is not used, the attribute "fields" is. 2011-03-26 09:42:45 +01:00
Bernhard Schussek
7585dce8dd [Form] Added options validation to field creation 2011-03-25 15:30:33 +01:00
Bernhard Schussek
0ace068a52 [Form] PropertyPathMapper now only maps if the form data is synchronized to avoid duplicate form errors ('invalid'+'NotNull', for example) 2011-03-25 11:27:22 +01:00
Bernhard Schussek
6825ea2489 [Form] Improved test coverage of PropertyPathMapper 2011-03-25 11:27:20 +01:00
Bernhard Schussek
e3ac248617 [Form] Errors are mapped to subforms correctly and bubble up again if necessary 2011-03-25 10:53:36 +01:00
Bernhard Schussek
4f360109ed [Form] Fixed validation.xml (now really) 2011-03-25 10:41:18 +01:00
Bernhard Schussek
7b412cc762 [Form] Removed FormFactory::addGuessers() and moved guessers to constructor arg instead 2011-03-25 02:26:14 +01:00
Bernhard Schussek
9b1b8cbffa [Form] Replaced various occurences of 'field' by 'form' 2011-03-25 02:12:01 +01:00
Bernhard Schussek
3c412ffba0 [Form] Moved Form::validateData() to DelegatingValidator::validateFormData() 2011-03-25 01:59:28 +01:00
Bernhard Schussek
ec38901572 Merge branch 'rename-execute' into experimental
Conflicts:
	src/Symfony/Component/Form/Resources/config/validation.xml
2011-03-25 01:49:17 +01:00
Bernhard Schussek
71230a094b [Form] Fixed validation.xml 2011-03-25 01:46:05 +01:00
Bernhard Schussek
729438fdea Merge branch 'rename-execute' into experimental
Conflicts:
	src/Symfony/Component/Form/FileField.php
	src/Symfony/Component/Form/Resources/config/validation.xml
2011-03-25 01:38:49 +01:00
Bernhard Schussek
9c6a6e13bf [Validator] Renamed Execute constraint to Callback 2011-03-25 01:34:35 +01:00
Bernhard Schussek
4c43aa07ea [Form] Fixed: Elements are removed from collections when a 'collection' field is sized down 2011-03-25 01:15:33 +01:00
Bernhard Schussek
770d403a52 [Form] Improved error mapping in DelegatingValidator 2011-03-25 00:57:35 +01:00
Bernhard Schussek
d2b07058f4 [Form] CSRF token is now only validated for root form 2011-03-25 00:19:00 +01:00
Bernhard Schussek
4372bd5dc8 [Form] Fixed: Bubbling errors are caught correctly 2011-03-25 00:18:58 +01:00
Bernhard Schussek
d84d167b71 [Form] Fixed display of enctype for file fields in Twig theme 2011-03-25 00:16:30 +01:00
Bernhard Schussek
66ba0c3a73 [Form] Fixed: vars are initialized when ThemeRenderer::getVars() is accessed 2011-03-25 00:16:23 +01:00
Bernhard Schussek
262bdcb21d [Form] Fixed validation 2011-03-25 00:16:21 +01:00
Bernhard Schussek
ef334dbc4a Merge remote branch 'beberlei/AttributeSupport' into beberlei-merge 2011-03-24 22:53:39 +01:00
Bernhard Schussek
3f390aa271 [Form] Removed EntityType from DefaultTypeLoader 2011-03-24 22:50:39 +01:00
Benjamin Eberlei
ee96ad0e81 [Form] [DoctrineBridge] Move EntityType and DoctrineTypeLoader into Doctrine Bridge 2011-03-24 22:43:00 +01:00
Bernhard Schussek
1ff6906608 [Form] Simplified ArrayTypeLoader and used it as base class of DefaultTypeLoader 2011-03-24 22:30:49 +01:00
Benjamin Eberlei
8d6dd2b9af [Form] Add Arbitrary Attribute Support to Form Rendering. 2011-03-24 22:08:08 +01:00
Benjamin Eberlei
6bcc04905c [Form] Introduce ArrayTypeLoader, Remove EntityManager and FormFactory interface from DefaultTypeLoader 2011-03-24 20:00:17 +01:00
Bernhard Schussek
15d5259eb8 [Form] Forms now remember the types used during their construction 2011-03-24 16:16:31 +01:00
Bernhard Schussek
0b4c3c0cb8 [Form] Fixed coding conventions 2011-03-24 15:26:17 +01:00
Bernhard Schussek
2faa47d03b [Form] Added fallback templates to TwigThemeFactory 2011-03-24 15:11:43 +01:00
Bernhard Schussek
1211d77f49 [Form] Introduced renderer theme factories so that themes can be changed during runtime 2011-03-24 14:27:21 +01:00
Bernhard Schussek
5b41810b6d Revert "[Form] Changed naming of Themes to ThemeEngines. Theme templates are now 'themes'"
This reverts commit 1efd680b68.
2011-03-24 10:55:12 +01:00
Bernhard Schussek
5078a63c74 Revert "[Form] Fixed more naming of themes and theme engines"
This reverts commit 1aa34b7240.
2011-03-24 10:54:47 +01:00
Aurelijus
2ee47f3c69 get originalName before move call 2011-03-24 10:39:42 +02:00
Bernhard Schussek
9b6722222f [Form] Improved internal structore of PropertyPathMapper 2011-03-24 00:15:59 +01:00
Bernhard Schussek
1aa34b7240 [Form] Fixed more naming of themes and theme engines 2011-03-23 22:51:37 +01:00
Bernhard Schussek
1efd680b68 [Form] Changed naming of Themes to ThemeEngines. Theme templates are now 'themes' 2011-03-23 22:34:58 +01:00
Bernhard Schussek
f71ae03143 [Form] AbstractType::getParent() returns 'form' by default now 2011-03-23 21:51:50 +01:00
Bernhard Schussek
c01419d856 Merge remote branch 'johnwards/renderer_tests' into renderer-tests-merge 2011-03-23 21:13:36 +01:00
Bernhard Schussek
08a09240f6 [Form] Fixed order of input and output timezone to a more natural one 2011-03-23 17:12:04 +01:00
Bernhard Schussek
a880f8d0d1 [Form] Fixed coding conventions 2011-03-23 16:14:53 +01:00
Bernhard Schussek
9e025440ca Merge remote branch 'johnwards/configuration' into configurable-merge 2011-03-23 16:05:16 +01:00
John Wards
85701b65af [Form] Missing methods from interfaces 2011-03-22 22:20:14 +00:00
John Wards
1a014d130e [Form] Tests for Renderer Plugins 2011-03-22 22:19:51 +00:00
John Wards
37f12f68da [Form] The declaration and initialization (constructor) of the variables should be in the same class. 2011-03-22 20:54:15 +00:00
John Wards
e54973b5d4 [Form] Refactoring Types to use new DataTransfomer interface 2011-03-22 15:40:52 +00:00
Bernhard Schussek
ea0e5bb2d6 [Form] Renamed FieldTypeInterface to FormTypeInterface 2011-03-22 12:36:41 +01:00
Bernhard Schussek
270a98e413 [Form] Added support for types that are not registered in the DIC. These are identified by their FQ class name. 2011-03-22 12:33:15 +01:00
John Wards
5a5fdd0529 Merge remote branch 'bernhard/experimental' into configuration 2011-03-22 07:43:47 +00:00
Bernhard Schussek
33692eae4a [Form] Renamed Form::isTransformationSuccessful() to isSynchronized(). This method now indicates whether the data in the different representations is synchronized. Moved 'invalid' error to DefaultValidator 2011-03-22 02:03:22 +01:00
Bernhard Schussek
09da126464 [Form] Fixed validation.xml 2011-03-22 01:45:40 +01:00
Bernhard Schussek
16d65f6f16 [Form] Moved previously skipped tests from FormTypeTest to FormTest and fixed them 2011-03-22 01:40:02 +01:00
Bernhard Schussek
577e106361 [Form] Implemented custom mapping of data errors to form fields 2011-03-22 01:15:48 +01:00
John Wards
b4406f254d [Form] Removing Configurable from DataTransformers 2011-03-21 23:01:10 +00:00