QCubed 2.0.1 Development Release (released June 30, 2010)
Controls:
- Added all jQuery UI widgets as QCubed controls (#584)
- Added jQuery Resizable implementation (#520)
- QDialogBox
- Date/Time controls:
- Define the CSS class of control wrappers (#585)
- Fixed error in panel validation (#539)
- QCheckbox/QRadiobutton submission issue (#551)
- Investigate making QControls work without javascript (not implemented yet; started in #37)
Data adapters:
- New, EXPERIMENTAL database adapters:
Javascript / Client Side:
- Remove unused event.js (#453)
- Force extra semicolon at end of script (#490)
- Make example's index.php work without javascript (#528)
- QRegisterClickPositionAction should use jQuery (#533)
- EventName refactoring for all events (#577)
Other:
- Fixed Plugin Manager (#572)
- Wrong require statement in Config Checker (#571)
- Includes all fixes from QCubed 2.0.0 and 1.1.2
QCubed 1.1.2 Stable Release (released June 30, 2010)
Code Generator:
- Many-to-many GUI: using a multiple selection listbox by default (#294)
- Improve PHPDoc comments for generated metacontrols (#332) and form drafts (#333)
- FormBase - codegen templates need to include parent::Form_Create (#386)
- Fixed generated MetaAddEditLinkColumn when dealing with existing query parameters (#472)
- Cancel button now works in drafts (#469)
QQuery:
Controls:
- QDataGrid:
Data adapters:
JavaScript / Client side:
- Ability to add External JavaScript files (#362)
- Bug with rendering a double call of qc.pA (#408)
Examples / Documentation:
- Fixed php short tags in examples header (#435)
- "View Source" in examples not working on some Windows installs (#541)
Other:
- Complete rewrite of the localization code - now completely extensible (#359)
- Improved installation validator:
- QDateTime:
- Removed unneeded globals in QFormBase (#421)
- Includes all fixes from QCubed 1.1.1 and 1.0.3
QCubed 1.0.3 Legacy Maintenance Release (released June 30, 2010)
Fixing crashes and high-priority blocking issues:
- Fixed the elusive fatal error on Firefox on a Mac (#134)
- QType::Cast can't cast some floats to string (#375)
- QI18n crashes on corrupt cache (#555)
- QSoapService compatibility with PHP 5.3 (#316)
- Ajax error messages don't appear in IE / other browsers (#432)
Functionality issues:
- Move Handle: Specifying which controls to move does not work in chrome (#233)
- "Nesting level too deep" in the error dump utility (#287)
- GenerateQueryString doesn't account for arrays in $_GET (#389)
- Fix PDF MimeType (#471)
- !QControlProxy example broken in IE (#474)
- IsRemoteAdminSession not compatible with ipv6 (#475)
- QButton: support HtmlBefore and HtmlAfter (#554)
- QEmailServer:
Other:
- Includes all fixes from QCubed 1.0.2
QCubed 2.0.0 Development Release (released March 25, 2010)
New Features
Controls
- Control rewrites to use jQuery:
- QCalendarPopup(#448)
- QDialogBox (#451), and introduce javascript-based open/close (#479)
- QControlProxy (#473, #481)
- QImageRollover + new example for it (#461)
- QTextBoxBase::Select (#458)
- QControlBase::Focus (#496)
- Replace listbox javascript with the one from jQuery (#454)
- Replace QCodo custom JS drag-and-drop with jQuery drag-and-drop (#452), bring back AddControlToMove
(#511)
- Eliminate QRadioButton::GetJavaScriptAction? (#459)
- QCheckBoxColumn: fix select all (#467)
- Datagrid sorting doesn't work (#476)
- QFileAsset:
Documentation
- Fixed scrolling example (#340)
Other
- New action type: QCssAction (#495)
- Keypress event handling (#499)
- Error dialog does not pop up in IE (#322)
- Includes all fixes from QCubed 1.1.1 release
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:
and #290)
- Add() and setTime() are incompatible with base class (#401)
- QDateTime legacy did not have a qFormat() method (#400)
- 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:
- Adding $_OWNER to datagrid column HTML parsing (#46)
- Allowing other controls to cause the QForm to be rendered (specifically useful for Download as CSV links
in QDataGrids) (#46)
- 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
