diff options
-rw-r--r-- | templates/web/base/report/new/category.html | 2 | ||||
-rw-r--r-- | templates/web/base/report/new/category_wrapper.html | 2 | ||||
-rw-r--r-- | web/cobrands/fixmystreet/fixmystreet.js | 6 | ||||
-rw-r--r-- | web/cobrands/fixmystreet/staff.js | 26 |
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); + }); + } + } +}); |