aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/cobrands/fixmystreet/admin.js1
-rw-r--r--web/cobrands/fixmystreet/assets.js15
-rw-r--r--web/cobrands/fixmystreet/fixmystreet.js18
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);
+ }
});
}