tweaks to search to filter stopwords, change of string output method use in XML::LibXML, new optional method 'select', new command line tools ValidateData.pl and PublishAll.pl, codebase pushed to subversion on sourceforge
Have begun migrating and managing essential files using the Subversion facilities provided by Sourceforge. Go on, try a checkout.
added new optional element 'select' to actions, tightned up the handling of out-of-band requests for modes that are disabled, added a sample search-only.cgi script, added and renamed a couple of messages and titles
Have finally gotten XApperator to a stage where it implements all the features that were originally planned for it. Its also in production in a couple of environments now so seems reasonable to bump it up to 1.0 :-)
The 'method' element now optional in config.xml and set dynamically, firmed up internationalisation support, copy/paste now pastes by default 'after' the selected target record, can now doubleClick a record to enter edit mode, now using carp and croak for logging, new debugMode for echoing stuff to UI, JS files shipped and selectable in compressed form. The most notable change if you run XApp in a production environment is the way auto-generated index field values are generated. See the Changes page for details.
main XApperator.pm module split into three seperate MVC focused modules, added support for auto-generated record IDs, tightened up the DTDs, added new _debug method, various bug fixes
All of the features envisioned for this stage of the product are now complete, the tool is in use in a number of semi-production installations and apart from some documentation translation its close to being ready for final production release
new WYSIWYG editor support for textareas, JS datepicker added for date fields, new 'xml' mode for rendering raw data, simplified controller.cgi format thru new content methods, generate-id now used in XSLT for auto-increment like values for id type fields in new records, major reshuffle of the test files which are now seperate and not dependant on sequence
XApperator 0.19 released !!! - added new non-editing 'View' mode, better eval/error trapping on LibXML calls, dates can now be submitted with null values, minor tweaks to edit.xslt, folder paths for publishing locations can now be local to app folder
new recursive search/replace template in utils.xslt, new CreateStubData.pl utility, some HTML/CSS formatting changes to edit i/f, new record naming convention change on copy/paste, escaping quote chars in fields to fix a couple of JS bugs.
new maxlength attribute in config.xml, better handling of NULL values in CGI params, properly handling add, deletes and pastes server-side when minOccurs or maxOccures out of bounds, masking edit button if not allowed in config.xml, can now embed markup in messages.xml and titles.xml
new record field type of 'time' added, added xsl:templates to Utils and methods to XApperator.pm to support it. Added new DTDs for the messages and titles resource files. Added getDateTime method results of which get passed into XSLTs. Added more docs on Permissions, Folder structure. Added a command-line xslt for flattening xml files.
added Foreign-key delete ability, new foreign key value sanitiser, tweaked XSLTs to only include Javascript events if client-side use specified, included a new config file command-line validator, and added the GPL to all file headers.
multiple transform publishing, publish-all, more Javascript validation, bugfixes and XPath improvments
25 Apr 2005 - v0.13
Added copy/cut and paste modes between records in a single XML file (not between files, yet). Required two new CGI params: x-pmode (for 'p'aste) which is either copy or cut, and x-tkey for 't'emporary key, ie the one being copied or cut.
Added new copypaste element to the action group in config.xml as well as two new title/message pairs to the resources files for cut, copy and paste... read more
19 Apr 2005 - v0.12
Added password type field support to schema and edit.xslt/utils.xslt. Data shown asterix'd if required to be displayed/editable
Update config.dtd to cover various recent tweaks to the schema and config.xml layout in general
Modified _updateXML() to use the pre-loaded data payload (was previously doing it again, ie twice the work)
Added test script RunTests.pl which uses Test.pm to run through all internal subs and common CGI interactions checking error handling works as expected. Test data is in new top-level folder 't' in the distribution... read more
prefixed all core XApperator CGI variables with the string 'x-' which should help avoid potential collision with XML data file fields of the same name as core XApp ones (e.g. mode, key, id etc).
added sanitisePath() sub to strip out ../ sequences from any given string
now passing $method (ie GET or POST) into menu rendering process added new sub _dataPayloadReqd() to return true only under conditions where a data payload is actually required. was previously always
loading one, which is most, but not all of the time.... read more
A packaged version 0.08 has been released as an initial public release
have knocked out pretty much all of the features I was planning to release in an initial version so will soon bundle it up as an Alpha release
Have just had the project approved for SourceForge hosting, will shortly upload some planning notes and a prototype framework.