add preference to enable fuzzy searching even on exact matches, RT#18962
authorIvan Kohler <ivan@freeside.biz>
Tue, 21 Aug 2012 21:15:40 +0000 (14:15 -0700)
committerIvan Kohler <ivan@freeside.biz>
Tue, 21 Aug 2012 21:15:40 +0000 (14:15 -0700)
httemplate/misc/xmlhttp-cust_main-search.cgi
httemplate/pref/pref-process.html
httemplate/pref/pref.html
httemplate/search/cust_main.cgi
rt/share/html/Elements/AddCustomers
rt/share/html/Ticket/Elements/AddCustomers

index 16f7cd2..acf7e70 100644 (file)
@@ -10,7 +10,7 @@
 %
 %   my $string = $cgi->param('arg');
 %   my @cust_main = smart_search( 'search' => $string,
-%                                 'no_fuzzy_on_exact' => 1, #pref?
+%                                 'no_fuzzy_on_exact' => ! $FS::CurrentUser::CurrentUser->option('enable_fuzzy_on_exact'),
 %                               );
 %   my $return = [ map [ $_->custnum,
 %                        $_->name,
index 932cf1a..c4fef03 100644 (file)
@@ -50,6 +50,7 @@ unless ( $error ) { # if ($access_user) {
   #XXX autogen
   my @paramlist = qw( locale menu_position default_customer_view 
                       spreadsheet_format mobile_menu
+                      enable_fuzzy_on_exact
                       disable_html_editor disable_enter_submit_onetimecharge
                       email_address
                       snom-ip snom-username snom-password
index 9ebf2f1..575b804 100644 (file)
@@ -90,7 +90,14 @@ Interface
       </SELECT>
     </TD>
   </TR>
+
+ <TR>
+    <TH ALIGN="right" COLSPAN=1>Enable approximate customer searching even when an exact match is found: </TH>
+    <TD ALIGN="left" COLSPAN=2>
+      <INPUT TYPE="checkbox" NAME="enable_fuzzy_on_exact" VALUE="1" <% $curuser->option('enable_fuzzy_on_exact') ? 'CHECKED' : '' %>>
+    </TD>
+  </TR>
+
   <TR>
     <TH ALIGN="right" COLSPAN=1>Disable HTML editor for customer notes: </TH>
     <TD ALIGN="left" COLSPAN=2>
index a81958e..7c3ad33 100755 (executable)
@@ -468,9 +468,10 @@ if ( $cgi->param('browse')
   if ( $cgi->param('search_cust') ) {
     $sortby = \*company_sort;
     $orderby = "ORDER BY LOWER(company || ' ' || last || ' ' || first )";
-    push @cust_main, smart_search( 'search' => scalar($cgi->param('search_cust')),
-                                   'no_fuzzy_on_exact' => 1, #pref?
-                                 );
+    push @cust_main, smart_search(
+      'search'            => scalar($cgi->param('search_cust')),
+      'no_fuzzy_on_exact' => ! $curuser->option('enable_fuzzy_on_exact'),
+    );
   }
 
   @cust_main = grep { $_->ncancelled_pkgs || ! $_->all_pkgs } @cust_main
index 9828d7d..6517db4 100644 (file)
@@ -41,7 +41,7 @@ my @Customers = ();
 if ( $CustomerString ) {
     @Customers = &RT::URI::freeside::smart_search(
         'search'            => $CustomerString,
-        'no_fuzzy_on_exact' => 1, #pref?
+        'no_fuzzy_on_exact' => ! $FS::CurrentUser::CurrentUser->option('enable_fuzzy_on_exact'),
     );
 }
 
index 3c2c82a..13fb2f0 100644 (file)
@@ -58,7 +58,7 @@ my @Customers = ();
 if ( $CustomerString ) {
     @Customers = &RT::URI::freeside::smart_search(
         'search'            => $CustomerString,
-        'no_fuzzy_on_exact' => 1, #pref?
+        'no_fuzzy_on_exact' => ! $FS::CurrentUser::CurrentUser->option('enable_fuzzy_on_exact'),
     );
 }