improve listmap editing functionality

This commit is contained in:
rolux 2011-05-24 13:43:27 +02:00
parent 02442a24f7
commit b17e8a783b
6 changed files with 48 additions and 35 deletions

View file

@ -829,7 +829,13 @@ Ox.Input = function(options, self) {
// fixme: deprecate, options are enough
that.value = function() {
return self.$input.hasClass('OxPlaceholder') ? '' : self.$input.val();
var value = self.$input.hasClass('OxPlaceholder') ? '' : self.$input.val();
if (self.options.type == 'float') {
value = parseFloat(value);
} else if (self.options.type == 'int') {
value = parseInt(value); // cannot have leading zero
}
return value;
};
return that;

View file

@ -1216,6 +1216,7 @@ Ox.List = function(options, self) {
}
function updateSort(map) {
Ox.print('start sort')
var key = self.options.sort[0].key,
operator = self.options.sort[0].operator;
if (self.listLength > 1) {
@ -1237,13 +1238,13 @@ Ox.List = function(options, self) {
getPositions();
}
}
Ox.print('end sort')
}
self.setOption = function(key, value) {
Ox.print('list setOption', key, value);
//Ox.print('list setOption', key, value);
if (key == 'items') {
if (Ox.typeOf(value) == 'array') {
loadItems();
updateSort();
} else {
updateQuery();

View file

@ -351,6 +351,7 @@ Ox.TextList = function(options, self) {
width: getItemWidth() + 'px'
});
self.visibleColumns.forEach(function(v, i) {
//Ox.print(data[v.id], '(--value--)')
var clickable = Ox.isBoolean(v.clickable) ? v.clickable : v.clickable(data),
editable = Ox.isBoolean(v.editable) ? v.editable : v.editable(data),
$cell = $('<div>')
@ -626,7 +627,7 @@ Ox.TextList = function(options, self) {
}
self.setOption = function(key, value) {
Ox.print('---------------------------- TextList setOption', key, value)
//Ox.print('---------------------------- TextList setOption', key, value)
if (key == 'items') {
that.$body.options(key, value);
} else if (key == 'paste') {

View file

@ -110,33 +110,6 @@ Ox.ListMap = function(options, self) {
visible: true,
width: 192
},
{
align: 'right',
format: {type: 'area', args: [0]},
id: 'area',
operator: '-',
title: 'Area',
visible: true,
width: 128
},
{
align: 'right',
format: toFixed,
id: 'lat',
operator: '+',
title: 'Latitude',
visible: true,
width: 96
},
{
align: 'right',
format: toFixed,
id: 'lng',
operator: '+',
title: 'Longitude',
visible: true,
width: 96
},
{
align: 'right',
format: toFixed,
@ -172,6 +145,33 @@ Ox.ListMap = function(options, self) {
visible: false,
width: 96
},
{
align: 'right',
format: toFixed,
id: 'lat',
operator: '+',
title: 'Latitude',
visible: true,
width: 96
},
{
align: 'right',
format: toFixed,
id: 'lng',
operator: '+',
title: 'Longitude',
visible: true,
width: 96
},
{
align: 'right',
format: {type: 'area', args: [0]},
id: 'area',
operator: '-',
title: 'Area',
visible: true,
width: 128
},
{
id: 'user',
operator: '+',
@ -347,6 +347,7 @@ Ox.ListMap = function(options, self) {
label: 'Area',
labelWidth: 80,
textAlign: 'right',
type: 'float',
width: 240
})
]);
@ -374,10 +375,13 @@ Ox.ListMap = function(options, self) {
self.$map.newPlace();
self.$placeButton.options({title: 'Add Place'})
} else if (title == 'Add Place') {
var place = self.$placeForm.values();
var place = self.$placeForm.values(),
country = Ox.getCountryByGeoname(place.geoname);
place.countryCode = country ? country.code : '';
place.id = self.selectedPlace.substr(1); // fixme: safe?
self.options.places.push(place);
self.$map.addPlace(place);
//self.$placeButton.options({title: 'Please Wait...'})
self.$list.options({items: Ox.clone(self.options.places)});
self.$list.options({selected: [place.id]});
//self.$list.addItem(place);

View file

@ -407,13 +407,14 @@ Ox.Map = function(options, self) {
}
function addPlaceToPlaces(data) {
var place = getSelectedPlace();
var place = getSelectedPlace(),
country = Ox.getCountryByGeoname(place.geoname);
if (self.options.selected == place.id) {
self.options.selected = place.id.substr(1);
}
place.id = place.id.substr(1); // fixme: NOT SAFE!
Ox.extend(place, data);
place.countryCode = Ox.getCountryByGeoname(place.geoname).code;
place.countryCode = country ? country.code : '';
place.marker.update();
self.places.push(place);
self.resultPlace = null;

View file

@ -67,7 +67,7 @@ Ox.MapPlace = function(options) {
Ox.EARTH_CIRCUMFERENCE / 360;
that.sizeEastWest = (that.east + (that.west > that.east ? 360 : 0) - that.west) *
Ox.getMetersPerDegree(that.lat);
that.size = Ox.getArea(
that.area = Ox.getArea(
{lat: that.south, lng: that.west},
{lat: that.north, lng: that.east}
);