add svc_phone-phone_name-max_length config, RT#7047
authorivan <ivan>
Fri, 12 Mar 2010 22:02:20 +0000 (22:02 +0000)
committerivan <ivan>
Fri, 12 Mar 2010 22:02:20 +0000 (22:02 +0000)
FS/FS/Conf.pm
FS/FS/svc_phone.pm
httemplate/edit/svc_phone.cgi

index 6248e7e..095d93d 100644 (file)
@@ -3304,6 +3304,13 @@ worry that config_items is freeside-specific and icky.
   },
 
   {
+    'key'         => 'svc_phone-phone_name-max_length',
+    'section'     => '',
+    'description' => 'Maximum length of the phone service "Name" field (svc_phone.phone_name).  Sometimes useful to limit this (to 15?) when exporting as Caller ID data.',
+    'type'        => 'text',
+  },
+
+  {
     'key'         => 'default_phone_countrycode',
     'section'     => '',
     'description' => 'Default countrcode',
index 5d102ce..30572ec 100644 (file)
@@ -2,7 +2,7 @@ package FS::svc_phone;
 
 use strict;
 use base qw( FS::svc_Domain_Mixin FS::location_Mixin FS::svc_Common );
-use vars qw( $DEBUG $me @pw_set $conf );
+use vars qw( $DEBUG $me @pw_set $conf $phone_name_max );
 use Data::Dumper;
 use Scalar::Util qw( blessed );
 use FS::Conf;
@@ -23,6 +23,7 @@ $DEBUG = 0;
 #ask FS::UID to run this stuff for us later
 $FS::UID::callback{'FS::svc_acct'} = sub { 
   $conf = new FS::Conf;
+  $phone_name_max = $conf->config('svc_phone-phone_name-max_length');
 };
 
 =head1 NAME
@@ -383,6 +384,10 @@ sub check {
   ;
   return $error if $error;
 
+  return 'Name ('. $self->phone_name.
+         ") is longer than $phone_name_max characters"
+    if $phone_name_max && length($self->phone_name) > $phone_name_max;
+
   $self->countrycode(1) unless $self->countrycode;
 
   unless ( length($self->sip_password) ) {
index 4715ec1..b77d962 100644 (file)
@@ -44,7 +44,10 @@ push @fields, { field => 'pbxsvc',
               },
               'sip_password',
               'pin',
-              'phone_name',
+              { field => 'phone_name',
+                type  => 'text',
+                maxlength => $conf->config('svc_phone-phone_name-max_length'),
+              },
 
               { value   => 'E911 Information',
                 type    => 'tablebreak-tr-title',