aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--t/app/controller/report_new.t2
-rw-r--r--templates/web/base/report/new/category.html20
-rw-r--r--templates/web/eastsussex/report/new/category.html20
-rw-r--r--templates/web/seesomething/report/new/category.html21
-rw-r--r--web/cobrands/fixmystreet/fixmystreet.js13
-rw-r--r--web/js/map-OpenLayers.js33
6 files changed, 71 insertions, 38 deletions
diff --git a/t/app/controller/report_new.t b/t/app/controller/report_new.t
index 9b10de2bf..6ea4c9523 100644
--- a/t/app/controller/report_new.t
+++ b/t/app/controller/report_new.t
@@ -85,7 +85,7 @@ my $contact6 = $mech->create_contact_ok(
);
my $contact7 = $mech->create_contact_ok(
body_id => $body_ids{2227}, # Hampshire
- category => 'Street lighting',
+ category => 'Street lighting',
email => 'highways@example.com',
);
my $contact8 = $mech->create_contact_ok(
diff --git a/templates/web/base/report/new/category.html b/templates/web/base/report/new/category.html
index 8cfbecdcd..ba6347d39 100644
--- a/templates/web/base/report/new/category.html
+++ b/templates/web/base/report/new/category.html
@@ -1,17 +1,15 @@
-[% FILTER collapse %]
-[% IF category_options.size %]
+[% IF category_options.size ~%]
[% IF category;
category = category | lower;
- END; %]
+ END; ~%]
<label for='form_category' id="form_category_label">
- [%- loc('Category') %]
- </label>
+ [%~ loc('Category') ~%]
+ </label>[% =%]
<select name='category' id='form_category'>
- [% FOREACH cat_op IN category_options %]
- [% cat_op_lc = cat_op | lower %]
- <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op || category == cat_op_lc || (category_options.size == 2 AND loop.last) -%]
+ [%~ FOREACH cat_op IN category_options ~%]
+ [% cat_op_lc = cat_op | lower =%]
+ <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op || category == cat_op_lc || (category_options.size == 2 AND loop.last) ~%]
>[% IF loop.first %][% cat_op %][% ELSE %][% cat_op | html %][% END %]</option>
- [% END %]
+ [%~ END =%]
</select>
-[% END %]
-[% END -%]
+[%~ END ~%]
diff --git a/templates/web/eastsussex/report/new/category.html b/templates/web/eastsussex/report/new/category.html
index e4a7ed456..3c2ff4c36 100644
--- a/templates/web/eastsussex/report/new/category.html
+++ b/templates/web/eastsussex/report/new/category.html
@@ -1,18 +1,16 @@
-[% FILTER collapse %]
-[% IF category_options.size %]
+[% IF category_options.size ~%]
[% IF category;
category = category | lower;
- END; %]
+ END; ~%]
<label for='form_category' id="form_category_label">
Type
- </label>
+ </label>[% =%]
<select name='category' id='form_category'>
- [% FOREACH cat_op IN category_options %]
- [% cat_op_lc = cat_op | lower %]
- [% IF loop.first; cat_op = '-- Pick a type --'; END %]
- <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op || category == cat_op_lc || (category_options.size == 2 AND loop.last) -%]
+ [%~ FOREACH cat_op IN category_options ~%]
+ [% cat_op_lc = cat_op | lower =%]
+ [% IF loop.first; cat_op = '-- Pick a type --'; END ~%]
+ <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op || category == cat_op_lc || (category_options.size == 2 AND loop.last) ~%]
>[% IF loop.first %][% cat_op %][% ELSE %][% cat_op | html %][% END %]</option>
- [% END %]
+ [%~ END =%]
</select>
-[% END %]
-[% END -%]
+[%~ END ~%]
diff --git a/templates/web/seesomething/report/new/category.html b/templates/web/seesomething/report/new/category.html
index 691c38497..4b0589e17 100644
--- a/templates/web/seesomething/report/new/category.html
+++ b/templates/web/seesomething/report/new/category.html
@@ -1,14 +1,15 @@
-[% FILTER collapse %]
-[% IF category_options.size %]
+[% IF category_options.size ~%]
[% IF category;
category = category | lower;
- END; %]
- <label for='form_category' class="select">[% loc('Category') %]</label>
+ END; ~%]
+ <label for='form_category' class="select">
+ [%~ loc('Category') ~%]
+ </label>[% =%]
<select name='category' data-theme="c" id='form_category'>
- [% FOREACH cat_op IN category_options %]
- [% cat_op_lc = cat_op | lower %]
- <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op || category == cat_op_lc %]>[% cat_op | html %]</option>
- [% END %]
+ [%~ FOREACH cat_op IN category_options ~%]
+ [% cat_op_lc = cat_op | lower =%]
+ <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op || category == cat_op_lc ~%]
+ >[% cat_op | html %]</option>
+ [%~ END =%]
</select>
-[% END %]
-[% END -%]
+[%~ END ~%]
diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js
index c74ae1ba2..acdfc869d 100644
--- a/web/cobrands/fixmystreet/fixmystreet.js
+++ b/web/cobrands/fixmystreet/fixmystreet.js
@@ -684,7 +684,12 @@ $.extend(fixmystreet.set_up, {
ajax_history: function() {
$('#map_sidebar').on('click', '.item-list--reports a', function(e) {
+ if (e.metaKey || e.ctrlKey) {
+ return;
+ }
+
e.preventDefault();
+
var reportPageUrl = $(this).attr('href');
var reportId = parseInt(reportPageUrl.replace(/^.*\/([0-9]+)$/, '$1'), 10);
@@ -714,6 +719,10 @@ $.extend(fixmystreet.set_up, {
});
$('#map_sidebar').on('click', '.js-back-to-report-list', function(e) {
+ if (e.metaKey || e.ctrlKey) {
+ return;
+ }
+
e.preventDefault();
var reportListUrl = $(this).attr('href');
fixmystreet.display.reports_list(reportListUrl, function() {
@@ -896,7 +905,6 @@ fixmystreet.display = {
var found = html.match(/<title>([\s\S]*?)<\/title>/);
var page_title = found[1];
- document.title = page_title;
fixmystreet.page = 'report';
fixmystreet.mobile_reporting.remove_ui();
@@ -937,6 +945,7 @@ fixmystreet.display = {
if (typeof callback === 'function') {
callback();
}
+ document.title = page_title;
} else {
window.location.href = reportPageUrl;
@@ -959,7 +968,6 @@ fixmystreet.display = {
$('body').removeClass('with-notes');
- document.title = fixmystreet.original.title;
fixmystreet.page = fixmystreet.original.page;
if ($('html').hasClass('mobile') && fixmystreet.page == 'around') {
$('#mob_sub_map_links').remove();
@@ -981,6 +989,7 @@ fixmystreet.display = {
if (typeof callback === 'function') {
callback();
}
+ document.title = fixmystreet.original.title;
} else {
window.location.href = reportListUrl;
diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js
index e1f152820..992037a2f 100644
--- a/web/js/map-OpenLayers.js
+++ b/web/js/map-OpenLayers.js
@@ -202,9 +202,36 @@ var fixmystreet = fixmystreet || {};
}
}
- function marker_click(problem_id) {
+ function marker_click(problem_id, evt) {
var $a = $('.item-list--reports a[href$="/' + problem_id + '"]');
- $a[0] && $a[0].click();
+ if (!$a[0]) {
+ return;
+ }
+
+ // All of this, just so that ctrl/cmd-click on a pin works?!
+ var event;
+ if (window.MouseEvent) {
+ event = new MouseEvent('click', evt);
+ $a[0].dispatchEvent(event);
+ } else if (document.createEvent) {
+ event = document.createEvent("MouseEvents");
+ event.initMouseEvent(
+ 'click', true, true, window, 1,
+ 0, 0, 0, 0,
+ evt.ctrlKey, evt.altKey, evt.shiftKey, evt.metaKey,
+ 0, null);
+ $a[0].dispatchEvent(event);
+ } else if (document.createEventObject) {
+ event = document.createEventObject();
+ event.metaKey = evt.metaKey;
+ event.ctrlKey = evt.ctrlKey;
+ if (e.metaKey === undefined) {
+ e.metaKey = e.ctrlKey;
+ }
+ $a[0].fireEvent("onclick", event);
+ } else {
+ $a[0].click();
+ }
}
function categories_or_status_changed() {
@@ -331,7 +358,7 @@ var fixmystreet = fixmystreet || {};
// Override clickFeature so that we can use it even though
// hover is true. http://gis.stackexchange.com/a/155675
clickFeature: function (feature) {
- marker_click(feature.attributes.id);
+ marker_click(feature.attributes.id, this.handlers.feature.evt);
},
overFeature: function (feature) {
if (fixmystreet.latest_map_hover_event != 'overFeature') {