16th June 2005 (1.0.6) ============== o Fixed bug when not displaying primary key field. o Fixed javascript bug in FireFox when selecting records. o Added CSV download option. Can download either the selected records, the current page or the entire table. Works well with searching too (ie. you can download the current page even if it's a search result). There's a callback available to override which escapes a single field of CSV data. The built in escape function replaces carriage returns and line feeds with \r and \n respectively. It also escapes commas with a backslash. o Added advanced search capabilities 26th April 2005 (1.0.5) =============== o Added support for join tables. Using these you can join the main table onto other tables to retrieve columns from the "other" tables. When using join tables add copy and delete functionality is automatically disabled, however edits can still take place. o Added two new methods, onlyDisplay() and onlyEdit(). As the names suggest these methods set all fields to be hidden except those specified. Useful if you join onto tables and end up having to hide lots of columns. o Backported to PHP4. Be careful with references when using data validation callbacks. 19th April 2005 (1.0.4) =============== o Added support for a "bitmask" type. Descriptive values need to be set using the setValuesFrom*() methods. On the add/edit pages, this type is shown as a multiple select. The corresponding type in MySQL is a SET, however you could just as easily use an int. o Added a "Set blank password" checkbox to the "password" pseudo input, to allow setting of a blank password. o Changed field specific errors on add/editcopy page to be next to their respective fields. There's now a new method called setContextualError() to allow setting of these errors from data validation callbacks. 17th April 2005 (1.0.3) =============== o Fixed a bug which made multiple display filters on a column not work correctly. o Search now highlights found terms. Does this by applying a display filter to each searchable colum, which is applied *after* any user defined display filters. 15th April 2005 (1.0.2) =============== o No longer classed as beta, (well, by me at least... ). o When using the view button, fields with preset values are now shown as they are on the main table page. o Fixed a bug which meant edit was disabled when view was, and couldn't be disabled by itself. o Fixed redirection bug with urls. o Fixed leading zeros being removed when inserting purely numeric values into a text based field type. o Added row copying functionality. o Added data filters via addDataFilter() method to facilitate the showing/viewing/editing/deleting of only certain rows o Table structure is now no longer determined on each and every page refresh, but is cached in the session. o New method: setSearchableFields(). To be used instead of setConfig('searchableFields'). Supply one or more field names which are allowed to be searched. o Added support for required fields when adding/editing/copying. If a required field is not filled in, an error is displayed. o Added support for pseudo input types: o password This shows two password inputs on the add/edit page. If when submitted the two do not match, an error is displayed. However, if the two are left blank/empty, the field is not updated. This is to allow updates to rows without changing the password field. You can alter this behaviour by stipulating the field to be required. o email This shows a regular text input, however it automatically checks whatever contents are supplied and ensures it matches the form of an email address. If however the field is empty, no error is raised. You can alter this behaviour by stipulating the field to be required. o Added support for data validation callbacks. These are run after functions, defaults, required field checks and pseudo field validation checks. Using these you can add your own validation checks before data is added/updated in the database. These callbacks may also modify the data (eg. md5()ing a password). Now these are added, functions default to off since along with default values functions are pretty much redundant. o Added handling for magic_quotes_gpc 14th April 2005 (1.0.1-beta) =============== o Changed aesthetics for shameful self promotion o Added GPL licensing o noDisplay() method now only hides a field from display, not editing. Use noEdit() in combination to hide a field from editing too. o Renamed defaultOrderby() to setDefaultOrderby() o Fixed a number of E_NOTICE errors o Added setDefaultValues(), which sets default values when adding rows. Can be used with fields that aren't editable. o Added add/edit/delete callback function support via addAdditionCallback(), addEditCallback() and addDeleteCallback() methods. The callbacks are run when each appropriate action is taken. o Added ability to search fields which have their values preset with the setValuesFrom* methods. o Changed to using a single checkbox per row, and a single set of add/edit/delete buttons. Can now delete multiple rows at once. o Added View button, for viewing a row in full on it's own page. o Added support for external header and footer files. Changing the header will lose all CSS so you'll have to define your own. o You can now disable any/all of the view/add/edit/delete buttons. 11th April 2005 (1.0.0-beta) =============== o Initial release