| Commit message (Collapse) | Author | Age | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On a mobile device that implements pointer events, there are two events that
can happen on an /around page – touching the map starts a new report (or goes
back to the map if already on a report page); touching a pin pulls in that
report’s page. The map touch, which uses an OpenLayers.Handler.Click, operates
on click, whereas the pin touch, which uses an OpenLayers.Handler.Feature,
operates on touchstart. Neither event cancels the other, which means you can
end up either starting a new report, and then it tries to pull in an undefined
pin ID report and errors, or the pin report loads and then you instantly go
back to the map page.
In order to work around this, we disable the map click control when the feature
control event starts, and reactivate once the report data has been loaded.
|
|
|
|
|
|
|
|
|
| |
Going back to /around from /report/new can trigger loadend (and the
spinner hiding function) twice (if the strategy activation starts a
read), with triggerRead aborting that read and triggering the event
itself. This means the spinner is not displayed, as the count falls
below 0. We could pin the count above 0, but instead let’s log each
layer ID while ‘active’ and switch off when they’re all gone.
|
| |
|
| |
|
| |
|
|
|
|
| |
This is already defined in fixmystreet.utils further up.
|
|
|
|
|
| |
If a layer has an attribution option then add it to the attribution
control when the layer becomes visible.
|
|
|
|
|
| |
Fixes positioning bugs in all versions of IE due
to calculating the wrong horizontal position.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The "coerce pin ID to integer" behaviour to fix a previous issue was
coercing undefined to NaN, which then caused other problems with the
new report pin, such as fading out when hovered, and being the wrong
size.
Also improve the cursor handling, showing the grab/ grabbing cursors
where available.
|
|
|
|
|
|
| |
If you started a new report by clicking the map before the
server had responded with the map list pins, when they did
arrive they would replace the new report pin.
|
|
|
|
| |
Remove 'hooks' functions, and Split out USRN handling to its own object.
|
| |
|
|
|
|
|
|
|
|
|
| |
Y-axis labels in the Dashboard ranking tables now break onto multiple
lines if they are more than 4 words long.
/web/vendor/chart.min.js showing as modified because we updated it to
include a recent fix to label alignment on vertical scales:
https://github.com/mysociety/Chart.js/commit/4130c31
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some cobrands require reports to include the USRN of the clicked
road. This commit allows an asset layer to be added and designated
as a 'USRN provider' by setting its `usrn_field` property when calling
fixmystreet.assets.add.
Initially this feature used OpenLayers' getFeatureFromEvent method,
however that doesn't work if the layer isn't topmost. This is because it
uses the clicked element in the DOM to determine which feature was
clicked. This doesn't work if the layer you're trying to get the feature
from wasn't actually the DOM element that was clicked.
Instead, we add a new method, OpenLayers.Layer.Vector.getFeatureAtPoint
method which takes a Point object and iterates through the features'
geometries to find the matching point.
To make things a little more user-friendly, if an asset isn't clicked
directly we find the closest to the clicked point and use that for the
USRN. To accomplish this, this commit factors out the ‘select nearest
asset’ code into a new method OpenLayers.Layer.Vector.getNearestFeature,
which takes a Point and a distance threshold and finds the nearest
feature.
|
| |
|
| |
|
| |
|
|
|
|
| |
The photo JavaScript needs including in case a report is pulled in.
|
|
|
|
|
| |
This also fixes an inconsistency between what you can see on the map and the
list of reports underneath.
|
|
|
|
| |
The /my page uses a Fixed strategy which cannot do this.
|
| |
|
|
|
|
| |
This prevents e.g. the all reports graph dipping down.
|
|\ |
|
|/
|
|
|
| |
This uses an IntersectionObserver, which currently works in Chrome, Edge, and
Firefox.
|
|
|
|
|
| |
As colours.length increased as colours were added,
it would always return the first entry.
|
| |
|
| |
|
|
|
|
| |
An experiment towards fixing #525.
|
|
|
|
|
|
| |
The location disambiguation page uses the frontpage JavaScript and has
lots of links pointing to /around, so the code should make sure those
links include the `js` parameter.
|
|
|
|
|
|
|
| |
Modern browsers disable geolocation on non-HTTPS pages, but
sadly still report it as available with the `navigator.geolocation`
object. This commit adds a check for HTTPS and hides the link
if it won’t work.
|
|
|
|
|
| |
The multi-select plugin is a separate project, and should be treated as
a vendor file.
|
|
|
|
|
|
|
| |
In particular, this lets us ensure only one multiselect can be open at
a time – for example in the "Show [X] reports about [Y]" list filters.
Fixes mysociety/fixmystreetforcouncils#247.
|
|\
| |
| |
| | |
Updated geolocation.js with concurrent changes.
|
| |
| |
| |
| |
| |
| | |
By creating a small file with only what is needed (focus, js flagging),
we can drop loading jQuery and all the application JavaScript on the
front page, prefetching them instead.
|
|/ |
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
/around will now show all reports all the time, but we are about to
introduce pagination to stop that.
|
| |
| |
| |
| |
| | |
Both /reports and /my work by using the same URL with ajax=1. We should
use the same on /around for consistency.
|
|/ |
|
|
|
|
|
|
|
|
|
| |
The upgrade to OpenLayers in 31b8337e3 was not accompanied by fixing
the tileOrigin manually tweaked as an old workaround. This moved the
map c. 100m out of alignment.
Bristol fixed this in a7f60abb by adding topLeftCorners, but this is
better done by fixing origin_x/y.
|
|
|
|
|
|
|
|
|
|
| |
The JavaScript assumes it is, but due to a string comparison in
DBIx::Class [1] when a has_many prefetch is in use (as it is on
a /reports page when a shortlist-using staff user is logged in)
all IDs bar the first were being given an internal string value
and JSON encoding was outputting them as a string.
[1] https://github.com/dbsrgits/dbix-class/blob/v0.08209/lib/DBIx/Class/ResultSet.pm#L1331
|
| |
|
|
|
|
|
| |
The change in 17e38922 would not deal with the URL construted by the
map permalink code, or the redirect after inspection.
|
|
|
|
|
| |
If the list was replaced by JavaScript, the event handlers were being
dropped. Switch the handlers to the parent that remains present.
|
|
|
|
|
| |
Both /reports and /my share an ID and a /reports/ajax function, use
these also on /around (and share ajax/non-ajax code).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A seemingly unrelated change in ef6ffbdb was causing JS errors
on the /reports page which meant the map loading spinner
was permanently present. This commit fixes that, and also fixes
another bug which was uncovered where the ?ajax=1 param was
being ignored by the Zürich /reports page, leading to HTML
being returned and another JS error.
The call to `new OpenLayers.Bounds` in
OpenLayers.Strategy.FixMyStreet.getMapBounds was causing
three of the 4 bounds params to be lost when run on OpenLayers
2.11, as this version doesn’t accept an array to the Bounds
constructor. This in turn was using an invalid `bbox` parameter
(only the west value was present) in the AJAX call to /reports
which returned a 500 error. This then crashed the JS and caused
the loading spinner to get stuck.
|
| |
|