From: hickert Date: Tue, 29 Nov 2005 07:44:22 +0000 (+0000) Subject: Renamed fon and fax reports folder X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=ddb3eba243e899a26bb25b623766704fcf644b99;p=gosa.git Renamed fon and fax reports folder git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@2110 594d385d-05f5-0310-b6e9-bd551577e9d8 --- diff --git a/contrib/gosa.conf b/contrib/gosa.conf index a310eb5da..19b362871 100644 --- a/contrib/gosa.conf +++ b/contrib/gosa.conf @@ -52,9 +52,9 @@ + path="plugins/gofax/faxreports" /> + path="plugins/gofon/fonreports" /> config= $config; + $this->ui= $ui; + + /* Try to get matching search base for user provided + by 'dn' */ + $tmp= preg_replace ("/^[^,]+,[^,]+,/", "", $ui->dn); + $sb= array_search($tmp, $this->config->departments); + if ($sb === FALSE){ + $sb= "/"; + } + $this->search_base= $sb; + + /* Get global filter config */ + if (!is_global("faxreportfilter")){ + $ui= get_userinfo(); + $base= get_base_from_people($ui->dn); + $faxfilter= array("year" => date("Y"), + "month" => date("m"), + "search_base" => $base, + "search_for" => "*"); + register_global("faxreportfilter", $faxfilter); + } + } + + function execute() + { + /* Call parent execute */ + plugin::execute(); + + if(isset($_POST['EntriesPerPage'])){ + $this->range = $_POST['EntriesPerPage']; + } + + /* Get template engine */ + $smarty= get_smarty(); + $faxfilter= get_global("faxreportfilter"); + foreach( array("year", "month", "search_for", "search_base") as $type){ + if (isset($_POST[$type])){ + $faxfilter[$type]= $_POST[$type]; + } + $this->$type= $faxfilter[$type]; + } + register_global("faxreportfilter", $faxfilter); + + /* Adapt sorting */ + if (isset($_GET['sort'])){ + if ($this->sort == (int)$_GET['sort']){ + if ($this->sort_direction == "down"){ + $this->sort_direction= "up"; + } else { + $this->sort_direction= "down"; + } + } + $this->sort= (int)$_GET['sort']; + if ($this->sort < 0 || $this->sort > 5){ + $this->sort= 0; + } + } + + /* Do detail view? */ + if (isset($_GET['detail'])){ + $query = "SELECT id,uid,date_format(queuing_time, '%Y%m%d%H%i%s') as queuing_time,status,sender_id,sender_msn,receiver_id,". + "receiver_msn,pages,status_message,transfer_time FROM faxlog ". + "WHERE id=".$_GET['detail'].";"; + + /* Connecting, selecting database */ + $cfg= $this->config->data['SERVERS']['FAX']; + + if(!is_callable("mysql_connect")){ + print_red(_("There is no mysql extension available, please check your php setup.")); + return; + } + + $link = @mysql_pconnect($cfg['SERVER'], $cfg['LOGIN'], $cfg['PASSWORD']); + if ($link === FALSE){ + print_red(_("Can't connect to fax database, no reports can be shown!")); + return; + } + if (! @mysql_select_db("gofax")){ + print_red(_("Can't select fax database for report generation!")); + return; + } + + @DEBUG (DEBUG_MYSQL, __LINE__, __FUNCTION__, __FILE__, + $query, "Database query"); + $result = @mysql_query($query); + if ($result === false){ + print_red(_("Query for fax database failed!")); + return; + } + + $line = mysql_fetch_array($result, MYSQL_ASSOC); + mysql_close($link); + + if (!preg_match ("/'".$line["uid"]."'/", $this->userfilter)){ + print_red (_("You have no permission to retrieve informations about this fax id!")); + return; + } + + $parts= array( "id", "uid", "queuing_time", "status", "sender_id", "sender_msn", + "receiver_id", "receiver_msn", "pages", "status_message", "transfer_time" ); + foreach ($parts as $vname) { + $final="fax_$vname"; + if ($line[$vname] != ""){ + $smarty->assign("$final", $line[$vname]); + } else { + $smarty->assign("$final", "-"); + } + } + $queuing_time= $line['queuing_time']; + + $_SESSION['fuserfilter']= $this->userfilter; + $smarty->assign("plug", "?plug=".validate($_GET['plug'])); + $smarty->assign("detail", validate($_GET['detail'])); + + $format= _("Y-M-D"); + $date= preg_replace("/Y/", substr($queuing_time,0,4), $format); + $date= preg_replace("/M/", substr($queuing_time,4,2), $date); + $date= preg_replace("/D/", substr($queuing_time,6,2), $date); + $smarty->assign("date", $date); + $smarty->assign("time", substr($queuing_time,8,2).":". + substr($queuing_time,10,2).":". + substr($queuing_time,12,2)); + return($smarty->fetch(get_template_path('detail.tpl', TRUE))); + } + + /* Search button has been pressed */ + if ($this->search_for != ""){ + $this->start= 0; + + if (is_integer (strpos($this->search_for, "*"))){ + $s= $this->search_for; + } else { + $s= "*".$this->search_for."*"; + } + $ldap= $this->config->get_ldap_link(); + $ldap->cd ($this->search_base); + + /* Perform ldap search for potential users */ + $ldap->search ("(&(objectClass=gosaAccount)(!(objectClass=gosaUserTemplate))". + "(objectClass=goFaxAccount)". + "(|(uid=$s)(l=$s)(homePhone=$s)". + "(telephoneNumber=$s)(facsimileTelephoneNumber=$s)(mobile=$s)". + "(pager=$s)(cn=$s)(givenName=$s)(sn=$s)(personalTitle=$s)". + "(title=$s)))"); + + $fax_users= array(); + while ($attrs= $ldap->fetch()){ + $acl= get_permissions ($ldap->getDN(), $this->ui->subtreeACL); + $acl= get_module_permission($acl, "fax", $ldap->getDN()); + + if (chkacl ($acl, "faxReport") == ""){ + $fax_users[]= $attrs["uid"][0]; + } + } + + /* Prepare SQL query */ + $this->userfilter= ""; + foreach ($fax_users as $user){ + $this->userfilter.= "uid = '$user' OR "; + } + $this->userfilter= preg_replace("/OR $/", "", $this->userfilter); + } + + + /* Perform SQL query */ + if ($this->userfilter){ + if ($this->sort_direction == "down"){ + $desc= "DESC"; + } else { + $desc= ""; + } + $start= date ("YmdHis", mktime(0,0,0,$this->month,1,$this->year)); + $end= date ("YmdHis", mktime(23,59,59,$this->month+1,0,$this->year)); + $query = "SELECT id,uid,date_format(queuing_time, '%Y%m%d%H%i%s') as queuing_time,status,sender_id,receiver_id,pages FROM faxlog ". + "WHERE ( ".$this->userfilter." ) AND queuing_time <= $end AND ". + "queuing_time >= $start ORDER BY ".$this->fields[$this->sort]." $desc;"; + + if(!is_callable("mysql_connect")){ + print_red("There is no mysql extension configured in your php setup."); + return; + } + + /* Connecting, selecting database */ + $cfg= $this->config->data['SERVERS']['FAX']; + $link = @mysql_pconnect($cfg['SERVER'], $cfg['LOGIN'], $cfg['PASSWORD']); + if ($link === FALSE){ + print_red(_("Can't connect to fax database, no reports can be shown!")); + return; + } + if (! @mysql_select_db("gofax")){ + print_red(_("Can't select fax database for report generation!")); + return; + } + + @DEBUG (DEBUG_MYSQL, __LINE__, __FUNCTION__, __FILE__, + $query, "Database query"); + $result = @mysql_query($query); + if ($result === false){ + print_red(_("Query for fax database failed!")); + return; + } + + $report_list= array(); + while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { + $hour= substr($line["queuing_time"], 8, 2); + $minute=substr($line["queuing_time"], 10, 2); + $format= _("Y-M-D"); + $date= preg_replace("/Y/", substr($line["queuing_time"], 0, 4), $format); + $date= preg_replace("/M/", substr($line["queuing_time"], 4, 2), $date); + $date= preg_replace("/D/", substr($line["queuing_time"], 6, 2), $date); + + + $report_list[]= "\"\" ".$line["uid"]."". + "$date $hour:$minute". + "".$this->status[$line["status"]]."". + "".$line["sender_id"]."". + "".$line["receiver_id"]."". + "".$line["pages"].""; + } + + $this->report_list= $report_list; + mysql_close($link); + } + + /* Generate output */ + $mod= 0; + if (isset($_GET['start'])){ + $this->start= (int)$_GET['start']; + } + + $output= ""; + foreach ($this->report_list as $val){ + if ($mod < $this->start) { + $mod++; + continue; + } + if ($mod >= ($this->start + $this->range)){ + $mod++; + break; + } + if ( ($mod++) & 1){ + $col= "background-color: #ECECEC;"; + } else { + $col= "background-color: #F5F5F5;"; + } + $output.= "$val"; + } + + /* Prepare template */ + $smarty->assign("search_for", $this->search_for); + $smarty->assign("bases", $this->config->idepartments); + $smarty->assign("base_select", $this->search_base); + $months= array(); + $months[1]= _("January"); $months[2]= _("February"); $months[3]= _("March"); $months[4]= _("April"); + $months[5]= _("May"); $months[6]= _("June"); $months[7]= _("July"); $months[8]= _("August"); + $months[9]= _("September"); $months[10]= _("October"); $months[11]= _("November"); $months[12]= _("December"); + $smarty->assign("months", $months); + $smarty->assign("month_select", $this->month); + $current= date("Y"); + $years= array(); + for ($y= $current - 5; $y<=$current; $y++){ + $years[]= $y; + } + $smarty->assign("years", $years); + $smarty->assign("year_select", $this->year); + + if (isset($fax_users) && count($fax_users)){ + $smarty->assign("search_result", $output); + $smarty->assign("range_selector", range_selector(count($this->report_list), $this->start, $this->range,"EntriesPerPage")); + }else{ + $smarty->assign("search_result", ""); + } + + + + /* Show main page */ + $smarty->assign("plug", "?plug=".validate($_GET['plug'])); + $smarty->assign("launchimage", get_template_path('images/launch.png')); + $smarty->assign("search_image", get_template_path('images/search.png')); + for($i= 0; $i<7; $i++){ + $smarty->assign("mode$i", ""); + } + $smarty->assign("mode".$this->sort, "\"\"sort_direction. + ".png\" border=0 align=middle>"); + return($smarty->fetch(get_template_path('contents.tpl', TRUE))); + } + +} + +?> diff --git a/plugins/gofax/faxreports/contents.tpl b/plugins/gofax/faxreports/contents.tpl new file mode 100644 index 000000000..eef9011e4 --- /dev/null +++ b/plugins/gofax/faxreports/contents.tpl @@ -0,0 +1,59 @@ +
+

