Skip to content

Commit

Permalink
Item13774: improve layout of search results
Browse files Browse the repository at this point in the history
Item13724: improved PatternSkin integration

- docu fixes from F.O. as far as I was able to find out what was changed
- moved unsafe inline javascript into a js file of its own
  • Loading branch information
MichaelDaum committed Oct 1, 2015
1 parent a6b8bb7 commit e7d936c
Show file tree
Hide file tree
Showing 7 changed files with 120 additions and 110 deletions.
16 changes: 9 additions & 7 deletions data/System/SolrPlugin.txt
@@ -1,7 +1,6 @@
%META:TOPICINFO{author="ProjectContributor" comment="" date="1442835433" format="1.1" version="1"}%
%META:TOPICPARENT{name="Plugins"}%
%META:TOPICINFO{author="ProjectContributor" date="1443691651" format="1.1" version="1"}%
---+ Solr Plugin
%$SHORTDESCRIPTION%
%FORMFIELD{"Description"}%

%TOC%

Expand Down Expand Up @@ -139,14 +138,14 @@ cd <foswiki-dir>/tools
For instance to empty your index completely use:

<verbatim class="bash">
./solrindex *:*
./soldelete *:*
</verbatim>

---+++ solrjob

<verbatim class="bash">
cd <foswiki-dir>/tools
./solrdelete ...
./solrjob ...
</verbatim>

This tool is a wrapper around =solrindex= and will use either =solrindex= or =virtualhost-solrindex=
Expand Down Expand Up @@ -847,6 +846,8 @@ specific search applications. The destination fields are then analysed using the
%$DEPENDENCIES%

---++ Change History
%TABLE{columnwidths="7em" tablewidth="100%"}%
| 01 Oct 2015: | improve default layout of search results; moved unsafe inline-javascript into a js file of its own |
| 21 Sep 2015: | cache stringified attachments using Cache::FileCache now and added api to purge/clear cache regularly; \
removed =IndexExtensions= config parameter to let the stringifier decide on supported file formats; \
added support for Foswiki:Extensions/LikePlugin boosting search results by social preferences |
Expand Down Expand Up @@ -932,11 +933,12 @@ specific search applications. The destination fields are then analysed using the
| 22 Nov 2010: | fixes integration with pattern skin |
| 18 Nov 2010: | initial public release |

