#!/usr/bin/perl

use strict;
use CGI;

use Opals::Context;
use Opals::Constant;
use Opals::Template qw(
    tmpl_read
    tmpl_write
    tmpl_redirect
);
use Opals::Pathfinder qw(
    pf_add
    pf_save
    pf_delete
    pf_addBookRs
    pf_addWebRs
    pf_getRecById
    pf_getSubjectAreaList
    pf_parsePfXml
);
use Opals::Locale qw(
    loc_getMsgFile
    loc_write
);
use Opals::Date qw(
    date_f005
);
use Opals::Session qw(
    SessionHdl_clearVar
    SessionHdl_get
);
my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;
my $input = $cgi->Vars();
my ($permission, $cookieList, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => 'pf/pfEditor.tmpl',
        reqPermission   => 'pf',
    }
);
#=====================================================================================
    # Fri, Jun 17, 2011 @ 11:26:24 EDT
    # ADD OPTIONS display/hide iten circ stat and bookcover  (circStats & bookCover)
    # ADD fields :author, audience, created date, XML  => Change TABLE pf_record 
    #  ALTER table  pf_record ADD  `audience` varchar(255) character set latin1 default NULL      
    #  ALTER table  pf_record ADD  `xml` text      
  
    # ADD WORKSHEET resource 
    # ADD  FILE_ICON in module: Contant.pm
    # FILES (new):  drag_drop.js 
    #               /script/pfConversion
    #               /bin/pf/getPfXml
    #               /bin/pf/pfPrint 
    # 
    #               /htdocs/theme/opals/pf/pfContHTML.inc
    #               /htdocs/theme/opals/pf/pfEditorDragDrop.inc
    #               /htdocs/theme/opals/pf/pfPrint.tmpl
    #               /htdocs/theme/opals/pf/pfRsBlock.inc
    # 
    
    #               /bin/util/uploadFile 
    #               /module/Opals/Constant.pm            
    #               /module/Opals/Pathfinder.pm            
    #               /module/Opals/RecordInfoHTML.pm            
    #                
    #               All of files in PATHFINDER directory
    # 
#=====================================================================================


my $pf;
my $dateToday = date_f005();
   $dateToday =~ s/([\d]{4})([\d]{2})([\d]{2})[\d]+\.(0|1)/$1-$2-$3/;
my $sessionID = $cgi->cookie('globalSessionID');
      
if ($permission && $permission->{'pf'}) {
   my $pfId     = $input->{'pfId'};
   my $op       = $input->{'op'};
   my $addRsHitlistOp = $input->{'addRsHitlistOp'};
   if($op eq 'save'){
      $pfId = pf_save($dbh,$sessionID,$input->{'xml'});
   }
   elsif($op eq 'clone'){
        $template->param(clonePf=>1);   
   }
   #Thu, Jun 28, 2012 @ 14:27:38 EDT
   if(defined $addRsHitlistOp && $addRsHitlistOp > 0){
        my @ridList;  
        my $rid =-1;my $ssType = "addRsPathfinder";
        if(defined $input->{'rid'} || $input->{'rid'} ne ''){   
            push @ridList ,{rid=>$input->{'rid'} };  
            $rid= $input->{'rid'};
        }
        else {
            #my $ssType = "addRsPathfinder";
            @ridList = SessionHdl_get($dbh,$sessionID,$ssType);
            if(scalar @ridList){
           #     $template->param(addRsPathfinder =>1);
            }
        }
         
        $template->param(addRsHitlistOp =>1,addRsPathfinder =>1,
                         rsList         => \@ridList,
                         rid            => $rid,
                         );
        if($op eq 'save'){
            my $url = '/bin/pf/pfList?op=addBookRs' ;
            $url .= '&rid=' .$rid if(defined $rid && $rid>0);

            tmpl_redirect($cgi,$url); 
        }
       
   }
   #END:  Thu, Jun 28, 2012 @ 14:27:38 EDT
   $template->param(pfId=> $pfId);             
}
else {
    my @form_input;
    foreach my $param (keys %{$input}) {
        push @form_input, {name =>"$param",value => "$input->{$param}"};
    }
    $template->param(
        input=>\@form_input,
    );
}

my $fileIconMap=[];
my $fiMap =FILE_ICON;
foreach my $ext(keys %$fiMap){
    push @$fileIconMap,{ext=>$ext, icon=>$fiMap->{$ext}};
}
$template->param( fileIconMap => $fileIconMap,
                  hlpUrl      => Opals::Constant->getHlpUrl('pfList')
                  );


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

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