[F]{t}Filter{/t}

+
+
+

+  {t}Search for{/t} + + {t}in{/t} + + {t}during{/t} + + {t}in{/t} + +   + +

+
+ +
+ +{if $search_result ne ""} + + + + + + + + + + {$search_result} +
{t}User{/t} {$mode0}{t}Date{/t} {$mode1}{t}Status{/t} {$mode2}{t}Sender{/t} {$mode3}{t}Receiver{/t} {$mode4}{t}# pages{/t} {$mode5}
+ + + + + +
{$range_selector}
+

+   +

+ +{else} + {t}Search returned no results...{/t} +{/if} + + + + diff --git a/plugins/gofax/faxreports/detail.tpl b/plugins/gofax/faxreports/detail.tpl new file mode 100644 index 000000000..1cd45f5fc --- /dev/null +++ b/plugins/gofax/faxreports/detail.tpl @@ -0,0 +1,70 @@ + + + + + + +
+ + {t}FAX preview - please wait{/t} + +

+ {t}Click on fax to download{/t} +

+
+   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{t}FAX ID{/t}{$fax_id}
{t}User{/t}{$fax_uid}
{t}Date / Time{/t}{$date} / {$time}
{t}Sender MSN{/t}{$fax_sender_msn}
{t}Sender ID{/t}{$fax_sender_id}
{t}Receiver MSN{/t}{$fax_receiver_msn}
{t}Receiver ID{/t}{$fax_receiver_id}
{t}Status{/t}{$fax_status}
{t}Status message{/t}{$fax_status_message}
{t}Transfer time{/t}{$fax_transfer_time}
{t}# pages{/t}{$fax_pages}
+ +
+ +

