#!/usr/bin/perl

#use utf8;
use strict;
use CGI;

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);
use Opals::Locale qw(
    loc_getMsgFile
    loc_write
);
use Opals::UrlRegistry qw(
    ureg_getUrlRegistry
);
use JSON;
my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;
my $input = $cgi->Vars();
my  $rating =Opals::Context->preference('rating');
my $reservationSysType=Opals::Context->preference('reservationSysType');
my ($permission, $cookie, $template) = tmpl_read(
        {
            dbh             => $dbh,
            cgi             => $cgi,
            tmplFile        => 'report/listreport.tmpl',
        }
);
$template->param( rating     => $rating);

#Tue, Jan 12, 2010 @ 10:31:41 EST
my $msgValMap ={};
my $msgMap            =loc_getMsgFile('report/reports.msg',$msgValMap);

my ($errCode, $ck, $user) = Opals::User::user_currentUser($dbh, $cgi);
my $permission = Opals::User::user_permission_1($dbh, $user->{'uid'});
my $urlRegistry=ureg_getUrlRegistry($permission );

my $urlList={
    itemStatsRpt=>[
                    {urlName=>"url_itemacqst",                      urlTxt=>$msgMap->{'itemAccqTxt'}},
                    {urlName=>"url_modifiedRecs",                   urlTxt=>$msgMap->{'recModifiedTxt'}},
                    {urlName=>"url_itemListByStatus_missing",       urlTxt=>$msgMap->{'missItemTxt'}},
                    {urlName=>"url_itemListByStatus_damage",        urlTxt=>$msgMap->{'damgItemTxt'}},
                    {urlName=>"url_itemListByStatus_lost",          urlTxt=>$msgMap->{'lostItemTxt'}},
                    {urlName=>"url_itemListByStatus_delete",        urlTxt=>$msgMap->{'delItemTxt'}},
                    {urlName=>"url_itemListByStatus_onOrder",       urlTxt=>$msgMap->{'onOrderItemsTxt'}},
                    {urlName=>"url_itemListByStatus_inProcess",     urlTxt=>$msgMap->{'inProcessingItemsTxt'}},
                    {urlName=>"url_itemListByStatus_inRepair",      urlTxt=>$msgMap->{'inRepairItemsTxt'}},
                    {urlName=>"url_itemListByStatus_claimReturn",   urlTxt=>$msgMap->{'claimReturnStatusItemsTxt'}},
                    {urlName=>"url_itemListByStatus_claimNotLoan",  urlTxt=>$msgMap->{'claimNeverLoanStatusItemsTxt'}},
                    {urlName=>"url_itemListByStatus_withdrawn",     urlTxt=>$msgMap->{'withdrawnItemsTxt'}},
                    {urlName=>"url_bedsreport",                     urlTxt=>$msgMap->{'colHoldingStatTxt'}},
                    {urlName=>"url_avgCpyDate",                     urlTxt=>$msgMap->{'avgCopyrightDateTxt'}},
                    {urlName=>"url_rangeShelfList",                 urlTxt=>$msgMap->{'sheltListRangeTxt'}},
                  ],

    circStatsRpt=>[
                    {urlName=>"url_circsttc",                       urlTxt=>$msgMap->{'circStatTxt'}},
                    {urlName=>"url_itemNoCirc",                     urlTxt=>$msgMap->{'itemNoCircTxt'}},
                    {urlName=>($reservationSysType==1)?"url_search_reqReserveList":"url_reportreserve",   urlTxt=>$msgMap->{'reservedItemTxt'}},
                    {urlName=>"url_itemloan",                       urlTxt=>$msgMap->{'loanItemTxt'}},
                    {urlName=>"url_fineList",                       urlTxt=>$msgMap->{'fineListTxt'}},
                    {urlName=>"url_itemCircStats",                  urlTxt=>$msgMap->{'circTitleStatTxt'}},
                    {urlName=>"url_userCircStats",                  urlTxt=>$msgMap->{'circUserStatTxt'}},
                    {urlName=>"url_emailList",                      urlTxt=>$msgMap->{'emailListTxt'}}
                  ],
    tools=>[
                    {urlName=>"url_srchF852sf",                     urlTxt=>$msgMap->{'search852sfTxt'}},
                    {urlName=>"url_ge852",                          urlTxt=>$msgMap->{'globalEditorTxt'}},
                    #{subGrp=>{name=>"Hitlist",itemList=>[
                        {urlName=>"url_util_hitlist_deletion",          urlTxt=>$msgMap->{'hitlistDelTxt'}},
                        {urlName=>"url_util_hitlist_printLabel",        urlTxt=>$msgMap->{'hitlistPrintLabelTxt'}},
                        {urlName=>"url_util_hitlist_statusChange",      urlTxt=>$msgMap->{'hitlistStatusChangeTxt'}},
                        {urlName=>"url_util_hitlist_export",            urlTxt=>$msgMap->{'hitlistExportTxt'}},
                    #]}},
                    #{urlName=>"url_delExpFmHitlist",                urlTxt=>$msgMap->{'delExpHitlistTxt'}},
                    {urlName=>"url_printLabelsByRange",             urlTxt=>$msgMap->{'rangePrintTxt'}},
                    {urlName=>"url_bcCmdSheet",                     urlTxt=>$msgMap->{'barcodeCmmdTxt'}},
                    {urlName=>"url_newItemMngmt",                   urlTxt=>$msgMap->{'newItemMmtTxt'}},
                    {urlName=>"url_barcodeSystemMnt",               urlTxt=>$msgMap->{'bcSysMmtTxt'}},
                    {urlName=>"url_reviewUserComnts",               urlTxt=>$msgMap->{'comntRatingTxt'}},
                    {urlName=>"url_homeEdit",                       urlTxt=>$msgMap->{'editHomepageTxt'}},
                    {urlName=>"url_prefixAuthCtrl",                 urlTxt=>$msgMap->{'prefixAuthCtrlTxt'}},
                    {urlName=>"url_locAuthCtrl",                    urlTxt=>$msgMap->{'locAuthCtrlTxt'}},
                    {urlName=>"url_itemTypeAuthCtrl",               urlTxt=>$msgMap->{'itemTypeAuthCtrlTxt'}}
           
           ],
    otherRpt=>[
                    {urlName=>"url_ill_list",                       urlTxt=>$msgMap->{'illListTxt'}},
                    {urlName=>"url_searchStats",                    urlTxt=>$msgMap->{'searchStatsTxt'}},
                    {urlName=>"url_circTrans_circ",                 urlTxt=>$msgMap->{'circTransRptTxt'}},
                    {urlName=>"url_circTrans_hold",                 urlTxt=>$msgMap->{'holdTransRptTxt'}},
                    {urlName=>"url_itemRecord",                     urlTxt=>$msgMap->{'itemRecordRptTxt'}}
              ]
};

foreach my $e(keys %$urlList){
    foreach my $u(@{$urlList->{$e}}){
        if(defined $urlRegistry->{$u->{'urlName'}}){
            $u->{'url'}= $urlRegistry->{$u->{'urlName'}};
        }
        elsif(defined $u->{'subGrp'} && defined $u->{'subGrp'}->{'itemList'}){
            foreach my $s(@{$u->{'subGrp'}->{'itemList'}}){
                if(defined $urlRegistry->{$s->{'urlName'}}){
                    $s->{'url'}= $urlRegistry->{$s->{'urlName'}};
                }
            }
        }
    }
}



$template->param( urlList    => to_json($urlList,{pretty=>1}));

loc_write($template,$msgMap);

tmpl_write($dbh, $cgi, $cookie, $template);
