X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fmsgcat.pm;h=02ee3a3cf51704904af26054141a528e943aef20;hp=fa10d34fadf16850b4de9a62a75152586972baa7;hb=aed8ec35ccb9cdeb7ea0cb6ff2946f9d83d582f6;hpb=e6ea57971831f25d682d97a0ba508c39b66ecd8b diff --git a/FS/FS/msgcat.pm b/FS/FS/msgcat.pm index fa10d34fa..02ee3a3cf 100644 --- a/FS/FS/msgcat.pm +++ b/FS/FS/msgcat.pm @@ -4,7 +4,7 @@ use strict; use vars qw( @ISA ); use Exporter; use FS::UID; -use FS::Record qw( qsearchs ); +use FS::Record; # qw( qsearchs ); @ISA = qw(FS::Record); @@ -52,7 +52,8 @@ If you just want to B message catalogs, see L. =item new HASHREF -Creates a new example. To add the example to the database, see L<"insert">. +Creates a new message catalog entry. To add the message catalog entry to the +database, see L<"insert">. Note that this stores the hash reference, not a distinct copy of the hash it points to. You can ask the object for a copy with the I method. @@ -91,8 +92,8 @@ returns the error, otherwise returns false. =item check -Checks all fields to make sure this is a valid example. If there is -an error, returns the error, otherwise returns false. Called by the insert +Checks all fields to make sure this is a valid message catalog entry. If there +is an error, returns the error, otherwise returns false. Called by the insert and replace methods. =cut @@ -106,14 +107,160 @@ sub check { my $error = $self->ut_numbern('msgnum') || $self->ut_text('msgcode') - || $self->ut_text('msg') +# || $self->ut_text('msg') ; return $error if $error; $self->locale =~ /^([\w\@]+)$/ or return "illegal locale: ". $self->locale; $self->locale($1); - ''; #no error + $self->SUPER::check +} + + +sub _upgrade_data { #class method + my( $class, %opts) = @_; + + #"repopulate_msgcat", false laziness w/FS::Setup::populate_msgcat + + my %messages = _legacy_messages(); + + foreach my $msgcode ( keys %messages ) { + foreach my $locale ( keys %{$messages{$msgcode}} ) { + my %msgcat = ( + 'msgcode' => $msgcode, + 'locale' => $locale, + #'msg' => $messages{$msgcode}{$locale}, + ); + #my $msgcat = qsearchs('msgcat', \%msgcat); + my $msgcat = FS::Record::qsearchs('msgcat', \%msgcat); #wtf? + next if $msgcat; + + $msgcat = new FS::msgcat( { + %msgcat, + 'msg' => $messages{$msgcode}{$locale}, + } ); + my $error = $msgcat->insert; + die $error if $error; + } + } + +} + +sub _legacy_messages { + + # 'msgcode' => { + # 'en_US' => 'Message', + # }, + + ( + + 'passwords_dont_match' => { + 'en_US' => "Passwords don't match", + }, + + 'invalid_card' => { + 'en_US' => 'Invalid credit card number', + }, + + 'unknown_card_type' => { + 'en_US' => 'Unknown card type', + }, + + 'not_a' => { + 'en_US' => 'Not a ', + }, + + 'empty_password' => { + 'en_US' => 'Empty password', + }, + + 'no_access_number_selected' => { + 'en_US' => 'No access number selected', + }, + + 'illegal_text' => { + 'en_US' => 'Illegal (text)', + #'en_US' => 'Only letters, numbers, spaces, and the following punctuation symbols are permitted: ! @ # $ % & ( ) - + ; : \' " , . ? / in field', + }, + + 'illegal_or_empty_text' => { + 'en_US' => 'Illegal or empty (text)', + #'en_US' => 'Only letters, numbers, spaces, and the following punctuation symbols are permitted: ! @ # $ % & ( ) - + ; : \' " , . ? / in required field', + }, + + 'illegal_username' => { + 'en_US' => 'Illegal username', + }, + + 'illegal_password' => { + 'en_US' => 'Illegal password (', + }, + + 'illegal_password_characters' => { + 'en_US' => ' characters)', + }, + + 'username_in_use' => { + 'en_US' => 'Username in use', + }, + + 'phonenum_in_use' => { + 'en_US' => 'Phone number in use', + }, + + 'illegal_email_invoice_address' => { + 'en_US' => 'Illegal email invoice address', + }, + + 'illegal_name' => { + 'en_US' => 'Illegal (name)', + #'en_US' => 'Only letters, numbers, spaces and the following punctuation symbols are permitted: , . - \' in field', + }, + + 'illegal_phone' => { + 'en_US' => 'Illegal (phone)', + #'en_US' => '', + }, + + 'illegal_zip' => { + 'en_US' => 'Illegal (zip)', + #'en_US' => '', + }, + + 'expired_card' => { + 'en_US' => 'Expired card', + }, + + 'daytime' => { + 'en_US' => 'Day Phone', + }, + + 'night' => { + 'en_US' => 'Night Phone', + }, + + 'svc_external-id' => { + 'en_US' => 'External ID', + }, + + 'svc_external-title' => { + 'en_US' => 'Title', + }, + + 'stateid' => { + 'en_US' => 'Driver\'s License', + }, + + 'stateid_state' => { + 'en_US' => 'Driver\'s License State', + }, + + 'invalid_domain' => { + 'en_US' => 'Invalid domain', + }, + + ); } =back