From 28aef8d32865d7627399f1a238cdfbd118a62ca9 Mon Sep 17 00:00:00 2001 From: Kevin Midboe Date: Mon, 6 Sep 2021 15:50:56 +0200 Subject: [PATCH] Testing new navigation route --- .../js/components/fields/NavigationRoute.vue | 62 +++++++++++++++++++ resources/js/field.js | 26 +++++--- src/NavigationRoute.php | 40 ++++++++++++ 3 files changed, 119 insertions(+), 9 deletions(-) create mode 100644 resources/js/components/fields/NavigationRoute.vue create mode 100644 src/NavigationRoute.php diff --git a/resources/js/components/fields/NavigationRoute.vue b/resources/js/components/fields/NavigationRoute.vue new file mode 100644 index 0000000..5c9f2a6 --- /dev/null +++ b/resources/js/components/fields/NavigationRoute.vue @@ -0,0 +1,62 @@ + + + diff --git a/resources/js/field.js b/resources/js/field.js index 8d7ebc3..0fd568e 100755 --- a/resources/js/field.js +++ b/resources/js/field.js @@ -1,13 +1,21 @@ Nova.booting((Vue, router) => { - Vue.component('index-nova-map-fields', require('./components/IndexField')); - Vue.component('detail-nova-map-fields', require('./components/DetailField')); - Vue.component('form-nova-map-fields', require('./components/FormField')); + Vue.component("index-nova-map-fields", require("./components/IndexField")); + Vue.component( + "detail-nova-map-fields", + require("./components/DetailField") + ); + Vue.component("form-nova-map-fields", require("./components/FormField")); - Vue.component('field-map', require('./components/FieldMap')); - Vue.component('field-marker', require('./components/fields/Marker')); - Vue.component('field-polyline', require('./components/fields/Polyline')); - Vue.component('field-polygon', require('./components/fields/Polygon')); + Vue.component("field-map", require("./components/FieldMap")); + Vue.component("field-marker", require("./components/fields/Marker")); + Vue.component("field-polyline", require("./components/fields/Polyline")); + Vue.component("field-polygon", require("./components/fields/Polygon")); + Vue.component( + "field-navigation-route", + require("./components/fields/NavigationRoute") + ); // Config leaflet images to load images from CDN - L.Icon.Default.imagePath = 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.4/images/'; -}) + L.Icon.Default.imagePath = + "https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.3.4/images/"; +}); diff --git a/src/NavigationRoute.php b/src/NavigationRoute.php new file mode 100644 index 0000000..e981a0b --- /dev/null +++ b/src/NavigationRoute.php @@ -0,0 +1,40 @@ +help('Click on the map to create a new point. Drag a marker to change the point. When the map is selected, you can press [backspace] to remove markers.'); + + parent::__construct($name, $attribute = null, $resolveCallback); + } + + /** + * Resolve the attribute before sending to frontend. + * + * @param mixed $resource + * @param mixed|null $attribute + * + * @return array + */ + public function resolveAttribute($resource, $attribute = null) + { + $value = $resource->{$attribute}; + + if (is_array($value)) { + return $value; + } + + return json_decode($value); + } +}