From 1dd74c1dc3a9071c13b190bbae0978871f89f07b Mon Sep 17 00:00:00 2001 From: JT Smith Date: Thu, 12 Sep 2002 03:10:07 +0000 Subject: [PATCH] Fixed a bug in the translations manager where all messages were always marked "Out of Date". --- docs/upgrades/upgrade_4.6.7-4.6.8.sql | 3 ++- lib/WebGUI/Operation/International.pm | 24 ++++++++++++++++-------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/docs/upgrades/upgrade_4.6.7-4.6.8.sql b/docs/upgrades/upgrade_4.6.7-4.6.8.sql index e4d28158e..6f7f37277 100644 --- a/docs/upgrades/upgrade_4.6.7-4.6.8.sql +++ b/docs/upgrades/upgrade_4.6.7-4.6.8.sql @@ -3,7 +3,8 @@ delete from international where internationalId=12 and namespace='Poll'); INSERT INTO international VALUES (12,'Poll',1,'Total Votes:',1031514049); INSERT INTO international VALUES (12,'Poll',7,'ΧάΝΆΖ±ΘΛΚύ:',1031514049);' alter table page modify title varchar(255) null; - +update international set lastUpdated='1031510000' where lastUpdated='1031516049'; +insert into international (internationalId,languageId,namespace,message,lastUpdated) values (723,1,'WebGUI','Deprecated', 1031800566); diff --git a/lib/WebGUI/Operation/International.pm b/lib/WebGUI/Operation/International.pm index b01cc5e79..9dcddbdf9 100644 --- a/lib/WebGUI/Operation/International.pm +++ b/lib/WebGUI/Operation/International.pm @@ -13,6 +13,7 @@ package WebGUI::Operation::International; use Exporter; use strict; use Tie::CPHash; +use WebGUI::DateTime; use WebGUI::HTMLForm; use WebGUI::Icon; use WebGUI::International; @@ -227,13 +228,14 @@ sub www_exportTranslation { #------------------------------------------------------------------- sub www_listInternationalMessages { - my ($output, $sth, $key, $p, $search, $status, %data, %list, $i, $missing, @row, $f, $outOfDate, $ok); + my ($output, $sth, $key, $p, $search, $status, %data, %list, $deprecated, $i, $missing, @row, $f, $outOfDate, $ok); tie %data, 'Tie::CPHash'; if (WebGUI::Privilege::isInGroup(3)) { %data = WebGUI::SQL->quickHash("select language from language where languageId=".$session{form}{lid}); $missing = ''.WebGUI::International::get(596).''; $outOfDate = ''.WebGUI::International::get(719).''; $ok = WebGUI::International::get(720); + $deprecated = WebGUI::International::get(723); $output = '

'.WebGUI::International::get(595).' ('.$data{language}.')

'; $f = WebGUI::HTMLForm->new(1); $f->hidden("op","listInternationalMessages"); @@ -250,34 +252,40 @@ sub www_listInternationalMessages { $list{"z-".$data{namespace}."-".$data{internationalId}}{namespace} = $data{namespace}; $list{"z-".$data{namespace}."-".$data{internationalId}}{message} = $data{message}; $list{"z-".$data{namespace}."-".$data{internationalId}}{lastUpdated} = $data{lastUpdated}; - $list{"z-".$data{namespace}."-".$data{internationalId}}{missing} = 0; + $list{"z-".$data{namespace}."-".$data{internationalId}}{status} = "deleted"; } $sth->finish; $sth = WebGUI::SQL->read("select * from international where languageId=1".$search); while (%data = $sth->hash) { $key = $data{namespace}."-".$data{internationalId}; unless ($list{"z-".$key}) { - $list{"a-".$key}{missing} = 1; $list{"a-".$key}{namespace} = $data{namespace}; $list{"a-".$key}{id} = $data{internationalId}; + $list{"a-".$key}{status} = "missing"; } else { - if ($list{"z-".$key}{lastUpdated} > $data{lastUpdated}) { + if ($list{"z-".$key}{lastUpdated} < $data{lastUpdated}) { $list{"o-".$key} = $list{"z-".$key}; delete($list{"z-".$key}); - $list{"o-".$key}{outOfDate} = 1; + $list{"o-".$key}{status} = "updated"; + } else { + $list{"q-".$key} = $list{"z-".$key}; + delete($list{"z-".$key}); + $list{"q-".$key}{status} = "ok"; } } } $sth->finish; foreach $key (sort {$a cmp $b} keys %list) { - if ($list{$key}{outOfDate}) { + if ($list{$key}{status} eq "updated") { $status = $outOfDate; - } elsif ($list{$key}{missing}) { + } elsif ($list{$key}{status} eq "missing") { $status = $missing; + } elsif ($list{$key}{status} eq "deleted") { + $status = $deprecated; } else { $status = $ok; } - $row[$i] = ''.$status."" + $row[$i] = ''.$status."" .editIcon('op=editInternationalMessage&lid='.$session{form}{lid} .'&iid='.$list{$key}{id}.'&namespace='.$list{$key}{namespace}.'&pn='.$session{form}{pn} .'&missing='.$list{$key}{missing})."".$list{$key}{namespace}.""