[PATCH] Add 'custom select' custom field

Bram rtdevel at lists.wizbit.be
Thu Dec 24 05:18:10 EST 2009


---
 lib/RT/CustomField_Overlay.pm                   |    5 +++
 share/html/Elements/EditCustomFieldCustomSelect |   41 +++++++++++++++++++++++
 2 files changed, 46 insertions(+), 0 deletions(-)
 create mode 100644 share/html/Elements/EditCustomFieldCustomSelect

diff --git a/lib/RT/CustomField_Overlay.pm b/lib/RT/CustomField_Overlay.pm
index 9286d7a..0f15152 100755
--- a/lib/RT/CustomField_Overlay.pm
+++ b/lib/RT/CustomField_Overlay.pm
@@ -96,6 +96,11 @@ our %FieldTypes = (
         'Enter one value with autocompletion',            # loc
         'Enter up to [_1] values with autocompletion',    # loc
     ],
+    CustomSelect => [
+        'Custom Select multiple values',    # loc
+        'Custom Select one value',        # loc
+        'Custom Select up to [_1] values',    # loc
+    ],
 );
 
 
diff --git a/share/html/Elements/EditCustomFieldCustomSelect b/share/html/Elements/EditCustomFieldCustomSelect
new file mode 100644
index 0000000..fbf6f12
--- /dev/null
+++ b/share/html/Elements/EditCustomFieldCustomSelect
@@ -0,0 +1,41 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%# 
+%# END BPS TAGGED BLOCK }}}
+%
+%     my $id = $NamePrefix . $CustomField->Id;
+%     @Default = grep defined && length, @Default;
+%     # $Values->HasEntry is too slow here
+%     if ( !@Default && $Values ) {
+%         @Default = map $_->Content, @{$Values->ItemsArrayRef};
+%     }
+%     $_ = lc $_ foreach @Default;
+%     my $CFVs = $CustomField->Values;
+
+      <select name="<%$id%>-Values" id="<%$id%>-Values" >
+        <option value="" selected="selected"><&|/l&>&lt; - Select to choose <% $CustomField->Description %> - &gt;</&></option>
+
+%     my @selected = ();
+%     while ( my $value = $CFVs->Next ) {
+%         my $name = $value->Name;
+%	  my $desc = $value->Description;
+%         if ( grep $_ eq lc $name, @Default ) {
+%             push @selected, { Name => $value->Name, Desc => $value->Description };
+%         }
+        <option value="<% $name %>"><% $desc %></option>
+%     }
+      </select>
+      <br />
+
+%     for my $sel (@selected) {
+      <input type="checkbox" class="checkbox" name="<%$id%>-Values" checked="checked" value="<% $sel->{Name} %>" /><% $sel->{Desc} %><br />
+%     }
+<%ARGS>
+$Object => undef
+$CustomField => undef
+$NamePrefix => undef
+ at Default => ()
+$Values => undef
+$Multiple => 0
+$Rows => undef
+</%ARGS>
+
-- 
1.5.4.3


--=_owdx90tgwxc
Content-Type: image/jpeg;
	name="customselect.jpg"
Content-Disposition: attachment;
	filename="customselect.jpg"
Content-Transfer-Encoding: base64

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
M/Vb+4aOMz9Vv7hqTRoP/9k=

--=_owdx90tgwxc--



More information about the Rt-devel mailing list