Skip to content

Commit

Permalink
facet partials
Browse files Browse the repository at this point in the history
  • Loading branch information
nics committed Mar 2, 2017
1 parent cece437 commit 8ddc217
Show file tree
Hide file tree
Showing 13 changed files with 209 additions and 200 deletions.
42 changes: 42 additions & 0 deletions config/features.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,49 @@ _prefix:

views:
footer:
# TODO move to footer/powered_by
- template: powered_by
frontend:
publication:
facets:
- - template: facets/popular_science
facet: popular_science
- template: facets/extern
facet: extern
- template: facets/open_access
facet: open_access
- template: facets/isi
facet: isi
- template: facets/pmid
facet: pmid
backend:
publication:
facets:
- - template: facets/status
facet: status
- - template: facets/department
facet: department
roles:
- super_admin
- template: facets/type
facet: type
- template: facets/author
facet: author
- template: facets/editor
facet: editor
- template: facets/year
facet: year
- - template: facets/popular_science
facet: popular_science
- template: facets/extern
facet: extern
- template: facets/open_access
facet: open_access
- template: facets/isi
facet: isi
- template: facets/pmid
facet: pmid
# TODO move to backend/publication/edit/
publication_edit:
js:
validation:
Expand Down
216 changes: 16 additions & 200 deletions views/facets.tt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
[%- IF !facets -%][% RETURN %][% END %]

<!-- BEGIN facets.tt -->
<div id="facets"></div>
<div class="hidden-sm hidden-md hidden-lg"><hr></div>
[%- IF qp.q.size == 0 %]
Expand All @@ -11,210 +10,27 @@
</div>
[%- END %]

[%- UNLESS request.path == "/marked" -%]
[%- IF request.path != "/marked" -%]

[%- IF (facets.status.terms.size || 0) > 1 OR (facets.type.terms.size || 0) > 1 OR
(facets.author.terms.size || 0) > 1 OR (facets.editor.terms.size || 0) > 1 OR
(facets.year.terms.size || 0) > 1 OR (bag == "person" AND !qp.q.grep('^former').0) -%]
<h3>[% IF bag == "data" %][% h.loc("facets.filter_data_publications") %]
[% ELSIF bag == "person" %][% h.loc("facets.filter_authorlist") %]
[% ELSE %][% h.loc("facets.filter_publications") %][% END %]</h3>

<h3>[% IF bag == "data" %][% h.loc("facets.filter_data_publications") %]
[% ELSIF bag == "person" %][% h.loc("facets.filter_authorlist") %]
[% ELSE %][% h.loc("facets.filter_publications") %][% END %]</h3>

[%- IF facets.status.terms.size > 1 && backend %]
<ul class="nav nav-tabs nav-stacked margin-bottom1 ul0">
<li>
<button data-toggle="collapse" data-target="#status_[% tabmodus %][% menu %]" class="btn-link helpme" data-placement="left"><span class="glyphicon glyphicon-chevron-down"></span> [% h.loc("facets.visibility_status") %]</button>
<div class="facettecollapse">
<ul id="status_[% tabmodus %][% menu %]" class="collapse">
[%- FOREACH stat IN facets.status.terms %]
<li><a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="status" data-value="[% stat.term %]" href="#" rel="nofollow">[% stat.term %] ([% stat.count %])</a></li>
[%- END %]
</ul>
</div>
</li>
</ul>
[%- END %]

[%- IF backend AND (session.role == "super_admin" OR session.role == "reviewer")
OR (facets.type.terms.size || 0) > 1 OR (facets.author.terms.size || 0) > 1
OR (facets.editor.terms.size || 0) > 1 OR (facets.year.terms.size || 0) > 1 -%]
<ul class="nav nav-tabs nav-stacked ul1 helpme" data-placement="left">
[% IF backend AND session.role == "super_admin" %]
<li>
<button href="#modal_department" data-toggle="modal" class="btn-link"><span class="glyphicon glyphicon-chevron-left fw"></span>[% h.loc("facets.department") %]</button>
</li>
<!-- Modal -->
<div id="modal_department" class="modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span class="fa fa-fw fa-times"></span></button>
<h3 id="ModalExport">[% h.loc("facets.department") %]</h3>
</div>
<div class="modal-body">
[%- TRY %]
[%- INCLUDE department/nodes_backend.tt %]
[%- CATCH %]
You might want to execute 'bin/librecat generate departments'...
[%- END %]
</div>
</div>
</div>
</div>
[% END %]

