Changeset 323 for trunk/package.xml

Show
Ignore:
Timestamp:
08/14/05 13:15:06 (3 years ago)
Author:
schst
Message:

Prepared first release candidate

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/package.xml

    r270 r323  
    11<?xml version="1.0" encoding="ISO-8859-1" ?> 
    22<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0"> 
    3 <package version="1.0" packagerversion="1.4.0a9"> 
     3<package version="1.0" packagerversion="1.4.0a12"> 
    44 <name>patForms</name> 
    55 <summary>Powerful form management package.</summary> 
     
    3131   <role>helper</role> 
    3232  </maintainer> 
     33  <maintainer> 
     34   <user>sfuchs</user> 
     35   <name>Sven Fuchs</name> 
     36   <email>svenfuchs@artweb-design.de</email> 
     37   <role>lead</role> 
     38  </maintainer> 
    3339  </maintainers> 
    3440 <release> 
    35   <version>0.9.0a2</version> 
    36   <date>2005-05-05</date> 
     41  <version>0.9.0b1</version> 
     42  <date>2005-08-14</date> 
    3743  <license>LGPL</license> 
    38   <state>alpha</state> 
    39   <notes>Changes since 0.9.0a1: 
    40 - disabled script option by default (schst) 
    41 - added new Filter: Function (schst) 
    42 - added new method Element::applySimpleFilter() as requested by Helgi (schst) 
    43 - moved client side scripts to separate files (schst) 
    44 - createElementId() is now a static method (argh) 
    45 - patForms_Renderer_Array: added the elementName to the resulting array (argh) 
    46 - added new element: Combobox (schst) 
    47 - fixed bug in setValues() (schst) 
    48 - fixed bug in Trim filter (Björn Kraus) 
     44  <state>beta</state> 
     45  <notes>First release candidate for 0.9.0. 
     46 
     47Changes since v0.9.0a2: 
     48* patForms main: 
     49  - Added &quot;namespace&quot; support to patForms and patForms_Elements (closing ticket #129) (Sven Fuchs) 
     50  - Added a class patForms_Definition: base class for xml based form definitions (Sven Fuchs) 
     51  - Removed patForms_FormatChecker and replaced it with rules (closing ticket #156) (schst) 
     52  - Added an event onValidate to patForms and registered storages to listen to this event. This allows patForms_Storage containers to do their own validation, e.g. for unique keys. (This closes bug #130) (Sven Fuchs) 
     53  - Cleaned up event-management and added new onRender() event (schst) 
     54  - Avoid multiple autoValidate checks in the same request (schst) 
     55  - Changed datasources to receive the element (closing ticket #151) (schst) 
     56  - Added datasource for country-selection (schst, argh) 
     57  - Added createDatasource() method to patForms (schst) 
     58  - patErrors triggered by event listeners will now bubble up to the user (schst) 
     59  - Check, whether custom locale file exists prior to loading it (schst) 
     60  - Fixed several PHP 4.4.0 notices (schst) 
     61  - Added the getRenderer() method (argh) 
     62 
     63* Elements 
     64  - Fixed bug #87: Passwords will not be sent back to the browser if the &quot;resendpasswd&quot; attribute is not set to &quot;yes&quot; (schst) 
     65  - Fixed bug #148: Enum/RadioGroup/Set/Combobox Elements now accept retrieving values from a datasource additionally to the already defined value set (argh) 
     66  - Fixed bug #147: Enum/RadioGroup/Set/Combobox Elements now support setting a 'disabled' attribute for values (argh) 
     67  - Fixed bug #150: Date day element displays 32 days 
     68  - Fixed bug #172: modified behavior of the setValue for the set element so that you may pass either a string for a single selected value, or an array with a list of selected entries (argh) 
     69  - Fixed bug #149: Non-required date elements are validated against min and max dates (argh) 
     70  - Fixed bug #179: Add errormanagment to patForms_Element::serialize*() (argh) 
     71  - Fixed bug #174: New method removeRule() is used to remove the previously added rule when usign the format attribute (schst) 
     72  - Fixed bug #171: Element_Date accepts invalid dates (argh) 
     73  - Fixed bug #182: Switch element does not check for the correct value (argh) 
     74 
     75* Rules 
     76  - Added several patForms_Rules to match Propel Validator classes and enable client side validation for these. New rules are: MaxLength, MinLength, MaxValue, MinValue, Match, NotMatch, ValidValues (Sven Fuchs) 
     77  - Added new rule: AnyRequired (schst) 
     78  - Fixed bug #173: translated missing french strings in patForms_Rule_URL as well as other rules (argh) 
     79  - Added new rule that prohibits updating entries in a storage (Frank Kleine) 
     80  - Added new rule that prohibits adding entries in a storage (schst) 
     81  - Fixed bug #187: Storage* rules need french translations (argh) 
     82 
     83* Storages 
     84  - Allowed the use of the DB storage container to only add entries (schst) 
     85  - Added new feature to the DB storage container to provide additional values for new entries (schst) 
     86  - Fixed the DB storage container to work with SQLite (schst) 
     87  - Fixed bug in storage containers that did not provide the onValidate() method (schst) 
     88  - Added new &quot;Mail&quot; storage (schst) 
     89  - Fixed bug #140 (missing check for database error) (schst) 
     90  - Fixed bug #177 (minor bugs in CSV storage) (schst) 
     91 
     92* Clientside features 
     93  - Changed scripts collection mechanism in patForms, patForms_Element and patForms_Rule for clientside validation. (This closes bug #133) (Sven Fuchs) 
     94 
     95* Propel Integration 
     96  - Added a class patForms_Definition_Propel: definition that either populates itself from a Propel ObjectPeer class and writes itself to an xml file OR reads an existing xml   file and populates itself from it, when this file exists (Sven Fuchs) 
     97  - Added a class patForms_Creator_Definition: creates a patForm instance and populates properties, elements and rules from a patForms_Definition instance (Sven Fuchs) 
     98  - Added a class patForms_Datasource_Propel: used to populate data to form elements for foreign key/related tables from a Propel ObjectPeer. (Sven Fuchs) 
     99  - Added a class patForms_Storage_Propel: implements the patForms_Storage interface to integrate with a Propel object peer. (Sven Fuchs) 
     100 
     101* Renderer 
     102  - Changed patForms_Renderer_Array to not include patForms_Datasource objects in the results array (This closes bug #131) (Sven Fuchs) 
     103  - Added new patTemplate Renderer (schst) 
     104 
     105* Parser 
     106  - Edited patForms_Parser &quot;sourcefile could not be read&quot;-message to include some additional useful debugging information (argh) 
     107  - Added filename to patForms_Parser error message (schst) 
     108  - patForms_Parser_HTML now extracts attributes of the &lt;form/&gt; tag (schst) 
     109  - Allow more than one element with the same name (schst) 
     110  - Fixed bug with spaces in attribute values (schst) 
     111  - Added value-namespace support via the namespace attribute of the &lt;patForms:Form/&gt; tag (schst) 
     112  - Added event support via attributes of the &lt;patForms:Form/&gt; tag (schst) 
    49113  </notes> 
    50114  <deps> 
    51115   <dep type="pkg" rel="has" optional="no">patError</dep> 
    52    <dep type="php" rel="ge" version="4.2.0" optional="no"/> 
     116   <dep type="php" rel="ge" version="4.3.0" optional="no"/> 
    53117   <dep type="pkg" rel="has" optional="yes">DB</dep> 
     118   <dep type="pkg" rel="has" optional="yes">Mail</dep> 
     119   <dep type="pkg" rel="has" optional="yes">Net_DNS</dep> 
     120   <dep type="pkg" rel="has" optional="yes">Net_SMTP</dep> 
     121   <dep type="pkg" rel="has" optional="yes">HTML_Flexy</dep> 
    54122  </deps> 
    55123  <filelist> 
     
    79147     <file role="doc" name="filters.txt"/> 
    80148     <file role="doc" name="notes.txt"/> 
     149     <file role="doc" name="roadmap.txt"/> 
    81150     <file role="doc" name="rules.txt"/> 
    82151    </dir> <!-- /docs --> 
     
    85154      <file role="doc" name="readme.txt"/> 
    86155     </dir> <!-- /examples/cache --> 
     156     <dir name="data"> 
     157      <file role="doc" name="users.csv"/> 
     158     </dir> <!-- /examples/data --> 
    87159     <dir name="fileupload"> 
    88160      <file role="doc" name="readme.txt"/> 
     
    113185      <file role="doc" name="xmlSource.php"/> 
    114186     </dir> <!-- /examples/patExampleGen --> 
     187     <dir name="propel"> 
     188      <dir name="bookstore"> 
     189       <dir name="map"> 
     190        <file role="doc" name="AuthorMapBuilder.php"/> 
     191        <file role="doc" name="BookMapBuilder.php"/> 
     192        <file role="doc" name="PublisherMapBuilder.php"/> 
     193       </dir> <!-- /examples/propel/bookstore/map --> 
     194       <dir name="om"> 
     195        <file role="doc" name="BaseAuthor.php"/> 
     196        <file role="doc" name="BaseAuthorPeer.php"/> 
     197        <file role="doc" name="BaseBook.php"/> 
     198        <file role="doc" name="BaseBookPeer.php"/> 
     199        <file role="doc" name="BasePublisher.php"/> 
     200        <file role="doc" name="BasePublisherPeer.php"/> 
     201       </dir> <!-- /examples/propel/bookstore/om --> 
     202       <file role="doc" name="Author.php"/> 
     203       <file role="doc" name="AuthorPeer.php"/> 
     204       <file role="doc" name="Book.php"/> 
     205       <file role="doc" name="BookPeer.php"/> 
     206       <file role="doc" name="Publisher.php"/> 
     207      </dir> <!-- /examples/propel/bookstore --> 
     208      <dir name="conf"> 
     209       <file role="doc" name="bookstore-conf.php"/> 
     210      </dir> <!-- /examples/propel/conf --> 
     211      <dir name="db"> 
     212       <file role="doc" name="bookstore.db"/> 
     213      </dir> <!-- /examples/propel/db --> 
     214     </dir> <!-- /examples/propel --> 
    115215     <dir name="templates"> 
    116216      <file role="doc" name="example_parser_attributes.fhtml"/> 
     217      <file role="doc" name="example_parser_attributes.html"/> 
     218      <file role="doc" name="example_parser_datanamespace.fhtml"/> 
     219      <file role="doc" name="example_parser_datanamespace.html"/> 
    117220      <file role="doc" name="example_parser_datasource.fhtml"/> 
     221      <file role="doc" name="example_parser_datasource.html"/> 
     222      <file role="doc" name="example_parser_events.fhtml"/> 
     223      <file role="doc" name="example_parser_events.html"/> 
     224      <file role="doc" name="example_parser_html-generated.fhtml"/> 
     225      <file role="doc" name="example_parser_html-output.html"/> 
    118226      <file role="doc" name="example_parser_html-source.html"/> 
    119227      <file role="doc" name="example_parser_intro.fhtml"/> 
    120228      <file role="doc" name="example_parser_ns_auto.fhtml"/> 
     229      <file role="doc" name="example_parser_ns_auto.html"/> 
    121230      <file role="doc" name="example_parser_ns_handler.fhtml"/> 
    122231      <file role="doc" name="example_parser_options.fhtml"/> 
     232      <file role="doc" name="example_parser_options.html"/> 
    123233      <file role="doc" name="example_parser_pattemplate.ftmpl"/> 
     234      <file role="doc" name="example_parser_pattemplate.tmpl"/> 
    124235      <file role="doc" name="example_parser_pattemplate_2forms.ftmpl"/> 
    125236      <file role="doc" name="example_parser_pattemplate_2forms.tmpl"/> 
     
    127238      <file role="doc" name="example_parser_pattemplate_group.tmpl"/> 
    128239      <file role="doc" name="example_parser_placeholder.fhtml"/> 
     240      <file role="doc" name="example_parser_placeholder.html"/> 
    129241      <file role="doc" name="example_parser_radiogroups.fhtml"/> 
     242      <file role="doc" name="example_parser_radiogroups.html"/> 
    130243      <file role="doc" name="example_parser_simple.fhtml"/> 
     244      <file role="doc" name="example_parser_simple.html"/> 
     245      <file role="doc" name="example_renderer_pattemplate.tmpl"/> 
     246      <file role="doc" name="example_renderer_pattemplate_form.tmpl"/> 
     247      <file role="doc" name="example_renderer_pattemplate_repeat.tmpl"/> 
    131248      <file role="doc" name="example_renderer_string.html"/> 
    132249      <file role="doc" name="example_renderer_string_attributes.html"/> 
     250      <file role="doc" name="example_renderer_string_errors.html"/> 
    133251      <file role="doc" name="example_renderer_string_placeholders.html"/> 
    134252     </dir> <!-- /examples/templates --> 
     
    149267     <file role="doc" name="example_creator_db.php"/> 
    150268     <file role="doc" name="example_creator_db_mysql.php"/> 
     269     <file role="doc" name="example_datasrc_countries.php"/> 
    151270     <file role="doc" name="example_datasrc_function.php"/> 
    152271     <file role="doc" name="example_datasrc_object.php"/> 
     
    183302     <file role="doc" name="example_observer_readonly.php"/> 
    184303     <file role="doc" name="example_parser_attributes.php"/> 
     304     <file role="doc" name="example_parser_datanamespace.php"/> 
    185305     <file role="doc" name="example_parser_datasource.php"/> 
     306     <file role="doc" name="example_parser_events.php"/> 
    186307     <file role="doc" name="example_parser_html.php"/> 
    187308     <file role="doc" name="example_parser_intro.php"/> 
     
    196317     <file role="doc" name="example_parser_simple.php"/> 
    197318     <file role="doc" name="example_renderer_array.php"/> 
     319     <file role="doc" name="example_renderer_pattemplate.php"/> 
     320     <file role="doc" name="example_renderer_pattemplate_form.php"/> 
     321     <file role="doc" name="example_renderer_pattemplate_repeat.php"/> 
    198322     <file role="doc" name="example_renderer_radiogroup.php"/> 
    199323     <file role="doc" name="example_renderer_string.php"/> 
    200324     <file role="doc" name="example_renderer_string_attributes.php"/> 
     325     <file role="doc" name="example_renderer_string_errors.php"/> 
    201326     <file role="doc" name="example_renderer_string_placeholders.php"/> 
    202327     <file role="doc" name="example_rule_after.php"/> 
     
    204329     <file role="doc" name="example_rule_conditionalenum.php"/> 
    205330     <file role="doc" name="example_rule_element.php"/> 
     331     <file role="doc" name="example_rule_format.php"/> 
     332     <file role="doc" name="example_rule_remove.php"/> 
    206333     <file role="doc" name="example_storage_csv.php"/> 
    207334     <file role="doc" name="example_storage_db.php"/> 
    208335     <file role="doc" name="example_storage_db.sql"/> 
     336     <file role="doc" name="example_storage_mail.php"/> 
     337     <file role="doc" name="example_storage_propel.php"/> 
    209338     <file role="doc" name="index.php"/> 
     339     <file role="doc" name="setup_examples.php"/> 
    210340    </dir> <!-- /examples --> 
    211341    <dir name="patForms"> 
     
    215345      </dir> <!-- /patForms/Creator/DB --> 
    216346      <file role="php" name="DB.php"/> 
     347      <file role="php" name="Definition.php"/> 
    217348     </dir> <!-- /patForms/Creator --> 
     349     <dir name="Datasource"> 
     350      <file role="php" name="Countries.php"/> 
     351      <file role="php" name="Propel.php"/> 
     352     </dir> <!-- /patForms/Datasource --> 
     353     <dir name="Definition"> 
     354      <file role="php" name="Propel.php"/> 
     355     </dir> <!-- /patForms/Definition --> 
    218356     <dir name="Element"> 
    219357      <dir name="Date"> 
     
    262400     <dir name="Renderer"> 
    263401      <file role="php" name="Array.php"/> 
     402      <file role="php" name="Flexy.php"/> 
     403      <file role="php" name="patTemplate.php"/> 
     404      <file role="php" name="PhpTal.php"/> 
     405      <file role="php" name="Savant3.php"/> 
     406      <file role="php" name="Smarty.php"/> 
    264407      <file role="php" name="String.php"/> 
    265408     </dir> <!-- /patForms/Renderer --> 
    266409     <dir name="Rule"> 
     410      <file role="php" name="AnyRequired.php"/> 
    267411      <file role="php" name="ConditionalEnum.php"/> 
    268412      <file role="php" name="ConditionalRequired.php"/> 
     
    271415      <file role="php" name="GermanBLZ.php"/> 
    272416      <file role="php" name="GermanZipCode.php"/> 
     417      <file role="php" name="Match.php"/> 
     418      <file role="php" name="MaxLength.php"/> 
     419      <file role="php" name="MaxValue.php"/> 
     420      <file role="php" name="MinLength.php"/> 
     421      <file role="php" name="MinValue.php"/> 
     422      <file role="php" name="NotMatch.php"/> 
    273423      <file role="php" name="Retype.php"/> 
     424      <file role="php" name="StorageProhibitAdd.php"/> 
     425      <file role="php" name="StorageProhibitUpdate.php"/> 
     426      <file role="php" name="URL.php"/> 
     427      <file role="php" name="ValidValues.php"/> 
    274428     </dir> <!-- /patForms/Rule --> 
    275429     <dir name="Scripts"> 
     
    281435       <dir name="Rule"> 
    282436        <file role="data" name="ConditionalEnum.js"/> 
     437        <file role="data" name="Match.js"/> 
     438        <file role="data" name="MaxLength.js"/> 
     439        <file role="data" name="MaxValue.js"/> 
     440        <file role="data" name="MinLength.js"/> 
     441        <file role="data" name="MinValue.js"/> 
     442        <file role="data" name="NotMatch.js"/> 
     443        <file role="data" name="ValidValues.js"/> 
    283444       </dir> <!-- /patForms/Scripts/Html/Rule --> 
    284445      </dir> <!-- /patForms/Scripts/Html --> 
     
    287448      <file role="php" name="CSV.php"/> 
    288449      <file role="php" name="DB.php"/> 
     450      <file role="php" name="Mail.php"/> 
     451      <file role="php" name="Propel.php"/> 
    289452     </dir> <!-- /patForms/Storage --> 
    290453     <file role="php" name="Collection.php"/> 
    291454     <file role="php" name="Creator.php"/> 
     455     <file role="php" name="Definition.php"/> 
    292456     <file role="php" name="Element.php"/> 
    293457     <file role="php" name="Filter.php"/> 
     
    299463    </dir> <!-- /patForms --> 
    300464    <dir name="tests"> 
     465     <dir name="element"> 
     466      <dir name="pages"> 
     467       <file role="test" name="test_namespace_combined_1_form.php"/> 
     468       <file role="test" name="test_namespace_combined_2_forms.php"/> 
     469       <file role="test" name="test_namespace_element_combobox.php"/> 
     470       <file role="test" name="test_namespace_element_date.php"/> 
     471       <file role="test" name="test_namespace_element_enum.php"/> 
     472       <file role="test" name="test_namespace_element_file.php"/> 
     473       <file role="test" name="test_namespace_element_group.php"/> 
     474       <file role="test" name="test_namespace_element_hidden.php"/> 
     475       <file role="test" name="test_namespace_element_number.php"/> 
     476       <file role="test" name="test_namespace_element_pool.php"/> 
     477       <file role="test" name="test_namespace_element_pool_multi.php"/> 
     478       <file role="test" name="test_namespace_element_radio.php"/> 
     479       <file role="test" name="test_namespace_element_radiogroup.php"/> 
     480       <file role="test" name="test_namespace_element_set.php"/> 
     481       <file role="test" name="test_namespace_element_string.php"/> 
     482       <file role="test" name="test_namespace_element_switch.php"/> 
     483       <file role="test" name="test_namespace_element_text.php"/> 
     484      </dir> <!-- /tests/element/pages --> 
     485      <file role="test" name="Base.php"/> 
     486      <file role="test" name="Basic.php"/> 
     487      <file role="test" name="Convert.php"/> 
     488      <file role="test" name="Namespaces.php"/> 
     489      <file role="test" name="Set.php"/> 
     490     </dir> <!-- /tests/element --> 
     491     <dir name="Renderer"> 
     492      <dir name="res"> 
     493       <file role="test" name="test.flexy.form.tpl"/> 
     494       <file role="test" name="test.flexy.simple.tpl"/> 
     495       <file role="test" name="test.phpTal.form.tpl"/> 
     496       <file role="test" name="test.phpTal.simple.tpl"/> 
     497       <file role="test" name="test.savant.form.tpl"/> 
     498       <file role="test" name="test.savant.simple.tpl"/> 
     499       <file role="test" name="test.smarty.form.tpl"/> 
     500       <file role="test" name="test.smarty.simple.tpl"/> 
     501      </dir> <!-- /tests/Renderer/res --> 
     502      <file role="test" name="FlexyTest.php"/> 
     503      <file role="test" name="PhpTalTest.php"/> 
     504      <file role="test" name="Savant3Test.php"/> 
     505      <file role="test" name="SmartyTest.php"/> 
     506     </dir> <!-- /tests/Renderer --> 
    301507     <file role="test" name="benchmark_concat.php"/> 
    302508     <file role="test" name="benchmark_str_replace.php"/> 
    303509     <file role="test" name="readme.txt"/> 
     510     <file role="test" name="runtests.php"/> 
    304511    </dir> <!-- /tests --> 
    305512    <file role="php" name="patForms.php"/> 
     
    322529- added new element: Combobox (schst) 
    323530- fixed bug in setValues() (schst) 
    324 - fixed bug in Trim filter (Björn Kraus) 
     531- fixed bug in Trim filter (Bjrn Kraus) 
     532    </notes> 
     533   </release> 
     534   <release> 
     535    <version>0.9.0b1</version> 
     536    <date>2005-08-14</date> 
     537    <license>LGPL</license> 
     538    <state>beta</state> 
     539    <notes>First release candidate for 0.9.0. 
     540 
     541Changes since v0.9.0a2: 
     542* patForms main: 
     543  - Added &quot;namespace&quot; support to patForms and patForms_Elements (closing ticket #129) (Sven Fuchs) 
     544  - Added a class patForms_Definition: base class for xml based form definitions (Sven Fuchs) 
     545  - Removed patForms_FormatChecker and replaced it with rules (closing ticket #156) (schst) 
     546  - Added an event onValidate to patForms and registered storages to listen to this event. This allows patForms_Storage containers to do their own validation, e.g. for unique keys. (This closes bug #130) (Sven Fuchs) 
     547  - Cleaned up event-management and added new onRender() event (schst) 
     548  - Avoid multiple autoValidate checks in the same request (schst) 
     549  - Changed datasources to receive the element (closing ticket #151) (schst) 
     550  - Added datasource for country-selection (schst, argh) 
     551  - Added createDatasource() method to patForms (schst) 
     552  - patErrors triggered by event listeners will now bubble up to the user (schst) 
     553  - Check, whether custom locale file exists prior to loading it (schst) 
     554  - Fixed several PHP 4.4.0 notices (schst) 
     555  - Added the getRenderer() method (argh) 
     556 
     557* Elements 
     558  - Fixed bug #87: Passwords will not be sent back to the browser if the &quot;resendpasswd&quot; attribute is not set to &quot;yes&quot; (schst) 
     559  - Fixed bug #148: Enum/RadioGroup/Set/Combobox Elements now accept retrieving values from a datasource additionally to the already defined value set (argh) 
     560  - Fixed bug #147: Enum/RadioGroup/Set/Combobox Elements now support setting a 'disabled' attribute for values (argh) 
     561  - Fixed bug #150: Date day element displays 32 days 
     562  - Fixed bug #172: modified behavior of the setValue for the set element so that you may pass either a string for a single selected value, or an array with a list of selected entries (argh) 
     563  - Fixed bug #149: Non-required date elements are validated against min and max dates (argh) 
     564  - Fixed bug #179: Add errormanagment to patForms_Element::serialize*() (argh) 
     565  - Fixed bug #174: New method removeRule() is used to remove the previously added rule when usign the format attribute (schst) 
     566  - Fixed bug #171: Element_Date accepts invalid dates (argh) 
     567  - Fixed bug #182: Switch element does not check for the correct value (argh) 
     568 
     569* Rules 
     570  - Added several patForms_Rules to match Propel Validator classes and enable client side validation for these. New rules are: MaxLength, MinLength, MaxValue, MinValue, Match, NotMatch, ValidValues (Sven Fuchs) 
     571  - Added new rule: AnyRequired (schst) 
     572  - Fixed bug #173: translated missing french strings in patForms_Rule_URL as well as other rules (argh) 
     573  - Added new rule that prohibits updating entries in a storage (Frank Kleine) 
     574  - Added new rule that prohibits adding entries in a storage (schst) 
     575  - Fixed bug #187: Storage* rules need french translations (argh) 
     576 
     577* Storages 
     578  - Allowed the use of the DB storage container to only add entries (schst) 
     579  - Added new feature to the DB storage container to provide additional values for new entries (schst) 
     580  - Fixed the DB storage container to work with SQLite (schst) 
     581  - Fixed bug in storage containers that did not provide the onValidate() method (schst) 
     582  - Added new &quot;Mail&quot; storage (schst) 
     583  - Fixed bug #140 (missing check for database error) (schst) 
     584  - Fixed bug #177 (minor bugs in CSV storage) (schst) 
     585 
     586* Clientside features 
     587  - Changed scripts collection mechanism in patForms, patForms_Element and patForms_Rule for clientside validation. (This closes bug #133) (Sven Fuchs) 
     588 
     589* Propel Integration 
     590  - Added a class patForms_Definition_Propel: definition that either populates itself from a Propel ObjectPeer class and writes itself to an xml file OR reads an existing xml   file and populates itself from it, when this file exists (Sven Fuchs) 
     591  - Added a class patForms_Creator_Definition: creates a patForm instance and populates properties, elements and rules from a patForms_Definition instance (Sven Fuchs) 
     592  - Added a class patForms_Datasource_Propel: used to populate data to form elements for foreign key/related tables from a Propel ObjectPeer. (Sven Fuchs) 
     593  - Added a class patForms_Storage_Propel: implements the patForms_Storage interface to integrate with a Propel object peer. (Sven Fuchs) 
     594 
     595* Renderer 
     596  - Changed patForms_Renderer_Array to not include patForms_Datasource objects in the results array (This closes bug #131) (Sven Fuchs) 
     597  - Added new patTemplate Renderer (schst) 
     598 
     599* Parser 
     600  - Edited patForms_Parser &quot;sourcefile could not be read&quot;-message to include some additional useful debugging information (argh) 
     601  - Added filename to patForms_Parser error message (schst) 
     602  - patForms_Parser_HTML now extracts attributes of the &lt;form/&gt; tag (schst) 
     603  - Allow more than one element with the same name (schst) 
     604  - Fixed bug with spaces in attribute values (schst) 
     605  - Added value-namespace support via the namespace attribute of the &lt;patForms:Form/&gt; tag (schst) 
     606  - Added event support via attributes of the &lt;patForms:Form/&gt; tag (schst) 
    325607    </notes> 
    326608   </release>