diff --git a/examples/maps/map_editor/js/example.js b/examples/maps/map_editor/js/example.js index e4a6f93b..e9e9e10d 100644 --- a/examples/maps/map_editor/js/example.js +++ b/examples/maps/map_editor/js/example.js @@ -5,12 +5,43 @@ In this example, we use Ox.MapEditor 'use strict'; Ox.load(['UI', 'Geo'], function() { + var $storage = Ox.localStorage("map_editor") + var places = $storage('places') || [] var $map = Ox.MapEditor({ addPlace: function(place, callback) { console.log("addPlace", place) + place.id = Ox.encodeBase26(Ox.uid()) + places.push(place) + $storage("places", places) + $map.options({ + places: Ox.api(places, { + geo: true, + sort: '-area' + }) + }) + setTimeout(() => { + callback({ + status: { + code: 200 + }, + data: place + }) + }, 200) }, editPlace: function(place, callback) { - console.log("editPlace", place) + places.forEach(p => { + if (p.id == place.id) { + Object.assign(p, place); + place = p + } + }) + $storage("places", places) + callback({ + status: { + code: 200 + }, + data: place + }) }, getMatches: function(names, callback) { console.log("getMatches", names) @@ -20,9 +51,28 @@ Ox.load(['UI', 'Geo'], function() { height: 800, mode: 'add', // 'define', names: null, - places: [], + places: Ox.api(places, { + geo: true, + sort: '-area' + }), removePlace: function(place, callback) { - console.log("removePlace", place) + console.log("removePlace", place.id, places) + places = places.filter(p => { return p.id != place.id }) + console.log("new places", places) + $storage("places", places) + $map.options({ + places: Ox.api(places, { + geo: true, + sort: '-area' + }) + }) + setTimeout(() => { + callback({ + status: { + code: 200 + }, + }) + }, 100) }, selected: '', showControls: false,