[%# INTERFACE:
# queryshare_groups: list of groups the user may share queries with
# (id, name).
+ # bless_group_ids: list of group ids the user may bless.
#%]
+[% IF user.can_bless %]
+ <script type="text/javascript"><!--
+ function update_checkbox(group) {
+ var bless_groups = [[% bless_group_ids.join(",") FILTER js %]];
+ var checkbox = document.getElementById(group.name.replace(/share_(\d+)/, "force_$1"));
+
+ // Check if the selected group is in the bless group array
+ var found = false;
+ for (var i = 0; i < bless_groups.length; i++) {
+ if (bless_groups[i] == group.value) {
+ found = true;
+ break;
+ }
+ }
+
+ // Enable or disable checkbox
+ if (found) {
+ checkbox.disabled = false;
+ } else {
+ checkbox.disabled = true;
+ checkbox.checked = false;
+ }
+ } //-->
+ </script>
+[% END %]
+
<p>Your saved searches are as follows:</p>
<blockquote>
</td>
[% IF may_share %]
<td>
- <select name="share_[% q.id FILTER html %]">
+ <select name="share_[% q.id FILTER html %]"
+ [% IF user.can_bless %] onchange="update_checkbox(this);"[% END %]>
<option value="">Don't share</option>
[% FOREACH group = queryshare_groups %]
<option value="[% group.id %]"
>[% group.name FILTER html %]</option>
[% END %]
</select>
+ [% IF user.can_bless %]
+ <input type="checkbox" id="force_[% q.id FILTER html %]"
+ name="force_[% q.id FILTER html %]" value="1"
+ [% " disabled"
+ IF !bless_group_ids.grep("^$q.shared_with_group.id\$").0
+ %]>
+ <label for="force_[% q.id FILTER html %]">Add to footer</label>
+ [% END %]
</td>
[% END %]
</tr>
[% END %]
</table>
+[% IF user.can_bless %]
+ <p>Note that for every search that has the "Add to footer" selected, a
+ link to the shared search is added to the footer of every user that is
+ a direct member of the group at the time you click Submit Changes.</p>
+[% END %]
</blockquote>
<p>You may use these searches saved and shared by others:</p>
$vars->{'queryshare_groups'} =
Bugzilla::Group->new_from_list($user->queryshare_groups);
}
+ $vars->{'bless_group_ids'} = [map {$_->{'id'}} @{$user->bless_groups}];
}
sub SaveSavedSearches {
}
# If we're sharing our query with a group we can bless, we
- # subscribe direct group members to our search automatically.
- # Otherwise, the group members need to opt in. This behaviour
- # is deemed most likely to fit users' needs.
- if ($user->can_bless($group_id)) {
+ # have the ability to add link to our search to the footer of
+ # direct group members automatically.
+ if ($user->can_bless($group_id) && $cgi->param('force_' . $q->id)) {
my $group = new Bugzilla::Group($group_id);
my $members = $group->members_non_inherited;
foreach my $member (@$members) {