wiki:proposals/WidgetsBasedGui

Version 8 (modified by fxp, 12 years ago) ( diff )

--

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

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)

Note: See TracWiki for help on using the wiki.