Erin Noe-Payne created RAVE-891:
-----------------------------------

             Summary: Refactor Rave js to modularize functionality and isolate 
dependencies 
                 Key: RAVE-891
                 URL: https://issues.apache.org/jira/browse/RAVE-891
             Project: Rave
          Issue Type: Epic
            Reporter: Erin Noe-Payne


Roadmap:

- Establish rave.ui namespace that manages all ui interactions
- Find all instances of inline html and dom building in rave.js, move to client 
side templates available on rave.ui.templates
- Isolate all dependencies on jquery, handlebars and other libraries inside 
rave.ui files (except ajax), such that an implementer could remove these 
dependencies and easily replace with an implementation using other dom 
manipulation or templating libraries. The only dependency of rave core code 
should be underscore.js utility library.
- Establish rave.ajax namespace. Isolate all jquery ajax dependencies here, 
such that an implementer could overlay their implementation with a preferred 
ajax library. See backbone.js sync for a reference 
(http://backbonejs.org/#Sync).
- Update providers (rave_opensocial, rave_wookie) to establish a consistent 
interface for gadget objects and properly set up and tear down gadgets. 
Currently there are some issues with not correctly firing lifecycle events or 
creating potential memory leaks with gadget closing.
- Investigate, refactor or remove rave_person_profile.js. Appears to be a lot 
of duplicated code, not clear why it is a separate file.
- 

Goals:
- Write rave js with extensibility in mind. Build modules to be configurable, 
and write the default rave ui as configuration rather than hard-coded
- Look for opportunities and keep focus on backend as services delivering json 
data, reduce the workload of thick views (jsps). Allow the client to manage 
views and state with more flexibility

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to