[% IF facets.type AND facets.type.terms.size > 1 %]
<li>
<button data-toggle="collapse" data-target="#type_[% tabmodus %][% menu %]" class="btn-link"><span class="glyphicon glyphicon-chevron-down fw"></span>[% h.loc("facets.publication_type") %]</button>
<div class="facettecollapse">
<ul id="type_[% tabmodus %][% menu %]" class="collapse">
[% FOREACH type IN facets.type.terms %]
[% typeName = lf.forms.item(type.term).label %]
<li><a class="facet_[%tabmodus %][% menu %]" data-key="cql" data-param="type" data-value="[% type.term %]" href="#" rel="nofollow">[% typeName %] ([% type.count %])</a></li>
[% END %]
</ul>
</div>
</li>
[% END %]

[%- IF (facets.author AND facets.author.terms.size || 0) > 1 -%]

[%- query = "id=(" %]
[%- FOREACH au IN facets.author.terms %]
[%- query = query _ au.term %]
[%- UNLESS loop.last %]
[%- query = query _ " OR " %]
[%- END %]
[%- END %]
[%- query = query _ ")" %]
[%- p.q = []; p.q.push(query); p.get_person = 1 %]
[%- authors = h.search_researcher(p) %]
<li>
<button data-toggle="collapse" data-target="#authors_[% tabmodus %][% menu %]" class="btn-link"><span class="glyphicon glyphicon-chevron-down fw"></span>[% h.loc("facets.current_authors") %]</button>
<div class="facettecollapse">
<ul id="authors_[% tabmodus %][% menu %]" class="collapse">
[%- FOREACH au IN facets.author.terms %]
[%- name = authors.item(au.term) %]
<li><a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="author" data-value="[% au.term %]" href="#" rel="nofollow">[% name %] ([% au.count %])</a></li>
[%- END %]
</ul>
</div>
</li>
[%- END %]

[%- IF (facets.editor.terms.size || 0) > 1 -%]

[%- query = "id=(" %]
[%- FOREACH ed IN facets.editor.terms %]
[%- query = query _ ed.term %]
[%- UNLESS loop.last %]
[%- query = query _ " OR " %]
[%- END %]
[%- END %]
[%- query = query _ ")" -%]
[%- p.q = []; p.q.push(query); p.get_person = 1 -%]
[%- editors = h.search_researcher(p) -%]
<li>
<button data-toggle="collapse" data-target="#editors_[% tabmodus %][% menu %]" class="btn-link"><span class="glyphicon glyphicon-chevron-down fw"></span>[% h.loc("facets.current_editors") %]</button>
<div class="facettecollapse">
<ul id="editors_[% tabmodus %][% menu %]" class="collapse">
[%- FOREACH ed IN facets.editor.terms %]
[%- name = editors.item(ed.term) %]
<li><a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="editor" data-value="[% ed.term %]" href="#" rel="nofollow">[% name %] ([% ed.count %])</a></li>
[%- END %]
</ul>
</div>
</li>
[%- END -%]

[%- IF facets.year.terms.size > 1 %]
<li>
<button data-target="#year_[% tabmodus %][% menu %]" data-toggle="collapse" class="btn-link"><span class="glyphicon glyphicon-chevron-down fw"></span>[% h.loc("facets.publishing_year") %]</button>
<div class="facettecollapse">
<ul id="year_[% tabmodus %][% menu %]" class="collapse">
[%- FOREACH y IN facets.year.terms %]
[%- year = (y.term) / 1000; -%]
[%- IF year == 0 -%] [%- yf = '1970' -%][%- ELSE -%][%- yf = date.format(year); -%][%- END -%]
<li><a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="year" data-value="[% yf %]" href="#" rel="nofollow">[% yf %] ([% y.count %])</a></li>
[%- END %]
</ul>
</div>
</li>
[%- END %]
</ul>
[%- END -%]

[%- END -%]

[% IF (facets.popular_science.terms.size || 0) > 0
OR (facets.extern.terms.size || 0) > 0
OR (facets.open_access.terms.size || 0) > 0
OR (facets.isi.terms.size || 0) > 0
OR (facets.pmid.terms.size || 0) > 0 %]

<ul class="nav nav-tabs nav-stacked margin-top1 ul2 helpme" data-placement="left">
[% IF (facets.popular_science.terms.size || 0) > 0 %]
<li class="ul2li1">
[% FOREACH t IN facets.popular_science.terms %]
[% IF t.count < total %]
<a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="popularscience" data-value="1" href="#" rel="nofollow"><span class="glyphicon glyphicon-chevron-right"></span>[% t.count %] [% h.loc("facets.popular_science") %]</a>
[% ELSE %]
<div class="text-success"><span class="glyphicon glyphicon-ok"></span> <strong>[% h.loc("facets.all_popular_science") %]</strong></div>
[% END %]
[% FOR facet_group IN h.config.features.views.item(backend ? 'backend' : 'frontend').publication.facets %]
[% facets_in_group = [] %]
[% FOR f IN facet_group %]
[% NEXT IF (facets.item(f.facet).terms.size || 0) < 2 %]
[% NEXT IF f.roles && (!session.role || !f.roles.grep(session.role).size) %]
[% facets_in_group.push(f) %]
[% END %]
</li>
[% END %]

