Google Summer of Code 2010: Eden UI - Front-end for S3XRC
This project is part of Sahana Eden Google Summer of Code
Executive Summary
- Abstract: S3XRC being a powerful backend that serves XML and JSON in a RESTful manner hasn't yet got a front-end that can exploit its positives. A new ExtJS based front-end would help us not only utilize S3XRC but also save a lot of bandwidth by exchanging information in JSON instead of full page reloads.
- Student: Abhishek Mishra
- Mentor(s): Dominic König and Francis Boon
Code
Screencast
Meetings
- Mondays at 0700 UTC Calendar Note: Calendar lists UTC.
Project Plan and Timeline
I'm working in a prototype → generalize mode where I work first upon a page specific widget, say a list widget for person module, and then extract out custom and generic code out of it to transform it into a generically implementable code.
After the first meeting on 26th May, 2010, the goals were further refined and essential widgets were identified.
First Semester: 26 April - 23 May | |||
---|---|---|---|
Goal | Description | Due Date | Status |
Explore Web2Py, S3XRC, ExtJS, etc | To get a basic familiarity with the framework beneath Eden | 5/23/2010 | Web2Py, develper guidelines explored |
Second trimester (24 May - 12 July) | |||
---|---|---|---|
Goal | Description | Due Date | Status |
Prototype a Grid view | Work up a sortable, add/edit in place paginated grid view for tabular data | 6/7/2010 | Completed |
Generic grid view | Generalize the prototype into reusable, configurable widget | 6/20/2010 | Completed |
In place Edits | Adding in place update functionality to grid widget | 6/26/2010 | Completed |
Rheader Tabs | Replace existing static tabs into Ext based tabs | 7/10/2010 | Completed |
Second trimester (13 July - 8 Aug) | |||
---|---|---|---|
Goal | Description | Due Date | Status |
Form Generation | Provide an API to create forms for various actions - create, update | 7/20/2010 | Completed (in a different way) |
Form Integration | Use the API from previous step to bring in quick access to (create/update) functionality | 7/30/2010 | Completed by end of July |
Form Validations | Work up a way to bring client side & server side form validations for in place insert/edits | 8/5/2010 | Partially implemented |
Testing | Plug the gaps and make totally compatible with existing functionalities | 8/5/2010 | Not 100% compatible, tested on several modules |
Reports
Weekly progress reports on Mondays will be sent to the mailing lists outlining work completed during that week.
Good to have
- A better form generator as replacement for existing SQLFORM, which only generates a json configuration, instead of parsing generated html into json which is slow and is how it is done right now.
- A complete redo of the way Rheader is implemented right now (each controller/module has its own view content generated from the backend), its nice to make the backend deal with just data and not interface, a simple configuration from backend would help new Rheader widget to generate a ui element → which would also bring in live update capability without refreshing webpage. (suited for post soc)
- More robust javascript : making core.js easier to read, easier to hack with.
Minor Bugs
- Issues with Date representation in gridview in Firefox (shows NanNanNan)
- Open actions for tabbed component elements