diff --git a/source/Styles/xb3/jst/actionHandler/ajax_parental_reports.jst b/source/Styles/xb3/jst/actionHandler/ajax_parental_reports.jst index 4b22877..2c3fb15 100644 --- a/source/Styles/xb3/jst/actionHandler/ajax_parental_reports.jst +++ b/source/Styles/xb3/jst/actionHandler/ajax_parental_reports.jst @@ -63,32 +63,36 @@ function str2time($str){ $mode=$_GET['mode']; $timef=$_GET['timef']; -$timef = str_replace("+"," ",str_replace("+"," ",$timef)); -$timef=rawurldecode($timef); var $maxtime; var $mintime; +$timef_key = ""; switch($timef){ // [$mintime, $maxtime) - case "Today": + case "today": $maxtime=strtotime("now"); $mintime=strtotime("today"); + $timef_key = "today"; break; - case "Yesterday": + case "yesterday": $maxtime=strtotime("today"); $mintime=strtotime("yesterday"); + $timef_key = "yesterday"; break; - case "Last week": + case "week": $maxtime=strtotime("now"); $mintime=strtotime("last Monday"); + $timef_key = "week"; break; - case "Last month": + case "month": $maxtime=strtotime("now"); $mintime=strtotime("last month"); + $timef_key = "month"; break; - case "Last 90 days": + case "last": //zqiu: last 90 days include today //$maxtime=strtotime("today"); $maxtime=strtotime("now"); $mintime=strtotime("-90 days"); + $timef_key = "last"; break; default: throw Error('Not allowed!'); @@ -113,52 +117,32 @@ exec("/usr/ccsp/ccsp_bus_client_tool eRT getv Device.X_CISCO_COM_Security.Intern $file= fopen("/tmp/log_parental.txt", "r"); $partnerId = getStr("Device.DeviceInfo.X_RDKCENTRAL-COM_Syndication.PartnerId"); $pos = 50; //global file pointer where to read the value in a line -$mintime/=1000; -$maxtime/=1000; $Log = []; $value = getStr("Device.X_CISCO_COM_Security.InternetAccess.LogEntryNumberOfEntries"); -$k=0; -for (var $i=0; $i < $value; $i++) { - var $Count = substr(fgets($file),$pos); - var $SourceIP = substr(fgets($file),$pos); //don't need, but have to read - var $User = substr(fgets($file),$pos); - var $TargetIP = substr(fgets($file),$pos); - var $Type = trim(substr(fgets($file),$pos)); //need to trim the blank char in string end, otherwise $type never equal to $Type - var $time = substr(fgets($file),$pos); - var $Des = substr(fgets($file),$pos); - if (feof($file)) break; //PHP read last line will return false, not EOF! - $timeArr = str2time(trim($time)); - $timeU = $timeArr['timeU']; - if ($timeU > $maxtime || $timeU < $mintime) continue; //only store the needed line - $timeArr = str2time(UTC_to_local_date_logs(trim($time))); - if ($type == $Type) { - $Log[$k] = {"time":$timeArr['formatted_time'], "Des":$Des, "Count":$Count, "Target":$TargetIP,"Source":$SourceIP,"Type":$Type}; - $k++; - } - else if ($type == "all") { - if($partnerId=="cox"){ - if (in_array($Type, ["Service Blocked", "Device Blocked"])) { - $Log[$k] = {"time":$timeArr['formatted_time'], "Des":$Des, "Count":$Count, "Target":$TargetIP,"Source":$SourceIP,"Type":$Type}; - $k++; - } - }else{ - if (in_array($Type, ["Site Blocked", "Service Blocked", "Device Blocked"])) { - $Log[$k] = {"time":$timeArr['formatted_time'], "Des":$Des, "Count":$Count, "Target":$TargetIP,"Source":$SourceIP,"Type":$Type}; - $k++; +if ($file) { + for (var $i=0; $i < $value; $i++) { + $CountLine=fgets($file); $SourceIPLine=fgets($file); $UserLine=fgets($file); $TargetIPLine=fgets($file); $TypeLine=fgets($file); $timeLine=fgets($file); $DesLine=fgets($file); + if (!$CountLine || !$SourceIPLine || !$UserLine || !$TargetIPLine || !$TypeLine || !$timeLine || !$DesLine) break; + $Count=trim(substr($CountLine,$pos)); $SourceIP=trim(substr($SourceIPLine,$pos)); $User=trim(substr($UserLine,$pos)); $TargetIP=trim(substr($TargetIPLine,$pos)); $Type=trim(substr($TypeLine,$pos)); $time=trim(substr($timeLine,$pos)); $Des=trim(substr($DesLine,$pos)); + $timeArr = str2time($time); + if ($timeArr['timeU'] > $maxtime || $timeArr['timeU'] < $mintime) continue; + $timeArr = str2time(UTC_to_local_date_logs($time)); + if ($type == $Type || ($type == "all" && (($partnerId == "cox" && in_array($Type, ["Service Blocked", "Device Blocked"])) || ($partnerId != "cox" && in_array($Type, ["Site Blocked", "Service Blocked", "Device Blocked"])))) ) { + array_push($Log, {"time":$timeArr['formatted_time'], "Des":$Des, "Count":$Count, "Target":$TargetIP,"Source":$SourceIP,"Type":$Type}/*p2j-array*/); } } - } + fclose($file); } -fclose($file); $firewall_log = array_reverse($Log); // echo "firewall log ...: \n"; -$fh=fopen("/tmp/parental_reports_"+$mode+"_"+$timef+".txt","w"); -for(var $key in $firewall_log) -{ - var $value=$firewall_log[$key]; - fwrite($fh, $value["Des"]+", "+$value["Count"]+" Attempts, "+$value["time"]+"\t"+$value["Type"]+"\r\r\r\n"); +$fh=fopen("/tmp/parental_reports_"+$mode+"_"+$timef_key+".txt","w"); +if ($fh) { + for(var $key in $firewall_log) { + var $value=$firewall_log[$key]; + fwrite($fh, $value["Des"]+", "+$value["Count"]+" Attempts, "+$value["time"]+"\t"+$value["Type"]+"\r\n"); + } + fclose($fh); } -fclose($fh); header("Content-Type: application/json"); echo( htmlspecialchars(json_encode($firewall_log), ENT_NOQUOTES, 'UTF-8')); ?> diff --git a/source/Styles/xb3/jst/actionHandler/ajax_troubleshooting_logs.jst b/source/Styles/xb3/jst/actionHandler/ajax_troubleshooting_logs.jst index 9aa9c15..d63ad01 100644 --- a/source/Styles/xb3/jst/actionHandler/ajax_troubleshooting_logs.jst +++ b/source/Styles/xb3/jst/actionHandler/ajax_troubleshooting_logs.jst @@ -62,28 +62,32 @@ function str2time($str){ } $mode=$_GET['mode']; $timef=$_GET['timef']; -$timef = str_replace("+"," ",str_replace("+"," ",$timef)); -$timef=rawurldecode($timef); +$timef_key = ""; switch($timef){ // [$mintime, $maxtime) - case "Today": + case "today": $maxtime=strtotime("now"); $mintime=strtotime("today"); + $timef_key = "today"; break; - case "Yesterday": + case "yesterday": $maxtime=strtotime("today"); $mintime=strtotime("yesterday"); + $timef_key = "yesterday"; break; - case "Last week": + case "week": $maxtime=strtotime("now"); $mintime=strtotime("last Monday"); + $timef_key = "week"; break; - case "Last month": + case "month": $maxtime=strtotime("now"); $mintime=strtotime("last month"); + $timef_key = "month"; break; - case "Last 90 days": + case "last": $maxtime=strtotime("now"); $mintime=strtotime("-90 days"); + $timef_key = "last"; break; default: throw Error('Invalid timeframe'); @@ -97,30 +101,27 @@ if ($mode=="system"){ $Log = []/*p2j-array*/; // for($i=0; !feof($file); $i++) $value = getStr("Device.X_CISCO_COM_Diagnostics.Syslog.EntryNumberOfEntries"); - $k=0; - for(var $i=0; $i < $value; $i++ ) - { - $time = substr(fgets($file),$pos); - $Tag = substr(fgets($file),$pos); //don't need, but have to read - $Level = substr(fgets($file),$pos); - $Des = substr(fgets($file),$pos); - // $Log[$i] = array("time"=>$time, "Level"=>$Level, "Des"=>$Des); - if (feof($file)) break; //PHP read last line will return false, not EOF! - $timeArr = str2time(trim($time)); - $timeU = $timeArr['timeU']; - $timeArr = str2time(trim(UTC_to_local_date_logs($time))); - if ($timeU > $maxtime || $timeU < $mintime) continue; //only store the needed line - $Log[$k] = {"time":$timeArr['formatted_time'], "Level":$Level, "Des":$Des}/*p2j-array*/; - $k++; + if ($file) { + for(var $i=0; $i < $value; $i++ ) { + $timeLine=fgets($file); $TagLine=fgets($file); $LevelLine=fgets($file); $DesLine=fgets($file); + if (!$timeLine || !$TagLine || !$LevelLine || !$DesLine) break; + $time=trim(substr($timeLine,$pos)); $Tag=trim(substr($TagLine,$pos)); $Level=trim(substr($LevelLine,$pos)); $Des=trim(substr($DesLine,$pos)); + $timeArr = str2time($time); + if ($timeArr['timeU'] > $maxtime || $timeArr['timeU'] < $mintime) continue; + $timeArr = str2time(UTC_to_local_date_logs($time)); + array_push($Log, {"time":$timeArr['formatted_time'], "Level":$Level, "Des":$Des}/*p2j-array*/); + } + fclose($file); } - fclose($file); // array_pop($Log); $sysLog = $Log; - $fh=fopen("/tmp/troubleshooting_logs_"+$mode+"_"+$timef+".txt","w+"); + $fh=fopen("/tmp/troubleshooting_logs_"+$mode+"_"+$timef_key+".txt","w+"); + if ($fh) { for(var $key in $sysLog) { var $value=$sysLog[$key];/*p2j-foreach*/ fwrite($fh, $value["Des"]+"\t"+$value["time"]+"\t"+$value["Level"]+"\r\n"); } fclose($fh); + } header("Content-Type: application/json"); echo( htmlspecialchars(json_encode($sysLog), ENT_NOQUOTES, 'UTF-8')); } @@ -129,31 +130,28 @@ else if ($mode=="event") { $file= fopen("/tmp/log_event.txt", "r"); $Log = []/*p2j-array*/; // for($i=0; !feof($file); $i++) - $n=0; $value = getStr("Device.X_CISCO_COM_Diagnostics.Eventlog.EntryNumberOfEntries"); - for(var $i=0; $i < $value ; $i++) - { - $time = substr(fgets($file),$pos); - $ID = substr(fgets($file),$pos); //don't need, but have to read - $Level = substr(fgets($file),$pos); - $Des = substr(fgets($file),$pos); - // $Log[$i] = array("time"=>$time, "Level"=>$Level, "Des"=>$Des); - if (feof($file)) break; //PHP read last line will return false, not EOF! - $timeArr = str2time(trim($time)); - $timeU = $timeArr['timeU']; - $timeArr = str2time(trim(UTC_to_local_date_logs($time))); - if ($timeU > $maxtime || $timeU < $mintime) continue; //only store the needed line - $Log[$n] = {"time":$timeArr['formatted_time'], "Level":$Level, "Des":$Des}/*p2j-array*/; - $n++; + if ($file) { + for(var $i=0; $i < $value ; $i++) { + $timeLine=fgets($file); $IDLine=fgets($file); $LevelLine=fgets($file); $DesLine=fgets($file); + if (!$timeLine || !$IDLine || !$LevelLine || !$DesLine) break; + $time=trim(substr($timeLine,$pos)); $ID=trim(substr($IDLine,$pos)); $Level=trim(substr($LevelLine,$pos)); $Des=trim(substr($DesLine,$pos)); + $timeArr = str2time($time); + if ($timeArr['timeU'] > $maxtime || $timeArr['timeU'] < $mintime) continue; + $timeArr = str2time(UTC_to_local_date_logs($time)); + array_push($Log, {"time":$timeArr['formatted_time'], "Level":$Level, "Des":$Des}/*p2j-array*/); + } + fclose($file); } - fclose($file); // array_pop($Log); $docLog = $Log; - $fh=fopen("/tmp/troubleshooting_logs_"+$mode+"_"+$timef+".txt","w+"); + $fh=fopen("/tmp/troubleshooting_logs_"+$mode+"_"+$timef_key+".txt","w+"); + if ($fh) { for(var $key in $docLog) { var $value=$docLog[$key];/*p2j-foreach*/ fwrite($fh, $value["Des"]+"\t"+$value["time"]+"\t"+$value["Level"]+"\r\n"); } fclose($fh); + } header("Content-Type: application/json"); echo( htmlspecialchars(json_encode($docLog), ENT_NOQUOTES, 'UTF-8')); } @@ -163,32 +161,26 @@ else if ($mode=="firewall") { $Log = []/*p2j-array*/; // for($i=0; !feof($file); $i++) $value = getStr("Device.X_CISCO_COM_Security.InternetAccess.LogEntryNumberOfEntries"); - $p=0; - for(var $i=0; $i < $value; $i++) - { - $Count = substr(fgets($file),$pos); - $SourceIP = substr(fgets($file),$pos); //don't need, but have to read - $User = substr(fgets($file),$pos); - $TargetIP = substr(fgets($file),$pos); - $Type = substr(fgets($file),$pos); - $time = substr(fgets($file),$pos); - $Des = substr(fgets($file),$pos); - // $Log[$i] = array("time"=>$time, "Des"=>$Des, "Count"=>$Count, "Target"=>$TargetIP,"Source"=>$SourceIP,"Type"=>$Type); - if (feof($file)) break; //PHP read last line will return false, not EOF! - $timeArr = str2time(trim($time)); - $timeU = $timeArr['timeU']; - $timeArr = str2time(trim(UTC_to_local_date_logs($time))); - if ($timeU > $maxtime || $timeU < $mintime) continue; //only store the needed line - $Log[$p] = {"time":$timeArr['firewall_time'], "Des":$Des, "Count":$Count, "Target":$TargetIP,"Source":$SourceIP,"Type":$Type}/*p2j-array*/; - $p++; + if ($file) { + for(var $i=0; $i < $value; $i++) { + $CountLine=fgets($file); $SourceIPLine=fgets($file); $UserLine=fgets($file); $TargetIPLine=fgets($file); $TypeLine=fgets($file); $timeLine=fgets($file); $DesLine=fgets($file); + if (!$CountLine || !$SourceIPLine || !$UserLine || !$TargetIPLine || !$TypeLine || !$timeLine || !$DesLine) break; + $Count=trim(substr($CountLine,$pos)); $SourceIP=trim(substr($SourceIPLine,$pos)); $User=trim(substr($UserLine,$pos)); $TargetIP=trim(substr($TargetIPLine,$pos)); $Type=trim(substr($TypeLine,$pos)); $time=trim(substr($timeLine,$pos)); $Des=trim(substr($DesLine,$pos)); + $timeArr = str2time($time); + if ($timeArr['timeU'] > $maxtime || $timeArr['timeU'] < $mintime) continue; + $timeArr = str2time(UTC_to_local_date_logs($time)); + array_push($Log, {"time":$timeArr['firewall_time'], "Des":$Des, "Count":$Count, "Target":$TargetIP,"Source":$SourceIP,"Type":$Type}/*p2j-array*/); + } + fclose($file); } - fclose($file); $firewallLog = $Log; - $fh=fopen("/tmp/troubleshooting_logs_"+$mode+"_"+$timef+".txt","w+"); + $fh=fopen("/tmp/troubleshooting_logs_"+$mode+"_"+$timef_key+".txt","w+"); + if ($fh) { for(var $key in $firewallLog) { var $value=$firewallLog[$key];/*p2j-foreach*/ fwrite($fh, $value["Des"]+", "+$value["Count"]+" Attempts, "+$value["time"]+"\t"+$value["Type"]+"\r\n"); } fclose($fh); + } header("Content-Type: application/json"); echo( htmlspecialchars(json_encode($firewallLog), ENT_NOQUOTES, 'UTF-8')); } diff --git a/source/Styles/xb3/jst/parental_reports.jst b/source/Styles/xb3/jst/parental_reports.jst index 88fbd16..4f75a6a 100644 --- a/source/Styles/xb3/jst/parental_reports.jst +++ b/source/Styles/xb3/jst/parental_reports.jst @@ -46,203 +46,19 @@ $(document).ready(function() { $("#generate-report").click(function() { var mode=$("select#report_type").val(); var timef=$("select#time_frame").val(); + var timefLabel=$("select#time_frame option:selected").text(); jConfirm( $.i18n("This action may take more than one minute. Do you want to continue?") ,$.i18n("Are you sure?") ,function(ret){ if(ret){ - if(mode == "site") { - $("#device").hide(); - $("#all").hide(); - $("#service").hide(); - $("#site").show(); - if(timef == "Today") - { - $("#site_report_today").show(); - $("#site_report_yesterday").hide(); - $("#site_report_week").hide(); - $("#site_report_month").hide(); - $("#site_report_last").hide(); - } - else if(timef == "Yesterday") - { - $("#site_report_today").hide(); - $("#site_report_yesterday").show(); - $("#site_report_week").hide(); - $("#site_report_month").hide(); - $("#site_report_last").hide(); - } - else if(timef == "Last week") - { - $("#site_report_today").hide(); - $("#site_report_yesterday").hide(); - $("#site_report_week").show(); - $("#site_report_month").hide(); - $("#site_report_last").hide(); - } - else if(timef == "Last month") - { - $("#site_report_today").hide(); - $("#site_report_yesterday").hide(); - $("#site_report_week").hide(); - $("#site_report_month").show(); - $("#site_report_last").hide(); - } - else if(timef == "Last 90 days") - { - $("#site_report_today").hide(); - $("#site_report_yesterday").hide(); - $("#site_report_week").hide(); - $("#site_report_month").hide(); - $("#site_report_last").show(); - } - } - else if(mode == "all") { - $("#service").hide(); - $("#all").show(); - $("#site").hide(); - $("#device").hide(); - if(timef == "Today") - { - $("#all_report_today").show(); - $("#all_report_yesterday").hide(); - $("#all_report_week").hide(); - $("#all_report_month").hide(); - $("#all_report_last").hide(); - } - if(timef == "Yesterday") - { - $("#all_report_today").hide(); - $("#all_report_yesterday").show(); - $("#all_report_week").hide(); - $("#all_report_month").hide(); - $("#all_report_last").hide(); - } - else if(timef == "Last week") - { - $("#all_report_today").hide(); - $("#all_report_yesterday").hide(); - $("#all_report_week").show(); - $("#all_report_month").hide(); - $("#all_report_last").hide(); - } - else if(timef == "Last month") - { - $("#all_report_today").hide(); - $("#all_report_yesterday").hide(); - $("#all_report_week").hide(); - $("#all_report_month").show(); - $("#all_report_last").hide(); - } - else if(timef == "Last 90 days") - { - $("#all_report_today").hide(); - $("#all_report_yesterday").hide(); - $("#all_report_week").hide(); - $("#all_report_month").hide(); - $("#all_report_last").show(); - } - } - else if(mode == "service") { - $("#service").show(); - $("#all").hide(); - $("#site").hide(); - $("#device").hide(); - if(timef == "Today") - { - $("#service_report_today").show(); - $("#service_report_yesterday").hide(); - $("#service_report_week").hide(); - $("#service_report_month").hide(); - $("#service_report_last").hide(); - } - if(timef == "Yesterday") - { - $("#service_report_today").hide(); - $("#service_report_yesterday").show(); - $("#service_report_week").hide(); - $("#service_report_month").hide(); - $("#service_report_last").hide(); - } - else if(timef == "Last week") - { - $("#service_report_today").hide(); - $("#service_report_yesterday").hide(); - $("#service_report_week").show(); - $("#service_report_month").hide(); - $("#service_report_last").hide(); - } - else if(timef == "Last month") - { - $("#service_report_today").hide(); - $("#service_report_yesterday").hide(); - $("#service_report_week").hide(); - $("#service_report_month").show(); - $("#service_report_last").hide(); - } - else if(timef == "Last 90 days") - { - $("#service_report_today").hide(); - $("#service_report_yesterday").hide(); - $("#service_report_week").hide(); - $("#service_report_month").hide(); - $("#service_report_last").show(); - } - } - else if(mode == "device") { - $("#site").hide(); - $("#all").hide(); - $("#device").show(); - $("#service").hide(); - if(timef == "Today") - { - //$("#firewall_time").text(" Reports for Today"); - $("#device_report_today").show(); - $("#device_report_yesterday").hide(); - $("#device_report_week").hide(); - $("#device_report_month").hide(); - $("#device_report_last").hide(); - } - if(timef == "Yesterday") - { - //$("#firewall_time").text("Reports from Yesterday"); - $("#device_report_today").hide(); - $("#device_report_yesterday").show(); - $("#device_report_week").hide(); - $("#device_report_month").hide(); - $("#device_report_last").hide(); - } - else if(timef == "Last week") - { - //$("#firewall_time").text("Reports from Last week"); - $("#device_report_today").hide(); - $("#device_report_yesterday").hide(); - $("#device_report_week").show(); - $("#device_report_month").hide(); - $("#device_report_last").hide(); - } - else if(timef == "Last month") - { - //$("#firewall_time").text("Reports from Last month"); - $("#device_report_today").hide(); - $("#device_report_yesterday").hide(); - $("#device_report_week").hide(); - $("#device_report_month").show(); - $("#device_report_last").hide(); - } - else if(timef == "Last 90 days") - { - //$("#firewall_time").text("Reports from Last 90 days"); - $("#device_report_today").hide(); - $("#device_report_yesterday").hide(); - $("#device_report_week").hide(); - $("#device_report_month").hide(); - $("#device_report_last").show(); - } - } + $("#site, #all, #service, #device").hide(); + $("#"+mode).show(); + $("#"+mode+"_report_today, #"+mode+"_report_yesterday, #"+mode+"_report_week, #"+mode+"_report_month, #"+mode+"_report_last").hide(); + $("#"+mode+"_report_"+timef).show(); $('.print:visible').prop("disabled",true).addClass("disabled"); $('.downloadbtn:visible').prop("disabled",true).addClass("disabled"); - ajaxDo(mode,timef); + ajaxDo(mode,timef,timefLabel); } }); }); @@ -269,24 +85,9 @@ function adjust_acs_tb(tb_summary, th_array){ } }); } -function ajaxDo(mode,timef){ +function ajaxDo(mode,timef,timefLabel){ var token = "% echo( $_SESSION['Csrf_token'] );?>"; - switch(timef){ - case "Today": - timef2="today"; - break; - case "Yesterday": - timef2="yesterday"; - break; - case "Last week": - timef2="week"; - break; - case "Last month": - timef2="month"; - break; - default: - timef2="last"; - } + var timef2=timef; jProgress($.i18n('This may take several seconds.'),120); ajaxrequest=$.ajax({ type:"GET", @@ -300,6 +101,7 @@ function ajaxDo(mode,timef){ var trClass="odd"; $("#"+mode+"_report_"+timef2+" > tbody").empty(); $.each(results,function(key,value){ + if (!value) return; $("#"+mode+"_report_"+timef2+" > tbody").append("