Changeset 6690
- Timestamp:
- 10/20/15 13:18:13 (9 years ago)
- Location:
- vlo/trunk
- Files:
-
- 1 deleted
- 10 edited
- 3 copied
Legend:
- Unmodified
- Added
- Removed
-
vlo/trunk
- Property svn:mergeinfo changed
/vlo/branches/vlo-3.3 merged: 6685-6689
- Property svn:mergeinfo changed
-
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/JavaScriptResources.java
r6666 r6690 21 21 import org.apache.wicket.request.resource.CssResourceReference; 22 22 import org.apache.wicket.request.resource.JavaScriptResourceReference; 23 import org.apache.wicket.request.resource.ResourceReference; 23 24 24 25 /** … … 33 34 private final static JavaScriptResourceReference VLO_FACETS = new JavaScriptResourceReference(VloBasePage.class, "vlo-facets.js"); 34 35 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"); 35 37 private final static JavaScriptResourceReference JQUERY_UI = new JavaScriptResourceReference(VloBasePage.class, "jquery-ui-1.11.4.custom/jquery-ui.min.js"); 36 38 private final static CssResourceReference JQUERY_UI_CSS = new CssResourceReference(VloBasePage.class, "jquery-ui-1.11.4.custom/jquery-ui.min.css"); 37 39 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"); 39 41 40 42 public static JavaScriptResourceReference getVloFrontJS() { … … 71 73 return SEARCH_FORM; 72 74 } 75 76 public static ResourceReference getFieldsTableJS() { 77 return FIELDS_TABLE; 78 } 73 79 74 75 76 80 } -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/HighlightSearchTermBehavior.java
r5161 r6690 23 23 import org.apache.wicket.markup.head.JavaScriptHeaderItem; 24 24 import org.apache.wicket.markup.head.OnDomReadyHeaderItem; 25 import org.apache.wicket.request.Request; 26 import org.apache.wicket.util.string.StringValue; 27 import org.apache.wicket.util.string.Strings; 25 28 26 29 /** … … 33 36 public class HighlightSearchTermBehavior extends Behavior { 34 37 35 private static final String HIGHLIGHT_FUNCTION = "searchhi.init()";38 private final HighlightSearchTermScriptFactory scriptFactory = new HighlightSearchTermScriptFactory(); 36 39 37 40 @Override … … 39 42 // include highlight script 40 43 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"; 43 64 } 44 65 -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/RecordPage.html
r6330 r6690 51 51 <div id="recorddetails"> 52 52 <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> 54 54 </div> 55 55 -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/RecordPage.java
r6657 r6690 130 130 131 131 addComponents(); 132 add(new HighlightSearchTermBehavior());133 132 } 134 133 … … 138 137 139 138 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 ); 145 144 146 145 // General information section 147 146 add(new SolrFieldLabel("name", getModel(), FacetConstants.FIELD_NAME, getString("recordpage.unnamedrecord"))); 148 147 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); 150 152 151 153 // Resources section -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/FieldsTablePanel.html
r5012 r6690 28 28 <tr wicket:id="documentField"> 29 29 <td class="attribute"> 30 <div wicket:id="fieldName">Description</div>30 <div class="fieldName" wicket:id="fieldName">Description</div> 31 31 </td><td class="attributeValue"> 32 32 <ul class="attributeValues"> -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/FieldsTablePanel.java
r6268 r6690 20 20 import com.google.common.collect.ImmutableSet; 21 21 import eu.clarin.cmdi.vlo.FacetConstants; 22 import eu.clarin.cmdi.vlo.JavaScriptResources; 22 23 import eu.clarin.cmdi.vlo.config.VloConfig; 23 24 import eu.clarin.cmdi.vlo.pojo.DocumentField; … … 28 29 import eu.clarin.cmdi.vlo.wicket.components.SmartLinkFieldValueLabel; 29 30 import eu.clarin.cmdi.vlo.wicket.model.HandleLinkModel; 31 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldDescriptionModel; 30 32 import eu.clarin.cmdi.vlo.wicket.model.SolrFieldNameModel; 31 33 import eu.clarin.cmdi.vlo.wicket.pages.FacetedSearchPage; … … 35 37 import org.apache.wicket.AttributeModifier; 36 38 import org.apache.wicket.Component; 39 import org.apache.wicket.behavior.AttributeAppender; 37 40 import org.apache.wicket.extensions.markup.html.basic.SmartLinkMultiLineLabel; 41 import org.apache.wicket.markup.head.CssHeaderItem; 42 import org.apache.wicket.markup.head.IHeaderResponse; 43 import org.apache.wicket.markup.head.JavaScriptHeaderItem; 38 44 import org.apache.wicket.markup.html.basic.Label; 39 45 import org.apache.wicket.markup.html.link.Link; … … 89 95 final PropertyModel<String> fieldNameModel = new PropertyModel<String>(fieldModel, "fieldName"); 90 96 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))); 92 100 final PropertyModel<List> valuesModel = new PropertyModel<List>(fieldModel, "values"); 93 101 item.add(new ListView("values", valuesModel) { … … 160 168 return true; 161 169 } 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 // } 162 178 163 179 } -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultItemPanel.java
r6232 r6690 21 21 import eu.clarin.cmdi.vlo.pojo.ExpansionState; 22 22 import eu.clarin.cmdi.vlo.pojo.SearchContext; 23 import eu.clarin.cmdi.vlo.wicket.HighlightSearchTermScriptFactory; 23 24 import eu.clarin.cmdi.vlo.wicket.components.RecordPageLink; 24 25 import eu.clarin.cmdi.vlo.wicket.components.SolrFieldLabel; … … 35 36 import org.apache.wicket.model.IModel; 36 37 import org.apache.wicket.spring.injection.annot.SpringBean; 38 import org.apache.wicket.util.string.Strings; 37 39 38 40 /** … … 44 46 @SpringBean 45 47 private VloConfig config; 46 48 47 49 private final Panel collapsedDetails; 48 50 private final Panel expandedDetails; 49 51 private final IModel<ExpansionState> expansionStateModel; 52 private final IModel<SearchContext> selectionModel; 50 53 51 54 /** … … 61 64 super(id, documentModel); 62 65 this.expansionStateModel = expansionStateModel; 66 this.selectionModel = selectionModel; 63 67 64 68 final Link recordLink = new RecordPageLink("recordLink", documentModel, selectionModel); … … 100 104 // parial update (just this search result item) 101 105 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 } 102 114 } 103 115 } -
vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultsPanel.java
r6191 r6690 18 18 19 19 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 20 import eu.clarin.cmdi.vlo.wicket.HighlightSearchTermBehavior; 21 import eu.clarin.cmdi.vlo.wicket.HighlightSearchTermScriptFactory; 20 22 import eu.clarin.cmdi.vlo.wicket.model.SearchContextModel; 21 23 import eu.clarin.cmdi.vlo.wicket.model.SearchResultExpansionStateModel; … … 26 28 import java.util.Set; 27 29 import org.apache.solr.common.SolrDocument; 30 import org.apache.wicket.Component; 31 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior; 28 32 import org.apache.wicket.ajax.AjaxRequestTarget; 29 33 import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; … … 41 45 import org.apache.wicket.model.Model; 42 46 import org.apache.wicket.model.PropertyModel; 47 import org.apache.wicket.util.string.StringValue; 43 48 44 49 /** … … 93 98 //For Ajax updating of search results 94 99 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 }); 95 114 } 96 115 -
vlo/trunk/vlo-web-app/src/main/less/eu/clarin/cmdi/vlo/wicket/pages/inc/vlo-search.less
r6337 r6690 143 143 #searchresultitems .searchresultdescription a { 144 144 text-decoration: underline; 145 } 146 147 .searchresultitem .searchword { 148 font-weight: bold; 145 149 } 146 150
Note: See TracChangeset
for help on using the changeset viewer.