%META:FILEATTACHMENT{name="SolrPluginSnap1.png" attachment="SolrPluginSnap1.png" attr="" comment="" date="1442835433" size="93552" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="SolrPluginSnap2.png" attachment="SolrPluginSnap2.png" attr="" comment="" date="1442835433" size="158013" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="SolrPluginSnap1.png" attr="" comment="" date="1443691649" size="93552" user="ProjectContributor" version="1"}%
%META:FILEATTACHMENT{name="SolrPluginSnap2.png" attr="" comment="" date="1443691649" size="158013" user="ProjectContributor" version="1"}%
%META:FORM{name="PackageForm"}%
%META:FIELD{name="Author" title="Author" value="Michael Daum"}%
%META:FIELD{name="Copyright" title="Copyright" value="&copy; 2009-2015, Michael Daum http://michaeldaumconsulting.com"}%
%META:FIELD{name="Description" title="Description" value="%25$SHORTDESCRIPTION%25"}%
%META:FIELD{name="Home" title="Home" value="Foswiki:Extensions/SolrPlugin"}%
%META:FIELD{name="License" title="License" value="GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]])"}%
%META:FIELD{name="Release" title="Release" value="%$RELEASE%"}%
Expand Down
90 changes: 41 additions & 49 deletions data/System/SolrSearchBaseTemplate.txt
Expand Up @@ -153,21 +153,20 @@
<div class='solrSearchHit solrTopicHit clearfix'>
%TMPL:P{"solr::thumbnail"}%
<h3>
<img src='{{if icon}}{{:icon}}{{else}}%PUBURLPATH%/%SYSTEMWEB%/FamFamFamSilkIcons/page_white.png{{/if}}' width='16' height='16' />
<img src='{{if icon}}{{:icon}}{{else}}%PUBURLPATH%/%SYSTEMWEB%/FamFamFamSilkIcons/page_white.png{{/if}}' width='16' height='16' class='solrHitIcon' />
<a href='{{:url}}'>{{:title}}</a>
<span class=' solrContainerLink foswikiGrayText foswikiSmallish'>
<span class=' solrContainerLink foswikiGrayText foswikiNormal'>
%MAKETEXT{"in [_1]" args="<a href='{{:container_url}}'>{{:container_title}}</a>"}%
</span>
</h3>
<div class='solrTopicInfo foswikiGrayText'>
{{:~renderTopicInfo()}}
<div class='solrRevision'>
{{:~formatDate(date,'%TMPL:P{"solr::dateformat"}%')}}, {{:author}}
</div>
<div class='solrTopicSummary foswikiGrayText'>{{:summary}}</div>
<div class='solrHilite'>
{{:~getHilite(id)}}
</div>
<div class='solrRevision'>
{{:~formatDate(date,'%TMPL:P{"solr::dateformat"}%')}}, {{:author}}
<div class='solrTopicInfo foswikiGrayText'>
{{:~renderTopicInfo()}}
</div>
</div>
</script>
Expand All @@ -181,16 +180,16 @@
<h3>
<img src='{{if icon}}{{:icon}}{{else}}%PUBURLPATH%/%SYSTEMWEB%/FamFamFamSilkIcons/page_white.png{{/if}}' width='16' height='16' class='solrHitIcon' />
<a href='{{:url}}'>{{:title}}</a>
<span class='foswikiGrayText foswikiSmallish solrContainerLink'>
<span class='foswikiGrayText foswikiNormal solrContainerLink'>
%MAKETEXT{"in [_1]" args="<a href='{{:container_url}}'>{{:container_title}}</a>"}%
</span>
</h3>
<div class='solrHilite'>
{{:~getHilite(id)}}
</div>
<div class='solrRevision'>
{{:~formatDate(date,'%TMPL:P{"solr::dateformat"}%')}}, {{:author}}
</div>
<div class='solrHilite'>
{{:~getHilite(id)}}
</div>
</div>
</script>%TMPL:END%
%{</verbatim>}%
Expand All @@ -204,21 +203,15 @@
</a>
</div>
<h3>
<img src='{{if icon}}{{:icon}}{{else}}%PUBURLPATH%/%SYSTEMWEB%/FamFamFamSilkIcons/page_white.png{{/if}}' width='16' height='16' class='solrHitIcon' />
<a href='{{:url}}'>{{:name}}</a>
<span class='foswikiGrayText foswikiSmallish solrContainerLink'>
<span class='foswikiGrayText foswikiNormal solrContainerLink'>
%MAKETEXT{"in [_1]" args="<a href='{{:container_url}}'>{{:container_title}}</a>"}%
</span>
{{if comment}}
<div class='foswikiGrayText foswikiSmallish solrSearchHitSummary'>{{:comment}}</div>
{{/if}}
</h3>
<div class='solrHilite'>
{{:~getHilite(id)}}
</div>
<div class='solrRevision'>
{{:~formatDate(date,'%TMPL:P{"solr::dateformat"}%')}}, {{:author}}
</div>
%CLEAR%
</div>
</script>%TMPL:END%
%{</verbatim>}%
Expand All @@ -229,16 +222,16 @@
<h3>
<img src='%PUBURLPATH%/%SYSTEMWEB%/FamFamFamSilkIcons/comment.png' width='16' height='16' class='solrHitIcon' />
<a href='{{:url}}'>{{:title}}</a>
<span class='foswikiGrayText foswikiSmallish solrContainerLink'>
<span class='foswikiGrayText foswikiNormal solrContainerLink'>
%MAKETEXT{"in [_1]" args="<a href='{{:container_url}}'>{{:container_title}}</a>"}%
</span>
</h3>
<div class='solrHilite'>
{{:~getHilite(id)}}
</div>
<div class='solrRevision'>
{{:~formatDate(date,'%TMPL:P{"solr::dateformat"}%')}}, {{:author}}
</div>
<div class='solrHilite'>
{{:~getHilite(id)}}
</div>
</div>
</script>%TMPL:END%
%{</verbatim>}%
Expand All @@ -249,19 +242,19 @@
<h3>
<img src='{{if icon}}{{:icon}}{{else}}%PUBURLPATH%/%SYSTEMWEB%/FamFamFamSilkIcons/page_white.png{{/if}}' width='16' height='16' class='solrHitIcon' />
<a href='{{:url}}'>{{:name}}</a>
<span class='foswikiGrayText foswikiSmallish solrContainerLink' >
<span class='foswikiGrayText foswikiNormal solrContainerLink' >
%MAKETEXT{"in [_1]" args="<a href='{{:container_url}}'>{{:container_title}}</a>"}%
</span>
{{if comment}}
<div class='foswikiGrayText foswikiSmallish'>{{:comment}}</div>
{{/if}}
</h3>
<div class='solrHilite'>
{{:~getHilite(id)}}
</div>
<div class='solrRevision'>
{{:~formatDate(date,'%TMPL:P{"solr::dateformat"}%')}}, {{:author}}
</div>
<div class='solrHilite'>
{{:~getHilite(id)}}
</div>
{{if comment}}
<div class='foswikiGrayText'>{{:comment}}</div>
{{/if}}
</div>
</script>%TMPL:END%
%{</verbatim>}%
Expand Down Expand Up @@ -425,25 +418,24 @@
actual input field, as well as some basic select and checkboxes
}%
%TMPL:DEF{"solr::inputstep"}%<!-- -->
<div class='foswikiFormStep'>
<div class='foswikiLeft'>
<table class='foswikiNullTable'>
<tr>
<td>
<input type='text' autocomplete='off' class='foswikiInputField jqFocus solrSearchField' size='50' style='margin-right:8px;' />
</td>
<td>
%BUTTON{"%MAKETEXT{"Search"}%" type="submit" title="%MAKETEXT{"submit the query"}%" icon="find" class="solrSubmitButton"}%
</td>
</tr>
</table>
%TMPL:P{"solr::input::checkboxes"}%<!-- -->
</div>
<div class='foswikiRight'>
%TMPL:P{"solr::sortby"}%<!-- -->
%TMPL:P{"DISsolr::displayas"}%<!-- -->
</div>
%CLEAR%
<div class='foswikiFormStep clearfix'>
<div class='foswikiLeft'>
<table class='foswikiNullTable'>
<tr>
<td>
<input type='text' autocomplete='off' class='foswikiInputField jqFocus solrSearchField' size='50' style='margin-right:8px;' />
</td>
<td>
%BUTTON{"%MAKETEXT{"Search"}%" type="submit" title="%MAKETEXT{"submit the query"}%" icon="find" class="solrSubmitButton"}%
</td>
</tr>
</table>
%TMPL:P{"solr::input::checkboxes"}%<!-- -->
</div>
<div class='foswikiRight'>
%TMPL:P{"solr::sortby"}%<!-- -->
%TMPL:P{"DISsolr::displayas"}%<!-- -->
</div>
</div>
<!-- -->%TMPL:END%
%{</verbatim>}%
Expand Down
8 changes: 2 additions & 6 deletions lib/Foswiki/Plugins/SolrPlugin.pm
Expand Up @@ -30,8 +30,8 @@ BEGIN {
}
}

