Iteration III – Lots to do! Goals Spruce up UI Add Ajax functionality Implement access control Implement user registration Task Split Advanced Ajax- Brad Security & Site Layout- Jason
Refactoring & Security Combined Teacher and Donor domains to User Made all fields except Username, Password & UserType mandantory. User extends SecUser, created from s2-quickstart script
Updated UI Added photos, slideshow and new layout to front page Implemented jQuery Cycle slideshow plugin Front page shows last 5 book requests created Created navigation bar independent of navigation plugin
Ajax Functionality BookRequest search page refreshes results w/o reloading page Jquery slideshow on front page CSS attribute manipulation in user registration form
Book Search- Ajax
jQuery Issues Using <g:javascript library = “jquery” /> with multiple js files can create load order shuffle Jquery library can load after calling functions, resulting in non-functioning javascript
Solution Download jQuery library into /web-apps/js Replace <g:javascript library =”jquery” /> tag with <script type=”text/javascript src = “${resource(dir:'js', file:'jquery.js')}”> </script>
Registration Issues User registration controller User extends SecUser{ } erased User table, and all User class fields merged to Sec_User Creating new user via /user/create resulted in null IDs Creating new user via secUser/create worked for SecUser fields only. Filling other textfields resulted in PropertyNotFoundExceptions Adding tablePerHierarchy false to mapping of both domain classes resulted in distinct User and SecUser tables
What didn't get done Securing Access Added @Secured annotations to relevant controller methods. However, direct access via URL completion still works, regardless of login status
Upcoming Work Update user integration tests that broke when implementing spring-security-core plugin Finish denying open access via URLs Polish BookRequestUpdate to automatically refresh every ~10 seconds Re-do integration tests that failed when implementing spring-security-core plugin Eliminate redundant controllers/views/tests from redundant classes