diff --git a/controllers/EdittrackController.php b/controllers/EdittrackController.php index 7912de3..5a779fe 100644 --- a/controllers/EdittrackController.php +++ b/controllers/EdittrackController.php @@ -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); + } } \ No newline at end of file diff --git a/views/tracks/edit.php b/views/tracks/edit.php index d0ba701..34672f4 100644 --- a/views/tracks/edit.php +++ b/views/tracks/edit.php @@ -1,3 +1,6 @@ + Выйти из редактора @@ -39,16 +42,20 @@
-
+
-
- +
+ + + + +
- - +
+
@@ -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++) { + $('
' + data[i].id + ' - ' + data[i].lat + ' / '+ data[i].lng+'
').appendTo('#trackpointsList'+id); + } + } + }, + error: function (data) { + console.log(data); + } + }); + }