QCubed 1.1.1 Stable Release (released January 21, 2010)
New Features
- Global QTimer class for lightweight performance measurement (#390)
Database adapters/Codegen/ORM
- SqlServer2005/8 Adapter: Support for column comments (#405)
- Use of database column comments for code-generated ORM class properties (#415)
Controls
- QDataGrid:
- Supporting images on QButtons through HTML <button> tag (#403)
Plugin Ecosystem
- Issues during plugin installations with nested folders (#407)
- Plugins - Make examples/ and includes/ components optional (#397)
- Update QArchive to access plugin archive extraction errors (#411)
Documentation
- PHPDoc-style documentation for all QControls for better code completion (#207)
Design
- QCubed logo not shown in the start_page.php footer (#396)
- Slight visual improvements for plugin manager (#409)
- Save/Cancel buttons don't look good on form drafts (#410)
Other
- Upgrade to latest jQuery (1.4) and latest jQuery UI (#428)
- PHP 5.3 Compat:
- Minor typo in QType (#374)
- QSoapService produces an invalid output because there's an extra tab output somewhere (#370)
- QCache::SaveData() directory creation code to be replaced with recursive mkdir (#387)
- Includes all fixes from QCubed 1.1 and 1.0.2 releases
QCubed 1.0.2 Legacy Maintenance Release (released January 21, 2010)
Codegen/ORM/Database adapters
Controls
- Paginated controls: Validate Page number in QPaginator (#117)
- Delete button translation broken (#418)
- Wrong Rich Text Format mime type in QMimeType (#426)
Other
- PHP 5.3 compatibility:
- QType::Cast can't cast some floats to string (#375)
- Respecting the setting for level of error reporting (#383)
- Includes all fixes from QCubed 1.0.1 release
QCubed 1.1.0 Development Release (released November 10, 2009)
Project-wide Infrastructure:
- Integrate SimpleTest unit test framework (#94)
- Light integration of jQuery: easy to include jQuery, but not mandatory for your QForms (#183, #297)
- New directory structure that ensures security and provides for ease of future upgrades (#230, #262, #275, #281)
- Plugin manager: support for installing and uninstalling QCubed extensions (#272, #274, #291, #292, #305)
- Configuration checker: a tool that runs when you first install QCubed and verifies the prerequisites, also helping you configure QCubed settings (#296)
Codegen and DB Adapters:
- Support for PHP-based codegen templates (#6)
- Support for multiple type table suffixes (#255)
- New JSON extension for codegen templates (#284)
- Time columns used to display as dates by default (#158)
- ORM object initialization with default values as specified in the DB fields (#317)
- MySQL Adapter: using database field comments as code comment annotations (#238)
- SQL Server DB Adapter
- MetaControls check for unique constraints on save (#319)
- Codegen: small additions to QTable - GetColumnByName, HasColumn, LookupColumnPropertyName (#348)
- Codegen: modularization of code generated file permissions (#324)
QForms Infrastructure:
- Form Base is back and it works with MetaControls (#33)
- Attributes of the <form> tag can be overridden (#7)
- Use spl_autoload_register instead of autoload (#36)
- Natively supporting servers with Magic Quotes turned on (#240)
- AutoRenderWithNameChildren property for QPanel (#286)
Controls:
- Paginated controls:
- QFileAsset:
- New control: dynamic QTreeNav (#30)
- Integrated jQuery visual effects (#183)
- Per-control support for custom CSS stylesheets (#256)
- Fire QChangeEvent on QDateTimeTextBox for Qcalendar date change (#329)
- Allowing JavaScript actions on QHtml controls (#252)
Documentation:
- New Example for QueryArrayCached (#132)
- Documentation for qcodo_query_classes.tpl (#189)
- QListControl, QListBoxBase, QListBox, QListItem documentation (#188, #193, #194, #196, #197)
- QControl documentation (#195)
- Examples missing tpl files (#289)
- Don't allow the encrypt example to crash when no encryption libraries are installed (#298)
Misc:
- Support translations to languages other than the default (#325)
- QCache:
- QType bug when casting to double or integer (#159)
- Integrate QEmailStringAttachment into core (#264)
- File Form State Handler: paths hard-coded in core distro files (#347)
- Removed indexes that are not used in innodb example db (#165)
- QCodo references in the code/folders should be replaced by QCubed (#63)
- Includes all fixes from QCubed 1.0.1 release
QCubed 1.0.1 Stable (released October 19, 2009)
Codegen:
- QuerySingle throws error instead of null on empty result set (#261)
- QuerySingle sometimes returned first resultset record, sometimes - last (#234)
- Form draft generator - translation support for edit links (#329)
- Appropriately supporting time field in MySQL (#282)
Controls:
- QDialogBox does not show correctly in IE8 Beta2 and Opera 9.22 (#131)
Documentation:
Security:
Misc:
- Includes all fixes from QCubed 1.0.0 release
- Full compatibility with PHP 5.3 (#290)
- QDateTimeSpan without GPL licence (#266)
- QEmailServer, invalid Content-Length (#277)
QCubed 1.0 Stable (released April 21, 2009)
Controls:
- QImageControl: cache did not work at all (#181)
- QDialog box does not show up correctly in IE8 and Opera 9 (#131)
- QFileAsset:
- QFileAssetDialog: does not work inside a QForm (#182)
- QDateTimePicker:
- Modal dialog box positioning is incorrect when rendered in an absolutely positioned QPanel
- Drag-and-drop JavaScript errors (#218)
Codegen
- QueryArrayCached does not work (#200)
- Load and LoadBy generated functions now accept $objOptionalClauses param (#167)
- Meta controls: syntax error in many-to-many generated controls around $strGlue (#198)
- Dashes in column names are now explicitly disallowed (#175)
- Codegen settings XML file: supporting both "qcodo" and "qcubed" as the format string (#219)
Examples / Documentation
- Examples table relationship diagram (ERD) is outdated (#133)
- Purged obsolete "migrating from Beta 2" example (#214)
Other
- QEmailServer: Character encoding for plain-text messages (#217)
- Correctly exiting after errors (#174)
- Includes all fixes from QCubed 1.0 RC2
QCubed 1.0 RC2 (released February 16, 2009)
Examples / Documentation
- New examples for QQuery:
- New example: persistent controls (#109)
- New example: QRegex and QLexer (#110)
- Update example on _type tables to explain support for more than 2 columns (#95)
- Fixing explanation error in Reverse Relationship example (#163)
Database adapters, ORM, and QQuery
- QQuery:
- Postgre database adapter: better handling of timestamps (#171)
- Roundtripping "large" floats (doubles) and BigInts (#25)
- Codegen for date/time fields:
QControls
- QListBox: deselecting items through SelectedIndex=-1 did not work (#82)
- QFileAsset: upload-delete-upload again is broken (#88)
- QDialogBox:
- Paginated controls:
- QPanel: fixed drag-and-drop for major browsers + "moveable" on-hover handles (#74)
- Packed Javascript file _qc_packed.js was corrupt (#24)
- Updated browser detection logic (#60)
Security
- Cross-site scripting: Calendar (#62)
- Cross-site scripting: Error page (#65)
- PHP version headers were always sent (#66)
- Cross-site scripting in QTextBoxBase was cast incorrectly (#104)
QEmailServer
- Sending emails to addresses that contain allowed special characters (#27)
- TestMode does not work (#87)
Other
- Includes all fixes from QCubed 1.0 RC1
QCubed 1.0 RC1 (released November 2008)
QControls
- QDataGrid:
- QIntegerTextBox: Supplying friendly errors for when text is entered (#46)
- QCalendarPopup returns incorect dates (#48)
- QImageRollover should not have direct calls to htmlentities (#53)
- QTreeNav:
- Javascript: wrong use of Array's as associative arrays (#50)
Database adapters, ORM, and QQuery
- MySQL adapter: Prevent crashes if columns are unusual lengths (#46)
- MS SQL adapter:
- Codegen:
Security
- Preventing PathInfo injection attacks (#54)
QI18n (internationalization)
- Supporting empty translation strings (#47)
If you're interested in a complete list of bugs that were considered for each of the releases, take a look this Trac Report.