+ +

+ diff --git a/plugins/gofax/faxreports/main.inc b/plugins/gofax/faxreports/main.inc new file mode 100644 index 000000000..cfa7de073 --- /dev/null +++ b/plugins/gofax/faxreports/main.inc @@ -0,0 +1,20 @@ +execute (); + $display.= "\n"; + + /* Store changes in session */ + $_SESSION['faxreport']= $faxreport; +} +?> diff --git a/plugins/gofax/reports/class_faxreport.inc b/plugins/gofax/reports/class_faxreport.inc deleted file mode 100644 index dbae32e3c..000000000 --- a/plugins/gofax/reports/class_faxreport.inc +++ /dev/null @@ -1,328 +0,0 @@ -config= $config; - $this->ui= $ui; - - /* Try to get matching search base for user provided - by 'dn' */ - $tmp= preg_replace ("/^[^,]+,[^,]+,/", "", $ui->dn); - $sb= array_search($tmp, $this->config->departments); - if ($sb === FALSE){ - $sb= "/"; - } - $this->search_base= $sb; - - /* Get global filter config */ - if (!is_global("faxreportfilter")){ - $ui= get_userinfo(); - $base= get_base_from_people($ui->dn); - $faxfilter= array("year" => date("Y"), - "month" => date("m"), - "search_base" => $base, - "search_for" => "*"); - register_global("faxreportfilter", $faxfilter); - } - } - - function execute() - { - /* Call parent execute */ - plugin::execute(); - - if(isset($_POST['EntriesPerPage'])){ - $this->range = $_POST['EntriesPerPage']; - } - - /* Get template engine */ - $smarty= get_smarty(); - $faxfilter= get_global("faxreportfilter"); - foreach( array("year", "month", "search_for", "search_base") as $type){ - if (isset($_POST[$type])){ - $faxfilter[$type]= $_POST[$type]; - } - $this->$type= $faxfilter[$type]; - } - register_global("faxreportfilter", $faxfilter); - - /* Adapt sorting */ - if (isset($_GET['sort'])){ - if ($this->sort == (int)$_GET['sort']){ - if ($this->sort_direction == "down"){ - $this->sort_direction= "up"; - } else { - $this->sort_direction= "down"; - } - } - $this->sort= (int)$_GET['sort']; - if ($this->sort < 0 || $this->sort > 5){ - $this->sort= 0; - } - } - - /* Do detail view? */ - if (isset($_GET['detail'])){ - $query = "SELECT id,uid,date_format(queuing_time, '%Y%m%d%H%i%s') as queuing_time,status,sender_id,sender_msn,receiver_id,". - "receiver_msn,pages,status_message,transfer_time FROM faxlog ". - "WHERE id=".$_GET['detail'].";"; - - /* Connecting, selecting database */ - $cfg= $this->config->data['SERVERS']['FAX']; - - if(!is_callable("mysql_connect")){ - print_red(_("There is no mysql extension available, please check your php setup.")); - return; - } - - $link = @mysql_pconnect($cfg['SERVER'], $cfg['LOGIN'], $cfg['PASSWORD']); - if ($link === FALSE){ - print_red(_("Can't connect to fax database, no reports can be shown!")); - return; - } - if (! @mysql_select_db("gofax")){ - print_red(_("Can't select fax database for report generation!")); - return; - } - - @DEBUG (DEBUG_MYSQL, __LINE__, __FUNCTION__, __FILE__, - $query, "Database query"); - $result = @mysql_query($query); - if ($result === false){ - print_red(_("Query for fax database failed!")); - return; - } - - $line = mysql_fetch_array($result, MYSQL_ASSOC); - mysql_close($link); - - if (!preg_match ("/'".$line["uid"]."'/", $this->userfilter)){ - print_red (_("You have no permission to retrieve informations about this fax id!")); - return; - } - - $parts= array( "id", "uid", "queuing_time", "status", "sender_id", "sender_msn", - "receiver_id", "receiver_msn", "pages", "status_message", "transfer_time" ); - foreach ($parts as $vname) { - $final="fax_$vname"; - if ($line[$vname] != ""){ - $smarty->assign("$final", $line[$vname]); - } else { - $smarty->assign("$final", "-"); - } - } - $queuing_time= $line['queuing_time']; - - $_SESSION['fuserfilter']= $this->userfilter; - $smarty->assign("plug", "?plug=".validate($_GET['plug'])); - $smarty->assign("detail", validate($_GET['detail'])); - - $format= _("Y-M-D"); - $date= preg_replace("/Y/", substr($queuing_time,0,4), $format); - $date= preg_replace("/M/", substr($queuing_time,4,2), $date); - $date= preg_replace("/D/", substr($queuing_time,6,2), $date); - $smarty->assign("date", $date); - $smarty->assign("time", substr($queuing_time,8,2).":". - substr($queuing_time,10,2).":". - substr($queuing_time,12,2)); - return($smarty->fetch(get_template_path('detail.tpl', TRUE))); - } - - /* Search button has been pressed */ - if ($this->search_for != ""){ - $this->start= 0; - - if (is_integer (strpos($this->search_for, "*"))){ - $s= $this->search_for; - } else { - $s= "*".$this->search_for."*"; - } - $ldap= $this->config->get_ldap_link(); - $ldap->cd ($this->search_base); - - /* Perform ldap search for potential users */ - $ldap->search ("(&(objectClass=gosaAccount)(!(objectClass=gosaUserTemplate))". - "(objectClass=goFaxAccount)". - "(|(uid=$s)(l=$s)(homePhone=$s)". - "(telephoneNumber=$s)(facsimileTelephoneNumber=$s)(mobile=$s)". - "(pager=$s)(cn=$s)(givenName=$s)(sn=$s)(personalTitle=$s)". - "(title=$s)))"); - - $fax_users= array(); - while ($attrs= $ldap->fetch()){ - $acl= get_permissions ($ldap->getDN(), $this->ui->subtreeACL); - $acl= get_module_permission($acl, "fax", $ldap->getDN()); - - if (chkacl ($acl, "faxReport") == ""){ - $fax_users[]= $attrs["uid"][0]; - } - } - - /* Prepare SQL query */ - $this->userfilter= ""; - foreach ($fax_users as $user){ - $this->userfilter.= "uid = '$user' OR "; - } - $this->userfilter= preg_replace("/OR $/", "", $this->userfilter); - } - - - /* Perform SQL query */ - if ($this->userfilter){ - if ($this->sort_direction == "down"){ - $desc= "DESC"; - } else { - $desc= ""; - } - $start= date ("YmdHis", mktime(0,0,0,$this->month,1,$this->year)); - $end= date ("YmdHis", mktime(23,59,59,$this->month+1,0,$this->year)); - $query = "SELECT id,uid,date_format(queuing_time, '%Y%m%d%H%i%s') as queuing_time,status,sender_id,receiver_id,pages FROM faxlog ". - "WHERE ( ".$this->userfilter." ) AND queuing_time <= $end AND ". - "queuing_time >= $start ORDER BY ".$this->fields[$this->sort]." $desc;"; - - if(!is_callable("mysql_connect")){ - print_red("There is no mysql extension configured in your php setup."); - return; - } - - /* Connecting, selecting database */ - $cfg= $this->config->data['SERVERS']['FAX']; - $link = @mysql_pconnect($cfg['SERVER'], $cfg['LOGIN'], $cfg['PASSWORD']); - if ($link === FALSE){ - print_red(_("Can't connect to fax database, no reports can be shown!")); - return; - } - if (! @mysql_select_db("gofax")){ - print_red(_("Can't select fax database for report generation!")); - return; - } - - @DEBUG (DEBUG_MYSQL, __LINE__, __FUNCTION__, __FILE__, - $query, "Database query"); - $result = @mysql_query($query); - if ($result === false){ - print_red(_("Query for fax database failed!")); - return; - } - - $report_list= array(); - while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { - $hour= substr($line["queuing_time"], 8, 2); - $minute=substr($line["queuing_time"], 10, 2); - $format= _("Y-M-D"); - $date= preg_replace("/Y/", substr($line["queuing_time"], 0, 4), $format); - $date= preg_replace("/M/", substr($line["queuing_time"], 4, 2), $date); - $date= preg_replace("/D/", substr($line["queuing_time"], 6, 2), $date); - - - $report_list[]= "\"\" ".$line["uid"]."". - "$date $hour:$minute". - "".$this->status[$line["status"]]."". - "".$line["sender_id"]."". - "".$line["receiver_id"]."". - "".$line["pages"].""; - } - - $this->report_list= $report_list; - mysql_close($link); - } - - /* Generate output */ - $mod= 0; - if (isset($_GET['start'])){ - $this->start= (int)$_GET['start']; - } - - $output= ""; - foreach ($this->report_list as $val){ - if ($mod < $this->start) { - $mod++; - continue; - } - if ($mod >= ($this->start + $this->range)){ - $mod++; - break; - } - if ( ($mod++) & 1){ - $col= "background-color: #ECECEC;"; - } else { - $col= "background-color: #F5F5F5;"; - } - $output.= "$val"; - } - - /* Prepare template */ - $smarty->assign("search_for", $this->search_for); - $smarty->assign("bases", $this->config->idepartments); - $smarty->assign("base_select", $this->search_base); - $months= array(); - $months[1]= _("January"); $months[2]= _("February"); $months[3]= _("March"); $months[4]= _("April"); - $months[5]= _("May"); $months[6]= _("June"); $months[7]= _("July"); $months[8]= _("August"); - $months[9]= _("September"); $months[10]= _("October"); $months[11]= _("November"); $months[12]= _("December"); - $smarty->assign("months", $months); - $smarty->assign("month_select", $this->month); - $current= date("Y"); - $years= array(); - for ($y= $current - 5; $y<=$current; $y++){ - $years[]= $y; - } - $smarty->assign("years", $years); - $smarty->assign("year_select", $this->year); - - if (isset($fax_users) && count($fax_users)){ - $smarty->assign("search_result", $output); - $smarty->assign("range_selector", range_selector(count($this->report_list), $this->start, $this->range,"EntriesPerPage")); - }else{ - $smarty->assign("search_result", ""); - } - - - - /* Show main page */ - $smarty->assign("plug", "?plug=".validate($_GET['plug'])); - $smarty->assign("launchimage", get_template_path('images/launch.png')); - $smarty->assign("search_image", get_template_path('images/search.png')); - for($i= 0; $i<7; $i++){ - $smarty->assign("mode$i", ""); - } - $smarty->assign("mode".$this->sort, "\"\"sort_direction. - ".png\" border=0 align=middle>"); - return($smarty->fetch(get_template_path('contents.tpl', TRUE))); - } - -} - -?> diff --git a/plugins/gofax/reports/contents.tpl b/plugins/gofax/reports/contents.tpl deleted file mode 100644 index eef9011e4..000000000 --- a/plugins/gofax/reports/contents.tpl +++ /dev/null @@ -1,59 +0,0 @@ -
-