[% IF (facets.extern.terms.size || 0) > 0 %]
<li class="ul2li2">
[% FOREACH t IN facets.extern.terms %]
[% IF t.count < total %]
<a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="extern" data-value="1" href="#" rel="nofollow"><span class="glyphicon glyphicon-chevron-right"></span>[% t.count %] [% h.loc("facets.external_publication") %]</a>
[% ELSE %]
<div class="text-success"><span class="glyphicon glyphicon-ok"></span> <strong>[% h.loc("facets.all_external_publication") %]</strong></div>
[% END %]
[% END %]
</li>
[% END %]

[% IF (facets.open_access.terms.size || 0) > 0 %]
<li class="ul2li3">
[% FOREACH t IN facets.open_access.terms %]
[% IF t.count < total %]
<a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="fulltext" data-value="1" href="#" rel="nofollow"><span class="glyphicon glyphicon-chevron-right"></span>[% t.count %] [% h.loc("facets.fulltext") %]</a>
[% ELSE %]
<div class="text-success margin-top1-2 margin-bottom1-2"><span class="glyphicon glyphicon-ok"></span> <strong>[% h.loc("facets.all_fulltext") %]</strong></div>
[% END %]
[% END %]
</li>
[% END %]

[% IF (facets.isi.terms.size || 0) > 0 OR (facets.pmid.terms.size || 0) > 0 %]
<li class="ul2li4">
<button data-toggle="collapse" data-target="#extid_[% tabmodus %][% menu %]" class="btn-link"><span class="glyphicon glyphicon-chevron-down fw"></span>[% h.loc("facets.indexed_in") %]</button>
<div class="facettecollapse">
<ul id="extid_[% tabmodus %][% menu %]" class="collapse">
[% IF facets.isi.terms.0.count %]
[% IF facets.isi.terms.0.count < total %]
<li><a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="isi" data-value="1" href="#" rel="nofollow"><span class="glyphicon glyphicon-chevron-right"></span>[% facets.isi.terms.0.count %] Web of Science</a></li>
[% ELSE %]
<div class="text-success margin-top1-2 margin-bottom1-2"><span class="glyphicon glyphicon-ok"></span> <strong>[% h.loc("facets.all_isi") %]</strong></div>
[% END %]
[% END %]
[% IF facets.pmid.terms.0.count %]
[% IF facets.pmid.terms.0.count < total %]
<li><a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="pmid" data-value="1" href="#" rel="nofollow"><span class="glyphicon glyphicon-chevron-right"></span>[% facets.pmid.terms.0.count %] Pubmed</a></li>
[% ELSE %]
<div class="text-success margin-top1-2 margin-bottom1-2"><span class="glyphicon glyphicon-ok"></span> <strong>[% h.loc("facets.all_pubmed") %]</strong></div>
[% END %]
[% NEXT UNLESS facets_in_group.size > 0 %]
<ul class="nav nav-tabs nav-stacked margin-top1 helpme" data-placement="left">
[% FOR facet IN facets_in_group %]
<li>
[% tmpl = facet.template _ '.tt'; INCLUDE $tmpl %]
</li>
[% END %]
</ul>
</div>
</li>
[% END %]
</ul>
[%- END -%]

[%- END %]
<!-- END facets.tt -->
20 changes: 20 additions & 0 deletions views/facets/author.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[%- query = "id=(" %]
[%- FOREACH au IN facets.author.terms %]
[%- query = query _ au.term %]
[%- UNLESS loop.last %]
[%- query = query _ " OR " %]
[%- END %]
[%- END %]
[%- query = query _ ")" %]
[%- p.q = []; p.q.push(query); p.get_person = 1 %]
[%- authors = h.search_researcher(p) %]
<button data-toggle="collapse" data-target="#authors_[% tabmodus %][% menu %]" class="btn-link"><span class="glyphicon glyphicon-chevron-down fw"></span>[% h.loc("facets.current_authors") %]</button>
<div class="facettecollapse">
<ul id="authors_[% tabmodus %][% menu %]" class="collapse">
[%- FOREACH au IN facets.author.terms %]
[%- name = authors.item(au.term) %]
<li><a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="author" data-value="[% au.term %]" href="#" rel="nofollow">[% name %] ([% au.count %])</a></li>
[%- END %]
</ul>
</div>

20 changes: 20 additions & 0 deletions views/facets/department.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<button href="#modal_department" data-toggle="modal" class="btn-link"><span class="glyphicon glyphicon-chevron-left fw"></span>[% h.loc("facets.department") %]</button>
<!-- Modal -->
<div id="modal_department" class="modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span class="fa fa-fw fa-times"></span></button>
<h3 id="ModalExport">[% h.loc("facets.department") %]</h3>
</div>
<div class="modal-body">
[%- TRY %]
[%- INCLUDE department/nodes_backend.tt %]
[%- CATCH %]
You might want to execute 'bin/librecat generate departments'...
[%- END %]
</div>
</div>
</div>
</div>

20 changes: 20 additions & 0 deletions views/facets/editor.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[%- query = "id=(" %]
[%- FOREACH ed IN facets.editor.terms %]
[%- query = query _ ed.term %]
[%- UNLESS loop.last %]
[%- query = query _ " OR " %]
[%- END %]
[%- END %]
[%- query = query _ ")" -%]
[%- p.q = []; p.q.push(query); p.get_person = 1 -%]
[%- editors = h.search_researcher(p) -%]
<button data-toggle="collapse" data-target="#editors_[% tabmodus %][% menu %]" class="btn-link"><span class="glyphicon glyphicon-chevron-down fw"></span>[% h.loc("facets.current_editors") %]</button>
<div class="facettecollapse">
<ul id="editors_[% tabmodus %][% menu %]" class="collapse">
[%- FOREACH ed IN facets.editor.terms %]
[%- name = editors.item(ed.term) %]
<li><a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="editor" data-value="[% ed.term %]" href="#" rel="nofollow">[% name %] ([% ed.count %])</a></li>
[%- END %]
</ul>
</div>

8 changes: 8 additions & 0 deletions views/facets/extern.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[% FOREACH t IN facets.extern.terms %]
[% IF t.count < total %]
<a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="extern" data-value="1" href="#" rel="nofollow"><span class="glyphicon glyphicon-chevron-right"></span>[% t.count %] [% h.loc("facets.external_publication") %]</a>
[% ELSE %]
<div class="text-success"><span class="glyphicon glyphicon-ok"></span> <strong>[% h.loc("facets.all_external_publication") %]</strong></div>
[% END %]
[% END %]

20 changes: 20 additions & 0 deletions views/facets/isi.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<button data-toggle="collapse" data-target="#extid_[% tabmodus %][% menu %]" class="btn-link"><span class="glyphicon glyphicon-chevron-down fw"></span>[% h.loc("facets.indexed_in") %]</button>
<div class="facettecollapse">
<ul id="extid_[% tabmodus %][% menu %]" class="collapse">
[% IF facets.isi.terms.0.count %]
[% IF facets.isi.terms.0.count < total %]
<li><a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="isi" data-value="1" href="#" rel="nofollow"><span class="glyphicon glyphicon-chevron-right"></span>[% facets.isi.terms.0.count %] Web of Science</a></li>
[% ELSE %]
<div class="text-success margin-top1-2 margin-bottom1-2"><span class="glyphicon glyphicon-ok"></span> <strong>[% h.loc("facets.all_isi") %]</strong></div>
[% END %]
[% END %]
[% IF facets.pmid.terms.0.count %]
[% IF facets.pmid.terms.0.count < total %]
<li><a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="pmid" data-value="1" href="#" rel="nofollow"><span class="glyphicon glyphicon-chevron-right"></span>[% facets.pmid.terms.0.count %] Pubmed</a></li>
[% ELSE %]
<div class="text-success margin-top1-2 margin-bottom1-2"><span class="glyphicon glyphicon-ok"></span> <strong>[% h.loc("facets.all_pubmed") %]</strong></div>
[% END %]
[% END %]
</ul>
</div>

7 changes: 7 additions & 0 deletions views/facets/open_access.tt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[% FOREACH t IN facets.open_access.terms %]
[% IF t.count < total %]
<a class="facet_[% tabmodus %][% menu %]" data-key="cql" data-param="fulltext" data-value="1" href="#" rel="nofollow"><span class="glyphicon glyphicon-chevron-right"></span>[% t.count %] [% h.loc("facets.fulltext") %]</a>
[% ELSE %]
<div class="text-success margin-top1-2 margin-bottom1-2"><span class="glyphicon glyphicon-ok"></span> <strong>[% h.loc("facets.all_fulltext") %]</strong></div>
[% END %]
[% END %]

0 comments on commit 8ddc217

Please sign in to comment.