= Proposal title = || '''Date''' || 2011/05/23 || || '''Contact(s)''' || François Prunayre || || '''Last edited''' || || || '''Status''' || Call for vote || || '''Assigned to release''' || Release number, to be determined || || '''Resources''' || Module available in sandbox || || '''Ticket #''' || #539 || == Overview == This proposal aims to move current GUI for search, view and editing to a new layout based on the work made in the [https://geonetwork.svn.sourceforge.net/svnroot/geonetwork/sandbox/guiwidgets/web-client/ widgets sandbox]. The main application is composed of one page which allows user to search, view and edit metadata records. The administration remains as it was. === Proposal Type === * '''Type''': User interface * '''App''': GeoNetwork * '''Module''': User interface === Links === * '''Documents''': * Sandbox creation proposal: http://trac.osgeo.org/geonetwork/wiki/proposals/componentsBasedGui * '''Demo web sites ''': * http://188.165.244.186/geonetwork/ * http://opencarto.net/geonetwork/ * http://geosourcedemo.brgm.fr/geosource/ * http://geo.semide.net/geonetwork/ * http://www.mymaps.gov.au/geonetwork/ * Blog & description (screenshots): * http://www.neogeo-online.net/blog/archives/1045/ * http://www.neogeo-online.net/blog/archives/1075/ * '''Email discussions''': * '''Other wiki discussions''': === Voting History === * Vote proposed by X on Y, result was +/-n (m non-voting members). ---- == Motivations == The idea was to provide a sample client application which could be easily modified and customized for your needs. It depends on simple JS components. The view and edit mode still depends on GeoNetwork XSLTs rendering. == Proposal == A new maven module nammed "web-client" has been created for the client application. This module is only composed of JS and html page. YUI pluggin is used for compression (all in one file for the application + ext.js). The number of JS dependencies has been reduced to the minimum focusing on using : * !OpenLayers * Ext.js + some Ext.ux * !GeoExt.js + one !GeoExt.ux The overall size of JS decrease and the number of request for the page load also decrease which results on faster page initialization. The 2 GUI could coexist for some times event if it's probably better to clean the code base. Hook needs to be added to : * the admin create metadata action * the admin import results page New services has been created in order to make the old and new GUI work. XSLTs for view and edit mode has been refactored a bit and grouped in a metadata folder. Hardcoded CSS styles have been removed. === New feature : === * search form : * autocompletion (using !OpenSearch suggestion) * organisation search field * scale denominator search field * spatial representation type search field * validation status search field * search results : * Thumbnail view * Bbox highlighting * Zoom to bbox * Display organisation logo * validation status information * select "all in page" * summary by keyword to refine the current search * Metadata view : * a simple view mode * Editor : * suggestion panel * thumbnail panel * help panel * Interactive map * Search for WMS from the add WMS panel * Layer opacity slider in layer tree For the search results, access to all actions are available using a contextual menu (right click) or using the "Actions" menu which is displayed next to the title. === Missing feature : === * search form * distributed search form (Z3950RepositoryStore.js already provides access to the list of nodes) * INSPIRE search fields * search results (Template.js) * to be tested with remote search * bbox * date * Metadata view : none * Metadata editor : none * i18n : Update/Create language file from existing element in strings.xml. Add missing one (see lang folder), Only english and french for the time being. * Interactive map * WMSTime button to be restored === Backwards Compatibility Issues === None === New libraries added === New libraries : some ux for Ext.js (Rating). Libraries removed (for the client) : Scriptaculos, Prototoype == Risks & improvements == Add missing features. Future improvements: Provide JSON response (from Jeeves services) to reduce the XML parsing on the client side. == Participants == * François Prunayre * Part of the JS libs comes from the geocat.ch work.