[F]{t}Filter{/t}

-
-
-

-  {t}Search for{/t} - - {t}in{/t} - - {t}during{/t} - - {t}in{/t} - -   - -

-
- -
- -{if $search_result ne ""} - - - - - - - - - - {$search_result} -
{t}User{/t} {$mode0}{t}Date{/t} {$mode1}{t}Status{/t} {$mode2}{t}Sender{/t} {$mode3}{t}Receiver{/t} {$mode4}{t}# pages{/t} {$mode5}
- - - - - -
{$range_selector}
-

-   -

- -{else} - {t}Search returned no results...{/t} -{/if} - - - - diff --git a/plugins/gofax/reports/detail.tpl b/plugins/gofax/reports/detail.tpl deleted file mode 100644 index 1cd45f5fc..000000000 --- a/plugins/gofax/reports/detail.tpl +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - -
- - {t}FAX preview - please wait{/t} - -

- {t}Click on fax to download{/t} -

-
-   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{t}FAX ID{/t}{$fax_id}
{t}User{/t}{$fax_uid}
{t}Date / Time{/t}{$date} / {$time}
{t}Sender MSN{/t}{$fax_sender_msn}
{t}Sender ID{/t}{$fax_sender_id}
{t}Receiver MSN{/t}{$fax_receiver_msn}
{t}Receiver ID{/t}{$fax_receiver_id}
{t}Status{/t}{$fax_status}
{t}Status message{/t}{$fax_status_message}
{t}Transfer time{/t}{$fax_transfer_time}
{t}# pages{/t}{$fax_pages}
- -
- -