our $VERSION = '4.10';
our $RELEASE = '21 Jul 2015';
our $VERSION = '4.20';
our $RELEASE = '01 Oct 2015';
our $SHORTDESCRIPTION = 'Enterprise Search Engine for Foswiki based on [[http://lucene.apache.org/solr/][Solr]]';
our $NO_PREFS_IN_TOPIC = 1;
our %searcher;
Expand Down Expand Up @@ -164,10 +164,6 @@ sub initPlugin {
http_allow => 'GET,POST',
);

Foswiki::Func::addToZone("script", "SOLRPLUGIN::SEARCHBOX", <<'HERE', "JQUERYPLUGIN");
<script src='%PUBURLPATH%/%SYSTEMWEB%/SolrPlugin/solr-searchbox.js'></script>
HERE

Foswiki::Func::registerRESTHandler('purgeCache', sub { return getIndexer()->cache->purge; return; },
authenticate => 0,
validate => 0,
Expand Down
5 changes: 2 additions & 3 deletions lib/Foswiki/Plugins/SolrPlugin/Index.pm
Expand Up @@ -754,9 +754,7 @@ sub indexAttachment {
if ($attText ne '') {
$attText = $this->plainify($attText, $web, $topic);
} else {
# warn for non-pdfs
$this->log("Warning: attachment $name at $web.$topic has got zero length ... maybe stringifier failed?")
unless $extension eq 'pdf';
#$this->log("Warning: attachment $name at $web.$topic has got zero length ... maybe stringifier failed?")
}

my $doc = $this->newDocument();
Expand Down Expand Up @@ -886,6 +884,7 @@ sub optimize {
my $this = shift;

return unless $this->{solr};
return if $this->{_trappedSignal};

# temporarily set a different timeout for this operation
my $agent = $this->{solr}->agent();
Expand Down
27 changes: 21 additions & 6 deletions pub/System/SolrPlugin/solr-searchbox.uncompressed.js
@@ -1,14 +1,29 @@
jQuery(function($) {
"use strict";

jQuery(function($) {
$(".solrSearchBox form").livequery(function() {
var $this = $(this),
action = $this.attr("action");
$this.submit(function() {
var search = $this.find("input[name='search']"),
var $form = $(this),
action = $form.attr("action"),
$input = $form.find("input[type=text]"),
position = $.extend({
my: "right top",
at: "right bottom+11",
}, {
my: $form.data("position-my"),
at: $form.data("position-at"),
});

$form.submit(function() {
var search = $form.find("input[name='search']"),
href = action + ((search && search.val())?'#q='+search.val():'');
window.location.href = href;
return false;
});

if (typeof($.fn.autosuggest) === 'function') { // make sure autosuggest realy is present
$input.autosuggest({
position: position,
menuClass: 'natSearchBoxMenu'
});
}
});
});
42 changes: 33 additions & 9 deletions pub/System/SolrPlugin/solrplugin.uncompressed.css
Expand Up @@ -10,14 +10,43 @@
margin:1.3864em 0em;
}
.solrSearchHits h3 {
margin:0px;
font-size:100%;
line-height:1.3864em;
margin:0;
padding:0px;
}
.solrSearchHits h3 a {
text-decoration:none;
}
.solrSearchHits h3 .solrHitIcon {
vertical-align:middle;
}


.solrTopicInfo,
.solrHilite,
.solrTopicSummary,
.solrRevision {
margin:0.5em 0;
padding-left:22px;
}
.solrRevision {
font-size:95%;
margin-top:0.5em;
}
.solrRevision,
.solrRevision a {
text-decoration:none;
color:#818181;
color:#049804;
}

.solrSearchHitsList .solrSearchHit {
margin:1.3864em 0em;
border-top:1px solid #ddd;
padding-top:1.3864em;
}
.solrSearchHitsList .solrSearchHit:first-child {
border-top:0;
padding-top:0;
}
.solrSearchHitsGrid .solrSearchHit {
width:17%;
Expand Down Expand Up @@ -105,7 +134,7 @@
}
.solrSearchHitsList .solrThumbnail,
.solrSearchHitsList .solrImageFrame {
float:left;
float:right;
margin-right:1em;
}
.solrThumbnail .imageSimple,
Expand All @@ -118,11 +147,6 @@
overflow:hidden;
}

.solrRevision,
.solrRevision a {
text-decoration:none;
color:#049804;
}
.solrSortion {
text-align:right;
}
Expand Down

0 comments on commit e7d936c

Please sign in to comment.