summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'extensions')
-rw-r--r--extensions/BugModal/template/en/default/bug_modal/new_product_groups.html.tmpl31
-rw-r--r--extensions/BugModal/web/bug_modal.js14
2 files changed, 30 insertions, 15 deletions
diff --git a/extensions/BugModal/template/en/default/bug_modal/new_product_groups.html.tmpl b/extensions/BugModal/template/en/default/bug_modal/new_product_groups.html.tmpl
index d3e4c4574..2f1787b75 100644
--- a/extensions/BugModal/template/en/default/bug_modal/new_product_groups.html.tmpl
+++ b/extensions/BugModal/template/en/default/bug_modal/new_product_groups.html.tmpl
@@ -15,34 +15,34 @@
#%]
[% PROCESS group_list
- group_set = groups.invalid
- label = "Groups that are not valid for the '" _ product.name _ "' product:"
- enabled = 0
- disabled = 1
+ type = "invalid"
+ label = "Groups that are not valid for the '" _ product.name _ "' product:"
+ enabled = 0
+ disabled = 1
%]
[% PROCESS group_list
- group_set = groups.mandatory
- label = "Mandatory '" _ product.name _ "' groups:"
- enabled = 1
- disabled = 1
+ type = "mandatory"
+ label = "Mandatory '" _ product.name _ "' groups:"
+ enabled = 1
+ disabled = 1
%]
[% PROCESS group_list
- group_set = groups.optional
- label = "Optional '" _ product.name _ "' groups:"
- enabled = 1
- disabled = 0
+ type = "optional"
+ label = "Optional '" _ product.name _ "' groups:"
+ enabled = 1
+ disabled = 0
%]
<input type="hidden" name="group_verified" value="1">
[% BLOCK group_list %]
- [% RETURN UNLESS group_set.size %]
+ [% RETURN UNLESS groups.$type.size %]
[% FILTER collapse %]
<div>
<div>
[% label FILTER html %]
</div>
- [% FOREACH g = group_set %]
+ [% FOREACH g = groups.$type %]
<div>
[% IF g.checked %]
<input type="hidden" name="defined_groups" value="[% g.name FILTER html %]">
@@ -51,7 +51,8 @@
id="group_[% g.id FILTER none %]"
[%= IF enabled %]name="groups"[% END %]
[%= "checked" IF g.checked %]
- [%= "disabled" IF disabled %]>
+ [%= "disabled" IF disabled %]
+ [%= 'data-mandatory="1"' IF type == "mandatory" %]>
<label for="group_[% g.id FILTER none %]" [%= IF disabled %]class="group-disabled"[% END %]>
[% g.description FILTER html %]
</label>
diff --git a/extensions/BugModal/web/bug_modal.js b/extensions/BugModal/web/bug_modal.js
index 1282ff838..a2e7be0c7 100644
--- a/extensions/BugModal/web/bug_modal.js
+++ b/extensions/BugModal/web/bug_modal.js
@@ -1173,12 +1173,16 @@ $(function() {
// update groups
var dirtyGroups = [];
+ var any_groups_checked = 0;
$('#module-security').find('input[name=groups]').each(function() {
var that = $(this);
var defaultChecked = !!that.attr('checked');
if (defaultChecked !== that.is(':checked')) {
dirtyGroups.push({ name: that.val(), value: that.is(':checked') });
}
+ if (that.is(':checked')) {
+ any_groups_checked = 1;
+ }
});
$('#module-security .module-content')
.html(data.groups)
@@ -1186,6 +1190,16 @@ $(function() {
$.each(dirtyGroups, function() {
$('#module-security').find('input[value=' + this.name + ']').prop('checked', this.value);
});
+ // clear any default groups if user was making bug public
+ // unless the group is mandatory for the new product
+ if (!any_groups_checked) {
+ $('#module-security').find('input[name=groups]').each(function() {
+ var that = $(this);
+ if (!that.data('mandatory')) {
+ that.prop('checked', false);
+ }
+ });
+ }
},
function() {
$('#product-throbber').hide();