summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrédéric Buclin <LpSolit@gmail.com>2016-04-15 21:27:32 +0200
committerFrédéric Buclin <LpSolit@gmail.com>2016-04-15 21:27:32 +0200
commit06654a4693d7258deb0013ea23f70071b3486c83 (patch)
tree7908d0d1a9f9ac2d27d79bead00ddf5ed73698c7
parent90d86a9744883ccc120a0a955ffade72990e1505 (diff)
downloadbugzilla-06654a4693d7258deb0013ea23f70071b3486c83.tar.gz
bugzilla-06654a4693d7258deb0013ea23f70071b3486c83.tar.xz
Bug 1261679 - Add more examples about how to define new parameters using the config_add_panels hook
r=gerv
-rw-r--r--Bugzilla/Config/Common.pm12
-rw-r--r--extensions/Example/lib/Config.pm53
-rw-r--r--extensions/Example/template/en/default/admin/params/example.html.tmpl12
3 files changed, 70 insertions, 7 deletions
diff --git a/Bugzilla/Config/Common.pm b/Bugzilla/Config/Common.pm
index 860977b65..6e89fdcae 100644
--- a/Bugzilla/Config/Common.pm
+++ b/Bugzilla/Config/Common.pm
@@ -401,11 +401,6 @@ sub check_comment_taggers_group {
# &check_multi should always be used as the param verification function
# for list (single and multiple) parameter types.
#
-# o -- A list of values, orderable, and with many selectable (shows up as a
-# JavaScript-enhanced select box if JavaScript is enabled, and a text
-# entry field if not)
-# Set up in the same way as type m.
-#
# s -- A list of values, with one selectable (shows up as a select box)
# To specify the list of values, make the 'choices' key be an array
# reference of the valid choices. The 'default' key should be one of
@@ -424,6 +419,13 @@ sub check_comment_taggers_group {
#
# &check_multi should always be used as the param verification function
# for list (single and multiple) parameter types.
+#
+# o -- A list of values, orderable, and with many selectable (shows up as a
+# JavaScript-enhanced select box if JavaScript is enabled, and a text
+# entry field if not)
+# Set up in the same way as type s. If the default has multiple values,
+# then they must be concatenated, separated by a comma.
+# For instance: default => 'a,c'.
sub get_param_list {
return;
diff --git a/extensions/Example/lib/Config.pm b/extensions/Example/lib/Config.pm
index 311ea4a6a..c183b0efc 100644
--- a/extensions/Example/lib/Config.pm
+++ b/extensions/Example/lib/Config.pm
@@ -22,7 +22,58 @@ sub get_param_list {
{
name => 'example_string',
type => 't',
- default => 'EXAMPLE',
+ default => 'Bugzilla is powerful'
+ },
+ {
+ name => 'example_constrained_string',
+ type => 't',
+ default => '12-xfdd-5',
+ checker => sub { $_[0] =~ /^\d{2}\-[a-zA-Z]{4}\-\d$/ ?
+ '' : "$_[0] must be of the form NN-XXXX-N"; }
+ },
+ {
+ name => 'example_number',
+ type => 't',
+ default => '905',
+ checker => \&check_numeric
+ },
+ {
+ name => 'example_password',
+ type => 'p',
+ default => '1234'
+ },
+ {
+ name => 'example_multi_lines',
+ type => 'l',
+ default => "This text can be very long.\n\nVery very long!"
+ },
+ # Default can only be 0 or 1.
+ {
+ name => 'example_boolean',
+ type => 'b',
+ default => 0
+ },
+ {
+ name => 'example_single_select',
+ type => 's',
+ choices => [ 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ],
+ default => 'Thursday',
+ checker => \&check_multi
+ },
+ {
+ name => 'example_multi_select',
+ type => 'm',
+ choices => [ 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn' ],
+ default => [ 'Venus', 'Saturn' ],
+ checker => \&check_multi
+ },
+ # This one lets you order selected items.
+ {
+ name => 'example_multi_ordered',
+ type => 'o',
+ choices => [ 'Perl', 'Python', 'PHP', 'C++', 'Java' ],
+ default => 'Perl,C++',
+ checker => \&check_multi
},
);
return @param_list;
diff --git a/extensions/Example/template/en/default/admin/params/example.html.tmpl b/extensions/Example/template/en/default/admin/params/example.html.tmpl
index 48143945c..d399ac161 100644
--- a/extensions/Example/template/en/default/admin/params/example.html.tmpl
+++ b/extensions/Example/template/en/default/admin/params/example.html.tmpl
@@ -11,6 +11,16 @@
%]
[% param_descs = {
- example_string => "Example string",
+ example_string => "This parameter accepts any text. (type t)",
+ example_constrained_string => "This parameter accepts only a text of the form " _
+ "NN-XXXX-N, where N is a digit and X a letter.",
+ example_number => "This parameter accepts only a positive integer.",
+ example_password => "Text with all characters replaced by asterisks for " _
+ "security purposes. (type p)",
+ example_multi_lines => "Text field permitting multiple lines of text. (type l)",
+ example_boolean => "You have only two choices: On (1) or Off (0). (type b)",
+ example_single_select => "Select a single value from a list. (type s)",
+ example_multi_select => "Select none, one or several values from a list. (type m)",
+ example_multi_ordered => "Several values can be selected and ordered. (type o)",
}
%]