Code Monkey home page Code Monkey logo

cbsviewer's People

Contributors

bitdeli-chef avatar mprins avatar pmanders avatar waffle-with-pears avatar

Watchers

 avatar

cbsviewer's Issues

oude browsers naar CORE versie verwijzen

Eigenlijk alles <IE7 verwijzen naar de CORE versie.

kan handig met een stukje conditionele css/html en de coreonly parameter

<c:if test="${param.coreonly!=true}">
    <!--[if lt IE 7]> ...ga naar ...want dit werkt niet voor jouw browser.<![endif]-->
</c:if>

transparantie schuifje voor de thema laag

Een transparantie schuifje bovenaan de kaart zou handig zijn.
Met name bij dekkende kaarten is het voor een gebruiker soms moeilijk om zich te orienteren, als er een mogelijkheid is om het thema even uit te zetten of meer doorzichtig te maken maakt dat orientatie makkelijker.

cache verbeteringen

Op dit moment worden alleen de getMap requests van de achtergrond WMS gecached, aangezien de pdok WMS niet vreselijk snel zijn is het zinvol om ook voorgrond kaarten, legenda en eventueel featureinfo een poosje te bewaren.

serverside WMS client

Uit oogunt van toegankelijkheid is een serverside WMS nodig die een niet dynamische kaart genereert als de client geen javascript en/of css ondersteund.

docs/sequence diagrammen

  • Een aantal sequence diagrammen voor typische acties in de applicatie
    • zoek adres
    • vraag informatie over locatie
    • toggle basemap
    • ...
  • Klasse diagrammen in de javadoc

Fix layout v2

  • Search form css
  • Legenda and featureinfo are gone?
  • Some minor issues
  • 403 error local testing

Printen

Een robuust afdruk mechanisme voor de kaart. De enige manier om consistente afdrukken te maken is mbv. PDF.
Hiervoor is een serverside WMS client nodig (#3) die evt. ook WMTS ondersteund.

kaart maximaliseren

in opstartscherm de kaart maximale hoogte en breedte geven in plaats van nu vaste afmeting.

Adres zoeken

Adres zoeken op basis van OpenLS interface van pdok

implementatie url rewriting

Webrichtlijnen schrijven begrijpbare urls voor, dit kan bereikt worden door url-rewriting toe te passen.
Een andere optie is het ebruik van POST ipv. GET requests voor de formulieren, hierdoor is het dan alleen niet meer mogelijk om een bookmark te maken voor een bepaald zoekresultaat.

feature info lokatie niet altijd bovenop

Na het wisselen van een thema/kaartlaag komt de featureinfo lokatie, het i-ikoontje, soms onder de thematische kaart terecht, dat ziet er niet uit en de f-info werkt dan soms niet meer.

parsen van feature info response

De featureinfo response moet geparsed worden zodat er geen ongeldige html wordt opgebouwd.
Op dit moment wordt de volledige html response (een compleet html document) van geoserver in de DOM geinjecteerd.

opties zijn:

  • ander responstype kiezen
  • html respontype blijven hanteren, maar dat opschonen

De beste plek om dit op te lossen is waarschijnlijk in de xhr proxy.

kaart maximaliseren knop

Een toegankelijke toggle button/link oid om de afmeting van de kaart te maximaliseren (en weer te resetten) naar de vrije ruimte van het scherm

pagina heeft geen header

De pagina heeft geen heading (meer), dit is een semantische fout en faalpunt voor een WR toets.

download link

Een link die de integrale dataset als download aanbiedt.

null pointer fout borrelt op uit cache

Af en to borrelt er een NullPointerException op uit de cache, na een page reload komt dat weer goed, maar de RIA zou hier sowieso geen last van hoeven hebben.

dit is niet Jetty of Tomcat specifiek.

stacktrace:

java.lang.NullPointerException at nl.mineleni.cbsviewer.servlet.wms.WMSClientServlet.getForeGroundMap(WMSClientServlet.java:38) at 
nl.mineleni.cbsviewer.servlet.wms.WMSClientServlet.service(WMSClientServlet.java:690) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:648) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.Dispatcher.include(Dispatcher.java:183) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1015) at org.apache.jsp.index_jsp._jspService(index_jsp.java:91) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:648) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:276) at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103) at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:566) at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:648) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:365) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485) at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72) at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:722)

adres onthouden na keuze uit lijst (core)

Als een adreszoek actie meer dat 1 adres oplevert krijgt de gebruiker een lijstje om uit te kiezen, na de keuze (hyperlink) worden de andere zoekresultaten "vergeten" (al zijn ze wel via de terug knop van de browser weer terug te halen)

Het zou mooi zijn om (net als in de enhanced versie) de resultatenlijst beschikbaar te houden.

PDOK geocoder gebruikt sub-nanometer nauwkeurigheid

Maak een workaround die dit probleem oplost want de getallen zijn te groot en slaan nergens op.
bijvoorbeeld: http://geodata.nationaalgeoregister.nl/geocoder/Geocoder?Request=geocode&zoekterm=zeist

Geeft ons de centroiden van de plaats Zeist en de gemeente Zeist:

