Changeset 6690


Ignore:
Timestamp:
10/20/15 13:18:13 (9 years ago)
Author:
Twan Goosen
Message:

merged updates from 3.3 branch to trunk

Location:
vlo/trunk
Files:
1 deleted
10 edited
3 copied

Legend:

Unmodified
Added
Removed
  • vlo/trunk

  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/JavaScriptResources.java

    r6666 r6690  
    2121import org.apache.wicket.request.resource.CssResourceReference;
    2222import org.apache.wicket.request.resource.JavaScriptResourceReference;
     23import org.apache.wicket.request.resource.ResourceReference;
    2324
    2425/**
     
    3334    private final static JavaScriptResourceReference VLO_FACETS = new JavaScriptResourceReference(VloBasePage.class, "vlo-facets.js");
    3435    private final static JavaScriptResourceReference SEARCH_FORM = new JavaScriptResourceReference(VloBasePage.class, "vlo-searchform.js");
     36    private final static JavaScriptResourceReference FIELDS_TABLE = new JavaScriptResourceReference(RecordPage.class, "vlo-fields-table.js");
    3537    private final static JavaScriptResourceReference JQUERY_UI = new JavaScriptResourceReference(VloBasePage.class, "jquery-ui-1.11.4.custom/jquery-ui.min.js");
    3638    private final static CssResourceReference JQUERY_UI_CSS = new CssResourceReference(VloBasePage.class, "jquery-ui-1.11.4.custom/jquery-ui.min.css");
    3739    private final static JavaScriptResourceReference JQUERY_WATERMARK = new JavaScriptResourceReference(VloBasePage.class, "jquery.watermark-3.1.4/jquery.watermark.min.js");
    38     private final static JavaScriptResourceReference HIGHLIGHT = new JavaScriptResourceReference(RecordPage.class, "searchhi.js");
     40    private final static JavaScriptResourceReference HIGHLIGHT = new JavaScriptResourceReference(RecordPage.class, "jquery.highlight.js");
    3941
    4042    public static JavaScriptResourceReference getVloFrontJS() {
     
    7173        return SEARCH_FORM;
    7274    }
     75
     76    public static ResourceReference getFieldsTableJS() {
     77        return FIELDS_TABLE;
     78    }
    7379   
    74    
    75 
    7680}
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/HighlightSearchTermBehavior.java

    r5161 r6690  
    2323import org.apache.wicket.markup.head.JavaScriptHeaderItem;
    2424import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
     25import org.apache.wicket.request.Request;
     26import org.apache.wicket.util.string.StringValue;
     27import org.apache.wicket.util.string.Strings;
    2528
    2629/**
     
    3336public class HighlightSearchTermBehavior extends Behavior {
    3437
    35     private static final String HIGHLIGHT_FUNCTION = "searchhi.init()";
     38    private final HighlightSearchTermScriptFactory scriptFactory = new HighlightSearchTermScriptFactory();
    3639
    3740    @Override
     
    3942        // include highlight script
    4043        response.render(JavaScriptHeaderItem.forReference(JavaScriptResources.getHighlightJS()));
    41         // after load, highlight
    42         response.render(OnDomReadyHeaderItem.forScript(HIGHLIGHT_FUNCTION));
     44
     45        final String words = getWordList(component);
     46        if (!Strings.isEmpty(words)) {
     47            String selector = getComponentSelector(component.getMarkupId());
     48            // after load, highlight
     49            response.render(OnDomReadyHeaderItem.forScript(scriptFactory.createScript(selector, words)));
     50        }
     51    }
     52
     53    protected String getComponentSelector(String componentId) {
     54        return "#" + componentId;
     55    }
     56
     57    protected String getWordList(Component component) {
     58        Request request = component.getPage().getRequestCycle().getRequest();
     59        return request.getQueryParameters().getParameterValue(getQueryParam()).toString();
     60    }
     61
     62    protected String getQueryParam() {
     63        return "q";
    4364    }
    4465
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/RecordPage.html

    r6330 r6690  
    5151                <div id="recorddetails">
    5252                    <a wicket:id="landingPageLink" target="_blank" id="recordlandingpage">Show this record in its original context</a>
    53                     <wicket:container wicket:id="documentProperties">[PROPERTIES TABLE]</wicket:container>
     53                    <div id="recordProperties" wicket:id="documentProperties">[PROPERTIES TABLE]</div>
    5454                </div>
    5555
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/RecordPage.java

    r6657 r6690  
    130130
    131131        addComponents();
    132         add(new HighlightSearchTermBehavior());
    133132    }
    134133
     
    138137
    139138        final WebMarkupContainer topNavigation = new WebMarkupContainer("topnavigation");
    140         topNavigation.setOutputMarkupId(true);
    141         add(topNavigation);
    142 
    143         topNavigation.add(new BreadCrumbPanel("breadcrumbs", selectionModel));
    144         topNavigation.add(createPermalink("permalink", topNavigation));
     139        add(topNavigation
     140                .add(new BreadCrumbPanel("breadcrumbs", selectionModel))
     141                .add(createPermalink("permalink", topNavigation))
     142                .setOutputMarkupId(true)
     143        );
    145144
    146145        // General information section
    147146        add(new SolrFieldLabel("name", getModel(), FacetConstants.FIELD_NAME, getString("recordpage.unnamedrecord")));
    148147        add(createLandingPageLink("landingPageLink"));
    149         add(new FieldsTablePanel("documentProperties", new DocumentFieldsProvider(getModel(), basicPropertiesFilter, fieldOrder)));
     148       
     149        final FieldsTablePanel fieldsTable = new FieldsTablePanel("documentProperties", new DocumentFieldsProvider(getModel(), basicPropertiesFilter, fieldOrder));
     150        fieldsTable.add(new HighlightSearchTermBehavior());
     151        add(fieldsTable);
    150152
    151153        // Resources section
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/FieldsTablePanel.html

    r5012 r6690  
    2828                    <tr wicket:id="documentField">
    2929                        <td class="attribute">
    30                             <div wicket:id="fieldName">Description</div>
     30                            <div class="fieldName" wicket:id="fieldName">Description</div>
    3131                        </td><td class="attributeValue">
    3232                            <ul class="attributeValues">
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/FieldsTablePanel.java

    r6268 r6690  
    2020import com.google.common.collect.ImmutableSet;
    2121import eu.clarin.cmdi.vlo.FacetConstants;
     22import eu.clarin.cmdi.vlo.JavaScriptResources;
    2223import eu.clarin.cmdi.vlo.config.VloConfig;
    2324import eu.clarin.cmdi.vlo.pojo.DocumentField;
     
    2829import eu.clarin.cmdi.vlo.wicket.components.SmartLinkFieldValueLabel;
    2930import eu.clarin.cmdi.vlo.wicket.model.HandleLinkModel;
     31import eu.clarin.cmdi.vlo.wicket.model.SolrFieldDescriptionModel;
    3032import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel;
    3133import eu.clarin.cmdi.vlo.wicket.pages.FacetedSearchPage;
     
    3537import org.apache.wicket.AttributeModifier;
    3638import org.apache.wicket.Component;
     39import org.apache.wicket.behavior.AttributeAppender;
    3740import org.apache.wicket.extensions.markup.html.basic.SmartLinkMultiLineLabel;
     41import org.apache.wicket.markup.head.CssHeaderItem;
     42import org.apache.wicket.markup.head.IHeaderResponse;
     43import org.apache.wicket.markup.head.JavaScriptHeaderItem;
    3844import org.apache.wicket.markup.html.basic.Label;
    3945import org.apache.wicket.markup.html.link.Link;
     
    8995                final PropertyModel<String> fieldNameModel = new PropertyModel<String>(fieldModel, "fieldName");
    9096                final SolrFieldNameModel friendlyFieldNameModel = new SolrFieldNameModel(fieldNameModel);
    91                 item.add(new Label("fieldName", friendlyFieldNameModel));
     97                final Label fieldName = new Label("fieldName", friendlyFieldNameModel);
     98                item.add(fieldName);
     99                fieldName.add(new AttributeAppender("title", new SolrFieldDescriptionModel(fieldNameModel)));
    92100                final PropertyModel<List> valuesModel = new PropertyModel<List>(fieldModel, "values");
    93101                item.add(new ListView("values", valuesModel) {
     
    160168        return true;
    161169    }
     170   
     171//    re-enable for 'fancy' popups for the field descriptions
     172//    @Override
     173//    public void renderHead(IHeaderResponse response) {
     174//        // JQuery UI for tooltips
     175//        response.render(CssHeaderItem.forReference(JavaScriptResources.getJQueryUICSS()));
     176//        response.render(JavaScriptHeaderItem.forReference(JavaScriptResources.getFieldsTableJS()));
     177//    }
    162178
    163179}
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultItemPanel.java

    r6232 r6690  
    2121import eu.clarin.cmdi.vlo.pojo.ExpansionState;
    2222import eu.clarin.cmdi.vlo.pojo.SearchContext;
     23import eu.clarin.cmdi.vlo.wicket.HighlightSearchTermScriptFactory;
    2324import eu.clarin.cmdi.vlo.wicket.components.RecordPageLink;
    2425import eu.clarin.cmdi.vlo.wicket.components.SolrFieldLabel;
     
    3536import org.apache.wicket.model.IModel;
    3637import org.apache.wicket.spring.injection.annot.SpringBean;
     38import org.apache.wicket.util.string.Strings;
    3739
    3840/**
     
    4446    @SpringBean
    4547    private VloConfig config;
    46    
     48
    4749    private final Panel collapsedDetails;
    4850    private final Panel expandedDetails;
    4951    private final IModel<ExpansionState> expansionStateModel;
     52    private final IModel<SearchContext> selectionModel;
    5053
    5154    /**
     
    6164        super(id, documentModel);
    6265        this.expansionStateModel = expansionStateModel;
     66        this.selectionModel = selectionModel;
    6367
    6468        final Link recordLink = new RecordPageLink("recordLink", documentModel, selectionModel);
     
    100104                    // parial update (just this search result item)
    101105                    target.add(SearchResultItemPanel.this);
     106
     107                    // in case of a query, update highlight matching search terms after collapse/expand
     108                    final String query = selectionModel.getObject().getSelection().getQuery();
     109                    if (!Strings.isEmpty(query)) {
     110                        final HighlightSearchTermScriptFactory scriptFactory = new HighlightSearchTermScriptFactory();
     111                        final String selector = "#" + SearchResultItemPanel.this.getMarkupId();
     112                        target.appendJavaScript(scriptFactory.createScript(selector, query));
     113                    }
    102114                }
    103115            }
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultsPanel.java

    r6191 r6690  
    1818
    1919import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
     20import eu.clarin.cmdi.vlo.wicket.HighlightSearchTermBehavior;
     21import eu.clarin.cmdi.vlo.wicket.HighlightSearchTermScriptFactory;
    2022import eu.clarin.cmdi.vlo.wicket.model.SearchContextModel;
    2123import eu.clarin.cmdi.vlo.wicket.model.SearchResultExpansionStateModel;
     
    2628import java.util.Set;
    2729import org.apache.solr.common.SolrDocument;
     30import org.apache.wicket.Component;
     31import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
    2832import org.apache.wicket.ajax.AjaxRequestTarget;
    2933import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
     
    4145import org.apache.wicket.model.Model;
    4246import org.apache.wicket.model.PropertyModel;
     47import org.apache.wicket.util.string.StringValue;
    4348
    4449/**
     
    9398        //For Ajax updating of search results
    9499        setOutputMarkupId(true);
     100       
     101        add(new HighlightSearchTermBehavior(){
     102
     103            @Override
     104            protected String getComponentSelector(String componentId) {
     105                return ".searchresultitem"; //"h3, .searchresultdescription"
     106            }
     107
     108            @Override
     109            protected String getWordList(Component component) {
     110                return selectionModel.getObject().getQuery();
     111            }
     112           
     113        });
    95114    }
    96115   
  • vlo/trunk/vlo-web-app/src/main/less/eu/clarin/cmdi/vlo/wicket/pages/inc/vlo-search.less

    r6337 r6690  
    143143#searchresultitems .searchresultdescription a {
    144144    text-decoration: underline;
     145}
     146
     147.searchresultitem .searchword {
     148    font-weight: bold;
    145149}
    146150
Note: See TracChangeset for help on using the changeset viewer.