ADD слияние фрагментов трека; начало работ по детализации трека до точек
This commit is contained in:
parent
a543d89a40
commit
0d9ae845b3
|
|
@ -84,6 +84,54 @@ class EdittrackController extends Controller
|
||||||
App::redirect('/tracks/edit/id/'.$trip->id);
|
App::redirect('/tracks/edit/id/'.$trip->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function actionMergetrack()
|
||||||
|
{
|
||||||
|
$id = intval(App::getParam('id'));
|
||||||
|
|
||||||
|
$track = Tracks::model()->getByPK($id);
|
||||||
|
if ($track->isEmpty()) {
|
||||||
|
App::error404();
|
||||||
|
}
|
||||||
|
|
||||||
|
$trip = Trips::model()->getByPK($track->tripId);
|
||||||
|
if ($trip->isEmpty() || $trip->owner != App::$user->id) {
|
||||||
|
App::error404();
|
||||||
|
}
|
||||||
|
|
||||||
|
$takeIt = $mergetId = $merget = FALSE;
|
||||||
|
$tracks = Tracks::model()->getAll(array('where'=>'`tripId` = ?'), array($trip->id));
|
||||||
|
foreach ($tracks as $key => $value) {
|
||||||
|
if ($takeIt) {
|
||||||
|
$mergetId = $key;
|
||||||
|
$merget = $value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($key == $id) {
|
||||||
|
$takeIt = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$mergetId) {
|
||||||
|
App::error404();
|
||||||
|
}
|
||||||
|
|
||||||
|
$track->name = $track->name . '; ' . $merget->name;
|
||||||
|
$track->distance = $track->distance + $merget->distance;
|
||||||
|
if ($merget->description) {
|
||||||
|
$track->description = $track->description . '; ' . $merget->description;
|
||||||
|
}
|
||||||
|
$track->save();
|
||||||
|
|
||||||
|
App::DB()->query("UPDATE `trackPoints` SET `trackId` = $id WHERE `trackId` = $mergetId");
|
||||||
|
$track->delete($mergetId);
|
||||||
|
|
||||||
|
$trip->json = '';
|
||||||
|
$trip->save();
|
||||||
|
|
||||||
|
App::redirect('/tracks/edit/id/'.$trip->id);
|
||||||
|
}
|
||||||
|
|
||||||
function actionWaypoint()
|
function actionWaypoint()
|
||||||
{
|
{
|
||||||
$id = intval(App::getParam('id'));
|
$id = intval(App::getParam('id'));
|
||||||
|
|
@ -124,4 +172,23 @@ class EdittrackController extends Controller
|
||||||
|
|
||||||
App::redirect('/tracks/edit/id/'.$trip->id);
|
App::redirect('/tracks/edit/id/'.$trip->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function actionGettrackdetails()
|
||||||
|
{
|
||||||
|
$id = intval(App::getParam('id'));
|
||||||
|
|
||||||
|
$track = Tracks::model()->getByPK($id);
|
||||||
|
if ($track->isEmpty()) {
|
||||||
|
App::error404();
|
||||||
|
}
|
||||||
|
|
||||||
|
$trip = Trips::model()->getByPK($track->tripId);
|
||||||
|
if ($trip->isEmpty() || $trip->owner != App::$user->id) {
|
||||||
|
App::error404();
|
||||||
|
}
|
||||||
|
|
||||||
|
$trackpoints = TrackPoints::model()->getAll(array('where' => '`trackId` = '.$track->id, 'asArray' => TRUE, 'noKeys' => TRUE,));
|
||||||
|
|
||||||
|
self::renderPartial('json.php', $trackpoints);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
|
<?php
|
||||||
|
$tracksCounter = 1;
|
||||||
|
?>
|
||||||
<a href="/tracks/" class="btn btn-success pull-right">
|
<a href="/tracks/" class="btn btn-success pull-right">
|
||||||
<span class="glyphicon glyphicon-home" aria-hidden="true"></span>
|
<span class="glyphicon glyphicon-home" aria-hidden="true"></span>
|
||||||
Выйти из редактора
|
Выйти из редактора
|
||||||
|
|
@ -39,16 +42,20 @@
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="text" class="form-control" id="trackName<?= $track->id ?>" placeholder="День №__" value="<?= $track->name ?>">
|
<input type="text" class="form-control" id="trackName<?= $track->id ?>" placeholder="День №__" value="<?= $track->name ?>">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-7">
|
||||||
<input type="text" class="form-control" id="trackDescription<?= $track->id ?>" placeholder="В этот день..." value="<?= $track->description ?>">
|
<input type="text" class="form-control" id="trackDescription<?= $track->id ?>" placeholder="В этот день..." value="<?= $track->description ?>">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-1">
|
<div class="col-sm-2">
|
||||||
<a href="/edittrack/deletetrack/id/<?= $track->id ?>" class="btn btn-danger" onclick="return confirm('Вы уверены, что хотите удалить фрагмент трека?')"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
<a href="/edittrack/deletetrack/id/<?= $track->id ?>" class="btn btn-danger" onclick="return confirm('Вы уверены, что хотите удалить фрагмент трека?')" title="Удалить фрагмент трека"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
||||||
|
<a href="#" class="btn btn-default" onclick="loadTrackDetails(<?= $track->id ?>)" title="Просмотреть точки"><span class="glyphicon glyphicon-list" aria-hidden="true"></span></a>
|
||||||
|
<?php if ($tracksCounter < count($tracks)):?>
|
||||||
|
<a href="/edittrack/mergetrack/id/<?= $track->id ?>" class="btn btn-default" onclick="return confirm('Вы уверены, что хотите совместить фрагмент трека с идущим ниже?')" title="Слить с идущим ниже"><span class="glyphicon glyphicon-save" aria-hidden="true"></span></a>
|
||||||
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<!--<hr/>-->
|
<div id="trackpointsList<?= $track->id ?>"></div>
|
||||||
<?php endforeach; ?>
|
<?php $tracksCounter++; endforeach; ?>
|
||||||
<span id="trackSavedOK" style="color: #999; display: none;">изменения сохранены...</span>
|
<span id="trackSavedOK" style="color: #999; display: none;">изменения сохранены...</span>
|
||||||
<span id="trackSavedError" style="color: #900; display: none;">при сохранении возникла ошибка!</span>
|
<span id="trackSavedError" style="color: #900; display: none;">при сохранении возникла ошибка!</span>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
@ -153,4 +160,23 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loadTrackDetails(id)
|
||||||
|
{
|
||||||
|
$.ajax({
|
||||||
|
url: "/edittrack/gettrackdetails/id/" + id,
|
||||||
|
method: "POST",
|
||||||
|
success: function (data) {
|
||||||
|
$('#trackpointsList'+id).html('');
|
||||||
|
if (typeof (data) != 'undefined') {
|
||||||
|
for (var i = 0; i < data.length; i++) {
|
||||||
|
$('<div>' + data[i].id + ' - ' + data[i].lat + ' / '+ data[i].lng+'</div>').appendTo('#trackpointsList'+id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
console.log(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue