mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Fix location store for tag.
This commit is contained in:
parent
e1577a4a76
commit
c55ef9c77b
@ -355,20 +355,21 @@ class Request extends FormRequest
|
|||||||
*/
|
*/
|
||||||
protected function appendLocationData(array $data, ?string $prefix): array
|
protected function appendLocationData(array $data, ?string $prefix): array
|
||||||
{
|
{
|
||||||
Log::debug(sprintf('Now in appendLocationData(%s)', $prefix), $data);
|
Log::debug(sprintf('Now in appendLocationData("%s")', $prefix), $data);
|
||||||
$data['store_location'] = false;
|
$data['store_location'] = false;
|
||||||
$data['update_location'] = false;
|
$data['update_location'] = false;
|
||||||
$data['longitude'] = null;
|
$data['longitude'] = null;
|
||||||
$data['latitude'] = null;
|
$data['latitude'] = null;
|
||||||
$data['zoom_level'] = null;
|
$data['zoom_level'] = null;
|
||||||
|
|
||||||
|
|
||||||
$longitudeKey = null === $prefix ? 'longitude' : sprintf('%s_longitude', $prefix);
|
$longitudeKey = null === $prefix ? 'longitude' : sprintf('%s_longitude', $prefix);
|
||||||
$latitudeKey = null === $prefix ? 'latitude' : sprintf('%s_latitude', $prefix);
|
$latitudeKey = null === $prefix ? 'latitude' : sprintf('%s_latitude', $prefix);
|
||||||
$zoomLevelKey = null === $prefix ? 'zoom_level' : sprintf('%s_zoom_level', $prefix);
|
$zoomLevelKey = null === $prefix ? 'zoom_level' : sprintf('%s_zoom_level', $prefix);
|
||||||
|
|
||||||
// for a POST (store, all fields must be present and accounted for:
|
// for a POST (store, all fields must be present and accounted for:
|
||||||
if (
|
if (
|
||||||
('POST' === $this->method() && ($this->routeIs('accounts.store') || $this->routeIs('api.v1.accounts.store')))
|
('POST' === $this->method() && $this->routeIs('*.store'))
|
||||||
&& ($this->has($longitudeKey) && $this->has($latitudeKey) && $this->has($zoomLevelKey))
|
&& ($this->has($longitudeKey) && $this->has($latitudeKey) && $this->has($zoomLevelKey))
|
||||||
) {
|
) {
|
||||||
Log::debug('Method is POST and all fields present.');
|
Log::debug('Method is POST and all fields present.');
|
||||||
@ -380,8 +381,8 @@ class Request extends FormRequest
|
|||||||
if (
|
if (
|
||||||
($this->has($longitudeKey) && $this->has($latitudeKey) && $this->has($zoomLevelKey))
|
($this->has($longitudeKey) && $this->has($latitudeKey) && $this->has($zoomLevelKey))
|
||||||
&& (
|
&& (
|
||||||
('PUT' === $this->method() && $this->routeIs('api.v1.accounts.update'))
|
('PUT' === $this->method() && $this->routeIs('*.update'))
|
||||||
|| ('POST' === $this->method() && $this->routeIs('accounts.update'))
|
|| ('POST' === $this->method() && $this->routeIs('*.update'))
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
Log::debug('Method is PUT and all fields present.');
|
Log::debug('Method is PUT and all fields present.');
|
||||||
|
@ -48,26 +48,13 @@ class TagFormRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function collectTagData(): array
|
public function collectTagData(): array
|
||||||
{
|
{
|
||||||
$latitude = null;
|
$data = [
|
||||||
$longitude = null;
|
'tag' => $this->string('tag'),
|
||||||
$zoomLevel = null;
|
'date' => $this->date('date'),
|
||||||
$hasLocation = false;
|
'description' => $this->string('description'),
|
||||||
if (true === $this->boolean('location_has_location')) {
|
|
||||||
$latitude = $this->string('location_latitude');
|
|
||||||
$longitude = $this->string('location_longitude');
|
|
||||||
$zoomLevel = $this->integer('location_zoom_level');
|
|
||||||
$hasLocation = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return [
|
|
||||||
'tag' => $this->string('tag'),
|
|
||||||
'date' => $this->date('date'),
|
|
||||||
'description' => $this->string('description'),
|
|
||||||
'latitude' => $latitude,
|
|
||||||
'longitude' => $longitude,
|
|
||||||
'zoom_level' => $zoomLevel,
|
|
||||||
'has_location' => $hasLocation,
|
|
||||||
];
|
];
|
||||||
|
return $this->appendLocationData($data, 'location');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -399,13 +399,13 @@ class TagRepository implements TagRepositoryInterface
|
|||||||
$tag->tag = $data['tag'];
|
$tag->tag = $data['tag'];
|
||||||
$tag->date = $data['date'];
|
$tag->date = $data['date'];
|
||||||
$tag->description = $data['description'];
|
$tag->description = $data['description'];
|
||||||
$tag->latitude = $data['latitude'];
|
$tag->latitude = null;
|
||||||
$tag->longitude = $data['longitude'];
|
$tag->longitude = null;
|
||||||
$tag->zoomLevel = $data['zoom_level'];
|
$tag->zoomLevel = null;
|
||||||
$tag->save();
|
$tag->save();
|
||||||
|
|
||||||
// update, delete or create location:
|
// update, delete or create location:
|
||||||
$updateLocation = $data['has_location'] ?? false;
|
$updateLocation = $data['update_location'] ?? false;
|
||||||
|
|
||||||
// location must be updated?
|
// location must be updated?
|
||||||
if (true === $updateLocation) {
|
if (true === $updateLocation) {
|
||||||
|
@ -79,20 +79,28 @@
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// set location thing:
|
// set location thing:
|
||||||
function setObjectLocation(e) {
|
function setObjectLocation(e) {
|
||||||
console.log('Set object location: lat(' + e.latlng.lat + '), long(' + e.latlng.lng + '), zoom (' + mymap.getZoom() + ')');
|
if (typeof e.latlng !== 'undefined') {
|
||||||
$('input[name="{{ latitudevar }}"]').val(e.latlng.lat);
|
console.log('Set object location: lat(' + e.latlng.lat + '), long(' + e.latlng.lng + '), zoom (' + mymap.getZoom() + ')');
|
||||||
$('input[name="{{ longitudevar }}"]').val(e.latlng.lng);
|
$('input[name="{{ latitudevar }}"]').val(e.latlng.lat);
|
||||||
|
$('input[name="{{ longitudevar }}"]').val(e.latlng.lng);
|
||||||
|
}
|
||||||
|
if (typeof e.latlng === 'undefined') {
|
||||||
|
console.log('Set object zoom level to ' + mymap.getZoom());
|
||||||
|
}
|
||||||
$('input[name="{{ zoomlevelvar }}"]').val(mymap.getZoom());
|
$('input[name="{{ zoomlevelvar }}"]').val(mymap.getZoom());
|
||||||
$('input[name="{{ haslocationvar }}"]').val('true');
|
|
||||||
|
|
||||||
// remove existing marker:
|
// remove existing marker:
|
||||||
if (typeof marker !== 'undefined') {
|
if (typeof marker !== 'undefined' && typeof e.latlng !== 'undefined') {
|
||||||
marker.remove();
|
marker.remove();
|
||||||
}
|
}
|
||||||
// new marker
|
if (typeof e.latlng !== 'undefined') {
|
||||||
marker = L.marker({lat: e.latlng.lat, lng: e.latlng.lng}).addTo(mymap);
|
// new marker
|
||||||
|
marker = L.marker({lat: e.latlng.lat, lng: e.latlng.lng}).addTo(mymap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -110,6 +118,7 @@
|
|||||||
}).addTo(mymap);
|
}).addTo(mymap);
|
||||||
|
|
||||||
mymap.on('contextmenu', setObjectLocation);
|
mymap.on('contextmenu', setObjectLocation);
|
||||||
|
mymap.on('zoomend', setObjectLocation);
|
||||||
|
|
||||||
// add marker
|
// add marker
|
||||||
if (typeof locations.{{ name }}.has_location !== 'undefined' && locations.{{ name }}.has_location === true) {
|
if (typeof locations.{{ name }}.has_location !== 'undefined' && locations.{{ name }}.has_location === true) {
|
||||||
|
Loading…
Reference in New Issue
Block a user