diff options
Diffstat (limited to 'web')
-rw-r--r-- | web/cobrands/fixmystreet/admin.js | 1 | ||||
-rw-r--r-- | web/cobrands/fixmystreet/assets.js | 15 | ||||
-rw-r--r-- | web/cobrands/fixmystreet/fixmystreet.js | 18 |
3 files changed, 31 insertions, 3 deletions
diff --git a/web/cobrands/fixmystreet/admin.js b/web/cobrands/fixmystreet/admin.js index 25c7651eb..4ed9b1866 100644 --- a/web/cobrands/fixmystreet/admin.js +++ b/web/cobrands/fixmystreet/admin.js @@ -216,6 +216,7 @@ $(function(){ var prefix = "metadata["+item_index+"].values["+i+"]"; $li.find(".js-metadata-option-key").attr("name", prefix+".key"); $li.find(".js-metadata-option-name").attr("name", prefix+".name"); + $li.find(".js-metadata-option-disable").attr("name", prefix+".disable"); }); } }); diff --git a/web/cobrands/fixmystreet/assets.js b/web/cobrands/fixmystreet/assets.js index 0ce6c7624..87ceb142a 100644 --- a/web/cobrands/fixmystreet/assets.js +++ b/web/cobrands/fixmystreet/assets.js @@ -1112,7 +1112,20 @@ fixmystreet.message_controller = (function() { return false; } - return $('#form_category').val() == stopper.category; + var category = $('#form_category').val(); + if (category != stopper.category) { + return false; + } + + if (stopper.answers) { + var answer = $('#form_' + stopper.code).val(); + if (OpenLayers.Util.indexOf(stopper.answers, answer) > -1) { + return true; + } + return false; + } else { + return true; + } }); if (!matching.length) { diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js index 40b098973..8bcb71a3a 100644 --- a/web/cobrands/fixmystreet/fixmystreet.js +++ b/web/cobrands/fixmystreet/fixmystreet.js @@ -459,6 +459,12 @@ $.extend(fixmystreet.set_up, { $(".js-hide-if-public-category").hide(); } + if (fixmystreet.message_controller && data && data.disable_form && data.disable_form.answers) { + $('#form_' + data.disable_form.code).on('change.category', function() { + $(fixmystreet).trigger('report_new:category_change'); + }); + } + // remove existing validation rules validation_rules = fixmystreet.validator.settings.rules; $.each(validation_rules, function(rule) { @@ -1259,12 +1265,20 @@ fixmystreet.fetch_reporting_data = function() { if (fixmystreet.message_controller) { fixmystreet.message_controller.unregister_all_categories(); $.each(data.by_category, function(category, details) { - if (details.disable_form) { + if (!details.disable_form) { + return; + } + if (details.disable_form.all) { fixmystreet.message_controller.register_category({ category: category, - message: details.disable_form + message: details.disable_form.all }); } + if (details.disable_form.answers) { + details.disable_form.category = category; + details.disable_form.keep_category_extras = true; + fixmystreet.message_controller.register_category(details.disable_form); + } }); } |