#!/usr/bin/perl

#use utf8;
use strict;
use CGI;

use Opals::Context;
use Opals::Template qw(
    tmpl_read
    tmpl_write
);

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

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

my $sth_pref=$dbh->prepare('select * from opl_preference p inner join opl_prefGroup g on g.id=p.gid order by gid,gOrder');
$sth_pref->execute();

my @prefMenu =();
my $pNum = -1;
my $preGid=0;
while(my $p=$sth_pref->fetchrow_hashref){
     if($preGid != $p->{'gid'}){
         my $pref;
         $pNum++;
         $preGid   = $p->{'id'};
         my $title = $p->{'title'};
         $pref->{'gid'} = $preGid;
         $pref->{'title'} = $title;
         $pref->{'submenu'}=();
         $pref->{'submenuCount'}=0;
         my $submenuPref=();
         push @prefMenu,$pref;
     }
     
     my $subPref;

     my $i=@prefMenu[$pNum]->{'submenuCount'};
     $subPref->{'gOrder'}       = $p->{'gOrder'};
     $subPref->{'var'}          = $p->{'var'};
     $subPref->{'val'}          = $p->{'val'};
     $subPref->{'hidden'}       = $p->{'hidden'};
     $subPref->{'description'}  = $p->{'description'};
     $subPref->{'opt'}          = $p->{'opt'};
     @prefMenu[$pNum]->{'submenu'}->[$i] =$subPref;
     @prefMenu[$pNum]->{'submenuCount'} +=1;
}
$template->param(prefMenu => \@prefMenu);

$sth_pref->finish;
tmpl_write($dbh, $cgi, $cookie, $template);
