diff options
author | Frédéric Buclin <LpSolit@gmail.com> | 2010-11-04 18:00:58 +0100 |
---|---|---|
committer | Frédéric Buclin <LpSolit@gmail.com> | 2010-11-04 18:00:58 +0100 |
commit | a3c3abffe5a964685d596a82261fde79b416107a (patch) | |
tree | 239d968be3e690f72f843189f3e770f0f98c2644 /extensions | |
parent | Bug 605573: List all available WebService methods at the top of the POD (diff) | |
download | bugzilla-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')
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 } + ]) %] |