]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 308340: General Preferences tab is empty except for submit button when no user...
authorlpsolit%gmail.com <>
Fri, 28 Oct 2005 16:56:53 +0000 (16:56 +0000)
committerlpsolit%gmail.com <>
Fri, 28 Oct 2005 16:56:53 +0000 (16:56 +0000)
template/en/default/account/prefs/prefs.html.tmpl
template/en/default/account/prefs/settings.html.tmpl
userprefs.cgi

index e849a4e99121c3296bd6f2d36827761162e67f93..352e303d6a0f114d89c38be9e8b8b57f59bf76b9 100644 (file)
@@ -17,6 +17,7 @@
   # Rights Reserved.
   #
   # Contributor(s): Gervase Markham <gerv@gerv.net>
+  #                 Frédéric Buclin <LpSolit@gmail.com>
   #%]
 
 [%# INTERFACE:
   # changes_saved: boolean/string. True if the CGI processed form data before 
   #                displaying anything, and can contain an optional custom
   #                message if required (which Perl still evaluates as True).
+  # dont_show_button: boolean. Prevent the display of the "Submit Changes" button.
   #%]
 
 [% filtered_login = user.login FILTER html %]
 [% PROCESS global/header.html.tmpl
    title = "User Preferences"
    h2 = filtered_login
+   style_urls = ['skins/standard/admin.css']
  %]
 
 [% tabs = [ { name => "account", label => "Account Preferences", 
 
 <h3>[% current_tab.label %]</h3>
 
-<form name="userprefsform" method="post" action="userprefs.cgi">
-  <input type="hidden" name="tab" value="[% current_tab.name %]">
+[% IF current_tab.saveable %]
+  <form name="userprefsform" method="post" action="userprefs.cgi">
+    <input type="hidden" name="tab" value="[% current_tab.name %]">
+[% END %]
 
-  [% PROCESS "account/prefs/${current_tab.name}.html.tmpl" 
-                                                 IF current_tab.name.defined %]
+[% PROCESS "account/prefs/${current_tab.name}.html.tmpl" 
+                                     IF current_tab.name.defined %]
 
-  [% IF current_tab.saveable %]
+[% IF current_tab.saveable %]
     <input type="hidden" name="dosave" value="1">
 
-    <table>
-      <tr>
-        <td width="150"></td>
-        <td>
-          <input type="submit" value="Submit Changes">
-         </td>
-      </tr>
-    </table>
-  [% END %]
-  
-</form>
+    [% UNLESS dont_show_button %]
+      <table>
+        <tr>
+          <td width="150">&nbsp;</td>
+          <td>
+            <input type="submit" value="Submit Changes">
+          </td>
+        </tr>
+      </table>
+    [% END %]
+  </form>
+[% END %]
 
 [% PROCESS global/footer.html.tmpl %]
-
-    
-    
index a425dcac156e4a9773b8fa881219e230d0bb9239..3ef9a5852e33a64deb8e961c050bf33f6e3c0f5d 100644 (file)
@@ -12,6 +12,7 @@
   # The Original Code is the Bugzilla Bug Tracking System.
   #
   # Contributor(s): Shane H. W. Travis <travis@sedsystems.ca>
+  #                 Frédéric Buclin <LpSolit@gmail.com>
   #
   #%]
 
   #                 default_value - string (global default for this setting)
   #                 value         - string (user-defined preference)
   #                 is_default    - boolean (true if user has no preference)
+  # has_settings_enabled : boolean; is true if there is at least one user pref
+  #                        enabled by the maintainer.
   #%]
 
 [% PROCESS "global/setting-descs.none.tmpl" %]
 
 [% IF settings.size %]
+  [% UNLESS has_settings_enabled %]
+    <p class="criticalmessages">
+      All user preferences have been disabled by the
+      <a href="mailto:[% Param("maintainer") %]">maintainer</a>
+      of this installation, and so you cannot customise any.
+    </p>
+  [% END %]
+
   <table border="0" cellpadding="8">
     [% FOREACH name = setting_names %]
-        [% IF settings.${name}.is_enabled %]
-            [% default_name = name _ '-isdefault' %]
-            [% default_val = settings.${name}.default_value %]
-            <tr>
-              <td align="right">
-                 [% setting_descs.$name OR name FILTER html %]
-              </td>
-              <td>
-                <select name="[% name %]" id="[% name %]">
-                  <option value="[% default_name %]"
-                    [% ' selected="selected"' IF settings.${name}.is_default %]>
-                    Site Default ([% setting_descs.${default_val} OR default_val FILTER html %])
-                  </option>
-                  [% FOREACH x = settings.${name}.legal_values %]
-                      <option value="[% x FILTER html %]"
-                        [% ' selected="selected"' 
-                           IF x == settings.${name}.value 
-                           AND NOT settings.${name}.is_default %]>
-                        [% setting_descs.${x} OR x FILTER html %]
-                      </option>
-                  [% END %]
-                </select>
-              </td>
-            </tr>
-        [% END %]
+      [% default_name = name _ '-isdefault' %]
+      [% default_val = settings.${name}.default_value %]
+      <tr>
+        <td align="right">
+          [% setting_descs.$name OR name FILTER html %]
+        </td>
+        <td>
+          [% IF settings.${name}.is_enabled %]
+            <select name="[% name %]" id="[% name %]">
+              <option value="[% default_name %]"
+                [% ' selected="selected"' IF settings.${name}.is_default %]>
+                Site Default ([% setting_descs.${default_val} OR default_val FILTER html %])
+              </option>
+              [% FOREACH x = settings.${name}.legal_values %]
+                <option value="[% x FILTER html %]"
+                  [% ' selected="selected"' 
+                    IF x == settings.${name}.value
+                    AND NOT settings.${name}.is_default %]>
+                  [% setting_descs.${x} OR x FILTER html %]
+                </option>
+              [% END %]
+            </select>
+          [% ELSE %]
+            <select name="[% name %]" id="[% name %]" disabled="disabled">
+              <option value="[% default_name %]">
+                Site Default ([% setting_descs.${default_val} OR default_val FILTER html %])
+              </option>
+            </select>
+          [% END %]
+        </td>
+      </tr>
     [% END %]
-
   </table>
 [% END %]
 <br>
index 796f2e0f9327920bf70078bc2b8d3e9d79043aa1..ebbcefbab881ff803a923f23bf2e3bf2fc8f7bb1 100755 (executable)
@@ -146,10 +146,21 @@ sub SaveAccount {
 
 
 sub DoSettings {
-    $vars->{'settings'} = Bugzilla->user->settings;
+    my $settings = Bugzilla->user->settings;
+    $vars->{'settings'} = $settings;
 
-    my @setting_list = keys %{Bugzilla->user->settings};
+    my @setting_list = keys %$settings;
     $vars->{'setting_names'} = \@setting_list;
+
+    $vars->{'has_settings_enabled'} = 0;
+    # Is there at least one user setting enabled?
+    foreach my $setting_name (@setting_list) {
+        if ($settings->{"$setting_name"}->{'is_enabled'}) {
+            $vars->{'has_settings_enabled'} = 1;
+            last;
+        }
+    }
+    $vars->{'dont_show_button'} = !$vars->{'has_settings_enabled'};
 }
 
 sub SaveSettings {