DSPACE UI Challange Roberto Suardi – Luigi Andrea Pascarelli
spring-mvc sitemesh spring-security cineca-framework-lite technology platform
define Controller (former Servlet) in xml configuration auto-binding of variable in the @Command write just the business logic to retrieve the model spring-mvc - Controller
-The model is passed to the view dispatcher that displays that handles the correct page to be displayed -ViewBuilder instance called «viewName» -jsp located at path «viewName» spring-mvc – View dispatcher
Focus on content, not on layout No business logic Taglib v.2 (tagfile), not scriptlet views - jsp
-Html fragment’s displaying text, inputs, selects, div, fieldset, label (etc.) -Tags has many attribute that change how it’s displayed (calendar, number, autocomplete, wysiwyg, errror, info, etc.) -In tags is defined the layout of the single component (line, labels, content): change in one place to change it everywhere cineca-framework-lite: widget tags
Define layout separate from content Different layout depending on urls (default, popup, empty, ajax) Organized in sections North (header) West (menu on the left/right) Page-content Breadcrumbs Messages Content of the page ( ) south Londinium theme (collection of usefull css and javascript) sitemesh - layout
Menus stored in database tables Stored in memory at startup Change values by just adding/editing rows Display a menu depending on path Display a menu depending on user Display a menu depending on logic Reload menu in memory cineca-framework-lite: menu
Static i18n: loaded from files Multiple files Dynamic i18n: loaded from DB at startup and reloadable cineca-framework-lite: i18n
Java filter Change stylesheet or any other static files at runtime Using a overlapped «virtual» file system UI to Load files in file system –Open source issued under a 3-clauses BSD licensehttp://elfinder.org/ cineca-framework-lite: CMS
Widgets «display» mode and «enabled» mode Bind complex class Spring Validation – binding errors Custom Validation spring-mvc – Controller 2
Views stored in DB, saved in memory during startup and reloadable Change views Add/change widgets Add custom validation Field Custom field validation of type javax.Scripts executed server-side) Bean/class validation cineca-framework-lite: ViewBuilder
External authentication provider: jasig- CAS Open-source, large community Support many authentication providers (saml2, openauth, ldap) Handles multiple providers spring-security - authentication
Extends functionality of spring-security Definition of «Protected Resources» buttons, page, an instance of a class, single functionality The authorization is the link between Protected Resource and the Identity Identity can be a user or a group of users cineca-framework-lite: authorization
Full integration of Authorization/authentication (already integrated in IRIS) Integration of Cineca-framework-lite: Configuration lib (change configuration values at runtime) (already integrated in IRIS) Integration of Cineca-framework-lite: SearchBuilder lib (change how searches (hibernate, solr, sql) are handled at runtime) (already integrated in IRIS) UI for edit Widget/ViewBuilder/Menu/Authorization Cineca-framework-lite: Model lib (define input-form at runtime, like DSpace-CRIS) to do