View camera archive list. Stub for archive record page
This commit is contained in:
@@ -9,7 +9,14 @@ class TestController extends Controller
|
||||
{
|
||||
public function actionIndex()
|
||||
{
|
||||
$client = new \app\components\ApiClient(Yii::$app->params['zmUrl'].'/zm/api');
|
||||
$client = new \app\components\ApiClient(Yii::$app->params['zmUrl'].'zm/api');
|
||||
print_r($client->getVersion());
|
||||
}
|
||||
|
||||
public function actionEvents($id)
|
||||
{
|
||||
$client = new \app\components\ApiClient(Yii::$app->params['zmUrl'].'zm/api');
|
||||
//print_r($client->getAllEvents($id));
|
||||
print_r($client->getEvents($id, date("Y-m-d H:i:s", strtotime('-10 days'))));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,6 @@ class ApiClient
|
||||
{
|
||||
$this->http_client->setOption(CURLOPT_POSTFIELDS, $json);
|
||||
}
|
||||
|
||||
$result = $this->http_client->$method($url);
|
||||
if ($this->http_client->responseCode !== 200)
|
||||
{
|
||||
@@ -44,4 +43,15 @@ class ApiClient
|
||||
return $this->sendRequest('host/getVersion.json');
|
||||
}
|
||||
|
||||
public function getAllEvents($id)
|
||||
{
|
||||
return $this->sendRequest('events/index/MonitorId:'.$id.'.json');
|
||||
}
|
||||
|
||||
public function getEvents($id, $start_time, $page = 1)
|
||||
{
|
||||
return $this->sendRequest('events/index/MonitorId:'.$id.'/'.
|
||||
urlencode('StartTime >=:'.$start_time).'.json?page='.$page);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -41,9 +41,43 @@ class CameraController extends Controller
|
||||
{
|
||||
throw new NotFoundHttpException();
|
||||
}
|
||||
$archive = $this->getArchive($cms[$id]);
|
||||
return $this->render('view',
|
||||
[
|
||||
'id' => $id
|
||||
'id' => $id,
|
||||
'archive' => array_reverse($archive),
|
||||
]);
|
||||
}
|
||||
|
||||
private function getArchive($zm_id) : array
|
||||
{
|
||||
$client = new \app\components\ApiClient(Yii::$app->params['zmUrl'].'zm/api');
|
||||
$json = $client->getEvents($zm_id, date("Y-m-d H:i:s", time() - 7 * 24 * 3600));
|
||||
$r = json_decode($json, true);
|
||||
$result = [];
|
||||
foreach ($r['events'] as $e)
|
||||
{
|
||||
$result[] = new \app\models\zm\Event($e['Event']);
|
||||
}
|
||||
$pages_count = $r['pagination']['pageCount'];
|
||||
for ($i = 2; $i <= $pages_count; $i++)
|
||||
{
|
||||
$json = $client->getEvents($zm_id, date("Y-m-d H:i:s", time() - 7 * 24 * 3600), $i);
|
||||
$r = json_decode($json, true);
|
||||
foreach ($r['events'] as $e)
|
||||
{
|
||||
$result[] = new \app\models\zm\Event($e['Event']);
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function actionViewArchive($event_id)
|
||||
{
|
||||
return $this->render('view_archive',
|
||||
[
|
||||
'id' => $event_id,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace app\models\zm;
|
||||
|
||||
class Event
|
||||
{
|
||||
public $id;
|
||||
public $monitor_id;
|
||||
public $start_time;
|
||||
public $end_time;
|
||||
|
||||
public function __construct($json)
|
||||
{
|
||||
$this->id = $json['Id'];
|
||||
$this->monitor_id = $json['MonitorId'];
|
||||
$this->start_time = $json['StartDateTime'];
|
||||
$this->end_time = $json['EndDateTime'];
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
/** @var yii\web\View $this */
|
||||
use yii\helpers\Url;
|
||||
use yii\helpers\Html;
|
||||
|
||||
$this->title = 'Камера '.$id;
|
||||
?>
|
||||
@@ -12,7 +13,12 @@ $this->title = 'Камера '.$id;
|
||||
<img style="max-width:100%;" src='<?= Url::to(['camera/stream', 'id' => $id]); ?>'>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
Архив записей:
|
||||
Архив записей:<br/>
|
||||
<ul>
|
||||
<?php foreach ($archive as $e): ?>
|
||||
<li><?= Html::a($e->start_time." - ".$e->end_time, ['camera/view-archive', 'event_id' => $e->id]); ?></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
/** @var yii\web\View $this */
|
||||
use yii\helpers\Url;
|
||||
|
||||
$this->title = 'Архив, запись #'.$id;
|
||||
?>
|
||||
<div class="site-index">
|
||||
<div class="body-content">
|
||||
<div class="row">
|
||||
TODO!
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user