diff options
author | Mark Wells <mark@freeside.biz> | 2015-07-10 18:15:08 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2015-07-10 18:15:08 -0700 |
commit | 88bf5db0cca989c51237c661a13078eef08b3674 (patch) | |
tree | 0a84e1b5e7fd239f57fab678bf40c5311b0064a0 /rt/share/html/Helpers/Autocomplete/CustomFieldValues | |
parent | 9c15ffe3a5ee987e30e10c6a0ad1b5bf0b2a12e3 (diff) | |
parent | e7eb845db1afab1cbdbc34ff9c387c5ac554659e (diff) |
Merge branch 'FREESIDE_4_BRANCH' of git.freeside.biz:/home/git/freeside into 4.x
Diffstat (limited to 'rt/share/html/Helpers/Autocomplete/CustomFieldValues')
-rw-r--r-- | rt/share/html/Helpers/Autocomplete/CustomFieldValues | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/rt/share/html/Helpers/Autocomplete/CustomFieldValues b/rt/share/html/Helpers/Autocomplete/CustomFieldValues index eec346ebb..7e14067cc 100644 --- a/rt/share/html/Helpers/Autocomplete/CustomFieldValues +++ b/rt/share/html/Helpers/Autocomplete/CustomFieldValues @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -45,7 +45,7 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -% $r->content_type('application/json'); +% $r->content_type('application/json; charset=utf-8'); <% JSON( \@suggestions ) |n %> % $m->abort; <%INIT> @@ -53,8 +53,8 @@ my $term = (split /\n/, $ARGS{term} || '')[-1]; my $abort = sub { - $r->content_type('application/json'); - $m->out(JSON::to_json( [] )); + $r->content_type('application/json; charset=utf-8'); + $m->out(JSON( [] )); $m->abort; }; @@ -63,11 +63,17 @@ unless ( exists $ARGS{ContextType} and exists $ARGS{ContextId} ) { $abort->(); } +# Use _ParseObjectCustomFieldArgs to avoid duplicating the regex. +# See the docs for _ParseObjectCustomFieldArgs for details on the data +# structure returned. There will be only one CF, so drill down 2 layers +# to get the cf id, if one is there. + +my %custom_fields = _ParseObjectCustomFieldArgs(\%ARGS); my $CustomField; -for my $k ( keys %ARGS ) { - next unless $k =~ /^Object-.*?-\d*-CustomField-(\d+)-Values?$/; - $CustomField = $1; - last; +foreach my $class ( keys %custom_fields ){ + foreach my $id ( keys %{$custom_fields{$class}} ){ + ($CustomField) = keys %{$custom_fields{$class}{$id}}; + } } unless ( $CustomField ) { @@ -119,6 +125,13 @@ $values->Limit( SUBCLAUSE => 'autocomplete', CASESENSITIVE => 0, ); +$m->callback( + CallbackName => 'ModifyMaxResults', + max => \$ARGS{max}, + term => $term, + CustomField => $CustomFieldObj, +); +$values->RowsPerPage( $ARGS{max} // 10 ); my @suggestions; |