aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--templates/web/base/report/new/category.html2
-rw-r--r--templates/web/base/report/new/category_wrapper.html2
-rw-r--r--web/cobrands/fixmystreet/fixmystreet.js6
-rw-r--r--web/cobrands/fixmystreet/staff.js26
4 files changed, 34 insertions, 2 deletions
diff --git a/templates/web/base/report/new/category.html b/templates/web/base/report/new/category.html
index d63649083..4c66f00fb 100644
--- a/templates/web/base/report/new/category.html
+++ b/templates/web/base/report/new/category.html
@@ -5,7 +5,7 @@
<label for='form_category' id="form_category_label">
[%~ loc('Category') ~%]
</label>[% =%]
- <select class="form-control" name='category' id='form_category'>
+ <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 %]'>
[%~ FOREACH cat_op IN category_options ~%]
[% cat_op_lc = cat_op | lower =%]
<option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op || 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 9f628c44e..7c1ef980b 100644
--- a/templates/web/base/report/new/category_wrapper.html
+++ b/templates/web/base/report/new/category_wrapper.html
@@ -1,7 +1,7 @@
<div id="form_category_row">
[% IF js %]
<label for="form_category">[% loc('Category') %]</label>
- <select class="form-control" name="category" id="form_category" required><option>[% loc('Loading...') %]</option></select>
+ <select class="form-control" name="category" id="form_category" data-role="[% c.user_exists AND c.user.has_body_permission_to('planned_reports') ? 'inspector' : 'user' %]" data-body="[% c.user.from_body.name %]" 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 a4bab095e..9afb28294 100644
--- a/web/cobrands/fixmystreet/fixmystreet.js
+++ b/web/cobrands/fixmystreet/fixmystreet.js
@@ -128,6 +128,8 @@ function isR2L() {
});
})(jQuery);
+fixmystreet.hooks = fixmystreet.hooks || {};
+
fixmystreet.mobile_reporting = {
apply_ui: function() {
// Creates the "app-like" mobile reporting UI with full screen map
@@ -425,6 +427,10 @@ $.extend(fixmystreet.set_up, {
$category_meta.empty();
}
});
+
+ if (fixmystreet.hooks.update_problem_fields) {
+ fixmystreet.hooks.update_problem_fields($(this).data('role'), $(this).data('body'), args);
+ }
});
},
diff --git a/web/cobrands/fixmystreet/staff.js b/web/cobrands/fixmystreet/staff.js
index b92a70f9c..d808d4ad9 100644
--- a/web/cobrands/fixmystreet/staff.js
+++ b/web/cobrands/fixmystreet/staff.js
@@ -342,3 +342,29 @@ $.extend(fixmystreet.set_up, {
});
}
});
+
+$.extend(fixmystreet.hooks, {
+ update_problem_fields: function(role, body, args) {
+ if (role == 'inspector') {
+ var title = args.category + ' problem has been scheduled for fixing';
+ var description = args.category + ' problem found - scheduled for fixing by ' + body;
+
+ var $title_field = $('#form_title');
+ var $description_field = $('#form_detail');
+
+ if ($title_field.val().length === 0 || $title_field.data('autopopulated') === true) {
+ $title_field.val(title);
+ $title_field.data('autopopulated', true);
+ }
+
+ if ($description_field.val().length === 0 || $description_field.data('autopopulated') === true) {
+ $description_field.val(description);
+ $description_field.data('autopopulated', true);
+ }
+
+ $('#form_title, #form_detail').on('keyup', function() {
+ $(this).data('autopopulated', false);
+ });
+ }
+ }
+});