Changeset 5024


Ignore:
Timestamp:
04/23/14 08:20:33 (10 years ago)
Author:
Twan Goosen
Message:

made links in record descriptions clickable

Location:
vlo/branches/vlo-3.0/vlo-web-app/src/main
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/FieldsTablePanel.java

    r5020 r5024  
    3030import java.util.List;
    3131import org.apache.wicket.AttributeModifier;
     32import org.apache.wicket.extensions.markup.html.basic.SmartLinkLabel;
     33import org.apache.wicket.extensions.markup.html.basic.SmartLinkMultiLineLabel;
    3234import org.apache.wicket.markup.html.basic.Label;
    3335import org.apache.wicket.markup.html.link.Link;
     
    5355     * contained in the field should be preserved
    5456     */
    55     private final static Collection<String> UNESCAPED_VALUE_FIELDS = ImmutableSet.of(FacetConstants.FIELD_LANGUAGES);
     57    private final static Collection<String> UNESCAPED_VALUE_FIELDS
     58            = ImmutableSet.of(
     59                    FacetConstants.FIELD_LANGUAGES
     60            );
     61
     62    /**
     63     * List of fields that should be rendered in a
     64     * {@link SmartLinkMultiLineLabel}, which detects URLs and turns them into
     65     * links
     66     */
     67    private final static Collection<String> SMART_LINK_FIELDS
     68            = ImmutableSet.of(
     69                    FacetConstants.FIELD_DESCRIPTION,
     70                    FacetConstants.FIELD_LANDINGPAGE
     71            );
    5672
    5773    @SpringBean
     
    7591                    @Override
    7692                    protected void populateItem(final ListItem fieldValueItem) {
    77                         // add a label for the facet value
    78                         final Label fieldLabel = new Label("value", fieldValueItem.getModel());
    79                         // some selected fields may have HTML that needs to be preserved...
    80                         fieldLabel.setEscapeModelStrings(!UNESCAPED_VALUE_FIELDS.contains(fieldNameModel.getObject()));
    81                         fieldValueItem.add(fieldLabel);
    82 
     93                        // add a label that holds the field value
     94                        fieldValueItem.add(createValueLabel("value", fieldNameModel, fieldValueItem.getModel()));
    8395                        // add a link for selecting the value in the search
    8496                        fieldValueItem.add(createFacetSelectLink("facetSelect", fieldNameModel, fieldValueItem.getModel()));
     
    100112            }
    101113        });
     114    }
     115
     116    private Label createValueLabel(String id, final IModel<String> facetNameModel, final IModel valueModel) {
     117        final String fieldName = facetNameModel.getObject();
     118        if (SMART_LINK_FIELDS.contains(fieldName)) {
     119            // create label that generates links
     120            return new SmartLinkLabel(id, valueModel);
     121        } else {
     122            // add a label for the facet value
     123            final Label fieldLabel = new Label(id, valueModel);
     124            // some selected fields may have HTML that needs to be preserved...
     125            fieldLabel.setEscapeModelStrings(!UNESCAPED_VALUE_FIELDS.contains(fieldName));
     126            return fieldLabel;
     127        }
    102128    }
    103129
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultItemExpandedPanel.java

    r5021 r5024  
    2323import eu.clarin.cmdi.vlo.wicket.ResourceTypeCssBehaviour;
    2424import eu.clarin.cmdi.vlo.wicket.components.RecordPageLink;
    25 import eu.clarin.cmdi.vlo.wicket.components.SolrFieldLabel;
    2625import eu.clarin.cmdi.vlo.wicket.model.CollectionListModel;
    2726import eu.clarin.cmdi.vlo.wicket.model.HandleLinkModel;
     27import eu.clarin.cmdi.vlo.wicket.model.NullFallbackModel;
    2828import eu.clarin.cmdi.vlo.wicket.model.ResourceInfoModel;
    2929import eu.clarin.cmdi.vlo.wicket.model.SolrFieldModel;
     30import eu.clarin.cmdi.vlo.wicket.model.SolrFieldStringModel;
    3031import eu.clarin.cmdi.vlo.wicket.panels.record.FieldsTablePanel;
    3132import eu.clarin.cmdi.vlo.wicket.panels.record.ResourceLinkDetailsPanel;
     
    3435import org.apache.solr.common.SolrDocument;
    3536import org.apache.wicket.ajax.AjaxRequestTarget;
    36 import org.apache.wicket.behavior.AttributeAppender;
     37import org.apache.wicket.extensions.markup.html.basic.SmartLinkLabel;
    3738import org.apache.wicket.markup.html.WebMarkupContainer;
    3839import org.apache.wicket.markup.html.basic.Label;
     
    6667
    6768        // add untruncated description
    68         add(new SolrFieldLabel("description", documentModel, FacetConstants.FIELD_DESCRIPTION, ""));
     69        final NullFallbackModel descriptionModel = new NullFallbackModel(new SolrFieldStringModel(documentModel, FacetConstants.FIELD_DESCRIPTION), "");
     70        add(new SmartLinkLabel("description", descriptionModel));
     71       
     72        // add link to record
    6973        add(new RecordPageLink("recordLink", documentModel, selectionModel));
    7074
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/resources/eu/clarin/cmdi/vlo/wicket/pages/vlo-record.css

    r5021 r5024  
    107107    list-style-type: none;
    108108    margin: 0px;
     109}
     110
     111ul.attributeValues li a {
     112    text-decoration: underline;
    109113}
    110114
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/resources/eu/clarin/cmdi/vlo/wicket/pages/vlo-search.css

    r5004 r5024  
    112112}
    113113
     114#searchresultitems .searchresultdescription a {
     115    text-decoration: underline;
     116}
     117
    114118.searchresultresources {
    115119    width: 70%;
Note: See TracChangeset for help on using the changeset viewer.