diff options
Diffstat (limited to 'rt/share/html/Elements/EditCustomFieldAutocomplete')
-rw-r--r-- | rt/share/html/Elements/EditCustomFieldAutocomplete | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/rt/share/html/Elements/EditCustomFieldAutocomplete b/rt/share/html/Elements/EditCustomFieldAutocomplete index 13a43ed67..911e60707 100644 --- a/rt/share/html/Elements/EditCustomFieldAutocomplete +++ b/rt/share/html/Elements/EditCustomFieldAutocomplete @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -46,22 +46,38 @@ %# %# END BPS TAGGED BLOCK }}} % if ( $Multiple ) { -<textarea cols="<% $Cols %>" rows="<% $Rows %>" name="<% $name %>-Values" id="<% $name %>-Values" class="CF-<%$CustomField->id%>-Edit"><% $Default %></textarea><div id="<% $name %>-Choices" class="autocomplete"></div> +<textarea cols="<% $Cols %>" rows="<% $Rows %>" name="<% $name %>-Values" id="<% $name %>-Values" class="CF-<%$CustomField->id%>-Edit"><% $Default || '' %></textarea> + <script type="text/javascript"> -new Ajax.Autocompleter( - "<% $name %>-Values", - "<% $name %>-Choices", - "<% RT->Config->Get('WebPath')%>/Helpers/Autocomplete/CustomFieldValues", - { tokens: [ '\n' ] } +var id = <% "$name-Values" |n,j%>; +id = id.replace(/:/g,'\\:'); +jQuery('#'+id).autocomplete( { + source: <%RT->Config->Get('WebPath') |n,j%>+"/Helpers/Autocomplete/CustomFieldValues?"+<% $Context |n,j %>+<% "$name-Values" |n,u,j%>, + focus: function () { + // prevent value inserted on focus + return false; + }, + select: function(event, ui) { + var terms = this.value.split(/\n/); + // remove the current input + terms.pop(); + // add the selected item + terms.push( ui.item.value ); + // add placeholder to get the comma-and-space at the end + terms.push(""); + this.value = terms.join("\n"); + return false; + } +} ); % } else { -<input type="text" id="<% $name %>-Value" name="<% $name %>-Value" class="CF-<%$CustomField->id%>-Edit" value="<% $Default %>"/><div id="<% $name %>-Choices" class="autocomplete"></div> +<input type="text" id="<% $name %>-Value" name="<% $name %>-Value" class="CF-<%$CustomField->id%>-Edit" value="<% $Default || '' %>"/> <script type="text/javascript"> -new Ajax.Autocompleter( - "<% $name %>-Value", - "<% $name %>-Choices", - "<% RT->Config->Get('WebPath')%>/Helpers/Autocomplete/CustomFieldValues", - {} +var id = <% "$name-Value" |n,j%>; +id = id.replace(/:/g,'\\:'); +jQuery('#'+id).autocomplete( { + source: <%RT->Config->Get('WebPath')|n,j%>+"/Helpers/Autocomplete/CustomFieldValues?"+<% $Context |n,j %>+<% "$name-Value" |n,u,j%> +} ); % } </script> @@ -76,6 +92,11 @@ if ( $Multiple and $Values ) { $Default .= $value->Content ."\n"; } } +my $Context = ""; +if ($CustomField->ContextObject) { + $Context .= "ContextId=" . $CustomField->ContextObject->Id . "&"; + $Context .= "ContextType=". ref($CustomField->ContextObject) . "&"; +} </%INIT> <%ARGS> $CustomField => undef |