From 97482ffc15ff682c335c5d540105c7d334ede364 Mon Sep 17 00:00:00 2001 From: Krivchikov Dmitry Date: Mon, 30 May 2016 00:01:01 +0300 Subject: [PATCH] =?UTF-8?q?ADD=20=D1=80=D0=B5=D0=B4=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=83?= =?UTF-8?q?=D1=82=D0=B5=D0=B2=D1=8B=D1=85=20=D1=82=D0=BE=D1=87=D0=B5=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/EdittrackController.php | 63 +++++++++++++++++++++++++++++ controllers/JsonController.php | 16 ++++---- controllers/TracksController.php | 1 + models/Trips.php | 2 +- views/indexTemplate.php | 2 +- views/tracks/edit.php | 54 ++++++++++++++++++++++++- 6 files changed, 126 insertions(+), 12 deletions(-) diff --git a/controllers/EdittrackController.php b/controllers/EdittrackController.php index 1a21b0f..145af46 100644 --- a/controllers/EdittrackController.php +++ b/controllers/EdittrackController.php @@ -47,4 +47,67 @@ class EdittrackController extends Controller $trip->json = ''; $trip->save(); } + + function actionDeletetrack() + { + $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(); + } + + $track->delete($id); + + $trip->json = ''; + $trip->save(); + + App::redirect('/tracks/edit/id/'.$trip->id); + } + + function actionWaypoint() + { + $id = intval(App::getParam('id')); + + $waypoint = WayPoints::model()->getByPK($id); + if (empty($_POST['name']) || $waypoint->isEmpty()) { + App::error404(); + } + + $trip = Trips::model()->getByPK($waypoint->tripId); + if ($trip->isEmpty() || $trip->owner != App::$user->id) { + App::error404(); + } + + $waypoint->name = trim($_POST['name']); + $waypoint->description = trim($_POST['description']); + $waypoint->save(); + } + + function actionDeletewaypoint() + { + $id = intval(App::getParam('id')); + + $waypoint = WayPoints::model()->getByPK($id); + if ($waypoint->isEmpty()) { + App::error404(); + } + + $trip = Trips::model()->getByPK($waypoint->tripId); + if ($trip->isEmpty() || $trip->owner != App::$user->id) { + App::error404(); + } + + $waypoint->delete($id); + + $trip->json = ''; + $trip->save(); + + App::redirect('/tracks/edit/id/'.$trip->id); + } } \ No newline at end of file diff --git a/controllers/JsonController.php b/controllers/JsonController.php index 7fb47ca..4519f28 100644 --- a/controllers/JsonController.php +++ b/controllers/JsonController.php @@ -718,17 +718,17 @@ class JsonController extends Controller $distance1 = Geo::distance($prevPoint, array('lat' => $trackPoint->lat, 'lng' => $trackPoint->lng)); - if ($distance1 < 100) { + if ($distance1 < 30) { continue; } - $distance2 = Geo::distance($nextPoint, array('lat' => $trackPoint->lat, 'lng' => $trackPoint->lng)); - $distance3 = Geo::distance($prevPoint, $nextPoint); - - - if (($distance3 / ($distance1+$distance2)) > 0.982) { - continue; - } +// $distance2 = Geo::distance($nextPoint, array('lat' => $trackPoint->lat, 'lng' => $trackPoint->lng)); +// $distance3 = Geo::distance($prevPoint, $nextPoint); +// +// +// if (($distance3 / ($distance1+$distance2)) > 0.982) { +// continue; +// } } $prevPoint = $trackPoints[$index]; diff --git a/controllers/TracksController.php b/controllers/TracksController.php index 96bc0c9..f65b33f 100644 --- a/controllers/TracksController.php +++ b/controllers/TracksController.php @@ -45,6 +45,7 @@ class TracksController extends Controller self::render('/tracks/edit.php', array( 'trip' => $trip, 'tracks' => Tracks::model()->getAll(array('where' => '`tripId` = ' . $trip->id)), + 'waypoints' => WayPoints::model()->getAll(array('where' => '`tripId` = ' . $trip->id)), )); } diff --git a/models/Trips.php b/models/Trips.php index d06ff87..ae2b4ae 100644 --- a/models/Trips.php +++ b/models/Trips.php @@ -18,7 +18,7 @@ class Trips extends Model return new self(); } - function getDistance() + function distance() { return Geo::formatedDistance($this->distance); } diff --git a/views/indexTemplate.php b/views/indexTemplate.php index d26ac4c..09fc774 100644 --- a/views/indexTemplate.php +++ b/views/indexTemplate.php @@ -116,7 +116,7 @@ if (App::$user) {
name ?> - getDistance(); ?> + distance(); ?> status == Trips::STATUS_PUBLIC):?> [клик правой кнопкой -> копировать адрес]"> diff --git a/views/tracks/edit.php b/views/tracks/edit.php index 61b1ccf..d592fc1 100644 --- a/views/tracks/edit.php +++ b/views/tracks/edit.php @@ -29,8 +29,8 @@ -

Фрагменты трека

-
+

Фрагменты трека ()

+ + + + +

Путевые точки ()

+
@@ -103,4 +129,28 @@ } }); } + + function saveChangesWaypoint(id) + { + $('#waypointSavedOK').hide(); + $('#waypointSavedError').hide(); + + $.ajax({ + url: "/edittrack/waypoint/id/" + id, + method: "POST", + data: { + name: $('#waypointName' + id).val(), + description: $('#waypointDescription' + id).val() + }, + success: function (data) { + $('#waypointSavedOK').show(); + setTimeout(function () { + $('#waypointSavedOK').fadeOut(300); + }, 2000); + }, + error: function (data) { + $('#waypointSavedError').show(); + } + }); + }