Commit 9450c470 authored by odlai's avatar odlai

init

parent 82a2c17e
<?php
namespace App\Http\Controllers;
use App\Path;
use App\Car;
use GuzzleHttp\Client;
use Illuminate\Support\Arr;
use Illuminate\Http\Request;
class DockerController extends Controller
{
//
public function init()
{
$query = Path::all();
$main=Car::all();
$client = new \GuzzleHttp\Client();
$res = $client->get('http://192.168.5.194:2375/containers/json');
$response = json_decode($res->getBody()->__toString(), true);
$container_count=count($response);
$result_content=array();
for($i=0;$i<$container_count;$i++){
// $array = Arr::add('Id',$response[$i]['Id']);
array_push($result_content,['Names'=>$response[$i]['Names'],'Id'=>substr($response[$i]['Id'],0,12),'State'=>$response[$i]['State'],'Status'=>$response[$i]['Status']]);
}
// dd($result_content);
return View('index',['page' => 'service','result'=>$query,'iresult'=>$main,'contents'=>$result_content,'navbar_li'=>'layouts.navbar_li','title'=>'tt']);
}
public function test(Request $request){
$status=$request->input('btn');
$container_id=$request->input('id');
$client = new \GuzzleHttp\Client();
$res = $client->POST('http://192.168.5.194:2375/containers/'.$container_id.'/'.$status);
// $res = $client->get('http://192.168.5.194:2375/containers/json');
// $RRR=$res->getBody();
// $contents = (string) $res->getBody();
// $meta = stream_get_meta_data($RRR);
return redirect()->back();
// $response = json_decode($res->getBody()->__toString(), true);
// echo ($response[0]['Status']);
// $results = json_decode((string)$res->getBody()->getContents(),true);
// // echo $results;
// // dd($res);
// foreach($results as $R){
// echo $R;
}
}
...@@ -42,4 +42,18 @@ class PageController extends Controller ...@@ -42,4 +42,18 @@ class PageController extends Controller
$main=Car::all(); $main=Car::all();
return View('index',['page' => 'HRM.HRM','result'=>$query,'iresult'=>$main,'navbar_li'=>'layouts.navbar_li','title'=>'tt']); return View('index',['page' => 'HRM.HRM','result'=>$query,'iresult'=>$main,'navbar_li'=>'layouts.navbar_li','title'=>'tt']);
} }
public function new()
{
$query = Path::all();
$main=Car::all();
return View('index',['page' => 'new','result'=>$query,'iresult'=>$main,'navbar_li'=>'layouts.navbar_li','title'=>'tt']);
}
public function service()
{
$query = Path::all();
$main=Car::all();
return View('index',['page' => 'service','result'=>$query,'iresult'=>$main,'navbar_li'=>'layouts.navbar_li','title'=>'tt']);
}
} }
\ No newline at end of file
...@@ -562,8 +562,8 @@ pre code { ...@@ -562,8 +562,8 @@ pre code {
.container { .container {
width: 100%; width: 100%;
padding-right: 15px; /* padding-right: 15px; */
padding-left: 15px; /* padding-left: 15px; */
margin-top: 20px; margin-top: 20px;
margin-right: auto; margin-right: auto;
margin-left: auto; margin-left: auto;
...@@ -589,7 +589,7 @@ pre code { ...@@ -589,7 +589,7 @@ pre code {
@media (min-width: 1200px) { @media (min-width: 1200px) {
.container { .container {
max-width: 1140px; max-width: 1200px;
} }
} }
......
...@@ -128,7 +128,7 @@ ...@@ -128,7 +128,7 @@
height: 50%; height: 50%;
width: 0; width: 0;
position: fixed; position: fixed;
z-index: 1; z-index: 2;
top: 56px; top: 56px;
right: 10px; right: 10px;
background-color: rgba(63, 63, 63, 0.8); background-color: rgba(63, 63, 63, 0.8);
......
...@@ -4,7 +4,7 @@ $(document).ready(function(){ ...@@ -4,7 +4,7 @@ $(document).ready(function(){
$("#user-bar").hide(); $("#user-bar").hide();
document.getElementById("right").style.width ="100%"; document.getElementById("right").style.width ="100%";
document.getElementById("mySidenav").style.width = "240px"; document.getElementById("mySidenav").style.width = "240px";
document.getElementById("user-bar").style.width = "220px"; document.getElementById("user-bar").style.width = "205px";
}); });
//init all css and js //init all css and js
......
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
<title>{{$title}}</title> <title>{{$title}}</title>
<meta http-equiv="content-Type" content="text/html;charset=UTF8"> <meta http-equiv="content-Type" content="text/html;charset=UTF8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="_token" content="{{ csrf_token() }}"/>
@section('header') @section('header')
@show @show
<link rel="stylesheet" href="{{asset('css/bootstrap.css')}}"> <link rel="stylesheet" href="{{asset('css/bootstrap.css')}}">
...@@ -21,13 +23,13 @@ ...@@ -21,13 +23,13 @@
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<script type="text/javascript" src="{{asset('js/jquery.min.js')}}"></script> <script type="text/javascript" src="{{asset('js/jquery.min.js')}}"></script>
<script type="text/javascript" src="{{asset('js/slider.js')}}"></script> <script type="text/javascript" src="{{asset('js/slider.js')}}"></script>
<!-- <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> --> <!-- <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.0.1/js/tempusdominus-bootstrap-4.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.0.1/js/tempusdominus-bootstrap-4.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.0.1/css/tempusdominus-bootstrap-4.min.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.0.1/css/tempusdominus-bootstrap-4.min.css" />
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script src="{{asset('js/accordion.js')}}"></script> <script src="{{asset('js/accordion.js')}}"></script>
@section('header1')
@show
<link rel="stylesheet" href="{{asset('css/test.css')}}"> <link rel="stylesheet" href="{{asset('css/test.css')}}">
@section('style') @section('style')
@show @show
...@@ -61,6 +63,9 @@ ...@@ -61,6 +63,9 @@
</div> </div>
@include('layouts.footer') @include('layouts.footer')
<script src="{{asset('js/play-video.js') }}"></script> <script src="{{asset('js/play-video.js') }}"></script>
@section('script')
@show
</body> </body>
</html> </html>
......
<div class="thumbnail">
<h1>後台管理</h1>
<div class="row justify-content-center">
<form class="col-8">
<div class="form-group row">
<label for="inputEmail3" class="col-sm-2 col-form-label">來源串流</label>
<div class="col-sm-10">
<div class="custom-file">
<input type="file" class="custom-file-input" id="validatedCustomFile" required>
<label class="custom-file-label" for="validatedCustomFile">Choose file...</label>
<div class="invalid-feedback">Example invalid custom file feedback</div>
</div>
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">辨識模組</label>
<div class="col-sm-10">
<select class="form-control" id="exampleFormControlSelect1">
<option>車牌辨識</option>
<option>人臉辨識</option>
<option>行為分析</option>
<option>禁區控管</option>
</select>
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">辨識範圍</label>
<div class="col-sm-10">
<div class="custom-file">
<input type="file" class="custom-file-input" id="validatedCustomFile" required>
<label class="custom-file-label" for="validatedCustomFile">Choose file...</label>
<div class="invalid-feedback">Example invalid custom file feedback</div>
</div>
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">是否輸出</label>
<div class="col-sm-10">
<div class="form-check form-check-inline">
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" class="custom-control-input" id="customRadio3" name="example">
<label class="custom-control-label" for="customRadio3"></label>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" class="custom-control-input" id="customRadio4" name="example">
<label class="custom-control-label" for="customRadio4"></label>
</div>
</div>
</div>
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">辨識模組</label>
<div class="col-sm-10">
<div class="custom-file">
<input type="file" class="custom-file-input" id="validatedCustomFile" required>
<label class="custom-file-label" for="validatedCustomFile">Choose file...</label>
<div class="invalid-feedback">Example invalid custom file feedback</div>
</div>
</div>
</div>
<div class="form-group row">
<label for="inputPassword3" class="col-sm-2 col-form-label">是否重啟</label>
<div class="col-sm-10">
<div class="form-check form-check-inline">
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" class="custom-control-input" id="customRadio" name="example1" value="customEx">
<label class="custom-control-label" for="customRadio"></label>
</div>
<div class="form-check form-check-inline">
<div class="custom-control custom-radio custom-control-inline">
<input type="radio" class="custom-control-input" id="customRadio1" name="example1" value="customEx">
<label class="custom-control-label" for="customRadio1"></label>
</div>
</div>
</div>
</div>
</div>
<div style="text-align:center">
<button type="submit" class="btn btn-primary">新增</button>
<button type="submit" class="btn btn-primary">取消</button>
</div>
</form>
</div>
</div>
\ No newline at end of file
...@@ -10,35 +10,35 @@ ...@@ -10,35 +10,35 @@
</ul> </ul>
<div class="carousel-inner"> <div class="carousel-inner">
<div class="carousel-item active"> <div class="carousel-item active">
<a href="/"><img src="https://image.winudf.com/v2/image/Y29tLmhkd2Nhci50aWFua29uZ2JpemhpX3NjcmVlbl8xMV8xNTI2MDE5MDY1XzAxNg/screen-11.jpg?fakeurl=1&type=.jpg" alt="Los Angeles" width="1100" height="500"></a> <a href="/"><img src="https://image.winudf.com/v2/image/Y29tLmhkd2Nhci50aWFua29uZ2JpemhpX3NjcmVlbl8xMV8xNTI2MDE5MDY1XzAxNg/screen-11.jpg?fakeurl=1&type=.jpg" alt="Los Angeles" width="1200" height="500"></a>
<div class="carousel-caption"> <div class="carousel-caption">
<h3>Los Angeles</h3> <h3>Los Angeles</h3>
<p>We had such a great time in LA!</p> <p>We had such a great time in LA!</p>
</div> </div>
</div> </div>
<div class="carousel-item"> <div class="carousel-item">
<img src="./image/1.jpg" alt="Chicago" width="1100" height="500" > <img src="./image/1.jpg" alt="Chicago" width="1200" height="500" >
<div class="carousel-caption"> <div class="carousel-caption">
<h3>Chicago</h3> <h3>Chicago</h3>
<p>Thank you, Chicago!</p> <p>Thank you, Chicago!</p>
</div> </div>
</div> </div>
<div class="carousel-item"> <div class="carousel-item">
<img src="./image/2.jpg" alt="New York" width="1110" height="500"> <img src="./image/2.jpg" alt="New York" width="1200" height="500">
<div class="carousel-caption"> <div class="carousel-caption">
<h3>New York</h3> <h3>New York</h3>
<p>We love the Big Apple!</p> <p>We love the Big Apple!</p>
</div> </div>
</div> </div>
<div class="carousel-item"> <div class="carousel-item">
<img src="https://image.winudf.com/v2/image/Y29tLmhkd2Nhci50aWFua29uZ2JpemhpX3NjcmVlbl8xMV8xNTI2MDE5MDY1XzAxNg/screen-11.jpg?fakeurl=1&type=.jpg" alt="" width="1110" height="500"> <img src="https://image.winudf.com/v2/image/Y29tLmhkd2Nhci50aWFua29uZ2JpemhpX3NjcmVlbl8xMV8xNTI2MDE5MDY1XzAxNg/screen-11.jpg?fakeurl=1&type=.jpg" alt="" width="1200" height="500">
<div class="carousel-caption"> <div class="carousel-caption">
<h3>New York</h3> <h3>New York</h3>
<p>We love the Big Apple!</p> <p>We love the Big Apple!</p>
</div> </div>
</div> </div>
<div class="carousel-item"> <div class="carousel-item">
<img src="https://wallpaperplay.com/walls/full/b/3/4/13007.jpg" alt="New York" width="1110" height="500"> <img src="./image/2.jpg" alt="New York" width="1200" height="500">
<div class="carousel-caption"> <div class="carousel-caption">
<h3>New York</h3> <h3>New York</h3>
<p>We love the Big Apple!</p> <p>We love the Big Apple!</p>
......
<h2>Filterable Table</h2>
<p>Type something in the input field to search the table for first names, last names or emails:</p>
<input class="form-control" id="myInput" type="text" placeholder="Search..">
<br>
<!-- <form method="post" action="{{route('api')}}"> -->
<table class="table table-bordered" style="color:#fff">
<thead>
<tr>
<th>位置</th>
<th>來源串流</th>
<th>辨識模組</th>
<th>目的串流</th>
<th>辨識範圍</th>
<th>狀態</th>
<th>備註</th>
</tr>
</thead>
<tbody id="myTable">
@foreach($contents as $content)
<tr>
<form method="post" action="{{route('api')}}">
<input type = "hidden" name = "_token" value = "<?php echo csrf_token(); ?>">
<td>{{$content['Id']}}</td>
<td>{{$content['State']}}</td>
<td>{{$content['Status']}}</td>
<td>{{$content['Status']}}</td>
<td>{{$content['Status']}}</td>
<td>{{$content['Status']}}</td>
<td>
<input type = "hidden" name = "id" value = "{{$content['Id']}}">
<button type="submit" class="btn btn-Success" name="btn" value="start">啟動</button>
<button type="submit" class="btn btn-Danger" name="btn" value="stop">停止</button>
<button type="submit" class="btn btn-Primary" name="btn" value="restart">重啟</button>
</td>
</form>
</tr>
@endforeach
<tr>
<td>Mary</td>
<td>Moe</td>
<td>mary@mail.com</td>
<td>Mary</td>
<td>Moe</td>
<td>啟動</td>
<td>
<form method="post" action="{{route('api')}}">
<input type = "hidden" name = "_token" value = "<?php echo csrf_token(); ?>">
<input type = "hidden" name = "id" value = "57444bfeb22b">
<button type="submit" class="btn btn-Success" name="btn" value="start">啟動</button>
<button type="submit" class="btn btn-Danger" name="btn" value="stop">停止</button>
<button type="submit" class="btn btn-Primary" name="btn" value="restart">重啟</button>
</form>
</td>
</tr>
</tbody>
</table>
<!-- </form> -->
<p>Note that we start the search in tbody, to prevent filtering the table headers.</p>
<script>
$(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>
\ No newline at end of file
@extends('layouts.template') @extends('layouts.template')
@section('header') @section('header1')
<link href="https://cdnjs.cloudflare.com/ajax/libs/video.js/6.6.2/video-js.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/video.js/6.6.2/video.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/video.js/6.6.2/ie8/videojs-ie8.min.js"></script>
<!-- videojs-flash -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-flash/2.1.0/videojs-flash.min.js"></script>
<script>
videojs.options.flash.swf = "https://cdnjs.cloudflare.com/ajax/libs/video.js/6.6.2/video-js.swf"
</script>
<link rel="stylesheet" href="{{asset('css/templatemo-style.css')}}"> <link rel="stylesheet" href="{{asset('css/templatemo-style.css')}}">
@stop @stop
@section('content') @section('content')
...@@ -64,7 +72,7 @@ ...@@ -64,7 +72,7 @@
<div class="card-header text-center font-weight-bold"> <div class="card-header text-center font-weight-bold">
辨識結果 辨識結果
</div> </div>
<div class="card-body"> <div style="color:#000" class="card-body">
<p class = 'font-weight-bold'>車牌影像:</p> <p class = 'font-weight-bold'>車牌影像:</p>
<td> <td>
<img style="width: 70%" id="img" src=""> <img style="width: 70%" id="img" src="">
...@@ -118,7 +126,7 @@ ...@@ -118,7 +126,7 @@
var lp=data.results[0].series[0].values[0][3]; var lp=data.results[0].series[0].values[0][3];
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.53:8001/result?filename='+img; document.getElementById('img').src='http://192.168.5.103:8001/result?filename='+img;
document.getElementById("lp").innerHTML = lp; document.getElementById("lp").innerHTML = lp;
}, },
complete: function () { complete: function () {
...@@ -135,7 +143,7 @@ ...@@ -135,7 +143,7 @@
var lp=data.results[0].series[0].values[0][3]; var lp=data.results[0].series[0].values[0][3];
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.53:8001/result?filename='+img; document.getElementById('img').src =' http://192.168.5.103:8001/result?filename='+img;
document.getElementById("lp").innerHTML = lp; document.getElementById("lp").innerHTML = lp;
}, },
complete: function () { complete: function () {
...@@ -160,7 +168,7 @@ ...@@ -160,7 +168,7 @@
}; };
var startdemo=function(){ var startdemo=function(){
$.ajax({ $.ajax({
url:'http://192.168.5.53:8001/demo', url:'http://192.168.5.103:8001/demo',
success:function(){ success:function(){
}, },
complete: function () { complete: function () {
......
@extends('video_replay.layout.default') @extends('layouts.template')
@section('header')
<script type="text/javascript" src="{{asset('bower_components/moment/moment.js')}}"></script>
<script type="text/javascript" src="{{asset('bower_components/moment/locale/zh-tw.js')}}"></script>
<link rel="stylesheet" href="{{asset('css/video_replay.css')}}">
@stop
@section('content') @section('content')
@include('video_replay.layout.menubtn') @include('video_replay.layout.menubtn')
<div class="collapse" id="collapseExample" style="margin: 5%"> <div class="collapse" id="collapseExample" style="margin: 5%">
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<form id="send" action="http://60.249.6.104:10300/realtime/play" method="POST" onsubmit="return false"> <form id="send" action="http://60.249.6.104:10300/realtime/play" method="POST" onsubmit="return false">
{{ csrf_field() }} {{ csrf_field() }}
<div class="row"> <div style="color:#000" class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="bg-light border border-primary"> <div class="bg-light border border-primary">
<div style="text-align: center" class="bg-primary"><h3>選擇多台攝影機</h3></div> <div style="text-align: center" class="bg-primary"><h3>選擇多台攝影機</h3></div>
......
...@@ -109,6 +109,7 @@ ...@@ -109,6 +109,7 @@
for (var k in data){ for (var k in data){
str+="<option>"+data[k]['camera_id']+"</option>"; str+="<option>"+data[k]['camera_id']+"</option>";
} }
str+="<option>--全選--</option>";
document.getElementById("cam_ids").innerHTML = str; document.getElementById("cam_ids").innerHTML = str;
}, },
error: function (data) { error: function (data) {
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
@endforeach @endforeach
</ul> </ul>
</div> </div>
<div class="dropdown col-xs-6 col-md-3"style='margin:1%;display:inline;'> <div style="color:#000" class="dropdown col-xs-6 col-md-3"style='margin:1%;display:inline;'>
<button class="btn-lg btn btn-outline-warning dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <button class="btn-lg btn btn-outline-warning dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span style="color:navajowhite" id="seleted">選擇攝影機</span> <span style="color:navajowhite" id="seleted">選擇攝影機</span>
<span class="caret"></span> <span class="caret"></span>
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</div> </div>
</div> </div>
<div class="row" style="margin: 5%"> <div style="color:#000" class="row" style="margin: 5%">
<div class="col-md-6"> <div class="col-md-6">
<form id="multiSelet" name="multiSelet" onsubmit="return false"> <form id="multiSelet" name="multiSelet" onsubmit="return false">
<div class="bg-light border border-primary"> <div class="bg-light border border-primary">
......
...@@ -16,6 +16,7 @@ Route::get('/','PageController@page')->name('/'); ...@@ -16,6 +16,7 @@ Route::get('/','PageController@page')->name('/');
Route::get('page','PageController@page'); Route::get('page','PageController@page');
Route::get('car_sys','PageController@car_sys'); Route::get('car_sys','PageController@car_sys');
Route::get('video_replay','PageController@video_replay'); Route::get('video_replay','PageController@video_replay');
Route::get('new','PageController@new');
Route::get('smart_parking','Parking\IndexController@index'); Route::get('smart_parking','Parking\IndexController@index');
// Route::get('HRM','PageController@HRM'); // Route::get('HRM','PageController@HRM');
Route::post('reg','ProcessController@reg')->name('reg'); ; Route::post('reg','ProcessController@reg')->name('reg'); ;
...@@ -81,4 +82,7 @@ Route::group(['prefix'=>'HRM'],function (){ ...@@ -81,4 +82,7 @@ Route::group(['prefix'=>'HRM'],function (){
Route::get('/','PageController@HRM'); Route::get('/','PageController@HRM');
Route::get('human_management','PageController@HRM'); Route::get('human_management','PageController@HRM');
Route::get('HRM','PageController@HRM'); Route::get('HRM','PageController@HRM');
}); });
\ No newline at end of file
Route::get('service','DockerController@init');
Route::post('api','DockerController@test')->name('api');
\ No newline at end of file
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