#!/usr/bin/perl

use strict;
use CGI;

use Opals::Context;
use Opals::Template qw(

    tmpl_read
    tmpl_write
    tmpl_rangedPageList

);

use Opals::User qw(
    
    user_teacherList
    user_addQuick
    user_isUserBc
    user_list

);
use Opals::Constant;

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

my $cgi = CGI->new;
my $input = $cgi->Vars();
my $sortField = $input->{'sortField'};
my $sortOrder   = $input->{'sortOrder'};
    ($sortOrder && $sortOrder >=1 ) || ($sortOrder = 1);

my $pRange = 5;
my $pSize = 10;
my $curPage = $input->{'pNum'};
my $offset;
    ($curPage && $curPage >= 1) ||($curPage = 1 );
    $offset = ($curPage - 1 ) * $pSize;

my ($permission, $cookieList, $template) = tmpl_read(
    {
        dbh             => $dbh,
        cgi             => $cgi,
        tmplFile        => '/txtbk/teacher/list.tmpl',
        reqPermission   => 'tb_user_edit',
    }
);

my $params = {};
my ($resultSize, $teacherList) = user_teacherList($dbh,$params, $offset, $pSize, $sortField, $sortOrder );
my $result = ($resultSize > 0)? 1:0;
if ($resultSize - $offset + 1 <= 0){
    my $availRange = $resultSize % $pSize;
    $availRange = $pSize if ($availRange == 0); 
    $offset = $resultSize - $availRange + 1;
    $curPage = ($offset - 1) / $pSize + 1;
}
my @rangedPageList = tmpl_rangedPageList($resultSize, $curPage, $pSize, $pRange);


$template->param(
    pNum                =>  $curPage,
    teacherList         =>  $teacherList,
    result              =>  $result,
    resultSize          =>  $resultSize,
    rec_start           =>  $offset + 1,
    rec_end             =>  $offset + scalar(@{$teacherList}),
    rangedPageList      =>  \@rangedPageList,
    sortOrder           =>  $sortOrder,
    sortField           =>  $sortField, 
    sortOrderReverse    =>  ($sortOrder && $sortOrder == 1)  ? 2 : 1,
    sortDown            =>  ($sortOrder && $sortOrder == 1)  ? 1 : 0,
    sortTeacherId       =>  ($sortField eq 'uId') ? 1 :0,
    sortFirstName       =>  ($sortField eq 'firstname') ? 1 :0,
    sortLastName        =>  ($sortField eq 'lastname') ? 1 :0,
    sortBarcode         =>  ($sortField eq 'userbarcode') ? 1 :0,

);

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