<xls:GeocodeResponse xmlns:xls="http://www.opengis.net/xls" xmlns:gml="http://www.opengis.net/gml">
<xls:GeocodeResponseList numberOfGeocodedAddresses="2">
<xls:GeocodedAddress>
<gml:Point srsName="EPSG:28992">
<gml:pos dimension="2">145712.4817222344 455574.62760991394</gml:pos>
</gml:Point>
<xls:Address countryCode="NL">
<xls:Place type="MunicipalitySubdivision">Zeist</xls:Place>
<xls:Place type="Municipality">Zeist</xls:Place>
<xls:Place type="CountrySubdivision">Utrecht</xls:Place>
</xls:Address>
</xls:GeocodedAddress>
<xls:GeocodedAddress>
<gml:Point srsName="EPSG:28992">
<gml:pos dimension="2">145954.70832932927 457088.39372074755</gml:pos>
</gml:Point>
<xls:Address countryCode="NL">
<xls:Place type="Municipality">Zeist</xls:Place>
<xls:Place type="CountrySubdivision">Utrecht</xls:Place>
</xls:Address>
</xls:GeocodedAddress>
</xls:GeocodeResponseList>
</xls:GeocodeResponse>

inderdaad met 11 cijfers achter de komma.

gebruik Sass

Door Sass te gebruiken kunnen we makkelijker (skin) aanpassingen doen in de styling van elementen zoals kleur ed. Verder kan er mbv. mixin's makkelijker en beter browser specifieke css (bijv. prefix vormen) worden aangemaakt.

Sass lijkt op dit moment de way-to-go.

basis kaartlaag wisseling

Ik wil kunnen wisselen tussen kaart en luchtfoto voor de achtergrond voor een beter beeld van de omgeving.

adreszoek veld heeft geen label en wissen knop niet logisch bij toetsenbord bediening

De functie van het adreszoek veld is niet direct duidelijk, het lijkt een generiek zoekveld.
Voor WCAG2/WR compliancy dienen input elementen voorzien te zijn van een label element.

WCAG2:

  • Success Criteria 1.3.1 Info and Relationships (A)
  • Success Criteria 3.3.2 Labels or Instructions (A)

De wissen knop krijgt focus volgend op de focus van het tekstveld, hierdoor wordt het per-ongeluk wissen in de hand gewerkt, iets wat niet ongedaan gemaakt kan worden. De melding als er niets of meer dan 1 match zijn gevonden dient waarschijnlijk als foutmelding herkenbaar te zijn.

WCAG2:

  • Success Criteria 3.3.4 Error Prevention (Legal, Financial, Data) (AA)
  • Success Criteria 3.3.3 Error Suggestion (AA)

yuicompressor faalt op jquery.layout.js

De yuicompressor t compiler faalt met een error tijdens het compileren van jquery.layout.js (sinds SHA: 5a91991 )
de melding snap ik niet helemaal, maar het lijkt erop dat het hier gaat om de float: properties, misschien dat een stel aanhalingstekens eromheen dat op kan lossen?
dus: { width: "auto", 'float': "left" } en { 'float': "none" } in plaats van de code zoals die in onderstaande foutmelding staat.

De fout treedt zowel op de Jenkins (http://gisdemo.agro.nl/jenkins/job/CBS-viewer/128/) als de Travis (https://travis-ci.org/#!/MinELenI/CBSviewer/builds/3097019) server op.

18$ mvn install --quiet -DskipTests=true
19[ERROR] .../src/main/webapp/lib/jquery.layout.js:line 1067:column 35:invalid property id
20                      $P.css({ width: "auto", float: "left" }); // float = FORCE pane to auto-size
21[ERROR] .../src/main/webapp/lib/jquery.layout.js:line 1069:column 20:invalid property id
22                      $P.css({ float: "none" }); // RESET
23[ERROR] .../src/main/webapp/lib/jquery.layout.js:line 1:column 0:Compilation produced 2 syntax errors.
24[ERROR] Failed to execute goal net.alchim31.maven:yuicompressor-maven-plugin:1.3.2:compress (default) on project cbsviewer: Execution default of goal net.alchim31.maven:yuicompressor-maven-plugin:1.3.2:compress failed: Compilation produced 2 syntax errors. -> [Help 1]
25[ERROR] 
26[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
27[ERROR] Re-run Maven using the -X switch to enable full debug logging.
28[ERROR] 

het gaat om de regels:
https://github.com/MinELenI/CBSviewer/blob/master/src/main/webapp/lib/jquery.layout.js#L1067 en https://github.com/MinELenI/CBSviewer/blob/master/src/main/webapp/lib/jquery.layout.js#L1069

css voor core nav formulier

Er is nog geen css voor het core navigatie formulier.

ook kijken naar de positie van andere elementen (kaart selector, legenda/info accordion)

cleanup (thread) om vollopen van opslag te voorkomen

De core WMS servlet slaat tijdelijke bestanden op in de webapplicatie om deze naar de client te kunnen serveren, deze worden weliswaar opgeruimd bij afsluiten van de JVM, maar het kan zinvol zijn iets vaker op te ruimen.

help pagina

De help pagina moet geschreven worden om uitleg te geven aan gebruikers.

proxy config versimpelen

Op dit moment zijn er twee manieren van http-proxy configuratie in gebruik:

  • omgevingsvariabelen (commandline)
  • proxy config (web.xml)

Ik wil de laatste laten vallen.

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.