- -

- diff --git a/plugins/gofax/reports/main.inc b/plugins/gofax/reports/main.inc deleted file mode 100644 index cfa7de073..000000000 --- a/plugins/gofax/reports/main.inc +++ /dev/null @@ -1,20 +0,0 @@ -execute (); - $display.= "\n"; - - /* Store changes in session */ - $_SESSION['faxreport']= $faxreport; -} -?> diff --git a/plugins/gofon/fonreports/class_fonreport.inc b/plugins/gofon/fonreports/class_fonreport.inc new file mode 100644 index 000000000..4a08c04ca --- /dev/null +++ b/plugins/gofon/fonreports/class_fonreport.inc @@ -0,0 +1,267 @@ +config= $config; + $this->ui= $ui; + + /* Try to get matching search base for user provided + by 'dn' */ + $tmp= preg_replace ("/^[^,]+,[^,]+,/", "", $ui->dn); + $sb= array_search($tmp, $this->config->departments); + if ($sb === FALSE){ + $sb= "/"; + } + $this->search_base= $sb; + + /* Get global filter config */ + if (!is_global("fonfilter")){ + $ui= get_userinfo(); + $base= get_base_from_people($ui->dn); + $fonfilter= array("year" => date("Y"), + "month" => date("m"), + "search_base" => $base, + "search_for" => "*"); + register_global("fonfilter", $fonfilter); + } + } + + function execute() + { + /* Call parent execute */ + plugin::execute(); + + if(isset($_POST['EntryPerPage'])){ + $this->range = $_POST['EntryPerPage']; + } + + /* Get template engine */ + $smarty= get_smarty(); + $fonfilter= get_global("fonfilter"); + foreach( array("year", "month", "search_for", "search_base") as $type){ + if (isset($_POST[$type])){ + $fonfilter[$type]= $_POST[$type]; + } + $this->$type= $fonfilter[$type]; + } + register_global("fonfilter", $fonfilter); + + /* Adapt sorting */ + if (isset($_GET['sort'])){ + if ($this->sort == (int)$_GET['sort']){ + if ($this->sort_direction == "down"){ + $this->sort_direction= "up"; + } else { + $this->sort_direction= "down"; + } + } + $this->sort= (int)$_GET['sort']; + if ($this->sort < 0 || $this->sort > 6){ + $this->sort= 0; + } + } + + /* Search button has been pressed */ + if ($this->search_for != ""){ + $this->start= 0; + + if (is_integer (strpos($this->search_for, "*"))){ + $s= $this->search_for; + } else { + $s= "*".$this->search_for."*"; + } + $ldap= $this->config->get_ldap_link(); + $ldap->cd ($this->search_base); + + /* Perform ldap search for potential users */ + $ldap->search ("(&(objectClass=gosaAccount)(!(objectClass=gosaUserTemplate))". + "(objectClass=gofonAccount)". + "(|(uid=$s)(l=$s)(homePhone=$s)". + "(telephoneNumber=$s)(facsimileTelephoneNumber=$s)(mobile=$s)". + "(pager=$s)(cn=$s)(givenName=$s)(sn=$s)(personalTitle=$s)". + "(title=$s)))"); + + $fon_users= array(); + while ($attrs= $ldap->fetch()){ + $acl= get_permissions ($ldap->getDN(), $this->ui->subtreeACL); + $acl= get_module_permission($acl, "fax", $ldap->getDN()); + + if (chkacl ($acl, "faxReport") == ""){ + $fax_users[]= $attrs["uid"][0]; + } + } + + /* Prepare SQL query */ + $this->userfilter= ""; + foreach ($fon_users as $user){ + $this->userfilter.= "uid = '$user' OR "; + } + $this->userfilter= preg_replace("/OR $/", "", $this->userfilter); + } + + /* Perform SQL query */ +##### FIXME ACL, FILTER ###### +# if ($this->userfilter){ + if ($this->sort_direction == "down"){ + $desc= "DESC"; + } else { + $desc= ""; + } + $start= date ("YmdHis", mktime(0,0,0,$this->month,1,$this->year)); + $end= date ("YmdHis", mktime(23,59,59,$this->month+1,0,$this->year)); + $query = "SELECT calldate, channel, src, clid, lastapp, lastdata, dst, ". + "disposition, duration FROM cdr ". + "WHERE calldate <= $end AND ". + "calldate >= $start ORDER BY ".$this->fields[$this->sort]." $desc;"; + + /* Connecting, selecting database */ + if (!isset($this->config->data['SERVERS']['FON'])){ + return (""); + } + + if(!is_callable("mysql_connect")){ + print_red("There is no mysql extension available."); + return; + } + + $cfg= $this->config->data['SERVERS']['FON']; + $link = @mysql_pconnect($cfg['SERVER'], $cfg['LOGIN'], $cfg['PASSWORD']); + if ($link === FALSE){ + print_red(_("Can't connect to phone database, no reports can be shown!")); + return; + } + if (! @mysql_select_db("gophone")){ + print_red(_("Can't select phone database for report generation!")); + return; + } + + @DEBUG (DEBUG_MYSQL, __LINE__, __FUNCTION__, __FILE__, + $query, "Database query"); + + $result = @mysql_query($query); + if ($result === false){ + print_red(_("Query for phone database failed!")); + return; + } + $report_list= array(); + while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { + $hour= substr($line["calldate"], 11, 2); + $minute=substr($line["calldate"], 14, 2); + $format= _("Y-M-D"); + $date= preg_replace("/Y/", substr($line["calldate"], 0, 4), $format); + $date= preg_replace("/M/", substr($line["calldate"], 5, 2), $date); + $date= preg_replace("/D/", substr($line["calldate"], 8, 2), $date); + + $report_list[]= "$date $hour:$minute". + "".$line["src"]."". + "".$line["dst"]."". + "".$line["channel"]."". + "".$line["lastapp"]."". + "".$line["disposition"]."". + "".$this->gen_duration($line["duration"]).""; + } + + $this->report_list= $report_list; + mysql_close($link); +# } + + /* Generate output */ + $mod= 0; + if (isset($_GET['start'])){ + $this->start= (int)$_GET['start']; + } + + $output= ""; + foreach ($this->report_list as $val){ + if ($mod < $this->start) { + $mod++; + continue; + } + if ($mod >= ($this->start + $this->range)){ + $mod++; + break; + } + if ( ($mod++) & 1){ + $col= "background-color: #ECECEC;"; + } else { + $col= "background-color: #F5F5F5;"; + } + $output.= "$val"; + } + + /* Prepare template */ + $smarty->assign("search_for", $this->search_for); + $smarty->assign("bases", $this->config->idepartments); + $smarty->assign("base_select", $this->search_base); + $months= array(); + $months[1]= _("January"); $months[2]= _("February"); $months[3]= _("March"); $months[4]= _("April"); + $months[5]= _("May"); $months[6]= _("June"); $months[7]= _("July"); $months[8]= _("August"); + $months[9]= _("September"); $months[10]= _("October"); $months[11]= _("November"); $months[12]= _("December"); + $smarty->assign("months", $months); + $smarty->assign("month_select", $this->month); + $current= date("Y"); + $years= array(); + for ($y= $current - 5; $y<=$current; $y++){ + $years[]= $y; + } + $smarty->assign("years", $years); + $smarty->assign("year_select", $this->year); + + if ($output != ""){ + $smarty->assign("search_result", $output); + $smarty->assign("range_selector", range_selector(count($this->report_list), $this->start,$this->range,"EntryPerPage")); + } else { + $smarty->assign("search_result", ""); + } + + /* Show main page */ + $smarty->assign("plug", "?plug=".validate($_GET['plug'])); + $smarty->assign("launchimage", get_template_path('images/launch.png')); + $smarty->assign("search_image", get_template_path('images/search.png')); + for($i= 0; $i<7; $i++){ + $smarty->assign("mode$i", ""); + } + $smarty->assign("mode".$this->sort, "\"\"sort_direction. + ".png\" border=0 align=middle>"); + return($smarty->fetch(get_template_path('contents.tpl', TRUE))); + } + + function gen_duration($seconds) + { + if ($seconds / 60 > 1){ + $minutes= (int)($seconds / 60); + $seconds= $seconds % 60; + return ("$minutes’$seconds”"); + } + + return ("$seconds”"); + } + +} + +?> diff --git a/plugins/gofon/fonreports/contents.tpl b/plugins/gofon/fonreports/contents.tpl new file mode 100644 index 000000000..3a780cac1 --- /dev/null +++ b/plugins/gofon/fonreports/contents.tpl @@ -0,0 +1,59 @@ +
+

[F]{t}Filter{/t}

+
+
+

+  {t}Search for{/t} + + {t}in{/t} + + {t}during{/t} + + {t}in{/t} + +   + +

+
+ +
+ +{if $search_result ne ""} + + + + + + + + + + + {$search_result} +
{t}Date{/t} {$mode0}{t}Source{/t} {$mode1}{t}Destination{/t} {$mode2}{t}Channel{/t} {$mode3}{t}Application{/t} {$mode4}{t}Status{/t} {$mode5}{t}Duration{/t} {$mode6}
+ + + + + +
{$range_selector}
+ +

+   +

+{else} + {t}Search returned no results...{/t} +{/if} + + + diff --git a/plugins/gofon/fonreports/main.inc b/plugins/gofon/fonreports/main.inc new file mode 100644 index 000000000..f79641b3d --- /dev/null +++ b/plugins/gofon/fonreports/main.inc @@ -0,0 +1,20 @@ +execute (); + $display.= "\n"; + + /* Store changes in session */ + $_SESSION['fonreport']= $fonreport; +} +?> diff --git a/plugins/gofon/reports/class_fonreport.inc b/plugins/gofon/reports/class_fonreport.inc deleted file mode 100644 index 4a08c04ca..000000000 --- a/plugins/gofon/reports/class_fonreport.inc +++ /dev/null @@ -1,267 +0,0 @@ -config= $config; - $this->ui= $ui; - - /* Try to get matching search base for user provided - by 'dn' */ - $tmp= preg_replace ("/^[^,]+,[^,]+,/", "", $ui->dn); - $sb= array_search($tmp, $this->config->departments); - if ($sb === FALSE){ - $sb= "/"; - } - $this->search_base= $sb; - - /* Get global filter config */ - if (!is_global("fonfilter")){ - $ui= get_userinfo(); - $base= get_base_from_people($ui->dn); - $fonfilter= array("year" => date("Y"), - "month" => date("m"), - "search_base" => $base, - "search_for" => "*"); - register_global("fonfilter", $fonfilter); - } - } - - function execute() - { - /* Call parent execute */ - plugin::execute(); - - if(isset($_POST['EntryPerPage'])){ - $this->range = $_POST['EntryPerPage']; - } - - /* Get template engine */ - $smarty= get_smarty(); - $fonfilter= get_global("fonfilter"); - foreach( array("year", "month", "search_for", "search_base") as $type){ - if (isset($_POST[$type])){ - $fonfilter[$type]= $_POST[$type]; - } - $this->$type= $fonfilter[$type]; - } - register_global("fonfilter", $fonfilter); - - /* Adapt sorting */ - if (isset($_GET['sort'])){ - if ($this->sort == (int)$_GET['sort']){ - if ($this->sort_direction == "down"){ - $this->sort_direction= "up"; - } else { - $this->sort_direction= "down"; - } - } - $this->sort= (int)$_GET['sort']; - if ($this->sort < 0 || $this->sort > 6){ - $this->sort= 0; - } - } - - /* Search button has been pressed */ - if ($this->search_for != ""){ - $this->start= 0; - - if (is_integer (strpos($this->search_for, "*"))){ - $s= $this->search_for; - } else { - $s= "*".$this->search_for."*"; - } - $ldap= $this->config->get_ldap_link(); - $ldap->cd ($this->search_base); - - /* Perform ldap search for potential users */ - $ldap->search ("(&(objectClass=gosaAccount)(!(objectClass=gosaUserTemplate))". - "(objectClass=gofonAccount)". - "(|(uid=$s)(l=$s)(homePhone=$s)". - "(telephoneNumber=$s)(facsimileTelephoneNumber=$s)(mobile=$s)". - "(pager=$s)(cn=$s)(givenName=$s)(sn=$s)(personalTitle=$s)". - "(title=$s)))"); - - $fon_users= array(); - while ($attrs= $ldap->fetch()){ - $acl= get_permissions ($ldap->getDN(), $this->ui->subtreeACL); - $acl= get_module_permission($acl, "fax", $ldap->getDN()); - - if (chkacl ($acl, "faxReport") == ""){ - $fax_users[]= $attrs["uid"][0]; - } - } - - /* Prepare SQL query */ - $this->userfilter= ""; - foreach ($fon_users as $user){ - $this->userfilter.= "uid = '$user' OR "; - } - $this->userfilter= preg_replace("/OR $/", "", $this->userfilter); - } - - /* Perform SQL query */ -##### FIXME ACL, FILTER ###### -# if ($this->userfilter){ - if ($this->sort_direction == "down"){ - $desc= "DESC"; - } else { - $desc= ""; - } - $start= date ("YmdHis", mktime(0,0,0,$this->month,1,$this->year)); - $end= date ("YmdHis", mktime(23,59,59,$this->month+1,0,$this->year)); - $query = "SELECT calldate, channel, src, clid, lastapp, lastdata, dst, ". - "disposition, duration FROM cdr ". - "WHERE calldate <= $end AND ". - "calldate >= $start ORDER BY ".$this->fields[$this->sort]." $desc;"; - - /* Connecting, selecting database */ - if (!isset($this->config->data['SERVERS']['FON'])){ - return (""); - } - - if(!is_callable("mysql_connect")){ - print_red("There is no mysql extension available."); - return; - } - - $cfg= $this->config->data['SERVERS']['FON']; - $link = @mysql_pconnect($cfg['SERVER'], $cfg['LOGIN'], $cfg['PASSWORD']); - if ($link === FALSE){ - print_red(_("Can't connect to phone database, no reports can be shown!")); - return; - } - if (! @mysql_select_db("gophone")){ - print_red(_("Can't select phone database for report generation!")); - return; - } - - @DEBUG (DEBUG_MYSQL, __LINE__, __FUNCTION__, __FILE__, - $query, "Database query"); - - $result = @mysql_query($query); - if ($result === false){ - print_red(_("Query for phone database failed!")); - return; - } - $report_list= array(); - while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { - $hour= substr($line["calldate"], 11, 2); - $minute=substr($line["calldate"], 14, 2); - $format= _("Y-M-D"); - $date= preg_replace("/Y/", substr($line["calldate"], 0, 4), $format); - $date= preg_replace("/M/", substr($line["calldate"], 5, 2), $date); - $date= preg_replace("/D/", substr($line["calldate"], 8, 2), $date); - - $report_list[]= "$date $hour:$minute". - "".$line["src"]."". - "".$line["dst"]."". - "".$line["channel"]."". - "".$line["lastapp"]."". - "".$line["disposition"]."". - "".$this->gen_duration($line["duration"]).""; - } - - $this->report_list= $report_list; - mysql_close($link); -# } - - /* Generate output */ - $mod= 0; - if (isset($_GET['start'])){ - $this->start= (int)$_GET['start']; - } - - $output= ""; - foreach ($this->report_list as $val){ - if ($mod < $this->start) { - $mod++; - continue; - } - if ($mod >= ($this->start + $this->range)){ - $mod++; - break; - } - if ( ($mod++) & 1){ - $col= "background-color: #ECECEC;"; - } else { - $col= "background-color: #F5F5F5;"; - } - $output.= "$val"; - } - - /* Prepare template */ - $smarty->assign("search_for", $this->search_for); - $smarty->assign("bases", $this->config->idepartments); - $smarty->assign("base_select", $this->search_base); - $months= array(); - $months[1]= _("January"); $months[2]= _("February"); $months[3]= _("March"); $months[4]= _("April"); - $months[5]= _("May"); $months[6]= _("June"); $months[7]= _("July"); $months[8]= _("August"); - $months[9]= _("September"); $months[10]= _("October"); $months[11]= _("November"); $months[12]= _("December"); - $smarty->assign("months", $months); - $smarty->assign("month_select", $this->month); - $current= date("Y"); - $years= array(); - for ($y= $current - 5; $y<=$current; $y++){ - $years[]= $y; - } - $smarty->assign("years", $years); - $smarty->assign("year_select", $this->year); - - if ($output != ""){ - $smarty->assign("search_result", $output); - $smarty->assign("range_selector", range_selector(count($this->report_list), $this->start,$this->range,"EntryPerPage")); - } else { - $smarty->assign("search_result", ""); - } - - /* Show main page */ - $smarty->assign("plug", "?plug=".validate($_GET['plug'])); - $smarty->assign("launchimage", get_template_path('images/launch.png')); - $smarty->assign("search_image", get_template_path('images/search.png')); - for($i= 0; $i<7; $i++){ - $smarty->assign("mode$i", ""); - } - $smarty->assign("mode".$this->sort, "\"\"sort_direction. - ".png\" border=0 align=middle>"); - return($smarty->fetch(get_template_path('contents.tpl', TRUE))); - } - - function gen_duration($seconds) - { - if ($seconds / 60 > 1){ - $minutes= (int)($seconds / 60); - $seconds= $seconds % 60; - return ("$minutes’$seconds”"); - } - - return ("$seconds”"); - } - -} - -?> diff --git a/plugins/gofon/reports/contents.tpl b/plugins/gofon/reports/contents.tpl deleted file mode 100644 index 3a780cac1..000000000 --- a/plugins/gofon/reports/contents.tpl +++ /dev/null @@ -1,59 +0,0 @@ -
-

[F]{t}Filter{/t}

-
-
-

-  {t}Search for{/t} - - {t}in{/t} - - {t}during{/t} - - {t}in{/t} - -   - -

-
- -
- -{if $search_result ne ""} - - - - - - - - - - - {$search_result} -
{t}Date{/t} {$mode0}{t}Source{/t} {$mode1}{t}Destination{/t} {$mode2}{t}Channel{/t} {$mode3}{t}Application{/t} {$mode4}{t}Status{/t} {$mode5}{t}Duration{/t} {$mode6}
- - - - - -
{$range_selector}
- -

-   -

-{else} - {t}Search returned no results...{/t} -{/if} - - - diff --git a/plugins/gofon/reports/main.inc b/plugins/gofon/reports/main.inc deleted file mode 100644 index f79641b3d..000000000 --- a/plugins/gofon/reports/main.inc +++ /dev/null @@ -1,20 +0,0 @@ -execute (); - $display.= "\n"; - - /* Store changes in session */ - $_SESSION['fonreport']= $fonreport; -} -?>