TODO:
- maintenance: Switch to using inside-out objects (probably Moose)
- maintenance: scripts/clearpress to auto-generate tests & fixture framework
- maintenance: Improve migrations
- maintenance: Improve test coverage (currently at 81%)
- maintenance: Add regression tests
- performance: Config caching
402 - implemented bounded_select two-arg LIMIT in driver::SQLite
398 - gen_getall orders by secondary_key if specified - much more useful than id_x
- tweaks to handling for javascript blocks passed to decorator - may take comas
394 - Downgraded requirements for File::Copy & File::Path - RT#62701
393 - Removed empty 'data' dir
392 - /thing/edit/10.xml => 'thing_edit_xml' rather than 'thing_read_edit_xml'
- Tests for ldap authenticator
387 - Fixed some failing tests
384 - Provides DOM handles for error view's h2 & paragraph. Without
needing to override view::error::render, a useful piece of
jQuery might be:
$('.warnings').detach().insertAfter('#actions').effect('highlight', 3000);
$('h2.error').detach().insertAfter('#actions');
380 - Correction to order of initialisation of CGI object (from util, passed to decorator).
- Provides model::secondary_key support in model::init, allowing load-by-<secondary-field> for most models.
368 - corrected cleaning of error message to not expose module & line number in responses
363 - Default to serving Content-type header with charset=UTF-8
361 - UTF8 support enabled by default in MySQL driver
360 - Error messages escaped for HTML, JSON, XML
357 - Minor tweaks to build-process; adjusted some test data.
351 - Added basic database-backed authenticator. Needs examples.
346 - 0 => "0" bugfix for js_string and xml_filter.
343 - patch to allow multiple settings in config.ini, e.g.
stylesheet=/css/foo.css,/css/bar.css
- patch to fix DBI's warning about "rollback without explicit disconnect"
339 - override STDIN in t::request to account for changes in CGI.pm v3.44 (reported by Slaven)
- attempted a PostgreSQL adapter - could do with someone to test it
- updated example
334 - sessions saved after processing request, not during
327 - Basic authentication mechanisms - LDAP/AD, passwd/getpwuid
325 - Added support for HTTP_X_FORWARDED_HOST and ...PORT for sitting
behind a reverse-proxy
323 - Default support for .txt and .xls
320 - Improvements to singleton handling
- Template-toolkit filter registration for views
- Revisions for latest perlcritic regex enforcement
317 - Added 'streamed_aspects' view method for easier streamed responses
- Added model construction with primary key rather than hashref
- Default to *_ajax aspect with XMLHttpRequest request header
314 - Support loading models with a scalar primary key instead of
insisting on a hashref
302 - Bugfix affecting SCRIPT_NAME use in the standalone server
- Application builder now emits mysql schema-loading help with the
correct precedence
298 - Conformance to Perl::Critic 1.094001
297 - Made js_string and xml_entity filters available by
default. There's no longer any need to 'USE <x>' them.
294 - Fixed up schema problems when auto-generating SQLite applications.
- Allow posting XML without XForms:Model. Note it's unadvisable to
use this feature in the wild.
291 - Added xml_entity TT filter - uses HTML::Entities::encode_entities_numeric
284 - Class::Singleton support moved from ClearPress::driver to
ClearPress::util. When running in a mod_perl environment
supporting multiple different ClearPress applications, the
driver would be a singleton per Apache child process, meaning
applications would mistakenly share whichever database
connection is first initialised. As drivers are not usually
subclassed per-application (only by database back-end platform)
the singleton support was moved into ClearPress::util. The util
is commonly subclassed for applications so this should be a
robust solution, particularly for shared environments.
278 - Support for posting XML
269 - Extended aspect handling:
/batches/released/cluster.xml routes to
app::view::batches::read_released_xml with a primary key of
'cluster' by default, but if
app::view::batches::list_released_cluster_xml exists that will
be preferred.
- Also fixed a niggle - /thing/15.xml;add mixed
aspect+file-extension would previously have failed but should
now be correctly routed to app::view::thing::add_xml
267 - Bugfix for aspect checking - previously 'update_*' aspects
(e.g. update_xml) would have been incorrectly identified as a 'create'
action. Similarly for 'delete_*' aspects.
- Added SQLite checks to failing tests
255 - A bunch of new functional tests
- Test-harness related stuff (t::request)
- Test data for dummy templates and results
252 - Fixed generation of warnings.tt2 & view::error in bin/clearpress
- Fixed Y/N on file overwrite in bin/clearpress
- Auto-generate application-specific util as it's required by the singleton if not passed explicitly to objects
- Fixed requestor->is_member_of authorisation check if is_member_of is not supported (default not authorised) in ClearPress::view
- Fixed auto-generation of multiple has_a and has_many (missing whitespace) in bin/clearpress
- Default RESTish methods (pass-through) for *_ajax and *_json to complement existing *_xml in ClearPress::view
- Moved scripts/clearpress to bin/clearpress as it's more usual
- Template caching
236 - driver support for bounded selects (currently basic string concatenation)
235 - Improved test resiliance w.r.t. optional dependencies
222 - ClearPress::driver is now a Class::Singleton. ** TAKE CARE ** if
your application makes multiple database handles of the same sort
- they need separate subclassing and will then be singletons
themselves.
174 - Maintenance release - added missing dependencies to Makefile.PL
173 - Improved tests & code coverage for relation accessors (has_a,
has_many, has_a_through, has_many_through etc), views and database
drivers.
- NEW BEHAVIOUR: database handling has started to be pushed into
ClearPress::driver:: subclasses. You will commonly see transaction
errors with applications built using older ClearPress which
implement their own 'dbh' methods in util.pm .
- NEW BEHAVIOUR: better handling of NULL/undef, zero and empty
string may cause issues on applications which previously didn't
check.
168 - Updated POD
- Generation script now makes use of has_a and has_many
friend-accessor-auto-constructors
157 - Improved error handling with some smarts about requested content
types
- 'packagemap' config section maps uri entity names to package
subclasses for exceptions to the systematic naming rules, e.g.
[packagemap]
array_feature=feature::array
135 - belongs_to_through now supported in the data model
- Added missing Config::IniFiles dependency. Hopefully more CPAN
tests will now pass
132 - has_many_through and belongs_to now supported.
- Easier access to template subsystem for streamed-output responses.
118 - Update now only saves fields which 'exist' in the object, meaning
you don't have to force $object->load() before updating.
- New hasa() and hasmany() for easier relationship definitions.
- Models can now render ->as_xml() and as_json()
- Tweaked route processing (action & aspect) to be safer and more
consistent
99 - reworked url/file-extension & HTTP Accept header handling
deprecated controller::process_uri in favour of process_request
87 - JSON response support
71 - Buffered output handling, better test coverage
12 - Added application builder in scripts/clearpress