Commit dd311f2e authored by odlai's avatar odlai

no message

parent 03c730e6
...@@ -8,133 +8,225 @@ use Illuminate\Http\Request; ...@@ -8,133 +8,225 @@ use Illuminate\Http\Request;
class AttendanceController extends Controller class AttendanceController extends Controller
{ {
private $docker_ip="http://192.168.5.150:8086"; private $docker_ip="http://192.168.5.222:8086";
public function atten(Request $request) public function atten(Request $request)
{ {
//一開始顯示所有資料
$query = Path::all(); $query = Path::all();
$main=Car::all(); $main=Car::all();
$client = new \GuzzleHttp\Client(); $client = new \GuzzleHttp\Client();
$res = $client->get($this->docker_ip."/query?db=test&q=select%20*%20from%20people2"); //$client_influxDB = new InfluxDB\Client($host, $port);
$response = json_decode($res->getBody()->__toString(), true);
//$database = $client_influxDB->selectDB('people');
// dd($response_test);
$res_emp = $client->get($this->docker_ip."/query?db=people&q=select%20*%20from%20employee");
$res_on_work = $client->get($this->docker_ip."/query?db=people&q=select%20*%20from%20on_work");
$res_off_work = $client->get($this->docker_ip."/query?db=people&q=select%20*%20from%20off_work");
$res_go_out= $client->get($this->docker_ip."/query?db=people&q=select%20*%20from%20go_out");
$res_come_back= $client->get($this->docker_ip."/query?db=people&q=select%20*%20from%20come_back");
$people_count=count($response['results'][0]['series'][0]['values']);
$response_emp = json_decode($res_emp->getBody()->__toString(), true);
$response_on = json_decode($res_on_work->getBody()->__toString(), true);
$response_off = json_decode($res_off_work->getBody()->__toString(), true);
$response_go = json_decode($res_go_out->getBody()->__toString(), true);
$response_back = json_decode($res_come_back->getBody()->__toString(), true);
dd($response_off);
// dd($response_back);
$maxcount=max(count($response_emp['results'][0]['series'][0]['values']),count($response_on['results'][0]['series'][0]['values']),count($response_off['results'][0]['series'][0]['values']),
count($response_go['results'][0]['series'][0]['values']),count($response_back['results'][0]['series'][0]['values']));
// for($z=0;$z<$maxcount;$z++){
$emp_count=count($response_emp['results'][0]['series'][0]['values']);
$result_content=array(); $result_content=array();
// dd($response[0]['Ports']);
for($j=0;$j<$emp_count;$j++){
$id=$response_emp['results'][0]['series'][0]['values'][$j][1];
for($i=0;$i<$people_count;$i++){ $name0=$response_emp['results'][0]['series'][0]['values'][$j][3];
$dbname=$response['results'][0]['series'][0]['name'];
$time=$response['results'][0]['series'][0]['values'][$i][6]; // array_push($result_content,['id'=>$id,'name'=>$name0]);
$time=date('Y-m-d H:i:s',$time);
$come_back=$response['results'][0]['series'][0]['values'][$i][1];
$go_out=$response['results'][0]['series'][0]['values'][$i][2];
$name=$response['results'][0]['series'][0]['values'][$i][3];
$off_work=$response['results'][0]['series'][0]['values'][$i][4];
$on_work=$response['results'][0]['series'][0]['values'][$i][5];
// $array = Arr::add('Id',$response[$i]['Id']); // $array = Arr::add('Id',$response[$i]['Id']);
array_push($result_content,['Names'=>$dbname,'time'=>$time,'come_back'=>$come_back,'go_out'=>$go_out, $result_content[$id]=$name0;
'name'=>$name,'off_work'=>$off_work,
'on_work'=>$on_work]);
} }
// dd($result_content);
$on_count=count($response_on['results'][0]['series'][0]['values']);
// array_push($result_content,['on_work'=>"null"]);
// dd($response[0]['Ports']);
// Allen teach
$contents=array();
for($i=0;$i<$on_count;$i++){
$name=$response_on['results'][0]['series'][0]['values'][$i][1];
$date=$response_on['results'][0]['series'][0]['values'][$i][0];
$on_work=$response_on['results'][0]['series'][0]['values'][$i][0];
$replace_dateon = explode("T",$date);
// dd($replace_dateon);
$replace_onwork0 = explode("T",$on_work);
$replace_onwork = explode(".",$replace_onwork0[1]);
// dd($time);
// if($replace_date==$$on_work) {
// return $replace_example;
// if($id==$name){
// array_push($result_content,['dateon'=>$replace_dateon[0],'on_work0'=>$replace_onwork0[0],'on_work'=>$replace_onwork[0]]);
// $content=array(["$replace_dateon[0]"=>$replace_dateon[0],["name"=>$name0],['dateon'=>$replace_dateon[0],'on_work0'=>$replace_onwork0[0],'on_work'=>$replace_onwork[0]]]);
return View('index',['page' => 'attendance','result'=>$query,'iresult'=>$main,'content'=>$result_content,'navbar_li'=>'layouts.navbar_li','title'=>'tt']); // }
if (array_key_exists($replace_dateon[0], $contents)) {
$contents [$replace_dateon[0]][$result_content[$name]]=array("dateon" =>$replace_onwork[1]);
} }
public function attend(Request $request) else{
{ $contents[$replace_dateon[0]]=array($result_content[$name] => array("dateon" =>$replace_onwork[1]));
//時間戳記轉換及接收姓名欄位 }
$start=$request->input('start_time'); }
$end=$request->input('end_time');
$people=$request->input('people');
$start=strtotime($start);
$end=strtotime($end."now");
//搜尋姓名及開始結束時間,有資料
$query = Path::all();
$main=Car::all();
$client = new \GuzzleHttp\Client();
$res = $client->get($this->docker_ip."/query?db=test&q=select%20*%20from%20people2%20WHERE \"name\" ='$people' AND timestamp>=$start AND timestamp<=$end ");
$response = json_decode($res->getBody()->__toString(), true);
if(count($response['results'][0])>1){
$people_count=count($response['results'][0]['series'][0]['values']);
$result_content=array();
for($i=0;$i<$people_count;$i++){
$dbname=$response['results'][0]['series'][0]['name']; // ivy did
$time=$response['results'][0]['series'][0]['values'][$i][6]; for($i=0;$i<$on_count;$i++){
$time=date('Y-m-d H:i:s',$time);
$come_back=$response['results'][0]['series'][0]['values'][$i][1]; $name=$response_on['results'][0]['series'][0]['values'][$i][1];
$go_out=$response['results'][0]['series'][0]['values'][$i][2]; $date=$response_on['results'][0]['series'][0]['values'][$i][0];
$name=$response['results'][0]['series'][0]['values'][$i][3];
$off_work=$response['results'][0]['series'][0]['values'][$i][4]; $on_work=$response_on['results'][0]['series'][0]['values'][$i][0];
$on_work=$response['results'][0]['series'][0]['values'][$i][5];
$replace_dateon = explode("T",$date);
$replace_onwork0 = explode("T",$on_work);
$replace_onwork = explode(".",$on_work);
// if($replace_date==$$on_work) {
// return $replace_example;
if($id==$name){
array_push($result_content,['dateon'=>$replace_dateon[0],'on_work0'=>$replace_onwork0[0],'on_work'=>$replace_onwork[0]]);
// $content=array(["$replace_dateon[0]"=>$replace_dateon[0],["name"=>$name0],['dateon'=>$replace_dateon[0],'on_work0'=>$replace_onwork0[0],'on_work'=>$replace_onwork[0]]]);
}
// $array = Arr::add('Id',$response[$i]['Id']); // $array = Arr::add('Id',$response[$i]['Id']);
array_push($result_content,['Names'=>$dbname,'time'=>$time,'come_back'=>$come_back,'go_out'=>$go_out,
'name'=>$name,'off_work'=>$off_work,
'on_work'=>$on_work]); // return( $result_content);
// if(isset($response_select_on['results'][0]['series']))
// array_push($result_content,['on_work'=>null]);
$off_count=count($response_off['results'][0]['series'][0]['values']);
for($i=0;$i<$off_count;$i++){
$name=$response_off['results'][0]['series'][0]['values'][$i][1];
$off_work=$response_off['results'][0]['series'][0]['values'][$i][0];
$date=$response_off['results'][0]['series'][0]['values'][$i][0];
$replace_dateoff = explode("T",$date);
$replace_offwork0 = explode("T",$off_work);
$replace_offwork = explode(".",$off_work);
if (array_key_exists($replace_dateoff[0], $contents)) {
$contents[$replace_dateoff[0]][$result_content[$name]]["dateoff"]=$replace_offwork[1];
} }
return View('index',['page' => 'attendance','result'=>$query,'iresult'=>$main,'content'=>$result_content,'navbar_li'=>'layouts.navbar_li','title'=>'tt']); else{
$contents[$replace_dateoff[0]]=array($result_content[$name] => array("dateoff" =>$replace_offwork[1]));
}
} }
else {
//查無資料,顯示全部資料列
$query = Path::all();
$main=Car::all();
$client = new \GuzzleHttp\Client();
$res = $client->get($this->docker_ip."/query?db=test&q=select%20*%20from%20people2");
$response = json_decode($res->getBody()->__toString(), true);
// dd($contents);
if(isset($response_select_off['results'][0]['series']))
array_push($result_content,['off_work'=>null]);
$people_count=count($response['results'][0]['series'][0]['values']);
$result_content=array();
// dd($response[0]['Ports']);
$go_count=count($response_go['results'][0]['series'][0]['values']);
// dd($response[0]['Ports']);
for($i=0;$i<$go_count;$i++){
$name=$response_go['results'][0]['series'][0]['values'][$i][1];
$go_out=$response_go['results'][0]['series'][0]['values'][$i][0];
$date=$response_go['results'][0]['series'][0]['values'][$i][0];
$replace_datego = explode("T",$date);
$replace_goout0 = explode("T",$go_out);
$replace_goout = explode(".",$go_out);
if (array_key_exists($replace_datego[0], $contents)) {
$contents[$replace_datego[0]][$result_content[$name]]["goout"]=$replace_goout[1];
}
else{
for($i=0;$i<$people_count;$i++){ $contents[$replace_datego[0]]=array($result_content[$name] => array("goout" =>$replace_goout[1]));
$dbname=$response['results'][0]['series'][0]['name']; }
$time=$response['results'][0]['series'][0]['values'][$i][6]; }
$time=date('Y-m-d H:i:s',$time); dd($contents);
$come_back=$response['results'][0]['series'][0]['values'][$i][1]; $back_count=count($response_back['results'][0]['series'][0]['values']);
$go_out=$response['results'][0]['series'][0]['values'][$i][2]; // dd($response[0]['Ports']);
$name=$response['results'][0]['series'][0]['values'][$i][3]; for($i=0;$i<$back_count;$i++){
$off_work=$response['results'][0]['series'][0]['values'][$i][4]; $name=$response_back['results'][0]['series'][0]['values'][$i][1];
$on_work=$response['results'][0]['series'][0]['values'][$i][5]; $come_back=$response_back['results'][0]['series'][0]['values'][$i][0];
// $array = Arr::add('Id',$response[$i]['Id']); $date=$response_back['results'][0]['series'][0]['values'][$i][0];
array_push($result_content,['Names'=>$dbname,'time'=>$time,'come_back'=>$come_back,'go_out'=>$go_out, $replace_datecome = explode("T",$date);
'name'=>$name,'off_work'=>$off_work, $replace_come_back0 = explode("T",$come_back);
'on_work'=>$on_work]); $replace_come_back = explode(".",$come_back);
if (array_key_exists($replace_datecome[0], $contents)) {
$contents[$replace_datecome[0]][$result_content[$name]]["comeback"]=$replace_come_back[1];
} }
echo "<script>alert('查無此資料');</script>"; else{
$contents[$replace_datecome[0]]=array($result_content[$name] => array("comeback" =>$replace_come_back[1]));
}
}
return View('index',['page' => 'attendance','result'=>$query,'iresult'=>$main,'contents'=>$contents,'navbar_li'=>'layouts.navbar_li','title'=>'tt']);
return View('index',['page' => 'attendance','result'=>$query,'iresult'=>$main,'content'=>$result_content,'navbar_li'=>'layouts.navbar_li','title'=>'tt']);
} }
// dd($result_content);
// return View('index',['page' => 'attendance','result'=>$query,'iresult'=>$main,'on_content'=>$on_result_content,'off_content'=>$off_result_content,
// 'go_content'=>$go_result_content,'back_content'=>$back_result_content,'navbar_li'=>'layouts.navbar_li','title'=>'tt']);
} }
public function user(Request $request) public function attend(Request $request)
{ {
$query = Path::all(); $start=$request->input('start_time');
$main=Car::all(); $end=$request->input('end_time');
$client = new \GuzzleHttp\Client();
$res = $client->get($this->docker_ip."/query?db=test&q=select%20*%20from%20people2%20 "); $start=strtotime("$start,now");
$response = json_decode($res->getBody()->__toString(), true); $end=strtotime("$end,now");
$people_count=count($response['results'][0]['series'][0]['values']);
$result_content=array(); $response_emp = json_decode($res_emp->getBody()->__toString(), true);
for($i=0;$i<$people_count;$i++){ $response_on = json_decode($res_on_work->getBody()->__toString(), true);
$name=$response['results'][0]['series'][0]['values'][$i][3];
array_push($result_content,['name'=>$name]); // $replace_date = explode("T",$date);
return View('index',['page' => 'attendance','result'=>$query,'iresult'=>$main,'content'=>$result_content,'navbar_li'=>'layouts.navbar_li','title'=>'tt']); dd($start);
return $start.$end;
echo $time;
// dd($result_content);
} }
}
} }
\ No newline at end of file
...@@ -38,8 +38,9 @@ class DockerController extends Controller ...@@ -38,8 +38,9 @@ class DockerController extends Controller
$query = Path::all(); $query = Path::all();
$main=Car::all(); $main=Car::all();
$client = new \GuzzleHttp\Client(); $client = new \GuzzleHttp\Client();
$res = $client->get($this->docker_ip."/containers/json?all=1"); $res = $client->get($this->docker_ip."/images/json?all=1");
$response = json_decode($res->getBody()->__toString(), true); $response = json_decode($res->getBody()->__toString(), true);
dd($response);
return View('docker.admin_service',['result'=>$query,'iresult'=>$main,'contents'=>$response]); return View('docker.admin_service',['result'=>$query,'iresult'=>$main,'contents'=>$response]);
} }
...@@ -68,7 +69,8 @@ class DockerController extends Controller ...@@ -68,7 +69,8 @@ class DockerController extends Controller
'DESTINATION='.$dis_stream 'DESTINATION='.$dis_stream
), ),
'Labels'=>array( 'Labels'=>array(
'level'=>'admin' 'level'=>'admin',
'des_stream'=>$dis_stream
) )
] ]
]); ]);
......
...@@ -26,7 +26,19 @@ class CameraController extends Controller ...@@ -26,7 +26,19 @@ class CameraController extends Controller
$values=$response['results'][0]['series'][0]['values'][0][3]; $values=$response['results'][0]['series'][0]['values'][0][3];
$car = Lps::All()->Where('status','已進場'); $car = Lps::All()->Where('status','已進場');
$client = new \GuzzleHttp\Client();
$easy_darw="192.168.5.208:10008";
$res = $client->GET($easy_darw."/api/v1/players");
$response = json_decode($res->getBody()->__toString(), true);
$total_stream=$response['rows'];
$res = $client->GET("192.168.5.222:2375"."/containers/json?all=1");
$response = json_decode($res->getBody()->__toString(), true);
$docker_tag=$response;
// return $values[0]; // return $values[0];
return View('index',['page' => 'smart_parking.camera','result'=>$query,'iresult'=>$main,'navbar_li'=>'smart_parking.layout.navbar_li','title'=>'camera','body'=>'camera','columns'=>$columns,"values"=>$values,'Cars'=>100-count($car)]); return View('smart_parking.camera',['result'=>$query,'iresult'=>$main,'docker_tag'=>$docker_tag,'total_stream'=>$total_stream,'body'=>'camera','columns'=>$columns,"values"=>$values,'Cars'=>100-count($car)]);
} }
} }
...@@ -248,7 +248,7 @@ thead { ...@@ -248,7 +248,7 @@ thead {
margin-bottom: 20px; margin-bottom: 20px;
} }
.form-control { .form-control {
padding: 19px 18px; /* padding: 19px 18px; */
border-radius: 0; border-radius: 0;
height: 50px; height: 50px;
} }
...@@ -301,7 +301,7 @@ thead { ...@@ -301,7 +301,7 @@ thead {
color: #a0c0de; color: #a0c0de;
} }
.tm-bg-primary-dark { .tm-bg-primary-dark {
background-color: #435c70; background-color: #343a40;
} }
.tm-bg-primary-black { .tm-bg-primary-black {
background-color: #090909; background-color: #090909;
......
...@@ -2,47 +2,33 @@ ...@@ -2,47 +2,33 @@
@section('content') @section('content')
<div class="thumbnail">
<div class="row justify-content-center">
<form class="col-6" id="send" action="/attend" method="POST"> <form id="send" action="/attend" method="POST">
{{ csrf_field() }} {{ csrf_field() }}
<!-- 姓名 開始結束時間input --> <div class="row" >
<div class="form-group row">
<label for="text" class="col-sm-2 col-form-label">姓名</label>
<div class="col-sm-10">
<div class="input-group date" data-target-input="nearest">
<input type="text" class="form-control" id="people" name="people" value="">
<div class="input-group-append" class="dropdown-toggle" data-toggle="dropdown">
<div class="input-group-text" id="btnGetDetails"><i class="fa fa-user fa-lg"></i></div>
<ul id="target" class="dropdown-menu">
@foreach($content as $contents)
<li class="nav-item">
<a class="nav-link text-dark">{{$contents['name']}} </a>
</li>
@endforeach
</ul>
</div>
</div>
</div>
</div>
<div class="form-group row" > <div class="col-xs-6 col-md-2">
<label for="text" class="col-sm-2 col-form-label">開始時間</label> <span id="arg">開始時間:</span>
<div class="col-sm-10"> </div>
<div class="form-group" style="margin-left: 2%" >
<div class="input-group date" id="datetimepicker1" data-target-input="nearest"> <div class="input-group date" id="datetimepicker1" data-target-input="nearest">
<input id="start_time" name="start_time" type="text" class="form-control datetimepicker-input" data-target="#datetimepicker1" required=""> <input id='start_time' style="text-align: center" name="start_time" type="text" class="form-control datetimepicker-input" data-target="#datetimepicker1" required/>
<div class="input-group-append" data-target="#datetimepicker1" data-toggle="datetimepicker"> <div class="input-group-append" data-target="#datetimepicker1" data-toggle="datetimepicker">
<div class="input-group-text"><i class="fa fa-calendar"></i></div> <div class="input-group-text"><i class="fa fa-calendar"></i></div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="row"><div class="col-md-6" style="margin-left: 2%">到</div></div>
<div class="row">
<div class="form-group row" > <div class="col-xs-6 col-md-2">
<label for="text" class="col-sm-2 col-form-label">結束時間</label> <span id="arg">結束時間:</span>
<div class="col-sm-10"> </div>
<div class="form-group" style="margin-left: 2%">
<div class="input-group date" id="datetimepicker2" data-target-input="nearest"> <div class="input-group date" id="datetimepicker2" data-target-input="nearest">
<input id="end_time" name="end_time" type="text" class="form-control datetimepicker-input" data-target="#datetimepicker2" required=""> <input id='end_time' style="text-align: center" name="end_time" type="text" class="form-control datetimepicker-input" data-target="#datetimepicker2" required/>
<div class="input-group-append" data-target="#datetimepicker2" data-toggle="datetimepicker"> <div class="input-group-append" data-target="#datetimepicker2" data-toggle="datetimepicker">
<div class="input-group-text"><i class="fa fa-calendar"></i></div> <div class="input-group-text"><i class="fa fa-calendar"></i></div>
</div> </div>
...@@ -50,42 +36,73 @@ ...@@ -50,42 +36,73 @@
</div> </div>
</div> </div>
<div style="text-align:center"> <div class="row">
<input id='sub_btn' class="btn-lg btn-success btn" type="submit" value="送出"/> <div class="col-md-6"></div><input id='sub_btn' style="margin: 2% ; margin-left : 80%" class="btn-lg btn-success btn" type="submit" value="送出"/>
</div> </div>
</form> <table class="table table-dark table-striped" style="text-align:center">
</div>
</div>
<input class="form-control" id="myInput" type="text" placeholder="Search..">
<table class="table table-dark table-striped " style="text-align:center">
<tr> <tr>
<td>時間</td> <td>日期</td>
<td>姓名</td> <td>姓名</td>
<td>上班時間</td> <td>上班時間</td>
<td>下班時間 </td> <td>下班時間 </td>
<td>外出時間</td> <td>外出時間</td>
<td>返回時間</td> <td>返回時間</td>
</tr> </tr>
<tbody id="myTable">
@foreach($content as $contents) @foreach(array_keys($contents) as $day)
<tr >
<td>{{$contents['time']}}</td> @foreach(array_keys($contents[$day]) as $name)
<td>{{$contents['name']}}</td> <tr>
<td>{{$contents['on_work']}}</td> <td>{{$day}}</td>
<td>{{$contents['off_work']}}</td> <td>{{$name}}</td>
<td>{{$contents['go_out']}}</td> @if(isset($contents[$day][$name]['dateon']))
<td>{{$contents['come_back']}}</td> <td>{{$contents[$day][$name]['dateon']}}</td>
</tr> @else
<td></td>
@endif
@if(isset($contents[$day][$name]['dateoff']))
<td>{{$contents[$day][$name]['dateoff']}}</td>
@else
<td></td>
@endif
@if(isset($contents[$day][$name]['goout']))
<td>{{$contents[$day][$name]['goout']}}</td>
@else
<td></td>
@endif
@if(isset($contents[$day][$name]['comeback']))
<td>{{$contents[$day][$name]['comeback']}}</td>
@else
<td></td>
@endif
@endforeach
@endforeach @endforeach
</tbody>
</table> </table>
<span id='buttom'></span>
</div>
</div>
</form>
</div>
</div>
<span id='buttom'></span>
<script>
var origin = [$content[$j]['date']];
var result = Array.from(new Set(origin));
console.log(result); // [1, 2, "a", 3, "b"]
</script>
<!-- 時間選擇器 --> <!-- 時間選擇器 -->
<!-- datetimepicker1 物件 --> <!-- datetimepicker1 物件 -->
...@@ -125,27 +142,7 @@ ...@@ -125,27 +142,7 @@
}); });
</script> </script>
<script>
$(document).ready(function()
{
$('ul.dropdown-menu li').click(function(e)
{
$("#people").val($.trim($(this).text()));
//trime => clear white spaces
});
});
$(document).ready(function(){
$("#myInput").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#myTable tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
});
</script>
@endsection @endsection
\ No newline at end of file
...@@ -15,36 +15,41 @@ ...@@ -15,36 +15,41 @@
<div class="form-group row"> <div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">模組名稱</label> <label for="inputEmail3" class="col-sm-2 col-form-label">模組名稱</label>
<div class="col-sm-10"> <div class="col-sm-10">
<input name="module_name" pattern="^[a-zA-Z0-9]{3,}$" class="form-control" type="text" placeholder="請輸入英文或數字共3個字以上" class="input-large" required=""> <input name="module_name" pattern="^[a-zA-Z0-9]{3,}$" class="form-control" type="text" placeholder="請輸入英文或數字共3個字以上" required="">
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">來源串流</label> <label class="col-sm-2 col-form-label">辨識模組</label>
<div class="col-sm-10"> <div class="col-sm-10">
<select class="form-control" id="exampleFormControlSelect1" name="origin_stream"> <select id="module" class="form-control" name="identify_module">
@foreach($total_stream as $stream) <option value="none" selected="">請選擇一個模組</option>
<option>{{$stream['path']}}</option> @foreach($docker_tag as $tag)
<option value="{{$tag['RepoTags'][0]}}">{{$tag['RepoTags'][0]}}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
</div> </div>
<div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">目的串流</label> <div class="add"></div>
<div class="col-sm-10">
<input name="dis_stream" class="form-control" type="text" placeholder="請輸入英文或數字共3個字以上" class="input-large" value="rtsp://192.168.5.208:554/test" required=""> <!-- <div class="form-group row">
</div> <label class="col-sm-2 col-form-label">來源串流</label>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">辨識模組</label>
<div class="col-sm-10"> <div class="col-sm-10">
<select class="form-control" id="exampleFormControlSelect1" name="identify_module"> <select class="form-control" name="origin_stream">
@foreach($docker_tag as $tag) @foreach($total_stream as $stream)
<option>{{$tag['RepoTags'][0]}}</option> <option>{{$stream['path']}}</option>
@endforeach @endforeach
</select> </select>
</div> </div>
</div> </div>
<div class="form-group row"> <div class="form-group row">
<label class="col-sm-2 col-form-label">目的串流</label>
<div class="col-sm-10">
<input name="dis_stream" class="form-control" type="text" placeholder="請輸入英文或數字共3個字以上" class="input-large" value="rtsp://192.168.5.208:554/test" required="">
</div>
</div> -->
<!-- <div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">辨識範圍</label> <label for="inputPassword3" class="col-sm-2 col-form-label">辨識範圍</label>
<div class="col-sm-10"> <div class="col-sm-10">
<div class="custom-file"> <div class="custom-file">
...@@ -53,9 +58,9 @@ ...@@ -53,9 +58,9 @@
<div class="invalid-feedback">Example invalid custom file feedback</div> <div class="invalid-feedback">Example invalid custom file feedback</div>
</div> </div>
</div> </div>
</div> </div> -->
<div class="form-group row"> <!-- <div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">辨識模組</label> <label for="inputPassword3" class="col-sm-2 col-form-label">辨識模組</label>
<div class="col-sm-10"> <div class="col-sm-10">
<div class="custom-file"> <div class="custom-file">
...@@ -64,7 +69,7 @@ ...@@ -64,7 +69,7 @@
<div class="invalid-feedback">Example invalid custom file feedback</div> <div class="invalid-feedback">Example invalid custom file feedback</div>
</div> </div>
</div> </div>
</div> </div> -->
<div class="form-group row"> <div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">是否輸出</label> <label for="inputPassword3" class="col-sm-2 col-form-label">是否輸出</label>
...@@ -110,3 +115,84 @@ ...@@ -110,3 +115,84 @@
</div> </div>
@stop @stop
@section('script')
<script>
$("#module").change(function(){
switch ($(this).val()){
case 'docker-lpr:latest':
console.log($(this).val());
$( ".add" ).empty();
var str='';
str+=("<div class=\"form-group row\" id=\"stream\" >");
str+=("<label class=\"col-sm-2 col-form-label\" >"+"STREAM"+"</label>");
str+=("<div class=\"col-sm-10\" >");
str+=("<input name=\"STREAM\" class=\"form-control\" type=\"text\" placeholder=\"請輸入英文或數字共3個字以上\" value=\"rtsp://admin:Ecom84253675@120.108.24.89:554/onvif/profile2/media.smp\" required=\"\">");
str+=("</div>");
str+=("</div>");
str+=("<div class=\"form-group row\" id=\"channel\" >");
str+=("<label class=\"col-sm-2 col-form-label\" >"+"channel"+"</label>");
str+=("<div class=\"col-sm-10\" >");
str+=("<input name=\"channel\" class=\"form-control\" type=\"text\" value=\"mmout\" required=\"\">");
str+=("</div>");
str+=("</div>");
str+=("<div class=\"form-group row\" id=\"tsdbserver\" >");
str+=("<label class=\"col-sm-2 col-form-label\" >"+"TSDBSERVER"+"</label>");
str+=("<div class=\"col-sm-10\" >");
str+=("<input name=\"TSDBSERVER\" class=\"form-control\" type=\"text\" value=\"192.168.5.17\" required=\"\">");
str+=("</div>");
str+=("</div>");
str+=("<div class=\"form-group row\" id=\"tsdbport\" >");
str+=("<label class=\"col-sm-2 col-form-label\" >"+"TSDBPORT"+"</label>");
str+=("<div class=\"col-sm-10\" >");
str+=("<input name=\"TSDBPORT\" class=\"form-control\" type=\"text\" value=\"8086\" required=\"\">");
str+=("</div>");
str+=("</div>");
$( ".add" ).append(str);
break;
case 'ffmpeg-transfer:latest':
$( ".add" ).empty();
var str='';
var total_stream=<?php echo json_encode($total_stream); ?>;
str+=("<div class=\"form-group row\" id=\"origin\">");
str+=("<label class=\"col-sm-2 col-form-label\" >"+"來源串流"+"</label>");
str+=("<div class=\"col-sm-10\">");
str+=("<select class=\"form-control\" name=\"origin_stream\">");
for(var i=0; i<total_stream.length; i++){
str+=("<option>"+total_stream[i]['path']+"</option>");
}
str+=("</select>");
str+=("</div>");
str+=("</div>");
str+=("<div class=\"form-group row\" id=\"dis\" >");
str+=("<label class=\"col-sm-2 col-form-label\" >"+"目的串流"+"</label>");
str+=("<div class=\"col-sm-10\" >");
str+=("<input name=\"dis_stream\" class=\"form-control\" type=\"text\" placeholder=\"請輸入英文或數字共3個字以上\" value=\"rtsp://192.168.5.208:554/test\" required=\"\">");
str+=("</div>");
str+=("</div>");
$( ".add" ).append(str);
break;
default:
$( ".add" ).empty();
// $( "#channel" ).remove();
// $( "#tsdbserver" ).remove();
// $( "#tsdbport" ).remove();
// $( "#origin" ).remove();
// $( "#dis" ).remove();
}
});
</script>
@stop
\ No newline at end of file
...@@ -8,7 +8,15 @@ ...@@ -8,7 +8,15 @@
@section('content') @section('content')
<H1>Los Angeles</H1> <H1>Los Angeles</H1>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div id="demo" class="carousel slide" data-ride="carousel"> <div id="demo" class="carousel slide" data-ride="carousel">
<ul class="carousel-indicators"> <ul class="carousel-indicators">
<li data-target="#demo" data-slide-to="0" class="active"></li> <li data-target="#demo" data-slide-to="0" class="active"></li>
......
...@@ -26,32 +26,15 @@ ...@@ -26,32 +26,15 @@
<div class="tm-bg-primary-dark tm-block tm-block-products"> <div class="tm-bg-primary-dark tm-block tm-block-products">
<div class="row"> <div class="row">
<div class="col-sm-8"> <div class="col-sm-8">
<form name='form' id='form' class="form-inline"> <select id="stream_option" class="form-control" name="identify_module">
<input style="width: 280px" type='text' name='name' id='src' class="form-control mr-sm-2" placeholder="切換網址"/> @foreach($docker_tag as $content)
<input class="btn btn-outline-warning my-2 my-sm-0" type='button' name='submit' value='切換' onclick='processFormData();' /> @if(isset($content['Labels']['des_stream']))
</form> <option>{{$content['Labels']['des_stream']}}</option>
</div> @endif
<div class="col-sm"> @endforeach
<span id="RtmpName" class="btn btn-info" style="width: auto;text-align: center;font-weight:bold;">Rtmp-Play0</span> </select>
</div>
</div>
<br>
<div class="row">
<div class="col-sm-4">
<button class="btn btn-primary btn-block text-uppercase rounded" onclick="inter_stream()">
入口
</button>
</div>
<div class="col-sm-4">
<button class="btn btn-primary btn-block text-uppercase rounded" onclick="outer_stream()">
出口
</button>
</div>
<div class="col-sm-4">
<button class="btn btn-primary btn-block text-uppercase rounded" onclick="startdemo()">
demo
</button>
</div> </div>
</div> </div>
<br> <br>
...@@ -127,14 +110,16 @@ ...@@ -127,14 +110,16 @@
var getplate = function(){ var getplate = function(){
if (stream === "inter"){ if (stream === "inter"){
$.ajax({ $.ajax({
url: 'http://192.168.5.17:8086/query?q=select+last(plate)%2C*+from+%22in%22&db=NCUT_MM&pretty=true', // url: 'http://192.168.5.17:8086/query?q=select+last(plate)%2C*+from+%22in%22&db=NCUT_MM&pretty=true',
url: 'http://192.168.5.17:8086/query?q=select++last(plate)+from+mmin&db=LPR&pretty=true',
success:function (data) { success:function (data) {
var time=data.results[0].series[0].values[0][0].split(".")[0]; var time=data.results[0].series[0].values[0][0].split(".")[0];
var img=data.results[0].series[0].values[0][1]; var img=data.results[0].series[0].values[0][1];
var lp=data.results[0].series[0].values[0][3]; var lp=data.results[0].series[0].values[0][1];
let UTCTimeObj = new Date(time=time+'z'); let UTCTimeObj = new Date(time=time+'z');
document.getElementById("time").innerHTML = UTCTimeObj.toLocaleString(); document.getElementById("time").innerHTML = UTCTimeObj.toLocaleString();
document.getElementById('img').src='http://192.168.5.103:8001/result?filename='+img; document.getElementById('img').src='http://192.168.5.103:8001/result?filename='+img;
console.log(lp);
document.getElementById("lp").innerHTML = lp; document.getElementById("lp").innerHTML = lp;
}, },
complete: function () { complete: function () {
...@@ -144,11 +129,12 @@ ...@@ -144,11 +129,12 @@
}); });
}else if (stream === "outer"){ }else if (stream === "outer"){
$.ajax({ $.ajax({
url: 'http://192.168.5.17:8086/query?q=select+last(plate)%2C*+from+%22out%22&db=NCUT_MM&pretty=true', // url: 'http://192.168.5.17:8086/query?q=select+last(plate)%2C*+from+%22out%22&db=NCUT_MM&pretty=true',
url: 'http://192.168.5.17:8086/query?q=select++last(plate)+from+mmout&db=LPR&pretty=true',
success:function (data) { success:function (data) {
var time=data.results[0].series[0].values[0][0].split(".")[0]; var time=data.results[0].series[0].values[0][0].split(".")[0];
var img=data.results[0].series[0].values[0][1]; var img=data.results[0].series[0].values[0][1];
var lp=data.results[0].series[0].values[0][3]; var lp=data.results[0].series[0].values[0][1];
let UTCTimeObj = new Date(time=time+'z'); let UTCTimeObj = new Date(time=time+'z');
document.getElementById("time").innerHTML = UTCTimeObj.toLocaleString(); document.getElementById("time").innerHTML = UTCTimeObj.toLocaleString();
document.getElementById('img').src =' http://192.168.5.103:8001/result?filename='+img; document.getElementById('img').src =' http://192.168.5.103:8001/result?filename='+img;
...@@ -198,8 +184,8 @@ ...@@ -198,8 +184,8 @@
stream="inter"; stream="inter";
} }
function outer_stream() { function outer_stream() {
document.getElementById("AreaBox").innerHTML='出口'; // document.getElementById("AreaBox").innerHTML='出口';
document.getElementById("RtmpName").innerHTML='Rtmp-Play1'; // document.getElementById("RtmpName").innerHTML='Rtmp-Play1';
let player=videojs("my-video"); let player=videojs("my-video");
player.src("http://192.168.5.17/live/out.flv"); player.src("http://192.168.5.17/live/out.flv");
player.play(); player.play();
...@@ -224,5 +210,10 @@ ...@@ -224,5 +210,10 @@
player.play(); player.play();
stream="outer"; stream="outer";
} }
$("#stream_option").change(function(){
outer_stream();
});
</script> </script>
@stop @stop
\ No newline at end of file
<html>
<head>
<script src="https://aframe.io/releases/0.9.2/aframe.min.js"></script>
</head>
<body>
<a-scene>
<a-cylinder color="red" position="0 2 -5" rotation="30 45 45" scale="1 1 1">
</a-cylinder>
<a-sky src="./image/3.jpg"></a-sky>
</a-scene>
</body>
</html>
\ No newline at end of file
...@@ -28,7 +28,7 @@ Route::get('line','PageController@line'); ...@@ -28,7 +28,7 @@ Route::get('line','PageController@line');
// Route::get('HRM','PageController@HRM'); // Route::get('HRM','PageController@HRM');
//reg login logout controller //reg login logout controller
Route::group(['prefix'=>'process'],function (){ Route::group([],function (){
Route::post('reg','ProcessController@reg')->name('reg'); ; Route::post('reg','ProcessController@reg')->name('reg'); ;
Route::post('login','ProcessController@login')->name('login'); Route::post('login','ProcessController@login')->name('login');
Route::get('logout','ProcessController@logout')->name('logout'); Route::get('logout','ProcessController@logout')->name('logout');
...@@ -104,7 +104,7 @@ Route::group(['prefix'=>'people'],function (){ ...@@ -104,7 +104,7 @@ Route::group(['prefix'=>'people'],function (){
}); });
Route::group([],function (){ Route::group(['middleware'=>'auth'],function (){
Route::get('new','PageController@new')->name('new'); Route::get('new','PageController@new')->name('new');
Route::post('/service_create','DockerController@container_create')->name('container_create'); Route::post('/service_create','DockerController@container_create')->name('container_create');
...@@ -115,3 +115,7 @@ Route::group([],function (){ ...@@ -115,3 +115,7 @@ Route::group([],function (){
Route::post('api','DockerController@ctrl_docker_service')->name('api'); Route::post('api','DockerController@ctrl_docker_service')->name('api');
}); });
Route::get('tt',function(){
return view('tt');
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment