Enrich your custom view

Now we created our structure with basic content, we want to create a real catalog page.

For that, you can include default view content, or build your own application on top of core GeoNetwork components.

GeoNetwork components

UI design is based on shared widgets, logic and components. In AngularJS terms, we talk about services and directives.

All components are stored in the folder components

  • Main page usefull components

Main search input

<input type="text"
       class="form-control input-lg"
       id="gn-any-field"
       data-ng-model="searchObj.params.any"
       data-ng-model-options="modelOptionsForm"
       placeholder="{{'anyPlaceHolder' | translate}}"
       data-ng-keyup="$event.keyCode == 13 && triggerSearch()"
       data-typeahead="address for address in getAnySuggestions($viewValue)"
       data-typeahead-loading="anyLoading" class="form-control"
       data-typeahead-min-length="1"
       data-typeahead-focus-first="false">

Facets panel

<div data-ng-show="searchResults.records.length > 0"
     data-gn-facet-dimension-list="searchResults.dimension"
     data-params="searchObj.params"
     data-facet-type="facetsSummaryType"
     data-current-facets="currentFacets">
</div>

Alert info manager

<div data-gn-alert-manager=""></div>

Result list

<div data-ng-show="searchResults.records.length > 0"
     data-gn-results-container=""
     data-search-results="searchResults"
     data-template-url="resultTemplate"
     data-map="searchObj.searchMap"></div>

Geographic search

<div data-gn-map-field="searchObj.searchMap"
     data-gn-map-field-geom="searchObj.params.geometry"
     data-gn-map-field-opt="searchObj.mapfieldOption"
     class="gn-search-map">
  • Main map components

    • wmsimport
    • map search input
    • draw panel
    • measure panel
    • print panel
    • layer manager
    • background layer selector
    • etc...

So you can reuse all these components in your templates to build the view you want.

Styles

Important

You should import default style and add custom CSS rules instead of creating your own from scratch.

In gn_search_geoportal.less, import default less files.

  • Import common search styles (if you start a new view from scratch)
@import "../../../style/gn_search.less";
  • Import default view search styles (if you base your view on top of default one)
@import "../../default/less/gn_search_default.less";

Then, in your less file, you can start adding new rules

.gn-resultview .list-group-item {
    background-color: red;
    &:hover {
    background-color: orange;
    }
}