]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 365890: Searches shared by users with bless rights are in the footer by default...
authorlpsolit%gmail.com <>
Sat, 21 Jul 2007 16:00:59 +0000 (16:00 +0000)
committerlpsolit%gmail.com <>
Sat, 21 Jul 2007 16:00:59 +0000 (16:00 +0000)
template/en/default/account/prefs/saved-searches.html.tmpl
userprefs.cgi

index 9af0efef5bddcab7e890e8bb0988b1059bdc0a50..4beb0e82318d2625a314505e56945c88878b618f 100644 (file)
 [%# 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>
index 1ad7f906e626105c1094ba26aaf95e668c41d336..8f2e69f1e48a1142201d9f377aa869f7d4ac95f2 100755 (executable)
@@ -399,6 +399,7 @@ sub DoSavedSearches {
         $vars->{'queryshare_groups'} =
             Bugzilla::Group->new_from_list($user->queryshare_groups);
     }
+    $vars->{'bless_group_ids'} = [map {$_->{'id'}} @{$user->bless_groups}];
 }
 
 sub SaveSavedSearches {
@@ -458,10 +459,9 @@ 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) {