Code Monkey home page Code Monkey logo

pigeonhole's Introduction

pigeonhole's People

Contributors

nickdos avatar djtfmartin avatar

Watchers

James Cloos avatar Peggy Newman avatar Patricia Koh avatar Javier Molina avatar Nat Raisbeck-Brown avatar  avatar  avatar Ely Wallis avatar  avatar

Forkers

linaizhong

pigeonhole's Issues

Scientific name UX is confusing

From @nickdos on October 25, 2015 23:34

As reported by a user - they pasted the scientific name into the name box but did NOT select the autocomplete option (slow connection maybe).

sighting error

This needs fixing to either allow the field to behave as a regular input or some other fix to improve UX.

Copied from original issue: AtlasOfLivingAustralia/sightings#4

Revert to Google maps baselayer

John la Salle has pointed out that the new sighting page does not allow the map to zoom in as far in the satelite view, than the previous version did. This is due to the change to use Open Street Map instead of Google. He also notes the address lookup is better with Google, as is the lat/lng to place name lookups.

Steps required:

  • research usage rules for Google base layer inclusion in Leaflet tool
  • research usage limits for Google base requests per month, etc.
  • consider approaching Google to negotiate a possible agreement if required
  • Implement baselayer change and geocoding lookups using Google if we able to do so.

Date issue with uploaded images

From: Steve D.. [email protected]
Date: Saturday, 28 November 2015 7:58 pm
To: Nick [email protected]
Subject: Re: Help please with account

Still having problems with these files.

The most recent files I’ve uploaded aren’t showing up at all, images that is.
Many of the records I’ve uploaded previously have a strange time stamp on them, the hour is correct but the minute is always wrong, if I go back a couple of months, every “minute” is 08, the progressively over time they change to 09, 10, now they are showing 11.
Not sure what’s going on there.

Edit sighting throws 400 error

Reported by a user (userId 6015):

I’ve just submitted a post, Eulophinae sp. GC2, and tried to edit the record, just by changing uncertain to certain, and couldn’t save it. Got a message about a bad record.

Output from log:

