ADD редактирование фрагментов трека - имя и описание
This commit is contained in:
parent
8125659f83
commit
c7a52b19d1
|
|
@ -21,6 +21,6 @@ class Geo
|
||||||
|
|
||||||
static function formatedDistance($distance)
|
static function formatedDistance($distance)
|
||||||
{
|
{
|
||||||
return $distance > 1000 ? round($distance/1000, 2).'km' : round($distance).'m';
|
return $distance > 1000 ? round($distance/1000, 2).'км' : round($distance).'м';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,29 @@ class EdittrackController extends Controller
|
||||||
$trip->name = trim($_POST['name']);
|
$trip->name = trim($_POST['name']);
|
||||||
$trip->description = trim($_POST['description']);
|
$trip->description = trim($_POST['description']);
|
||||||
$trip->status = ($_POST['isPublic'] == 'true') ? Trips::STATUS_PUBLIC : Trips::STATUS_PRIVATE;
|
$trip->status = ($_POST['isPublic'] == 'true') ? Trips::STATUS_PUBLIC : Trips::STATUS_PRIVATE;
|
||||||
|
$trip->json = '';
|
||||||
|
$trip->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
function actionTrack()
|
||||||
|
{
|
||||||
|
$id = intval(App::getParam('id'));
|
||||||
|
|
||||||
|
$track = Tracks::model()->getByPK($id);
|
||||||
|
if (empty($_POST['name']) || $track->isEmpty()) {
|
||||||
|
App::error404();
|
||||||
|
}
|
||||||
|
|
||||||
|
$trip = Trips::model()->getByPK($track->tripId);
|
||||||
|
if ($trip->isEmpty() || $trip->owner != App::$user->id) {
|
||||||
|
App::error404();
|
||||||
|
}
|
||||||
|
|
||||||
|
$track->name = trim($_POST['name']);
|
||||||
|
$track->description = trim($_POST['description']);
|
||||||
|
$track->save();
|
||||||
|
|
||||||
|
$trip->json = '';
|
||||||
$trip->save();
|
$trip->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -44,6 +44,7 @@ class TracksController extends Controller
|
||||||
|
|
||||||
self::render('/tracks/edit.php', array(
|
self::render('/tracks/edit.php', array(
|
||||||
'trip' => $trip,
|
'trip' => $trip,
|
||||||
|
'tracks' => Tracks::model()->getAll(array('where' => '`tripId` = ' . $trip->id)),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,4 +14,8 @@ class Tracks extends Model
|
||||||
return new self();
|
return new self();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function distance()
|
||||||
|
{
|
||||||
|
return Geo::formatedDistance($this->distance);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@
|
||||||
<span class="glyphicon glyphicon-home" aria-hidden="true"></span>
|
<span class="glyphicon glyphicon-home" aria-hidden="true"></span>
|
||||||
Выйти из редактора
|
Выйти из редактора
|
||||||
</a>
|
</a>
|
||||||
<h3>Редактор треков</h3>
|
<a href="/?track=<?= $trip->id ?>" class="btn btn-success pull-right"><span class="glyphicon glyphicon-globe" aria-hidden="true"></span></a>
|
||||||
|
<h3 onclick="$('#tripBlock').toggle(100)" style="cursor: pointer;">Свойства трека</h3>
|
||||||
<form onfocusout="saveChangesTrip()">
|
<form onfocusout="saveChangesTrip()" id="tripBlock">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="tripName">Название трека</label>
|
<label for="tripName">Название трека</label>
|
||||||
<input type="text" class="form-control" id="tripName" placeholder="Великолепное путешествие <?= date('Y') ?>" value="<?= $trip->name ?>">
|
<input type="text" class="form-control" id="tripName" placeholder="Великолепное путешествие <?= date('Y') ?>" value="<?= $trip->name ?>">
|
||||||
|
|
@ -25,8 +25,34 @@
|
||||||
|
|
||||||
<span id="tripSavedOK" style="color: #999; display: none;">изменения сохранены...</span>
|
<span id="tripSavedOK" style="color: #999; display: none;">изменения сохранены...</span>
|
||||||
<span id="tripSavedError" style="color: #900; display: none;">при сохранении возникла ошибка!</span>
|
<span id="tripSavedError" style="color: #900; display: none;">при сохранении возникла ошибка!</span>
|
||||||
|
<br/>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<?php if ($tracks): ?>
|
||||||
|
<h3 onclick="$('#tracksBlock').toggle()" style="cursor: pointer;">Фрагменты трека</h3>
|
||||||
|
<div id="tracksBlock" style="">
|
||||||
|
<!--<hr/>-->
|
||||||
|
<?php foreach ($tracks as $track): ?>
|
||||||
|
<form onfocusout="saveChangesTrack(<?= $track->id ?>)" class="form-horizontal">
|
||||||
|
<div class="form-group">
|
||||||
|
<div style="font-size: 20px" class="col-sm-1"><?= $track->distance() ?></div>
|
||||||
|
<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">
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<!--<hr/>-->
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<span id="trackSavedOK" style="color: #999; display: none;">изменения сохранены...</span>
|
||||||
|
<span id="trackSavedError" style="color: #900; display: none;">при сохранении возникла ошибка!</span>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<script lang="javascript">
|
<script lang="javascript">
|
||||||
function saveChangesTrip()
|
function saveChangesTrip()
|
||||||
|
|
@ -53,4 +79,28 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function saveChangesTrack(id)
|
||||||
|
{
|
||||||
|
$('#trackSavedOK').hide();
|
||||||
|
$('#trackSavedError').hide();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "/edittrack/track/id/" + id,
|
||||||
|
method: "POST",
|
||||||
|
data: {
|
||||||
|
name: $('#trackName' + id).val(),
|
||||||
|
description: $('#trackDescription' + id).val()
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
$('#trackSavedOK').show();
|
||||||
|
setTimeout(function () {
|
||||||
|
$('#trackSavedOK').fadeOut(300);
|
||||||
|
}, 2000);
|
||||||
|
},
|
||||||
|
error: function (data) {
|
||||||
|
$('#trackSavedError').show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue