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);
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
$id = intval(App::getParam('id'));
|
||||
|
|
@ -124,4 +172,23 @@ class EdittrackController extends Controller
|
|||
|
||||
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">
|
||||
<span class="glyphicon glyphicon-home" aria-hidden="true"></span>
|
||||
Выйти из редактора
|
||||
|
|
@ -39,16 +42,20 @@
|
|||
<div class="col-sm-2">
|
||||
<input type="text" class="form-control" id="trackName<?= $track->id ?>" placeholder="День №__" value="<?= $track->name ?>">
|
||||
</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 ?>">
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
<a href="/edittrack/deletetrack/id/<?= $track->id ?>" class="btn btn-danger" onclick="return confirm('Вы уверены, что хотите удалить фрагмент трека?')"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
|
||||
<div class="col-sm-2">
|
||||
<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>
|
||||
</form>
|
||||
<!--<hr/>-->
|
||||
<?php endforeach; ?>
|
||||
<div id="trackpointsList<?= $track->id ?>"></div>
|
||||
<?php $tracksCounter++; endforeach; ?>
|
||||
<span id="trackSavedOK" style="color: #999; display: none;">изменения сохранены...</span>
|
||||
<span id="trackSavedError" style="color: #900; display: none;">при сохранении возникла ошибка!</span>
|
||||
<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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue