aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Buclin <LpSolit@gmail.com>2010-11-04 18:00:58 +0100
committerFrédéric Buclin <LpSolit@gmail.com>2010-11-04 18:00:58 +0100
commita3c3abffe5a964685d596a82261fde79b416107a (patch)
tree239d968be3e690f72f843189f3e770f0f98c2644 /extensions
parentBug 605573: List all available WebService methods at the top of the POD (diff)
downloadbugzilla-a3c3abffe5a964685d596a82261fde79b416107a.tar.gz
bugzilla-a3c3abffe5a964685d596a82261fde79b416107a.tar.bz2
bugzilla-a3c3abffe5a964685d596a82261fde79b416107a.zip
Bug 485418: Code and template hooks for userprefs.cgi to be able to add additional tabs
r=mkanat a=LpSolit
Diffstat (limited to 'extensions')
-rw-r--r--extensions/Example/Extension.pm20
-rw-r--r--extensions/Example/template/en/default/account/prefs/my_tab.html.tmpl30
-rw-r--r--extensions/Example/template/en/default/hook/account/prefs/prefs-tabs.html.tmpl23
3 files changed, 73 insertions, 0 deletions
diff --git a/extensions/Example/Extension.pm b/extensions/Example/Extension.pm
index 5c6865362..f16ddf725 100644
--- a/extensions/Example/Extension.pm
+++ b/extensions/Example/Extension.pm
@@ -682,6 +682,26 @@ sub bug_check_can_change_field {
}
}
+sub user_preferences {
+ my ($self, $args) = @_;
+ my $tab = $args->{current_tab};
+ my $save = $args->{save_changes};
+ my $handled = $args->{handled};
+
+ return unless $tab eq 'my_tab';
+
+ my $value = Bugzilla->input_params->{'example_pref'};
+ if ($save) {
+ # Validate your data and update the DB accordingly.
+ $value =~ s/\s+/:/g;
+ }
+ $args->{'vars'}->{example_pref} = $value;
+
+ # Set the 'handled' scalar reference to true so that the caller
+ # knows the panel name is valid and that an extension took care of it.
+ $$handled = 1;
+}
+
sub webservice {
my ($self, $args) = @_;
diff --git a/extensions/Example/template/en/default/account/prefs/my_tab.html.tmpl b/extensions/Example/template/en/default/account/prefs/my_tab.html.tmpl
new file mode 100644
index 000000000..ca7a3bd13
--- /dev/null
+++ b/extensions/Example/template/en/default/account/prefs/my_tab.html.tmpl
@@ -0,0 +1,30 @@
+[%#
+ # The contents of this file are subject to the Mozilla Public
+ # License Version 1.1 (the "License"); you may not use this file
+ # except in compliance with the License. You may obtain a copy of
+ # the License at http://www.mozilla.org/MPL/
+ #
+ # Software distributed under the License is distributed on an "AS
+ # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ # implied. See the License for the specific language governing
+ # rights and limitations under the License.
+ #
+ # The Original Code is the Bugzilla Example Plugin.
+ #
+ # The Initial Developer of the Original Code is Frédéric Buclin.
+ # Portions created by the Initial Developer are Copyright (C) 2010
+ # the Initial Developer. All Rights Reserved.
+ #
+ # Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+ #%]
+
+<p>
+ Type some short text in the field below. Whitespaces will be replaced
+ by colons.
+</p>
+
+<p>
+ <label for="example_pref">Short text:</label>
+ <input type="text" id="example_pref" name="example_pref" size="30"
+ maxlength="50" value="[% example_pref FILTER html %]">
+</p>
diff --git a/extensions/Example/template/en/default/hook/account/prefs/prefs-tabs.html.tmpl b/extensions/Example/template/en/default/hook/account/prefs/prefs-tabs.html.tmpl
new file mode 100644
index 000000000..83801540a
--- /dev/null
+++ b/extensions/Example/template/en/default/hook/account/prefs/prefs-tabs.html.tmpl
@@ -0,0 +1,23 @@
+[%#
+ # The contents of this file are subject to the Mozilla Public
+ # License Version 1.1 (the "License"); you may not use this file
+ # except in compliance with the License. You may obtain a copy of
+ # the License at http://www.mozilla.org/MPL/
+ #
+ # Software distributed under the License is distributed on an "AS
+ # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ # implied. See the License for the specific language governing
+ # rights and limitations under the License.
+ #
+ # The Original Code is the Bugzilla Example Plugin.
+ #
+ # The Initial Developer of the Original Code is Frédéric Buclin.
+ # Portions created by the Initial Developer are Copyright (C) 2010
+ # the Initial Developer. All Rights Reserved.
+ #
+ # Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+ #%]
+
+[% tabs = tabs.import([{ name => "my_tab", label => "Example Custom Preferences",
+ link => "userprefs.cgi?tab=my_tab", saveable => 1 }
+ ]) %]