+==-==-==-==-==-==-==-==-==-==-==-==+
| flashPash RC1 changelog |
+==-==-==-==-==-==-==-==-==-==-==-==+
Changes to FlashPashClass
- Added new static properties to handle different join types:
FP_JOIN_INNER (I)
FP_JOIN_LEFT (L)
FP_JOIN_RIGHT (R)
- Added new static properties to handle table and field aliases:
FP_XML_FIELD_ALIAS (fieldAlias)
FP_XML_TABLE_ALIAS (tableAlias)
FP_XML_FIELD_COMPUTE (compute)
- Added getDebugText, getError, getErrorText, getRecordCount and getState
methods for related public properties. They are all read-only (of sorts)
- Renamed method 'getNow' to 'now' to avoid confusion with get/set methods
- Renamed all FP_XML_* static properties to FP_*
Changes to FlashPashComponentClass
- Added tableAlias and fieldAlias parameters to _createFieldElement
- Added get/set methods for public properties. Refer to help for details.
IMPORTANT! setDataSource can accept either the instance of a FxDataSetClass
or Recordset class, or the name of one (it stores the name). Also be aware
that getDataSource will return a reference to the dataSource object.
- Changed _createDataPacketElement so that 'recordLimit' and 'limitFrom'
are sent to server if length > 0 and have non-zero value.
- Renamed all 'childNodes[ 0 ]' references to 'firstChild'
Changes to FlashPashFireflyClass
- Added generic code for creating empty dataset when doSelect returns 0 recordCount.
NOTE: There is an issue in Firefly when creating empty datasets in XML.
After creating an empty dataset, there is a record with an 'update' delta
packet in the resolver, which is pretty useless...so flashPash calls
deleteRecord and purgeUpdates against the associated dataset.
- Added delay to _checkDataSourceProperties if unable to find datatset connector.
Pauses for 1 second and tries again, if connector still not found pause for
another 2 seconds and try again before failing. I believe this is happening
due to the external Firefly library not being loaded yet (since it only happens
when first loading a movie and then only intermittantly).
- Added new methods setKey, setJoin and setAlias. Refer to help for details.
- Added method _setMapSource method
- Changed parameters for setField method. Refer to help for details.
- Changed _getFields method to only set @ in path.
Path now built by combing table and field.
- Changed default maxWaitTime from 45000 (45 seconds) to 15000 (15 seconds)
- Fixed bug in _getResolverFields when getting delta count
- Fixed bug in _buildResolverInsert when getting default value
- Renamed _addKeyField and _deleteKeyField to _addResolverKey and _deleteResolverKey
Changes to FlashPashRecordsetClass
- Added new methods setKey, setJoin and setAlias. Refer to help for details.
- Added _getRecordSet method
- Changed parameters for setField method. Refer to help for details.
- Changed default maxWaitTime from 45000 (45 seconds) to 15000 (15 seconds)
Changes to FlashPashStashClass
- None
Changes to FlashPashServerClass
- Added errorReporting property. Also added associated static properties:
FP_ERROR_REPORTING_DEFAULT : Default setting - Report error number and brief error text
FP_ERROR_REPORTING_VERBOSE : Include all available information in errorText property
FP_ERROR_REPORTING_ONLY_NUMBER : Only return the error number, errorText property not set
FP_ERROR_REPORTING_NONE : error and errorText properties are not set if error found
- Added 'rawurlencode' parameter to _checkForCDATA method
- Added property 'socketPort' in preparation for socket support
- Added static property FP_SOURCE_XML_SOCKET in preparation for socket support
- Added error logging when opening and writing to log files
- Added private property _qri to store current index position of _SQL array
- Changed debug property so that it can be FP_LOG_HTML and/or FP_LOG_TEXT
ie. flashPash will write both HTML and Text logfile if both are set.
- Added new static properties to handle different join types:
FP_JOIN_INNER (I)
FP_JOIN_LEFT (L)
FP_JOIN_RIGHT (R)
- Added new static properties to handle table and field aliases:
FP_XML_FIELD_ALIAS (fieldAlias)
FP_XML_TABLE_ALIAS (tableAlias)
FP_XML_FIELD_COMPUTE (compute)
- Added new methods setKey, setJoin and setAlias. Refer to help for details.
- Added flashPash.firefly.php and flashPash.recordset.php include files,
removed associated methods.
- Added private methods _getFieldsForSelect, _getFieldsForInsert, _getFieldsForUpdate
and _getFieldsForDelete
- Added private methods _getTablesForSelect, _getTablesForInsert, _getTablesForUpdate
and _getTablesForDelete
- Changed debug output of XML so that it is now correctly formatted
- Changed flashPash.permissions.xml to flashPash.roles.xml. To help reduce
confusion between database users and flashPash users, all references to
'user' permissions have been changed to 'role' permissions.
- Changed _buildXMLoutput to check for attributes or nodes on each field
- Changed _buildQuery and _runQuery methods to handle multiple queries in _SQL.
This means if you have multiple tables, separate queries will be run for each
table for FP_INSERT, FP_UPDATE and FP_DELETE SQL types.
- Changed parameters for setField method. Refer to help for details.
- Changed _buildSelectResult so that it only searches for FP_SQL_ALIAS once.
- Changed checkFieldValue so that boolean data types are not converted to 0 or 1
- Renamed property checkUser to checkRole, and renamed property userName to role
- Renamed method _checkPermissions to _checkRole
- Renamed method _searchPermissionNode to _searchRoleNode
- Renamed static properties:
FP_ERROR_PERMISSION_FILE_MISSING to FP_ERROR_ROLE_FILE_MISSING
FP_ERROR_PERMISSION_INVALID_XML to FP_ERROR_ROLE_INVALID_XML
FP_ERROR_PERMISSION_INVALID_USER to FP_ERROR_ROLE_INVALID
FP_ERROR_PERMISSION_DENIED_ALLOW to FP_ERROR_ROLE_DENIED_ALLOW
FP_ERROR_PERMISSION_DENIED_DENY to FP_ERROR_ROLE_DENIED_DENY
FP_ERROR_PERMISSION_DENIED to FP_ERROR_ROLE_DENIED
FP_PERMISSION_NOT_FOUND to FP_ROLE_NOT_FOUND
FP_XML_USER_NODE to FP_XML_ROLE_NODE
- Renamed property _loadedPOSTdata to _gotData. Reflects change to _intialise
method, which is now called before getData is called (if it hasn't been already)
- Renamed _getPOSTdata method to _getData method to prepare for socket support
- Renamed _SQLquery to _SQL and type to array. Needed for multi-table updates.
- Renamed all FP_XML_* static properties to FP_*
- Removed private method _checkErrorCount (now handled by _logError)
- Removed 2 ob_end_clean() calls as it may interfere with other scripts (PHP 4.3.2)
- Removed checkRole, role and errorReporting from FlashPashServerClass constructor
- Removed _getFieldEqualsValue method. Replaces by _getFieldsForXXX methods.
Changes to demo's
- Added localConnection logic to all demo's (links to katsi logo on website)
- Added "Add Item" button to recordset demo, added keyfield, improved useability
- Changed flashPash.firefly.demo to fix problem with legacy components
- Changed flashPash.firefly.demo and TimeTrax tutorial to Firefly v1.0
- Changed all demos to comply with setField parameters and converted
to work with new methods setKey and setJoin.
- Changed demo structure to separate Actionscript and Movies from PHP code
- Changed flashPash firefly demo to use joined tables (table1 and table2)
Other changes
- flashPash.exe installation program nows installs into 'First Run' folder.
Flash MX will automatically copy into appropriate user folder.
- Subversion.tigris.org implemented as flashPash's version control software.
Tortoise.tigris.org is also used as a windows shell extension for Subversion.
This isn't running over HTTP yet, but email si@sshnug.com for a working copy.
- ADOdb v3.60 built into release
+==-==-==-==-==-==-==-==-==-==-==-==+
| flashPash beta 3 changelog |
+==-==-==-==-==-==-==-==-==-==-==-==+
Changes to design:
- New client-side class hierarchy
sshnug [ namespace ]
|
+-->FlashPashClass [ flashPash.as ]
|
+-->FlashPashComponentClass [ flashPash.component.as ]
| |
| +-->FlashPashFireflyClass [ flashPash.firefly.as ]
| |
| +-->FlashPashRecordsetClass [ flashPash.recordset.as ]
|
+-->FlashPashStashClass [ flashPashStash.as ]
Changes to flashPash MX components
- Added doSaveUpdates (resolver updates) method for firefly dataSources!
Note: With Firefly dataSources, this should be the main method used, as it correctly
handles updates to primary key values and is more efficient as it only includes changes.
- Added custom interface for component parameters. Provides some basic error checking
and allows user to use enter key to switch between properties.
- Added static property FlashPashClass.FP_WRAP_IN_TRANS and implemented into doSaveUpdates,
ie. If doSaveUpdates wrapInTransaction parameter is true, all updates must be successfull
or none will be. Note that this is only support in ADOdb v3.40 or higher.
- Added FP_XML_FIELD_OLDKEY (on client and server classes) to field attributes to allow for
updating of key values and to avoid unnecessary inclusion in SQL "SET" conditions.
- Added FP_XML_FIELD_JOIN (client+server) to fields to prepare for automated table joins
- Added setField method to flashPash firefly and recordset components
- Added 2 new properties 'interval' and 'maxWaitTime'. Both used to customise state timing.
- Added new client-side error code FP_ERROR_TIMEOUT
- Added description of parse error message in XML.status (taken from flash documentation)
- Moved firefly specific functions to FlashPashFireflyClass
- Removed unnecessary property and event declarations in code (already in parameters)
- Removed redundant constant declarations
- Removed 'dontSendXML' parameter from public methods
- Removed property 'dataSourceType'. Added constant FP_CUSTOM_DATA_SOURCE
To determine the dataSource, use public method 'getDataSourceType'
Note: Property still exists on server-side class and FP_DATA_SOURCE_TYPE
is still sent (if necessary) in XML as a dataPacket attribute.
- Fixed problems with non-alphanumeric's and CDATA being received and sent by client
- Fixed bug which prevented calling firefly chained events from flashPash
- Fixed bug which prevented flashPash state change if no event was specified
- Fixed bug when changing state after multiple FP_ERROR_ALREADY_BUSY errors
- Fixed bug which was causing component graphic to be shown on form
- Changed code syntax to have more standardised formatting
- Changed FlashPashClass to descend from Object and not MovieClip (saves resources?)
- Changed _createXMLDataPacket to _createDataPacketElement
- Changed _createXMLfield to _createFieldElement
- Changed _onXMLdata method so to prevent processing of XML result after timing out
- Changed XML contentType sent from flash is now "application/flashPash"
- Changed all 'before' style events to now abort method if false returned within event call
- Changed FlashPashRecordsetClass to use XML nodes mpt attributes (avoids CDATA issues)
- Changed all class shortcut aliases for consistancy (fp_proto, fpComponent_proto, etc)
- Changed reset method to _reset, as it doesn't have to be public.
- Changed XML structure to be more efficient and self-describing: SQLtype is now
used as nodeName, saves around 30 bytes per request (data packet).
Changes to flashPash PHP class (flashPash.php)
- Added XML based server-side permission structure! Now you can implement a MySQL
style security model even if you only connect to the database with one user
(For more information see documentation in checkUser in FlashPashServerClass reference help)
- Added Allow and Deny attributes to permission checking for each SQLtype to provide further
permission filtering. See checkUser property in API help for FlashPashServerClass.
- Added ADOdb qstr, DBDate and DBDateTime wrappers to matching field types in _convertFieldValue method,
and as a result removed addslashes function from _convertXMLtoArray(). This should result in greater
database portability.
- Added standard properties to FlashPashServerClass constructor
- Added new private property _loadedPOSTdata. This is now set to true whenever getPOSTdata is
able to successfully load POST contents into dp array. What this means is you can now verify
and change client-side data before it is executed against the database.
- Added new private method _buildMetaArray. This adds a prefix to DB, TABLES and COLUMNS meta
requests to make result XML compliant and referenced from 1 instead of 0.
- Added ability to wrap flashPash XML sent from client up in a transaction using ADOdb StartTrans
and CompleteTrans. Only for ADOdb 3.40 or higher. Also added FP_WRAP_IN_TRANS static property.
- Removed redundant constant declarations for meta-data (tableInfo now object based)
- Removed FP_MYSQL_PASSWORD constant and conditional check (performance hit was too high).
This means SQL involving MySQL password fields will have to be done by doSQL method only.
- Removed errorCount property.
- Fixed problems with non-alphanumeric's and CDATA being received and sent by server.
Note: HTTP contentType sent from server is now "application/flashPash"
- Fixed bug in meta-data which prevented multiple (not primary) key field types being defined
- Fixed problem connecting to firebird/interbase databases (thanks for your patience Kent)
- Fixed logic bug which allowed processing to continue even if dbConnect failed
- Fixed PHP notice when passed value is null in WHERE clause
- Fixed logic bug which was propogating error messages when multiple data packets processed,
and an error was found. A new routine _initialiseDataPacket was created.
- Changed code syntax to have more standardised formatting.
- Changed class from flashPash to FlashPashServerClass for consistency and to avoid confusion
- Changed _convertPropertiesToXML method to _convertArrayToXML
- Changed _convertXML method to _convertXMLtoArray
- Changed _checkAndSetDataPacketIfXML to getPOSTdata. Function is now public to enable server-side
script to get client-side contents without execution of query.
- Changed _killField to _deleteField
- Changed from reading XML sent by client from $_POST to php://input stream
NOTE: If PHP version is less than 4.3.0 then flashPash will read $HTTP_RAW_POST_DATA
- Changed property 'name' to 'logfile' (more accurate description of it's purpose)
- Changed FP_SQL_ALIAS searches to be case insensitive
- Changed XML parsing to use XML_Tree
- Changed XML structure to be more efficient and self-describing: SQLtype is now
used as nodeName, saves around 30 bytes per request (data packet).
Changes to demo
- Added live "flashPash using firefly"
demo: http://flashpash.sshnug.com/demo.php?type=swf&name=firefly
- Added live "flashPash using recordset"
demo: http://flashpash.sshnug.com/demo.php?type=swf&name=recordset
- Added live server-side flashPash
demo: http://flashpash.sshnug.com/demo.php?type=php
- Added flashPash 'interval' and 'maxWaitTime' properties
- Added 'get db list' switch to avoid ODBC restriction as it connects via DSN
- Fixed bug where previous server log was loaded if client error occured
- Changed flashPash.demo.swf to flashPash.firefly.demo.swf
- Changed database name to be editable
- Changed meta-data table selection to be a combo box and auto-filled after doMeta
- Changed Server and client demo logs to now be reset before activation
- Changed doInsert, doUpdate and doDelete methods to now delete from local firefly dataset
after the server has successfully modified the current record
- Changed firefly components to RC3. So an updated library file is required
Other changes
- Added ADOdb v3.40 to release
- Changed flashPash actionscript install location to $flash/configuration/include
(ie. flashPash will no longer install into its own sub-directory)
- Changed installation of public demo files directory to default to "public_html"
but user can also choose their own location to make things easier.
- Fixed flashPash firefly and recordset icons in component panel
- Fixed numerous display problems in reference documentation
|