2015-06-19 03:44:23,317 ERROR [WebserviceService] Oops: Unexpected error: 400 : Bad Request
2015-06-19 03:44:23,705 ERROR [HttpWebService] {'error': 'Failed to get json from web service. class java.io.FileNotFoundException http://ecodata-sightings-dev.ala.org.au/ws/record/undefined/images/noImage.jpg 
  URL= http://ecodata-sightings-dev.ala.org.au/ws/record/undefined/images/noImage.jpg.', 'exception': 'java.io.FileNotFoundException: http://ecodata-sightings-dev.ala.org.au/ws/record/undefined/images/noImage.jpg'}
2015-06-19 03:45:34,100 ERROR [HttpWebService] {'error': 'Failed to get json from web service. class java.io.FileNotFoundException http://ecodata-sightings-dev.ala.org.au/ws/record/undefined/images/noImage.jpg 
  URL= http://ecodata-sightings-dev.ala.org.au/ws/record/undefined/images/noImage.jpg.', 'exception': 'java.io.FileNotFoundException: http://ecodata-sightings-dev.ala.org.au/ws/record/undefined/images/noImage.jpg'}

which suggests the undefined/images/noImage.jpg ID is incorrectly being assigned due to the request for the species details for the provided scientificName...

Dev phases

4a. pigeonhole

phase 1 - Nick - 4 weeks
initial page where user select species group, or thematic list (e.g. Weeds)
allow user to specify a location
show images of taxon from the specified group recorded in an area within an adjustable time frame)
show recent records for the selected taxon
environmental outlier check

phase 2 - Nick & Chris - 2 weeks
integration with ecodata for record submission

phase 3 - Nick & Dave B - 2 weeks
integration with taxonoverflow for identification workflow and results

John Tann's suggestion for "identify" page

John's dragonfly wing photos could be automatically tagged in http://images.ala.org.au/ to have a "wing" tag. Then when a person is using the identification tool and gets to the image gallery section, they could be presented with a list of tags which are present in the matching set of images. Clicking on a tag "filters" the image gallery to only display species with images containing that tag.

images missing from old records in the my sighting viewer

"I used to have several photos of my sightings on the Atlas, but now all but one or two have disappeared. Why have they been taken off? In particular I had a beautiful photo of Ctenocolletes smaragdinus on a Verticordia. Where has that gone?"

image is still on the species page and the occurrence record but not visible in the users list of submitted sightings

Identify page display messed up by quotes and double quotes

screenshot 2015-02-24 20 57 50

Example HTML

<a class="cbLink thumbImage tooltips" rel="thumbs" href="http://bie.ala.org.au/species/urn:lsid:biodiversity.org.au:apni.taxon:618022" target="species" data-lsid="urn:lsid:biodiversity.org.au:apni.taxon:618022" data-displayname="Cat" s="" ear="" &mdash;="" <i="">Hypochaeris radicata'&gt;<img src="http://bie.ala.org.au/ws/species/image/small/urn:lsid:biodiversity.org.au:apni.taxon:618022" alt="species thumbnail" onerror="imgError(this);"><div class="meta brief">Cat's Ear</div><div class="meta detail hide">Cat's Ear<br><i>Hypochaeris radicata</i><br>Records: 1</div></a>

Requirement overview

See Sightings & Identification workflow prototypes

  1. pigeonhole - Pre-submission user help in identification

This component will provide a HTML front end tool for identification pre-submission based on the data in the Atlas and any other additional web services that may assist (lists of weeds etc). The flow for the user will be thus:

Allow user to select a high level group (e.g Mammals, Weeds) & a location
Show a list of species (with images) recorded near there within a temporal range (last 10 years)
Upon selecting a species indicate

  • when the last record for the taxon was recorded for that area
  • the nearest record for that taxon in kilometres
  • is the record an environmental outlier
  • would the taxon be considered “sensitive”
  • if the taxon has a conservation status for the stateProvince
    At this stage a user can choose to submit a record or not, with the option of indicating further identification of the record is required.

There is a requirement for traits to be supported during record submission. We propose we defer this to a later stage.

Fish skinned "identify" page

We have good distribution shape files for fish species, thanks to the Fish Map tool (http://fish.ala.org.au). We could therefore simplify the UI to remove the "radius" option from the map section and use the given input location and test which species layers it intersects.

This could be a test-bed for then going a step further and pre-generating predicted distribution layers for terrestrial species, based on the best 5 environmental layers in the SP.

Edit and adding new images to existing record breaks links

To reproduce on http://pigeonhole-dev.ala.org.au:

  1. Submit a record with an image
  2. Edit the record and add a new image & submit

Image display becomes broken in the /recent display and on the Edit screen (on selecting to edit a second time).

Image URLs become:

"http://images-dev.ala.org.au/image/proxyImageThumbnailLarge?imageId=d8484dae-fe9c-4c03-9725-cb3eed8fe3d9,http://pigeonhole-dev.ala.org.au/uploads/image_117726e9-df51-430f-96e1-399358387ac9.jpg"

screenshot 2015-06-17 16 28 08

Convert app to HTTPS

Geolocate is broken in Chrome due to "secure origin" check. Fix is to run app under HTTPS.

Suggestions to record page by Taryn

  • When coming to the record a species pages from a species page, having the search field implies the user needs to enter something...
    • move the species image/details to the left to make it more prominent
    • only show the search input if user removes the current species box (via X)
    • or just make the "to change" text bold to increase prominence
    • or pre-fill search box with current species name to indicate to the user that is has already been done and no action is needed
  • if user chooses a species group and/or subgroup and then clicks the "species suggestion tool", then those values are not passed into the tool. So make this happen.
  • if user comes via species page (LSID in URL) then make the confident checkbox default. Maybe make it default for everything?

Fix links to biocache

URLs use q=*:*&fq=... and when no records are found the message doesn't include the userID. SO the URL in this app should remove the *:* and just have a q param (no fq).

Sighting submit should wait for images to upload in background

Before allowing user to submit sighting, check all images that have been added have finished being uploaded in the background.

Possibly disable submit button or add a spinner to submit button listener and trigger form submit after uploads are complete.

Some sightings are showing "invalid date"

Trying to edit these sightings results in an error page with stacktrace:

2015-11-20 05:27:35,087 ERROR [GrailsExceptionResolver] IllegalArgumentException occurred when processing request: [GET] /edit/e1d6d7b8-10f6-46b7-9d2f-50d17811f48d
Cannot format given Object as a Date. Stacktrace follows:
org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error processing GroovyPageView: Cannot format given Object as a Date

I suspect the date is coming from EXIF data.

My sightings - 2 broken occurrence explorer links

From Taryn:

On the My sightings page, there are three links to the Occurrence explorer, but only the upper one in the bar next to the “report a sighting” button is working.

I can confirm the broken links are:

http://biocache.ala.org.au/occurrences/search?q=*:*&fq=(data_resource_uid:dr1902%20OR%20data_resource_uid:dr1903)&fq=alau_user_id:13

and working link is:

http://biocache.ala.org.au/occurrences/search?q=*:*&fq=data_resource_uid:dr364&fq=alau_user_id:13

Thus the correct link should either be the one above or an OR'ed version:

http://biocache.ala.org.au/occurrences/search?q=*:*&fq=(data_resource_uid:dr1902%20OR%20data_resource_uid:dr1903%20OR%20data_resource_uid:dr364)&fq=alau_user_id:13

sighting location/address lookup bug

Searching for "perth, wa" throws JS error:

Uncaught TypeError: Cannot read property 'southwest' of undefined

AJAX "data" format doesn't always follow same data structure. See

https://api.opencagedata.com/geocode/v1/json?callback=jQuery1111033548867399804294_1434619253016&q=perth%2C+wa&key=577ca677f86a3a4589b17814ec399112&bounds=88.41796875%2C-47.27922900257082%2C179.6484375%2C-4.565473550710278&_=1434619253018

The second "results" array element has a bounds but first doesn't.

Typo in alert

Once a sighting has been submitted, it says:

You sighting was successfully submitted

First word should be "Your" not "You"

Add more context help for "image assisted identification" button

As suggested by Taryn, she thinks there is no "reason" to click this button. Suggestion is to add a line of text above the autocomplete input to hint that a user may want to use this tool.

E.g.

If you know the name of the species, then use the search input below. If you need help identifying the species, then click the button above labelled "image assisted identification"

Outlier checks throwing errors in log

Lots of these errors in tomcat log:

2015-10-26 03:42:35,998 ERROR [WebserviceService] {error=Failed calling web service. Server returned HTTP response code: 500 for URL: http://spatial.ala.org.au/ws/distribution/outliers/urn:lsid:biodiversity.org.au:afd.taxon:3aca9928-daf5-416d-a343-60e194b2c2c2?pointsJson=%7B%22occurrence%22%3A%7B%22decimalLatitude%22%3A-35.2499583333%2C%22decimalLongitude%22%3A149.1611333333%7D%7D URL= http://spatial.ala.org.au/ws/distribution/outliers/urn:lsid:biodiversity.org.au:afd.taxon:3aca9928-daf5-416d-a343-60e194b2c2c2., statusCode=500, detail=<html><head><title>Apache Tomcat/6.0.26 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
        org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:681)
        org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:585)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
        org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
        org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
        org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
        org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
        au.org.ala.web.filter.JsonpFilter.doFilter(JsonpFilter.java:62)
        org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
        org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
</pre></p><p><b>root cause</b> <pre>java.lang.NullPointerException
        au.org.ala.layers.dao.DistributionDAOImpl.identifyOutlierPointsForDistribution(DistributionDAOImpl.java:506)
        au.org.ala.layers.web.DistributionsService.getDistributionOutliers(DistributionsService.java:394)
        sun.reflect.GeneratedMethodAccessor361.invoke(Unknown Source)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

Needs try/catch maybe?

Race condition for uploading multiple images

There seems to be a race condition for uploading multiple images.
To reproduce, create a sighting with multiple images (3 or more) each > 1MB

As soon as the submit button is renabled, hit submit. The outcome is not all of the images end up associated with the record.

Disable expert distribution check

Many users have complained about it being wrong and it seems to not be that useful. Add a config var to disable, so we can change on the fly if needed.

can't add an image without the mandatory fields already being completed

If you click the "Add files" button, a list of errors appears:

There was a problem with one or more fields, please fix these errors (in red)
Species - Either species name is required OR one or more tags AND media files are both required
Date - Date is required
sighting.field.individualCount - individualCount is required
sighting.field.georeferenceProtocol - georeferenceProtocol is required

adding a date resets to blank if the Add files button is clicked again.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.