Javascript Widget experimental interface
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 add an experimental GUI for search, view and editing based on the work made in the widgets sandbox. The main application is composed of one page which allows user to search, view and edit metadata records. This mode is "experimental" and could be activated in config-gui.xml.
Collection of examples
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 :
- Blog & description (screenshots):
- Email discussions:
- Other wiki discussions:
Voting History
- Vote proposed by Francois on 23 June 2011 , result was +1 Patrizia, Jeroen, Simon, Emanuele, Francois
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
Configuration
To turn on the widget client, use the config-gui.xml. Widget UI is hooked to default interface in admin (create new metadata action), and metadata insert result page (open in view or edit mode).
<!-- Client configuration in order to redirect to default UI (ie. main.home service) or to another custom client. --> <!-- Default main.home client interface --> <client type="redirect" url="main.home"/> <!-- Widget experimental client <client type="redirect" widget="true" url="../../apps/search/" createParameter="#create"/> -->
By default, the redirection point to the main.home service.
Backwards Compatibility Issues
None
New libraries added
New libraries : some ux for Ext.js (Rating). Libraries removed (for the client) : Scriptaculos, Prototoype
Risks & improvements
- To make the 2 interfaces working together:
- a set of XSLT has to be duplicated. All metadata layout for the widget client is in the xsl/metadata folder
- a new configuration file for jeeves services is added (config-metadata-experimental.xml)
- 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.
Attachments (9)
- home.png (273.0 KB ) - added by 13 years ago.
- ui1.png (51.6 KB ) - added by 12 years ago.
- ui2.png (218.9 KB ) - added by 12 years ago.
- ui3.png (751.1 KB ) - added by 12 years ago.
- ui4.png (267.1 KB ) - added by 12 years ago.
- ui5.png (1.1 MB ) - added by 12 years ago.
- ui6.png (298.1 KB ) - added by 12 years ago.
- ui7.png (232.0 KB ) - added by 12 years ago.
- ui-eea.png (297.2 KB ) - added by 12 years ago.