Labs/Joey/clients/ajaxy/functional
Jump to navigation
Jump to search
Design Overview - Joey AJAX Client
- working on this now! - mgalli
Introduction
An aspect oriented design ( as a wish - not as in what we have now :) where CakePHP produces XHTML simplified data that is meaningful as a UI, but in fact the UI is to be used by the Joey Advanced Client layer - you could name it a User Agent Interface. As we move forward we are to have the CakePHP generated content to be as semantic as possible, but possibly to keep it as a 'old school' UI too, so it is usable as well. Keeping this simplified ( linked pages ) flow would give us a condition to automate tests / keep the interfaces in verbose mode, maybe to even use side tools to grab the tests results with a good reporting layout.
Wishlist Architectural Aspects
- _Accessibility for Navigation_ - Back and Forward buttons working via iframe history. keep it if possible for the main flows. Have to check if the mixture of a BackForward working, and sometimes not working is a good or bad things. Since it is a AJAX UI, we may have some high granular operations, that may not be interesting to keep in the iframe history;
- _Accessibility for Legal_ - Keep partial compatibility with Robots indexing capability and keep the basic legal documents and overview linked from the main client document ( privacy, terms of use ) - we dont want people to need a full ajax client in order to read the terms. Check Dojo links so that the app has a compabible linking mechanism;
- _Localization_ - Strings binding ( probably kicked with the initial document ) and additional flow-based sentences to be loaded in JSON or other XML binding approach;
- _Accessibility for Usage_ - Check the story;
- _Performance_ - build aspect. Check the Dojo build approach, and how to package partial Dojo components;
- _Performance_ - Dojo ShrinkSafe;
Development Framework Considerations
- To keep a simplified old school XHTML interface so that the Web site can be tested and also used from a testing user agent perspective;
- To allow multiple variations and User Interface intepretations to the end-user UI, for example a future version of the application to have a stack of options and possibly layered user interface wrappers - for example a a mode to add accessibility customizations, for example zoom control, color manipulation to the theme, and more;
- Have the CakePHP end to be completible with multiple AJAX client toolkits, and keep this compatibility layer via XHTML core User Interface layer - also referenced here as the semantic layer;
- Log execution of a test case end-user flow, via dumping all the XHTML responses and REST queries.