in annotation panel, make links to define/edit places/events work (fixes #561)
This commit is contained in:
parent
202d11177b
commit
db6f68681a
3 changed files with 57 additions and 39 deletions
|
@ -269,7 +269,6 @@ Ox.ListCalendar = function(options, self) {
|
|||
return !!event.type;
|
||||
}),
|
||||
height: self.options.height,
|
||||
selected: self.options.selected,
|
||||
showControls: self.options.showControls,
|
||||
showToolbar: true,
|
||||
showZoombar: true,
|
||||
|
@ -544,6 +543,11 @@ Ox.ListCalendar = function(options, self) {
|
|||
.$element
|
||||
);
|
||||
|
||||
// if loaded with selection, set calendar and form
|
||||
self.options.selected && self.$list.triggerEvent({
|
||||
select: {ids: [self.options.selected]}
|
||||
});
|
||||
|
||||
function addEvent() {
|
||||
Ox.Log('Calendar', 'ADD', self.$calendar.getBounds())
|
||||
var bounds = self.$calendar.getBounds(),
|
||||
|
|
|
@ -355,6 +355,15 @@ Ox.ListMap = function(options, self) {
|
|||
select: selectItem
|
||||
});
|
||||
|
||||
// if loaded with selection, set map and form
|
||||
self.options.selected && self.$list.bindEventOnce({
|
||||
load: function() {
|
||||
self.$list.triggerEvent({
|
||||
select: {ids: [self.options.selected]}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
self.$listStatusbar = Ox.Bar({
|
||||
size: 16
|
||||
});
|
||||
|
@ -369,7 +378,6 @@ Ox.ListMap = function(options, self) {
|
|||
findPlaceholder: 'Find on Map',
|
||||
height: self.options.height,
|
||||
places: self.options.places,
|
||||
selected: self.options.selected,
|
||||
//statusbar: true,
|
||||
showControls: self.options.showControls,
|
||||
showLabels: self.options.showLabels,
|
||||
|
|
|
@ -1141,47 +1141,53 @@ Ox.Map = function(options, self) {
|
|||
function selectPlace(id, zoom) {
|
||||
Ox.print('SELECT PLACE', id)
|
||||
// id can be null (deselect)
|
||||
var place,
|
||||
selected = getSelectedMarker();
|
||||
Ox.Log('Map', 'Ox.Map selectPlace()', id, selected);
|
||||
if (id != selected) {
|
||||
place = getPlaceById(selected);
|
||||
place && place.deselect();
|
||||
if (id !== null) {
|
||||
place = getPlaceById(id);
|
||||
if (place) {
|
||||
select();
|
||||
} else {
|
||||
// async && place doesn't exist yet
|
||||
self.options.places({
|
||||
keys: self.placeKeys,
|
||||
query: {
|
||||
conditions: [
|
||||
{key: 'id', value: id, operator: '=='}
|
||||
],
|
||||
operator: '&'
|
||||
}
|
||||
}, function(result) {
|
||||
if (result.data.items.length) {
|
||||
place = new Ox.MapPlace(Ox.extend({
|
||||
map: that
|
||||
}, result.data.items[0])).add();
|
||||
self.places.push(place);
|
||||
select();
|
||||
if (zoom) {
|
||||
zoomToPlace();
|
||||
} else {
|
||||
panToPlace();
|
||||
var place, selected = getSelectedMarker();
|
||||
if (!self.loaded) {
|
||||
setTimeout(function() {
|
||||
selectPlace(id, zoom)
|
||||
}, 1000);
|
||||
} else {
|
||||
Ox.Log('Map', 'Ox.Map selectPlace()', id, selected);
|
||||
if (id != selected) {
|
||||
place = getPlaceById(selected);
|
||||
place && place.deselect();
|
||||
if (id !== null) {
|
||||
place = getPlaceById(id);
|
||||
if (place) {
|
||||
select();
|
||||
} else {
|
||||
// async && place doesn't exist yet
|
||||
self.options.places({
|
||||
keys: self.placeKeys,
|
||||
query: {
|
||||
conditions: [
|
||||
{key: 'id', value: id, operator: '=='}
|
||||
],
|
||||
operator: '&'
|
||||
}
|
||||
}
|
||||
});
|
||||
}, function(result) {
|
||||
if (result.data.items.length) {
|
||||
place = new Ox.MapPlace(Ox.extend({
|
||||
map: that
|
||||
}, result.data.items[0])).add();
|
||||
self.places.push(place);
|
||||
select();
|
||||
if (zoom) {
|
||||
zoomToPlace();
|
||||
} else {
|
||||
panToPlace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
place = null;
|
||||
select();
|
||||
}
|
||||
} else {
|
||||
place = null;
|
||||
select();
|
||||
}
|
||||
}
|
||||
function select() {
|
||||
Ox.print('select...', place)
|
||||
place && place.select();
|
||||
self.options.selected = id;
|
||||
setPlaceControls(place);
|
||||
|
@ -1418,7 +1424,7 @@ Ox.Map = function(options, self) {
|
|||
}
|
||||
}
|
||||
} else if (key == 'selected') {
|
||||
self.loaded && selectPlace(value || null);
|
||||
selectPlace(value || null);
|
||||
} else if (key == 'type') {
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue