disabled georeferencing address after finish, bugs fixed, added query on load table

1.0
Javier Álvarez Medina 14 years ago
parent f70002579d
commit 732684e9f5

@ -44,7 +44,7 @@
</section>
<div class="table_position">
<table border="0" id="cDBtable"></table>
<table border="0" id="carto_table"></table>
</div>
<div class="map_window"></div>
@ -57,6 +57,5 @@
<% end %>
<script type="text/javascript">var table_id = <%= @table.id %>;</script>
<script type="text/javascript">var status = "<%= table_privacy_text(@table).downcase %>";</script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">var table_id = <%= @table.id %>; var status = "<%= table_privacy_text(@table).downcase %>"; var table_name = "<%= @table.name %>";</script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>

@ -71,7 +71,8 @@
url: options.getDataUrl,
data: {
rows_per_page: options.resultsPerPage,
page: actualPage
page: actualPage,
query: options.query
},
success: function(data) {
if (data.total_rows==0) {
@ -158,7 +159,7 @@
'</ul>' +
'</span>';
thead += '<th c="'+element[0]+'" type="'+element[1]+'">'+
'<div '+((index==0)?'style="width:75px"':' style="width:'+cell_size+'px"') + '>'+
'<div '+((element[0]=="cartodb_id")?'style="width:75px"':' style="width:'+cell_size+'px"') + '>'+
'<span class="long">'+
'<h3 class="'+((element[0]=="cartodb_id" || element[0]=="created_at" || element[0]=="updated_at")?'static':'')+'">'+element[0]+'</h3>'+
((element[2]!=undefined)?'<p class="geo '+element[2]+'">geo</p>':'') +
@ -428,8 +429,8 @@
'<span class="top">'+
'<h3>Choose your geocoding method for this column</h3>'+
'<p>Please select the columns for the lat/lon fields</p>'+
'<ul>'+
'<li>'+
'<ul class="main_list">'+
'<li class="first_list selected">'+
'<a class="first_ul" href="#lat_lng_column">This is a lat/lon column</a>'+
'<div class="select">'+
'<label>LATITUDE COLUMN</label>'+
@ -450,13 +451,13 @@
'</span>'+
'</div>'+
'</li>'+
'<li class="selected">'+
'<li class="first_list disabled">'+
'<a class="first_ul" href="#choose_address">Choose or create an address column</a>'+
'<div class="address_option">'+
'<p>Choose the column you want to combine for georeferencing your data.</p>'+
'<div class="first_column_address block">'+
'<label>SELECTED COLUMN 1</label>'+
'<span class="select">'+
'<span class="select address">'+
'<a class="option" href="#column_name" c="">Retrieving columns...</a>'+
'<div class="select_content">'+
'<ul class="scrollPane"></ul>'+
@ -467,7 +468,7 @@
'</div>'+
'<div class="second_column_address block">'+
'<label>SELECTED COLUMN 2</label>'+
'<span class="select">'+
'<span class="select address">'+
'<a class="option" href="#column_name" c="">Retrieving columns...</a>'+
'<div class="select_content">'+
'<ul class="scrollPane"></ul>'+
@ -478,7 +479,7 @@
'</div>'+
'<div class="third_column_address block">'+
'<label>SELECTED COLUMN 3</label>'+
'<span class="select">'+
'<span class="select address">'+
'<a class="option" href="#column_name" c="">Retrieving columns...</a>'+
'<div class="select_content">'+
'<ul class="scrollPane"></ul>'+
@ -489,7 +490,7 @@
'</div>'+
'</div>'+
'</li>'+
'<li class="disabled"><a>KML or PostGIS geometry</a></li>'+
'<li class="first_list disabled"><a>KML or PostGIS geometry</a></li>'+
'</ul>'+
'<p class="error">You have to select latitude and longitude</p>'+
'</span>'+
@ -678,7 +679,10 @@
//For paginating data
if (!loading && enabled) {
console.log(actualPage);
var end = total <= ((actualPage+1)*defaults.resultsPerPage);
if (!loading && enabled && !end) {
var difference = $(document).height() - $(window).height();
if ($(window).scrollTop()==difference) {
loading = true;
@ -1401,7 +1405,7 @@
method: "GET",
url: '/api/json/tables/'+table_id+'/schema',
success: function(data) {
//Remove ScrollPane
// Remove all ScrollPane //
var custom_scrolls = [];
$('.scrollPane').each(function(){
custom_scrolls.push($(this).jScrollPane().data().jsp);
@ -1411,6 +1415,7 @@
this.destroy();
});
$('div.georeference_window span.select ul li').remove();
// -------------------- //
for (var i = 0; i<data.length; i++) {
if (data[i][0]!="cartodb_id" && data[i][0]!="created_at" && data[i][0]!="updated_at") {
@ -1468,7 +1473,7 @@
}
}
});
$('div.georeference_window span.select ul li a').livequery('click',function(ev){
$('div.georeference_window span.latitude ul li a,div.georeference_window span.longitude ul li a').livequery('click',function(ev){
stopPropagation(ev);
$(this).closest('span.select').children('a.option').text($(this).text());
$(this).closest('span.select').children('a.option').attr('c',$(this).text());
@ -1494,6 +1499,12 @@
$('span.select:eq('+other_index+') ul li a:contains("'+$(this).text()+'")').parent().addClass('choosen');
}
});
$('div.georeference_window span.address ul li a').livequery('click',function(ev){
stopPropagation(ev);
$(this).closest('span.select').children('a.option').text($(this).text());
$(this).closest('span.select').children('a.option').attr('c',$(this).text());
$('span.select').removeClass('clicked');
});
$('div.georeference_window div.inner_ span.top ul li a.first_ul').livequery('click',function(ev){
stopPropagation(ev);
if (!$(this).parent().hasClass("disabled")) {
@ -1501,29 +1512,50 @@
$(this).parent().addClass('selected');
}
});
$('a.confirm_georeference').livequery('click',function(ev){
stopPropagation(ev);
if (!$(this).hasClass('disabled')) {
var latitude = $('a#latitude').attr('c');
var longitude = $('a#longitude').attr('c');
if (!(latitude=='' && longitude=='')) {
if ($('div.georeference_window ul.main_list li.first_list:eq(1)').hasClass('selected')) {
var params = {};
params['lat_column'] = (latitude=="Empty")? "nil" : latitude;
params['lon_column'] = (longitude=="Empty")? "nil" : longitude;
var address = '';
$('div.georeference_window ul.main_list li.first_list:eq(1) a.option').each(function(index,element){
if ($(element).attr('c')!='') {
address += $(element).attr('c') + ',';
}
});
address = address.substr(0,address.length-1);
params['address_column'] = address;
methods.updateTable("/set_geometry_columns",params,null,null,'update_geometry',"PUT");
enabled = true;
} else {
$('div.georeference_window p.error').text('You have to select latitude and longitude');
$('div.georeference_window p.error').css('opacity',0);
$('div.georeference_window p.error').css('display','block');
$('div.georeference_window p.error').fadeTo(300,1);
$('div.georeference_window p.error').delay(3000).fadeTo(300,0,function(){
$('div.georeference_window p.error').css('display','none');
});
var latitude = $('a#latitude').attr('c');
var longitude = $('a#longitude').attr('c');
if (!(latitude=='' && longitude=='')) {
var params = {};
params['lat_column'] = (latitude=="Empty")? "nil" : latitude;
params['lon_column'] = (longitude=="Empty")? "nil" : longitude;
methods.updateTable("/set_geometry_columns",params,null,null,'update_geometry',"PUT");
} else {
$('div.georeference_window p.error').text('You have to select latitude and longitude');
$('div.georeference_window p.error').css('opacity',0);
$('div.georeference_window p.error').css('display','block');
$('div.georeference_window p.error').fadeTo(300,1);
$('div.georeference_window p.error').delay(3000).fadeTo(300,0,function(){
$('div.georeference_window p.error').css('display','none');
});
}
}
}
});
$('div.georeference_window a.close_geo,div.georeference_window a.cancel').livequery('click',function(ev){
stopPropagation(ev);
enabled = true;
@ -1835,8 +1867,17 @@
case "column_type": headers[params.column.name] = params.column.type;
break;
case "update_geometry": $('p.geo').remove();
$('thead tr th h3:contains('+params.lat_column+')').parent().append('<p class="geo latitude">geo</p>');
$('thead tr th h3:contains('+params.lon_column+')').parent().append('<p class="geo longitude">geo</p>');
if (params.address_column != undefined && params.address_column != '') {
var address_cols = params.address_column.split(',');
if (address_cols.length==1) {
var geo_address = new Geocoding(params.address_column,table_id);
} else {
// TODO geo_address for multiple addresses columns
}
} else {
$('thead tr th h3:contains('+params.lat_column+')').parent().append('<p class="geo latitude">geo</p>');
$('thead tr th h3:contains('+params.lon_column+')').parent().append('<p class="geo longitude">geo</p>');
}
methods.closeTablePopups();
break;
case "new_column": methods.closeTablePopups();

@ -14,15 +14,12 @@
/* */
/*============================================================================*/
Geocoding.prototype.startGeocoding = function() {
var me = this;
var me = this;
$.ajax({
method: "GET",
url: '/api/json/tables/'+this.table,
data: {
rows_per_page: 200,
page: 0
},
success: function(data) {
method: "GET",
url: '/api/json/tables/'+this.table,
data: {rows_per_page: 200, page: 0},
success: function(data) {
var rows = data.rows;
var directions = [];
for (var i=0; i<rows.length; i++) {
@ -39,8 +36,23 @@
me.finishGeocoding();
delete worker;
} else {
console.log(event.data);
var latlng = new google.maps.LatLng(event.data.Placemark[0].Point.coordinates[1],event.data.Placemark[0].Point.coordinates[0]);
var params = {};
params['lat'] = event.data.Placemark[0].Point.coordinates[1];
params['lon'] = event.data.Placemark[0].Point.coordinates[0];
$.ajax({
type: "PUT",
url: '/api/json/tables/'+me.table+'/update_geometry/'+event.data.cartodb_id,
data: params,
success: function(data) {
console.log(data);
},
error: function(e) {
console.log(e);
}
});
//var latlng = new google.maps.LatLng(event.data.Placemark[0].Point.coordinates[1],event.data.Placemark[0].Point.coordinates[0]);
// var marker = new google.maps.Marker({position: latlng, map: map,title:"Your position!"});
// bounds.extend(latlng);
//console.log(latlng);

@ -94,6 +94,7 @@
}
$('section.subheader h2 a').text(new_value);
$('span.title_window').hide();
table_name = new_value;
changesRequest('/update','name',new_value,old_value);
}
});
@ -334,6 +335,7 @@
if (old_value.status=="save") {
$('p.status a').removeClass('public private').addClass('save').text('save');
}
table_name = old_value;
break;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
case 'tags': $("span.tags p").remove();
@ -374,4 +376,4 @@
$(document).unbind('keydown');
$('body').unbind('click');
});
}
}

@ -3,12 +3,13 @@
$(document).ready(function(){
$("table#cDBtable").cDBtable(
$("table#carto_table").cDBtable(
'start',{
getDataUrl: '/api/json/tables/'+table_id,
getDataUrl: '/api/json/tables/' + table_id, //-query +table_id
resultsPerPage: 50,
reuseResults: 100,
total: 5000
total: 5000,
query: "SELECT cartodb_id,address,created_at FROM "+ table_name
}
);
});

@ -1,46 +0,0 @@
ADD ROW
- BLAT -> Creo que la mejor solución sería, crear una fila vacía (sin que se de cuenta el usuario), haciendo una petición al servidor de añadir una fila nueva,
que me la devuelvas con los campos rellenos en el caso de cartodb_id, created_at, updated_at, y ya haría mi trapi para controlar cuando pinche fuera de
la fila para mandarte los cambios. Total, si te parece bien, necesitaría que en el servicio de creación de fila me respondieras con las columnas, tipo
y lo que hay dentro :).
Blat: HECHO
GEOREFERENCIAR
- BLAT -> Poder georeferenciar por address, como sería el nuevo servicio, mandando el address y no lat_column o lon_column.
Blat: está documentado en la api: /api/tables/:id/set_geometry_columns y param {"address_column" => "the name of the column"}
- BLAT -> Mandar nil como objecto en el la geolocalización no se puede ´por Javascript, hay que cambiar el método.
Blat: HECHO. Sigue mandándome nil y aunque me llegue como cadena yo lo reinterpreto
ERRORS
- SALEIVA -> Mostrar los errores en la ventana cuando intentas georeferenciar pero no has elegido nada, por ejemplo.
TIPO DE DATOS
- BLAT -> Falta el tipo Boolean
Blat: HECHO
- BLAT -> Falla al cambiar el tipo a Number o a String
Blat: HECHO
BORRADO DE COLUMNAS Y FILAS
- Que sea posible borrar filas y columnas (no solo de una en una)
Blat: he hecho borrar una sola: DELETE /api/json/tables/:id/rows/:row_id
ADD COLUMN
- No se puede crear columnas si no son del tipo Date
Blat: HECHO

@ -14,11 +14,10 @@ section form input.error:focus {background-position:0 -72px;}
section form input[type="submit"].login {float:right; width:82px; height:36px; padding:0; margin:21px 0 0 0; background:url('/images/front/home/login_submit.png') no-repeat 0 0; font:bold 15px Arial; color:#305233; text-shadow:0 1px #A2D797;}
section form input[type="submit"].create {float:right; width:173px; height:36px; padding:0; margin:21px 0 0 0; background:url('/images/front/home/create_submit.png') no-repeat 0 0; font:bold 15px Arial; color:#305233; text-shadow:0 1px #A2D797;}
section form input[type="submit"]:hover {background-position:0 -36px; cursor:pointer;}
section form input:-webkit-autofill {background-color:white!important; background-image: none;}
section form input:-webkit-autofill {border:1px solid #666666; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;}
section form div.error_content {position:absolute; z-index:10; right:22px; top:112px;}
section form div.error_content p {float:left; height:52px; padding:0 0 0 19px; background:url('/images/front/home/left_error.png') no-repeat 0 0;}
section form div.error_content p span {float:left; height:37px; padding:15px 19px 0 0; background:url('/images/front/home/right_error.png') no-repeat right 0; font:normal 11px "Helvetica",Arial; color:white; text-shadow:0 -1px #C55B14;}
footer {position:absolute; left:50%; bottom:15px; width:200px!important; padding:0; margin:0 0 0 -100px; z-index:1; font:normal 13px "Helvetica", Arial; color:white; text-align:center;}
footer a {color:white;}
footer a:hover {color:white;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

@ -0,0 +1,16 @@
GEOREFERENCIAR
- BLAT -> No puedo guardar las nuevas lat&lon del worder geocoder a la base datos, peta :S.
QUERY
- BLAT -> Me devuelve unas cosas muy raras cuando hago pedir tabla a través de una query. No me devuelve los headers correctamente, ni ordenados, tengo screenshot si necesitas.
- Si es posible siempre cartodb_id el primero, el resto como quieras guapo.
- Los headers (columnas) parace que llegan diferentes a cuando hacemos una petición normal de la tabla y se escacharra tó :S
DATE
- BLAT -> Las fechas no han cambiado al formato que hablamos. 2010-02-00 11:00:00 (Aparece una T y un +1:00 :( )
Loading…
Cancel
Save