From: <fxp...@us...> - 2011-12-21 16:35:09
|
Revision: 8527 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=8527&view=rev Author: fxprunayre Date: 2011-12-21 16:34:57 +0000 (Wed, 21 Dec 2011) Log Message: ----------- Add latest news in home page. #710 Add parameter to set map height and width. Fix mouse over issue on MetadataResultView which make the bounding box highlighted more than one time. Modified Paths: -------------- trunk/web-client/src/main/resources/apps/css/gndefault.css trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/form/GeometryMapField.js trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/lang/fr.js trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/util/SearchFormTools.js trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/widgets/MetadataResultsView.js trunk/web-client/src/main/resources/apps/search/home_en.html trunk/web-client/src/main/resources/apps/search/home_fr.html trunk/web-client/src/main/resources/apps/search/js/App.js trunk/web-client/src/main/resources/apps/search/js/Settings.js Modified: trunk/web-client/src/main/resources/apps/css/gndefault.css =================================================================== --- trunk/web-client/src/main/resources/apps/css/gndefault.css 2011-12-21 14:08:23 UTC (rev 8526) +++ trunk/web-client/src/main/resources/apps/css/gndefault.css 2011-12-21 16:34:57 UTC (rev 8527) @@ -68,10 +68,19 @@ #infoContent { /*padding: 5px;*/ } +.latest { + clear: both; + float: right; + width: 80%; + height: 250px; +} +.latest * input[type='checkbox'] { + display: none; +} .info { - float : left; - width : 60%; + float : right; + width : 28%; height : 40%; -moz-border-radius : 0px 0px 54px 0px; -webkit-border-radius : 0px 0px 54px 0px; @@ -82,7 +91,7 @@ margin : 13px; } -.info h3 { +.info h3, .latest h3 { border-bottom : 2px solid #003366; } Modified: trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/form/GeometryMapField.js =================================================================== --- trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/form/GeometryMapField.js 2011-12-21 14:08:23 UTC (rev 8526) +++ trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/form/GeometryMapField.js 2011-12-21 16:34:57 UTC (rev 8527) @@ -254,10 +254,10 @@ * ``Object`` The default mapOptions. By default WGS84 world based map. */ /** api: property[width] - * ``Number`` Width default to 210 // TODO Remove ? + * ``Number`` Width default to 290 // TODO Remove ? */ /** api: property[height] - * ``Number`` Height default to 210 // TODO Remove ? + * ``Number`` Height default to 180 // TODO Remove ? */ /** api: property[restrictToMapExtent] * ``Boolean`` Define if extent should be restricted to map extent @@ -271,8 +271,8 @@ */ defaultConfig : { id : 'geometryMap', // FIXME : This is hardcoded - width : 270, - height : 270, + width: 290, + height: 180, border : false, activated : false, restrictToMapExtent : false, @@ -281,10 +281,9 @@ /** private: method[initComponent] * Initializes the component */ - initComponent : function(config) { - Ext.apply(this, config); + initComponent : function() { Ext.applyIf(this, this.defaultConfig); - + var options = this.mapOptions || { projection: "EPSG:4326", units: "degrees", Modified: trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/lang/fr.js =================================================================== --- trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/lang/fr.js 2011-12-21 14:08:23 UTC (rev 8526) +++ trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/lang/fr.js 2011-12-21 16:34:57 UTC (rev 8527) @@ -412,7 +412,7 @@ 'runSearch': 'Lancer la recherche.', 'focusOnAny': 'Déplacer le curseur sur le critère plein texte.', 'hideSearchForm': 'Afficher ou cacher le formulaire de recherche.', - 'switchMode': 'Basculer de mode de visualisation.', + 'switchMode': 'Changer de mode de visualisation.', 'resetSearchForm': 'Réinitialiser le formulaire de recherche.', 'focusOnLogin': 'Déplacer le curseur sur le formulaire de connexion.', 'displayInfoPanel': 'Afficher la page d\'information.', Modified: trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/util/SearchFormTools.js =================================================================== --- trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/util/SearchFormTools.js 2011-12-21 14:08:23 UTC (rev 8526) +++ trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/util/SearchFormTools.js 2011-12-21 16:34:57 UTC (rev 8527) @@ -48,7 +48,7 @@ * * Create a simple form */ - getSimpleFormFields: function(services, layers, mapOptions, withTypes, activeMapControlExtent, typeCodelist){ + getSimpleFormFields: function(services, layers, mapOptions, withTypes, activeMapControlExtent, typeCodelist, mapPanelOptions){ var fields = []; if (services) { fields.push(new GeoNetwork.form.OpenSearchSuggestionTextField({ @@ -79,7 +79,7 @@ } if (layers) { - fields.push(GeoNetwork.util.SearchFormTools.getSimpleMap(layers, mapOptions, activeMapControlExtent)); + fields.push(GeoNetwork.util.SearchFormTools.getSimpleMap(layers, mapOptions, activeMapControlExtent, mapPanelOptions)); } fields.push(GeoNetwork.util.SearchFormTools.getOptions()); @@ -227,6 +227,11 @@ }, /** api:method[getSimpleMap] * + * :param layers: An array of layers to be added to the map. + * :param mapOptions: OpenLayers map options. + * :param activeMapControlExtent: Turn on map extent criteria. Default is false. + * :param panelConfig: MapPanel configuration options. + * * :return: An array of component with a hidden geometry field * and a simple map. * @@ -234,7 +239,7 @@ * * TODO : Add more options ? See GeometryMapField */ - getSimpleMap: function(layers, mapOptions, activeMapControlExtent){ + getSimpleMap: function(layers, mapOptions, activeMapControlExtent, panelConfig){ var fields = [], mapLayers = [], i; var geomField = new Ext.form.TextField({ @@ -251,12 +256,16 @@ xtype: 'gn_geometrymapfield', geometryFieldId: 'geometry', id: 'geometryMap', - width : 290, layers: mapLayers, mapOptions: mapOptions, activated: activeMapControlExtent // restrictToMapExtent: true }; + + if (panelConfig) { + Ext.applyIf(geomWithMapField, panelConfig); + } + fields.push(geomField, geomWithMapField); return fields; Modified: trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/widgets/MetadataResultsView.js =================================================================== --- trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/widgets/MetadataResultsView.js 2011-12-21 14:08:23 UTC (rev 8526) +++ trunk/web-client/src/main/resources/apps/js/GeoNetwork/lib/GeoNetwork/widgets/MetadataResultsView.js 2011-12-21 16:34:57 UTC (rev 8527) @@ -38,7 +38,10 @@ * * with :class:`GeoNetwork.Catalogue` * * with :class:`GeoNetwork.MetadataResultsToolBar` if provided * - * + * TODO: + * + * * Add links to the contextual menu of a record + * */ GeoNetwork.MetadataResultsView = Ext.extend(Ext.DataView, { /** api: config[catalogue] @@ -134,7 +137,7 @@ */ dblclick: { fn: function(dv, idx, node, e){ - if (this.maps) { + if (this.maps.length !== 0) { var record = this.getStore().getAt(idx); var uuid = record.get('uuid'); this.zoomTo(uuid); @@ -148,7 +151,7 @@ fn: function(dv, idx, node, e){ var i, j; - if (this.maps) { + if (this.maps.length !== 0) { var record = this.getStore().getAt(idx); var uuid = record.get('uuid'); @@ -157,8 +160,10 @@ if (l.features) { for (i = 0; i < l.features.length; i++) { if (uuid === l.features[i].attributes.id) { - l.drawFeature(l.features[i], this.layer_style_hover); - this.hover_feature[j] = l.features[i]; + if (!this.hover_feature[j]) { + l.drawFeature(l.features[i], this.layer_style_hover); + this.hover_feature[j] = l.features[i]; + } continue; } } @@ -176,14 +181,12 @@ } this.acMenu = undefined; - if (this.maps) { - for (i = 0; i < this.maps.length; i++) { - if (this.hover_feature[i]) { - var l = this.maps[i].layer; - l.drawFeature(this.hover_feature[i], this.layer_style); - this.hover_feature[i] = null; - continue; - } + for (i = 0; i < this.maps.length; i++) { + if (this.hover_feature[i]) { + var l = this.maps[i].layer; + l.drawFeature(this.hover_feature[i], this.layer_style); + this.hover_feature[i] = null; + continue; } } } @@ -202,16 +205,10 @@ this.acMenu.on('click', function(){ this.createMenu(idx, this); this.contextMenu.showAt([this.acMenu.getX(), this.acMenu.getY() + this.acMenu.getHeight()]); - } -.bind(this)); + }.bind(this)); this.acMenu.show(); }, createMenu: function(id, dv){ - // var record = this.getStore().getAt(id); - // TODO var isEditable = record.get('edit') === 'true' ? true : false; // FIXME : do not allow edit on harvested records ? - // var isHarvested = record.get('isharvested') === 'y' ? true : false; - // var harvesterType = record.get('harvestertype'); - // is login ? var record = this.getStore().getAt(id); if (!this.contextMenu) { @@ -261,7 +258,7 @@ GeoNetwork.MetadataResultsView.superclass.initComponent.call(this); - this.store = this.catalogue.metadataStore; + this.setStore(this.catalogue.metadataStore); this.initStyle(); if (this.maps) { @@ -280,13 +277,23 @@ this.maps = []; } // TODO : only register if one map available ? + + this.on('selectionchange', this.selectionChange); + }, + /** api: method[setStore] + * :param store: ``GeoNetwork.data.MetadataResultsStore`` A metadata store + * + * Set metadata view store. + */ + setStore: function(store){ + this.store = store; + // Register events on metadata results store this.getStore().on({ "load": this.resultsLoaded, "clear": this.destroyMetadataBbox, scope: this }); - this.on('selectionchange', this.selectionChange); }, /** api: method[addMap] * :param map: ``OpenLayers.Map`` An OpenLayers map @@ -406,9 +413,7 @@ this.drawMetadataBbox(view, records, options); this.contextMenu = undefined; this.initRatingWidget(); - this.initSelector(); //this.initMenu(); - //this.initSelection(records); }, /** private: method[drawMetadataBbox] * @@ -476,15 +481,6 @@ } } }, - /** private: method[initSelector] - * After a search, retrieve link div and init menu also available via context menu. - */ - initSelector: function(){ - // var checkboxes = Ext.DomQuery.select('input.selector'); - // for (var idx = 0; idx < checkboxes.length; ++idx) { - // checkboxes[i].setAttribute('onclick', ''); - // } - }, selectAll: function(){ var checkboxes = Ext.DomQuery.select('input.selector'), idx; for (idx = 0; idx < checkboxes.length; ++idx) { @@ -509,22 +505,6 @@ checkboxes[idx].checked = false; } }, - /** private: method[initSelection] - * After a search, initialize selected records - * - * TODO : removed as dataview selection model is not used - */ - initSelection: function(records){ - var selection = []; - Ext.each(records, function(r){ - var isSelected = r.get('selected'); - if (isSelected === 'true') { - selection.push(r); - } - }); - this.select(selection); - this.on('selectionchange', this.selectionChange); - }, selectionChange: function(dv, nodes){ /* Paging should not be considered as a selectionchange */ if (this.catalogue) { Modified: trunk/web-client/src/main/resources/apps/search/home_en.html =================================================================== --- trunk/web-client/src/main/resources/apps/search/home_en.html 2011-12-21 14:08:23 UTC (rev 8526) +++ trunk/web-client/src/main/resources/apps/search/home_en.html 2011-12-21 16:34:57 UTC (rev 8527) @@ -1,5 +1,5 @@ <h2>Find Interactive Maps, GIS datasets, Satellite Imagery and Related Applications</h2> -<div style="width: 100%; height: 100%;"> +<div style="width: 60%; float: left;"> <p> GeoNetwork's purpose is: <ul> @@ -27,14 +27,16 @@ <br/> GeoNetwork opensource allows to easily share geographically referenced thematic information between different organizations. For more information please contact </p> - <div class="info"> - <h3>Quick links</h3> - <div class="md-view" id="tag"> - </div> +</div> +<div class="info"> + <h3>Quick links</h3> + <div class="md-view" id="tag"> </div> - <div class="footer left"> - <span class="madeBy"><a href="../../srv/en/rss.latest?georss=simplepoint" alt="Latest news" title="Latest news"><img src="../images/default/feed.png"/></a> - - Powered by <a href="http://geonetwork-opensource.org/"><img style="width:80px" src="../images/default/gn-logo.png"/></a></span> - </div> </div> -</p> \ No newline at end of file +<div class="latest"> + <h3>Latest news <a href="../../srv/en/rss.latest?georss=simplepoint" alt="Latest news" title="Latest news"><img src="../images/default/feed.png"/></a></h3> + <div id="latest"> + </div> +</div> + +<div class="footer left"><span class="madeBy">Powered by <a href="http://geonetwork-opensource.org/"><img style="width:80px" src="../images/default/gn-logo.png"/></a></span></div> Modified: trunk/web-client/src/main/resources/apps/search/home_fr.html =================================================================== --- trunk/web-client/src/main/resources/apps/search/home_fr.html 2011-12-21 14:08:23 UTC (rev 8526) +++ trunk/web-client/src/main/resources/apps/search/home_fr.html 2011-12-21 16:34:57 UTC (rev 8527) @@ -1,48 +1,51 @@ <h2>GeoNetwork pour trouver des cartes interactives, des jeux de données, des cartes, des images satellites ...</h2> -<p> - <div style="width: 100%; height: 100%;"> - <p> - <ul class="main"> - <li> - Améliore l'accès et l'usage des informations et données spatiales - </li> - <li> - Aide les processus de prise de décision - </li> - <li> - Favorise l'approche multidisciplinaire nécessaire au développement durable - </li> - <li> - Améliore la compréhension des apports de l'information géographique - </li> - </ul> - - <br/> - Vous pouvez accéder à ce catalogue en utilisant les services : - <ul class="main"> - <li><a href="../../srv/fr/csw?SERVICE=CSW&REQUEST=GetCapabilities&VERSION=2.0.2">Catalogue Service for the web (CSW)</a> de l'OGC</li> - <li><a href="../../srv/fr/oaipmh?verb=ListSets">Open Archive Initiative (OAI-PMH)</a></li> - <li>Z39.50</li> - <li>OpenSearch</li> - </ul> - <br/> - GeoNetwork opensource permet de partager des informations géographiques thématiques entre organisations. - Si vous rencontrez des difficultés, - vous pouvez consulter - la <a href="http://geonetwork-opensource.org/docs.html">documentation</a>, - le <a href="http://trac.osgeo.org/geonetwork/wiki/ListOfFr">wiki</a> - ou - la <a href="http://osgeo-org.1803224.n2.nabble.com/GeoNetwork-users-francophone-f3246912.html">liste de diffusion</a>. - <br/> - </p> - <div class="info"> - <h3>Liens rapides</h3> - <div class="md-view" id="tag"> - </div> - </div> - <div class="footer left"> - <span class="madeBy"><a href="../../srv/fr/rss.latest?georss=simplepoint" alt="Nouveautés" title="Nouveautés"><img src="../images/default/feed.png"/></a>- Site propulsé par <a href="http://geonetwork-opensource.org/"><img style="width:80px" src="../images/default/gn-logo.png"/></a> - </span> - </div> +<div style="width: 60%; float: left;"> + <p> + <ul class="main"> + <li> + Améliore l'accès et l'usage des informations et données spatiales + </li> + <li> + Aide les processus de prise de décision + </li> + <li> + Favorise l'approche multidisciplinaire nécessaire au développement durable + </li> + <li> + Améliore la compréhension des apports de l'information géographique + </li> + </ul> + + <br/> + Vous pouvez accéder à ce catalogue en utilisant les services : + <ul class="main"> + <li><a href="../../srv/fr/csw?SERVICE=CSW&REQUEST=GetCapabilities&VERSION=2.0.2">Catalogue Service for the web (CSW)</a> de l'OGC</li> + <li><a href="../../srv/fr/oaipmh?verb=ListSets">Open Archive Initiative (OAI-PMH)</a></li> + <li>Z39.50</li> + <li>OpenSearch</li> + </ul> + <br/> + GeoNetwork opensource permet de partager des informations géographiques thématiques entre organisations. + Si vous rencontrez des difficultés, + vous pouvez consulter + la <a href="http://geonetwork-opensource.org/docs.html">documentation</a>, + le <a href="http://trac.osgeo.org/geonetwork/wiki/ListOfFr">wiki</a> + ou + la <a href="http://osgeo-org.1803224.n2.nabble.com/GeoNetwork-users-francophone-f3246912.html">liste de diffusion</a>. + <br/> + </p> +</div> +<div class="info"> + <h3>Liens rapides</h3> + <div class="md-view" id="tag"> </div> -</p> +</div> +<div class="latest"> + <h3>Nouveautés <a href="../../srv/en/rss.latest?georss=simplepoint" alt="Nouveautés" title="Nouveautés"><img src="../images/default/feed.png"/></a></h3> + <div id="latest"> + </div> +</div> +<div class="footer left"> + <span class="madeBy">Site propulsé par <a href="http://geonetwork-opensource.org/"><img style="width:80px" src="../images/default/gn-logo.png"/></a> + </span> +</div> Modified: trunk/web-client/src/main/resources/apps/search/js/App.js =================================================================== --- trunk/web-client/src/main/resources/apps/search/js/App.js 2011-12-21 14:08:23 UTC (rev 8526) +++ trunk/web-client/src/main/resources/apps/search/js/App.js 2011-12-21 16:34:57 UTC (rev 8527) @@ -305,7 +305,7 @@ var formItems = []; formItems.push(GeoNetwork.util.SearchFormTools.getSimpleFormFields(catalogue.services, GeoNetwork.map.BACKGROUND_LAYERS, GeoNetwork.map.MAP_OPTIONS, true, - GeoNetwork.searchDefault.activeMapControlExtent), adv); + GeoNetwork.searchDefault.activeMapControlExtent, undefined, {width: 290}), adv); // Add advanced mode criteria to simple form - end @@ -485,6 +485,7 @@ if (success) { createMainTagCloud(); + createLatestUpdate(); } else { Ext.get('infoPanel').getUpdater().update({url:'home_en.html'}); Ext.get('helpPanel').getUpdater().update({url:'help_en.html'}); @@ -547,8 +548,25 @@ return tagCloudView; } - /** + * Create latest metadata panel. + */ + function createLatestUpdate(){ + var latestView = new GeoNetwork.MetadataResultsView({ + catalogue: catalogue, + autoScroll: true, + tpl: GeoNetwork.Settings.latestTpl + }); + latestView.setStore(GeoNetwork.Settings.mdStore()); + new Ext.Panel({ + border: false, + bodyCssClass: 'md-view', + items: latestView, + renderTo: 'latest' + }); + catalogue.kvpSearch(GeoNetwork.Settings.latestQuery, null, null, null, true, latestView.getStore()); + } + /** * Extra tag cloud to displayed current search summary TODO : not really a * narrow your search component. * Modified: trunk/web-client/src/main/resources/apps/search/js/Settings.js =================================================================== --- trunk/web-client/src/main/resources/apps/search/js/Settings.js 2011-12-21 14:08:23 UTC (rev 8526) +++ trunk/web-client/src/main/resources/apps/search/js/Settings.js 2011-12-21 16:34:57 UTC (rev 8527) @@ -49,6 +49,9 @@ // IndexOnly mode (xml.search with lucene only) - recommended GeoNetwork.Settings.mdStore = GeoNetwork.data.MetadataResultsFastStore; +// Latest update info query +GeoNetwork.Settings.latestQuery = "from=1&to=6&sortBy=changeDate&fast=index"; +GeoNetwork.Settings.latestTpl = GeoNetwork.Templates.THUMBNAIL; GeoNetwork.MapModule = true; GeoNetwork.ProjectionList = [['EPSG:4326', 'WGS84 (lat/lon)']]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |