Skip to content

Commit

Permalink
reuse search:public data property to configure know values public vis…
Browse files Browse the repository at this point in the history
…ibility
  • Loading branch information
litvinovg committed Aug 28, 2023
1 parent 17763f1 commit 1379f71
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 71 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,70 +3,84 @@
import org.apache.jena.rdf.model.RDFNode;

public class FilterValue {

private String id;
private String name = "";
private int order;

private long count;

private boolean selected = false;

private boolean defaultPublic;

public FilterValue(String id) {
this.id = id;
}

public boolean isDefaultPublic() {
return defaultPublic;
}

public String getName() {
return name;
}

public void setName(String label) {
this.name = label;
}

public void setName(RDFNode rdfNode) {
if (rdfNode != null) {
name = rdfNode.asLiteral().getLexicalForm();
}
}

public Integer getOrder() {
return order;
}

public void setOrder(RDFNode rdfNode) {
if (rdfNode != null) {
order = rdfNode.asLiteral().getInt();
}
}

public String getId() {
return id;
}

public void setCount(long count) {
this.count = count;
}

public long getCount() {
return count;
}

public void setSelected(boolean value) {
this.selected = value;
}

public boolean getSelected() {
return selected;
}

public void setDefaultPublic(boolean b) {
defaultPublic = b;
}

private String id;
private String name = "";
private int order;

private long count;

private boolean selected = false;

private boolean defaultPublic;

private boolean publiclyAvailable = true;

public boolean isPubliclyAvailable() {
return publiclyAvailable;
}

public void setPubliclyAvailable(RDFNode rdfNode) {
if (rdfNode != null && rdfNode.isLiteral()) {
publiclyAvailable = rdfNode.asLiteral().getBoolean();
} else {
publiclyAvailable = false;
}
}

public FilterValue(String id) {
this.id = id;
}

public boolean isDefaultPublic() {
return defaultPublic;
}

public String getName() {
return name;
}

public void setName(String label) {
this.name = label;
}

public void setName(RDFNode rdfNode) {
if (rdfNode != null) {
name = rdfNode.asLiteral().getLexicalForm();
}
}

public Integer getOrder() {
return order;
}

public void setOrder(RDFNode rdfNode) {
if (rdfNode != null) {
order = rdfNode.asLiteral().getInt();
}
}

public String getId() {
return id;
}

public void setCount(long count) {
this.count = count;
}

public long getCount() {
return count;
}

public void setSelected(boolean value) {
this.selected = value;
}

public boolean getSelected() {
return selected;
}

public void setDefaultPublic(boolean b) {
defaultPublic = b;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public class SearchFiltering {
+ " PREFIX gesah: <http://ontology.tib.eu/gesah/>\n"
+ " PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
+ " PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n"
+ "SELECT ?filter_id ?filter_type ?filter_label ?value_label ?value_id ?field_name ?public ?filter_order ?value_order (STR(?isUriReq) as ?isUri ) ?multivalued ?input ?regex ?facet ?min ?max ?public_default ?more_limit \n"
+ "SELECT ?filter_id ?filter_type ?filter_label ?value_label ?value_id ?field_name ?public ?filter_order ?value_order (STR(?isUriReq) as ?isUri ) ?multivalued ?input ?regex ?facet ?min ?max ?public_default ?value_public ?more_limit \n"
+ " WHERE {\n"
+ " ?filter rdf:type search:Filter .\n"
+ " ?filter rdfs:label ?filter_label .\n"
Expand All @@ -68,6 +68,9 @@ public class SearchFiltering {
+ " OPTIONAL {"
+ " ?value search:defaultPublic ?public_default ."
+ " }"
+ " OPTIONAL {"
+ " ?value search:public ?value_public ."
+ " }"
+ " }\n"
+ " OPTIONAL {?field search:multivalued ?multivalued}\n"
+ " OPTIONAL {?filter search:isUriValues ?isUriReq }\n"
Expand Down Expand Up @@ -299,6 +302,7 @@ static Map<String, SearchFilter> readFilterConfigurations(VitroRequest vreq) {
FilterValue value = new FilterValue(valueId);
value.setName(solution.get("value_label"));
value.setOrder(solution.get("value_order"));
value.setPubliclyAvailable(solution.get("value_public"));
filter.addValue(value);
RDFNode pubDefault = solution.get("public_default");
if (pubDefault != null && pubDefault.asLiteral().getBoolean() && isNotLoggedIn(vreq)){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ search:hasKnownValue a owl:ObjectProperty ;

search:public a owl:DatatypeProperty , owl:FunctionalProperty ;
rdfs:domain [ a owl:Class ;
owl:unionOf ( search:Filter search:FilterGroup )
owl:unionOf ( search:Filter search:FilterGroup search:FilterValue )
] ;
rdfs:range xsd:boolean .

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -321,9 +321,11 @@ ${headScripts.add('<script type="text/javascript" src="${urls.base}/js/bootstrap
<#if filter.moreLimit = valueNumber - 1 >
<#assign additionalLabels = true>
<a class="more-facets-link" href="javascript:void(0);" onclick="expandSearchOptions(this)">${i18n().paging_link_more}</a>
</#if>
${getInput(filter, v, getValueID(filter.id, valueNumber), valueNumber)}
${getLabel(valueNumber, v, filter, additionalLabels)}
</#if>
<#if user.loggedIn || v.publiclyAvailable>
${getInput(filter, v, getValueID(filter.id, valueNumber), valueNumber)}
${getLabel(valueNumber, v, filter, additionalLabels)}
</#if>
</#if>
<#assign valueNumber = valueNumber + 1>

Expand Down

0 comments on commit 1379f71

Please sign in to comment.