Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Genesys Backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
45
Issues
45
List
Boards
Labels
Service Desk
Milestones
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Genesys PGR
Genesys Backend
Commits
c8a04238
Commit
c8a04238
authored
May 18, 2017
by
Maxym Borodenko
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WIP: Filter accessions by GeoRegion
parent
cf377060
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
201 additions
and
13 deletions
+201
-13
src/main/java/org/genesys2/server/service/GeoRegionService.java
...in/java/org/genesys2/server/service/GeoRegionService.java
+3
-0
src/main/java/org/genesys2/server/service/impl/GeoRegionServiceImpl.java
...rg/genesys2/server/service/impl/GeoRegionServiceImpl.java
+15
-0
src/main/java/org/genesys2/server/servlet/controller/ExplorerController.java
...enesys2/server/servlet/controller/ExplorerController.java
+104
-12
src/main/resources/content/language.properties
src/main/resources/content/language.properties
+1
-0
src/main/sourceapp/1/js/browse.js
src/main/sourceapp/1/js/browse.js
+13
-0
src/main/sourceapp/1/js/crophub.js
src/main/sourceapp/1/js/crophub.js
+15
-0
src/main/webapp/WEB-INF/jsp/accession/explore2.jsp
src/main/webapp/WEB-INF/jsp/accession/explore2.jsp
+8
-1
src/main/webapp/WEB-INF/jsp/accession/i18n.jsp
src/main/webapp/WEB-INF/jsp/accession/i18n.jsp
+4
-0
src/main/webapp/WEB-INF/tags/filters/filter-list.tag
src/main/webapp/WEB-INF/tags/filters/filter-list.tag
+6
-0
src/main/webapp/WEB-INF/tags/filters/filter.tag
src/main/webapp/WEB-INF/tags/filters/filter.tag
+32
-0
No files found.
src/main/java/org/genesys2/server/service/GeoRegionService.java
View file @
c8a04238
...
...
@@ -7,6 +7,7 @@ import org.xml.sax.SAXException;
import
javax.xml.parsers.ParserConfigurationException
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.Locale
;
public
interface
GeoRegionService
{
...
...
@@ -18,6 +19,8 @@ public interface GeoRegionService {
List
<
GeoRegion
>
findAll
();
List
<
GeoRegion
>
findAll
(
Locale
locale
);
void
updateGeoRegionData
()
throws
IOException
,
ParserConfigurationException
,
SAXException
;
GeoRegion
getRegion
(
Country
country
);
...
...
src/main/java/org/genesys2/server/service/impl/GeoRegionServiceImpl.java
View file @
c8a04238
...
...
@@ -2,7 +2,10 @@ package org.genesys2.server.service.impl;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.Locale
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
...
...
@@ -83,6 +86,18 @@ public class GeoRegionServiceImpl implements GeoRegionService {
return
geoRegionRepository
.
findAll
();
}
@Override
public
List
<
GeoRegion
>
findAll
(
final
Locale
locale
)
{
final
List
<
GeoRegion
>
all
=
findAll
();
Collections
.
sort
(
all
,
new
Comparator
<
GeoRegion
>()
{
@Override
public
int
compare
(
GeoRegion
o1
,
GeoRegion
o2
)
{
return
o1
.
getName
(
locale
).
compareTo
(
o2
.
getName
(
locale
));
}
});
return
all
;
}
@Override
@Transactional
(
readOnly
=
false
)
public
void
updateGeoRegionData
()
throws
IOException
,
ParserConfigurationException
,
SAXException
{
...
...
src/main/java/org/genesys2/server/servlet/controller/ExplorerController.java
View file @
c8a04238
This diff is collapsed.
Click to expand it.
src/main/resources/content/language.properties
View file @
c8a04238
...
...
@@ -430,6 +430,7 @@ filter.seqNo=Detected sequential number
filter.alias
=
Accession name
filter.crops
=
Crop name
filter.cropName
=
Provided crop name
filter.regionOfOrigin
=
Region of Origin
filter.orgCty.iso3
=
Country of Origin
filter.institute.code
=
Holding Institute name
filter.institute.country.iso3
=
Country of holding institute
...
...
src/main/sourceapp/1/js/browse.js
View file @
c8a04238
...
...
@@ -77,6 +77,19 @@ var BrowseUtil = {
},
applySuggestions
:
function
(
jsonData
,
messages
)
{
$
.
ajax
({
url
:
'
/explore/transformedFilters
'
,
method
:
'
get
'
,
data
:
{
filter
:
JSON
.
stringify
(
jsonData
)
},
success
:
function
(
response
)
{
BrowseUtil
.
refreshSuggestions
(
response
,
messages
);
}
});
},
refreshSuggestions
:
function
(
jsonData
,
messages
)
{
$
.
ajax
({
url
:
'
/explore/listFilterSuggestions
'
,
method
:
'
get
'
,
...
...
src/main/sourceapp/1/js/crophub.js
View file @
c8a04238
...
...
@@ -372,6 +372,21 @@ var GenesysFilterUtil = {
var
GenesysFilter
=
{
normKey
:
GenesysFilterUtil
.
normKey
,
// add filter with select option
filterSelectList
:
function
(
element
,
jsonData
)
{
var
key
=
$
(
element
).
attr
(
'
i-key
'
);
var
optionSelected
=
element
.
find
(
'
option:selected
'
);
var
valueSelected
=
optionSelected
.
val
();
var
textSelected
=
optionSelected
.
text
();
if
(
!
GenesysFilterUtil
.
existInJson
(
valueSelected
,
key
,
jsonData
))
{
GenesysFilterUtil
.
appendHtml
(
key
,
textSelected
,
valueSelected
,
element
);
jsonData
[
key
]
=
GenesysFilterUtil
.
collectData
(
key
,
valueSelected
,
jsonData
);
$
(
'
.geo-switcher option
'
).
removeAttr
(
'
selected
'
).
filter
(
'
[value=empty]
'
).
attr
(
'
selected
'
,
true
);
}
return
jsonData
;
},
// add filter with autocomplete or exact field
filterAutocomplete
:
function
(
element
,
jsonData
)
{
...
...
src/main/webapp/WEB-INF/jsp/accession/explore2.jsp
View file @
c8a04238
...
...
@@ -49,7 +49,7 @@
<!--Filters-->
<filters:filter
-list availableFilters="${availableFilters}" filters="${filters}"
additionalFilters="${additionalFilters}" appliedFilters="${appliedFilters}"
crops="${crops}" crop="${crop}"
/>
crops="${crops}" crop="${crop}"
geoRegions="${geoRegions}"
/>
<!--List-->
<div
class=
"col-lg-10 col-md-9 col-sm-9 col-xs-12 main-col-header"
>
<div
class=
"nav-header clearfix"
>
...
...
@@ -352,6 +352,13 @@
}
});
$
(
"
body
"
).
on
(
"
change
"
,
"
.geo-switcher
"
,
function
()
{
if
(
jsonData
[
$
(
this
).
attr
(
"
i-key
"
)]
===
undefined
)
{
BrowseUtil
.
enableFilter
(
this
,
jsonData
);
}
GenesysFilter
.
filterSelectList
(
$
(
this
),
jsonData
);
});
$
(
"
body
"
).
on
(
"
click
"
,
"
.filter-list
"
,
function
()
{
if
(
jsonData
[
$
(
this
).
attr
(
"
i-key
"
)]
===
undefined
)
{
BrowseUtil
.
enableFilter
(
this
,
jsonData
);
...
...
src/main/webapp/WEB-INF/jsp/accession/i18n.jsp
View file @
c8a04238
...
...
@@ -11,6 +11,10 @@ var messages = new Array();
messages["geo.iso3166-3.
<spring:message
text=
'
${
country
.
getCode3
()
}
'
javaScriptEscape=
'true'
/>
"] = "
<c:out
value=
'
${
country
.
getName
(
locale
)
}
'
/>
";
</c:forEach>
<c:forEach
var=
"geoRegion"
items=
"
${
geoRegions
}
"
>
messages["
<spring:message
text=
'
${
geoRegion
.
getName
()
}
'
javaScriptEscape=
'true'
/>
"] = "
<c:out
value=
'
${
geoRegion
.
getName
(
locale
)
}
'
/>
";
</c:forEach>
<c:forEach
items=
"
${
cropsNames
}
"
var=
"cropName"
>
messages["${cropName.key}"] = "${cropName.value}";
</c:forEach>
\ No newline at end of file
src/main/webapp/WEB-INF/tags/filters/filter-list.tag
View file @
c8a04238
...
...
@@ -4,6 +4,7 @@
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ attribute name="geoRegions" required="true" type="java.util.List" %>
<%@ attribute name="additionalFilters" required="false" type="java.util.List" %>
<%@ attribute name="availableFilters" required="true" type="java.util.Map" %>
<%@ attribute name="filters" required="true" type="java.util.Map" %>
...
...
@@ -104,6 +105,11 @@
appliedFilters="${appliedFilters}" type="option"/>
</filters:panel>
<filters:panel id="regionOfOrigin" title="filter.regionOfOrigin">
<filters:filter availableFilters="${availableFilters}" filterMap="${filters}" filterKey="cropName"
appliedFilters="${appliedFilters}" geoRegions="${geoRegions}" type="geoSelect"/>
</filters:panel>
<filters:panel id="origcty" title="filter.orgCty.iso3">
<filters:filter availableFilters="${availableFilters}" filterMap="${filters}"
filterKey="orgCty.iso3"
...
...
src/main/webapp/WEB-INF/tags/filters/filter.tag
View file @
c8a04238
...
...
@@ -13,6 +13,7 @@
<%@ attribute name="type" required="true" type="java.lang.String" %>
<%@ attribute name="cropList" required="false" type="java.util.Map" %>
<%@ attribute name="currentCrop" required="false" type="org.genesys2.server.model.impl.Crop" %>
<%@ attribute name="geoRegions" required="false" type="java.util.List" %>
<spring:message code="filter.internal.message.between" var="between" arguments=" "/>
<spring:message code="filter.internal.message.and" var="varEnd" arguments=" "/>
...
...
@@ -26,6 +27,7 @@
<c:set var="filter" value="${availableFilters[filterKey]}"/>
<c:set var="normalizedKey" value="${filter.key.replace('.', '-').replace(':', '_')}"/>
<c:set var="appliedFilter" value="${appliedFilters.get(filter.key)}"/>
<c:set var="localeCode" value='"${pageContext.response.locale}"' />
<div id="collapse_filt_${filterKey}" class="${filterKey} col-xs-12">
...
...
@@ -46,6 +48,36 @@
</c:forEach>
<!-- </select> -->
</c:when>
<c:when test="${type eq 'geoSelect'}">
<span class="glyphicon glyphicon-menu-down"></span>
<select class="form-control geo-switcher" i-key="geoRegions" >
<option value="empty"></option>
<c:forEach items="${geoRegions}" var="geoRegion">
<c:if test="${geoRegion.parentRegion eq null}">
<c:set var="string" value="${geoRegion.nameL}"/>
<c:set var="index" value="${fn:indexOf(string, localeCode )}"/>
<c:set var="string" value="${fn:substring(geoRegion.nameL, index, fn:length(geoRegion.nameL))}" />
<c:set var="string" value="${fn:substring(string, 6, fn:length(geoRegion.nameL))}" />
<c:set var="index" value="${fn:indexOf(string, '\"' )}"/>
<c:set var="string" value="${fn:substring(string, 0, index)}" />
<optgroup label="${string}">
<c:forEach items="${geoRegions}" var="subRegion">
<c:remove var="string"/>
<c:if test="${subRegion.parentRegion.name eq geoRegion.name}">
<c:set var="string" value="${subRegion.nameL}"/>
<c:set var="index" value="${fn:indexOf(string, localeCode )}"/>
<c:set var ="string" value="${fn:substring(subRegion.nameL, index, fn:length(subRegion.nameL))}" />
<c:set var="string" value="${fn:substring(string, 6, fn:length(subRegion.nameL))}" />
<c:set var="index" value="${fn:indexOf(string, '\"' )}"/>
<c:set var="string" value="${fn:substring(string, 0, index)}" />
<option value="${subRegion.isoCode}">${string}</option>
</c:if>
</c:forEach>
</optgroup>
</c:if>
</c:forEach>
</select>
</c:when>
<c:when test="${type eq 'like'}">
<span class="glyphicon glyphicon-menu-down"></span>
<select class="form-control like-switcher">
...
...
Maxym Borodenko
@mborodenko
mentioned in issue
#25 (closed)
·
May 18, 2017
mentioned in issue
#25 (closed)
mentioned in issue #25
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment