aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2016-11-15 15:14:25 +0000
committerDave Arter <davea@mysociety.org>2016-12-13 15:01:31 +0000
commit5d5d196ef1fdec2bb5c2d444da0126ecb5adeb78 (patch)
tree00e6e7f7741bd0e76da131babecae4ea5ea1df3d
parent93180a49cb9f56cd92c97ea1e22cf5cc9dd7194a (diff)
Display nearby duplicate reports when setting report category to ‘duplicate’
-rw-r--r--templates/web/base/report/_inspect.html5
-rw-r--r--web/cobrands/fixmystreet/fixmystreet.js34
2 files changed, 39 insertions, 0 deletions
diff --git a/templates/web/base/report/_inspect.html b/templates/web/base/report/_inspect.html
index 012411b7e..a09d75d40 100644
--- a/templates/web/base/report/_inspect.html
+++ b/templates/web/base/report/_inspect.html
@@ -76,6 +76,11 @@
[% END %]
</select>
</p>
+ <div id="js-duplicate-reports" class="hidden">
+ <input type="hidden" name="duplicate_of" value="[% problem.get_extra_metadata('duplicate_of') | html %]">
+ Which report is it a duplicate of?
+ <ul></ul>
+ </div>
[% END %]
</div>
diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js
index 1701c5cd0..a7e6f28f0 100644
--- a/web/cobrands/fixmystreet/fixmystreet.js
+++ b/web/cobrands/fixmystreet/fixmystreet.js
@@ -391,6 +391,40 @@ $.extend(fixmystreet.set_up, {
},
+ state_change: function() {
+ // Deal with changes to report state by inspector/other staff, specifically
+ // displaying nearby reports if it's changed to 'duplicate'.
+ $("#report_inspect_form").on("change.state", "select#state", function() {
+ var state = $(this).val();
+
+ if (state !== "duplicate") {
+ $("#js-duplicate-reports").addClass("hidden");
+ $("#js-duplicate-reports ul").empty();
+ return;
+ }
+
+ var args = {
+ state: state,
+ filter_category: $("#report_inspect_form select#category").val()
+ };
+ var bounds = fixmystreet.map.getExtent();
+ bounds.transform(bounds.transform(fixmystreet.map.getProjectionObject(), new OpenLayers.Projection("EPSG:4326")));
+ args.bbox = bounds.toBBOX();
+
+ args.latitude = $('input[name="latitude"]').val();
+ args.longitude = $('input[name="longitude"]').val();
+
+ console.log(args);
+
+ $.getJSON('/ajax', args, function(data) {
+ var $reports = $(data.current);
+ $("#js-duplicate-reports").removeClass("hidden");
+ $reports.slice(0, 5).appendTo($("#js-duplicate-reports ul").empty());
+ });
+ });
+ },
+
+
contribute_as: function() {
$('.content').on('change', '.js-contribute-as', function(){
var opt = this.options[this.selectedIndex],