#!/usr/bin/perl

#use utf8;
use strict;
use CGI;

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
    tmpl_preference
);
use Opals::User qw(
    user_currentUser
    user_getInformationById
);
use Opals::Locale qw(
    loc_getMsgFile
    loc_write
);
use JSON;

use Opals::Constant;

my $dbh   = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;
my ($permission, $cookie, $template) = tmpl_read(
        {
            dbh             => $dbh,
            cgi             => $cgi,
            tmplFile        => 'user/customGroupList.tmpl',
            reqPermission   => 'user_edit',
        }
);
my $hasUserPermEdit=$permission->{"user_permEdit"};
my $input = $cgi->Vars();
my $op=$input->{'op'}||"edit";
my $isNewUser=($op eq "new")? "true":"false";

my $formType="k_12";
my $pref = tmpl_preference($dbh);

my $libType = $pref->{'libraryType'} || 'k-12';
if($libType eq 'public'){
    $formType="public";
}
elsif($libType eq 'academy'){
    $formType="academy";
}
my @cookieList = (@$cookie);

my $uid = $input->{'uid'}|| 0;
if($op eq 'edit' && (!$uid || $uid<=0)){
    $uid = $cgi->cookie('borrower');
}
else{
    push @cookieList, $cgi->cookie(
                    -name       => 'borrower',
                    -path       =>'/',
                    -value      => $uid,
            );

}
my $preSelUserList=getUidList($dbh);
$template->param(preSelUserList=>to_json($preSelUserList));


my $msgValMap ={};
my $msgMap            =loc_getMsgFile('user/userInfo.msg',$msgValMap);
loc_write($template,$msgMap);
tmpl_write($dbh, $cgi, \@cookieList, $template);

#----------------------------------------------------------
sub getUidList{
    my($dbh)=@_;
    my @rsList=();my $uidList=[];
    my $sth =$dbh->prepare("select * from opl_preSelUserList order by dateCreated");
    $sth->execute();
    while(my $r =$sth->fetchrow_hashref){
        my $userList=[]; my $uidList=[];
        @$uidList=split(",",$r->{'uidList'});
        foreach my $uid (@$uidList){
            my ( $userCircInfo,$g)=user_getInformationById($dbh,$uid);
            if(defined $userCircInfo){
                push @$userList,$userCircInfo;
            }
          #  ;
        }
        push @rsList,{id=>$r->{'id'},name=>$r->{'name'},userList=>$userList};
    }
    return \@rsList;
}


#-------------------------------------------------------
