summaryrefslogtreecommitdiff
path: root/fml/lib/FML
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-01-27 03:02:23 +0000
committerfukachan <fukachan>2001-01-27 03:02:23 +0000
commita8a50b86ba223d00c2b4f36f1d8185a088dbfec3 (patch)
tree8cabb460a69116a16a77cad92d7fa9873dbe3aec /fml/lib/FML
parent1063d7d4e52b6142d7c9a7c8d0e4c50049c9ba25 (diff)
downloadfml8-a8a50b86ba223d00c2b4f36f1d8185a088dbfec3.tar.gz
fml8-a8a50b86ba223d00c2b4f36f1d8185a088dbfec3.tar.bz2
fml8-a8a50b86ba223d00c2b4f36f1d8185a088dbfec3.zip
define YYYYxMMxDD() method in FML::Date class.
use it in toymodel clean up variable names in ticket "toymodel"
Diffstat (limited to 'fml/lib/FML')
-rw-r--r--fml/lib/FML/Date.pm17
-rw-r--r--fml/lib/FML/Ticket/Model/toymodel.pm46
2 files changed, 36 insertions, 27 deletions
diff --git a/fml/lib/FML/Date.pm b/fml/lib/FML/Date.pm
index 8c6541ca..3d7e4d6f 100644
--- a/fml/lib/FML/Date.pm
+++ b/fml/lib/FML/Date.pm
@@ -91,12 +91,13 @@ sub _date
$WDay[$wday], $mday, $Month[$mon],
1900 + $year, $hour, $min, $sec, $TimeZone);
+ $date->{'YYYY'} = sprintf("%04d", 1900 + $year);
+ $date->{'MM'} = sprintf("%02d", $mon + 1);
+ $date->{'DD'} = sprintf("%02d", $mday);
+
$date->{'YYYYMMDD'} =
sprintf("%04d%02d%02d", 1900 + $year, $mon + 1, $mday);
- $date->{'YYYY/MM/DD'} =
- sprintf("%04d/%02d/%02d", 1900 + $year, $mon + 1, $mday);
-
$date->{'current_time'} =
sprintf("%04d%02d%02d%02d%02d",
1900 + $year, $mon + 1, $mday, $hour, $min);
@@ -133,11 +134,13 @@ sub YYYYMMDD
}
-sub YYYY_MM_DD
+sub YYYYxMMxDD
{
- my ($self, $time) = @_;
- my $p = _date($time || time);
- $p->{'YYYY/MM/DD'};
+ my ($self, $time, $sep) = @_;
+ my $date = _date($time || time);
+
+ $sep ||= '/'; # 1999/09/13 by default
+ $date->{ YYYY }. $sep . $date->{ MM }. $sep. $date->{ DD };
}
diff --git a/fml/lib/FML/Ticket/Model/toymodel.pm b/fml/lib/FML/Ticket/Model/toymodel.pm
index 32853c7e..d53eff68 100644
--- a/fml/lib/FML/Ticket/Model/toymodel.pm
+++ b/fml/lib/FML/Ticket/Model/toymodel.pm
@@ -48,18 +48,21 @@ sub assign
my $subject = $header->get('subject');
use FML::Header::Subject;
- my $replied_message = FML::Header::Subject->is_reply( $subject );
-
- # ticket-id
- my $ticket_id = $self->_extract_ticket_id($header, $config);
+ my $is_reply = FML::Header::Subject->is_reply( $subject );
+ my $has_ticket_id = $self->_extract_ticket_id($header, $config);
# if the header carries "Subject: Re: ..." with ticket-id,
# we do not rewrite the subject but save the extracted $ticket_id.
- if ($replied_message && $ticket_id) {
- Log("extracted ticket_id=$ticket_id");
- $self->{ _ticket_id } = $ticket_id;
+ if ($is_reply && $has_ticket_id) {
+ Log("reply message with extracted ticket_id=$has_ticket_id");
+ $self->{ _ticket_id } = $has_ticket_id;
+ }
+ elsif ($has_ticket_id) {
+ Log("usual message but with extracted ticket_id=$has_ticket_id");
+ $self->{ _ticket_id } = $has_ticket_id;
}
else {
+ # assign a new ticket number for a new message
# call SUPER class's FML::Ticket::System::increment_id()
my $id = $self->increment_id( $config->{ ticket_sequence_file } );
@@ -197,21 +200,24 @@ sub list_up
$self->_open_db($curproc, $args);
- # prepare hash table tied to db_dir/*db's
- my $rh_ticket_id = $self->{ _hash_table }->{ _ticket_id };
- my $rh_date = $self->{ _hash_table }->{ _date };
- my $rh_status = $self->{ _hash_table }->{ _status };
- my $rh_articles = $self->{ _hash_table }->{ _articles };
-
+ # XXX $dh: date object handle
use FML::Date;
my $dh = new FML::Date;
+ # XXX $rh = Reference to Hash table, which is tied to db_dir/*db's
+ my $rh = $self->{ _hash_table };
+ my $rh_status = $rh->{ _status };
my ($tid, $status) = ();
while (($tid, $status) = each %$rh_status) {
- my ($aid) = split(/\s+/, $rh_articles->{ $tid });
- my $date = $dh->YYYYMMDD( $rh_date->{ $aid } );
- printf "%8d %5s %-20s %s\n",
- $date, $status, $tid, $rh_articles->{ $tid };
+ my ($aid) = split(/\s+/, $rh->{ _articles }->{ $tid });
+ # we get the date by the form 1999/09/13
+ my $date = $dh->YYYYxMMxDD( $rh->{ _date }->{ $aid } , '/');
+ printf("%10s %5s %-20s %s\n",
+ $date,
+ $status,
+ $tid,
+ $rh->{ _articles }->{ $tid }
+ );
}
$self->_close_db($curproc, $args);
@@ -237,9 +243,9 @@ sub _open_db
eval q{
use Fcntl;
tie %ticket_id, $db_type, $ticket_id_file, O_RDWR|O_CREAT, 0644;
- tie %date, $db_type, $date_file, O_RDWR|O_CREAT, 0644;
- tie %status, $db_type, $status_file, O_RDWR|O_CREAT, 0644;
- tie %articles, $db_type, $articles_file, O_RDWR|O_CREAT, 0644;
+ tie %date, $db_type, $date_file, O_RDWR|O_CREAT, 0644;
+ tie %status, $db_type, $status_file, O_RDWR|O_CREAT, 0644;
+ tie %articles, $db_type, $articles_file, O_RDWR|O_CREAT, 0644;
};
unless ($@) {
$self->{ _hash_table }->{ _ticket_id } = \%ticket_id;