aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2017-10-26 14:26:39 +0100
committerStruan Donald <struan@exo.org.uk>2017-11-06 14:24:23 +0000
commit70a63dd626ee692f024e39a70b7e026ba6b46e84 (patch)
tree89e3ca4b7e0b82ae11bead216280eb05222bdc25
parentb50c652ec42afc1ce33a43925b098287065b3ff2 (diff)
cobrand option to control prefilling of report fields for inspectors
Add a `prefill_report_fields_for_inspectors` config to cobrands, defaulted to 0, to control the automatic pre-population of report fields. Also add default of 1 for UKCouncil cobrand. Fixed #1854
-rw-r--r--CHANGELOG.md1
-rw-r--r--perllib/FixMyStreet/Cobrand/Default.pm2
-rw-r--r--perllib/FixMyStreet/Cobrand/UKCouncils.pm2
-rw-r--r--templates/web/base/report/new/category.html6
-rw-r--r--templates/web/base/report/new/category_wrapper.html6
-rw-r--r--web/cobrands/fixmystreet/fixmystreet.js13
-rw-r--r--web/cobrands/fixmystreet/staff.js6
7 files changed, 26 insertions, 10 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d4ad9a5c7..248d7d773 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,7 @@
- Remove hidden from default staff state dropdown. #1878
- Marking an item as a duplicate enforces providing duplicate id or
a public update #1873
+ - Report field pre-filling for inspectors configurable #1854
* v2.2 (13th September 2017)
- New features:
diff --git a/perllib/FixMyStreet/Cobrand/Default.pm b/perllib/FixMyStreet/Cobrand/Default.pm
index ada1058f5..2ee259b62 100644
--- a/perllib/FixMyStreet/Cobrand/Default.pm
+++ b/perllib/FixMyStreet/Cobrand/Default.pm
@@ -1073,6 +1073,8 @@ sub state_groups_inspect {
sub max_detailed_info_length { 0 }
+sub prefill_report_fields_for_inspector { 0 }
+
=head2 never_confirm_updates
If true then we never send an email to confirm an update
diff --git a/perllib/FixMyStreet/Cobrand/UKCouncils.pm b/perllib/FixMyStreet/Cobrand/UKCouncils.pm
index b82e170b6..661d4a79b 100644
--- a/perllib/FixMyStreet/Cobrand/UKCouncils.pm
+++ b/perllib/FixMyStreet/Cobrand/UKCouncils.pm
@@ -220,4 +220,6 @@ sub available_permissions {
return $perms;
}
+sub prefill_report_fields_for_inspector { 1 }
+
1;
diff --git a/templates/web/base/report/new/category.html b/templates/web/base/report/new/category.html
index b8ebf1653..16f6113f2 100644
--- a/templates/web/base/report/new/category.html
+++ b/templates/web/base/report/new/category.html
@@ -5,7 +5,11 @@
<label for='form_category' id="form_category_label">
[%~ loc('Category') ~%]
</label>[% =%]
- <select class="form-control" name='category' id='form_category' data-role='[% c.user.has_body_permission_to('planned_reports') ? 'inspector' : 'user' %]' data-body='[% c.user.from_body.name %]'>
+ <select class="form-control" name="category" id="form_category"
+ [%~ IF c.user.from_body =%]
+ data-role="[% c.user.has_body_permission_to('planned_reports') ? 'inspector' : 'user' %]" data-body="[% c.user.from_body.name %]" data-prefill="[% c.cobrand.prefill_report_fields_for_inspector %]"
+ [%~ END ~%]
+ >
[%~ FOREACH cat_op IN category_options ~%]
[% cat_op_lc = cat_op.name | lower =%]
<option value='[% cat_op.name | html %]'[% ' selected' IF report.category == cat_op.name || category_lc == cat_op_lc || (category_options.size == 2 AND loop.last) ~%]
diff --git a/templates/web/base/report/new/category_wrapper.html b/templates/web/base/report/new/category_wrapper.html
index 291f5e923..abc44d062 100644
--- a/templates/web/base/report/new/category_wrapper.html
+++ b/templates/web/base/report/new/category_wrapper.html
@@ -1,7 +1,11 @@
<div id="form_category_row">
[% IF js %]
<label for="form_category">[% loc('Category') %]</label>
- <select class="form-control" name="category" id="form_category" data-role="[% c.user.has_body_permission_to('planned_reports') ? 'inspector' : 'user' %]" data-body="[% c.user.from_body.name %]" required><option>[% loc('Loading...') %]</option></select>
+ <select class="form-control" name="category" id="form_category"
+ [%~ IF c.user.from_body =%]
+ data-role="[% c.user.has_body_permission_to('planned_reports') ? 'inspector' : 'user' %]" data-body="[% c.user.from_body.name %]" data-prefill="[% c.cobrand.prefill_report_fields_for_inspector %]"
+ [%~ END =%]
+ required><option>[% loc('Loading...') %]</option></select>
[% ELSE %]
[% IF category_options.size %]
[% IF field_errors.category %]
diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js
index e5066b143..ab4a5137f 100644
--- a/web/cobrands/fixmystreet/fixmystreet.js
+++ b/web/cobrands/fixmystreet/fixmystreet.js
@@ -436,12 +436,11 @@ $.extend(fixmystreet.set_up, {
// Delegation is necessary because #form_category may be replaced during the lifetime of the page
$("#problem_form").on("change.category", "select#form_category", function(){
var args = {
- category: $(this).val()
+ category: $(this).val(),
+ latitude: $('input[name="latitude"]').val(),
+ longitude: $('input[name="longitude"]').val()
};
- args.latitude = $('input[name="latitude"]').val();
- args.longitude = $('input[name="longitude"]').val();
-
$.getJSON('/report/new/category_extras', args, function(data) {
var $category_meta = $('#category_meta');
$('#js-councils_text').html(data.councils_text);
@@ -458,7 +457,11 @@ $.extend(fixmystreet.set_up, {
});
if (fixmystreet.hooks.update_problem_fields) {
- fixmystreet.hooks.update_problem_fields($(this).data('role'), $(this).data('body'), args);
+ args.prefill_reports = $(this).data('prefill');
+ args.role = $(this).data('role');
+ args.body = $(this).data('body');
+
+ fixmystreet.hooks.update_problem_fields(args);
}
});
},
diff --git a/web/cobrands/fixmystreet/staff.js b/web/cobrands/fixmystreet/staff.js
index 48bd36909..32824a563 100644
--- a/web/cobrands/fixmystreet/staff.js
+++ b/web/cobrands/fixmystreet/staff.js
@@ -429,10 +429,10 @@ $.extend(fixmystreet.set_up, {
});
$.extend(fixmystreet.hooks, {
- update_problem_fields: function(role, body, args) {
- if (role == 'inspector') {
+ update_problem_fields: function(args) {
+ if (args.prefill_reports && args.role == 'inspector') {
var title = args.category + ' problem has been scheduled for fixing';
- var description = args.category + ' problem found - scheduled for fixing by ' + body;
+ var description = args.category + ' problem found - scheduled for fixing by ' + args.body;
var $title_field = $('#form_title');
var $description_field = $('#form_detail');