adding row changes

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

@ -46,12 +46,9 @@
<div class="table_position">
<table border="0" id="carto_table"></table>
</div>
<div class="map_window"></div>
<%= content_for(:mamufas) do %>
<div class="mamufas"></div>
<% end %>

@ -17,6 +17,7 @@
// - div.table_position
// - section subheader
// - mamufas
// We are playing with these containers but they don't belong to the plugin
(function( $ ){
@ -558,13 +559,18 @@
addRow: function() {
var requestId = createUniqueId();
var type = 0;
requests_queue.newRequest(requestId,'add_row');
if ($('div.empty_table').length>0) {
type = 0;
} else {
type = 1;
var end = total <= ((actualPage+1)*defaults.resultsPerPage);
if (!end) {
type = 2;
} else {
type = 1;
}
// getDataUrl: '/api/json/tables/'+table_id,
// resultsPerPage: 50,
// reuseResults: 100,
@ -582,63 +588,69 @@
}
if (type==0 || type==1) {
requests_queue.newRequest(requestId,'add_row');
$.ajax({
type: "POST",
url: '/api/json/tables/'+table_id+'/rows',
success: function(data) {
row_id = data.id;
$.ajax({
method: "GET",
url: '/api/json/tables/'+table_id+'/schema',
success: function(data) {
requests_queue.responseRequest(requestId,'ok','');
var options_list = '<span><h5>EDIT</h5><ul><li><a href="#">Duplicate row</a></li><li><a href="#">Delete row</a></li></ul>' +
'<div class="line"></div><h5>CREATE</h5><ul><li class="last"><a href="#" class="add_row">Add new row</a></li>' +
'</ul></span>';
$.ajax({
type: "POST",
url: '/api/json/tables/'+table_id+'/rows',
success: function(data) {
row_id = data.id;
$.ajax({
method: "GET",
url: '/api/json/tables/'+table_id+'/schema',
success: function(data) {
requests_queue.responseRequest(requestId,'ok','');
var options_list = '<span><h5>EDIT</h5><ul><li><a href="#">Duplicate row</a></li><li><a href="#">Delete row</a></li></ul>' +
'<div class="line"></div><h5>CREATE</h5><ul><li class="last"><a href="#" class="add_row">Add new row</a></li>' +
'</ul></span>';
if (type==0) {
var row = '<tbody style="padding-top:52px"><tr r="'+row_id+'"><td class="first" r="'+row_id+'"><div><a href="#" class="options">options</a>'+options_list+'</div></td>';
} else {
var row = '<tr r="'+row_id+'"><td class="first" r="'+row_id+'"><div><a href="#" class="options">options</a>'+options_list+'</div></td>';
}
if (type==0) {
var row = '<tbody style="padding-top:52px"><tr r="'+row_id+'"><td class="first" r="'+row_id+'"><div><a href="#" class="options">options</a>'+options_list+'</div></td>';
} else {
var row = '<tr r="'+row_id+'"><td class="first" r="'+row_id+'"><div><a href="#" class="options">options</a>'+options_list+'</div></td>';
}
for (var i = 0; i<data.length; i++) {
var text = '';
if (data[i][0]=="cartodb_id") {
text = row_id;
} else if (data[i][0]=="created_at" || data[i][0]=="updated_at") {
var date = new Date();
text = date.getHours()+':'+date.getMinutes()+':'+date.getSeconds()+' '+date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate();
} else {
text = '';
for (var i = 0; i<data.length; i++) {
var text = '';
if (data[i][0]=="cartodb_id") {
text = row_id;
} else if (data[i][0]=="created_at" || data[i][0]=="updated_at") {
var date = new Date();
text = date.getHours()+':'+date.getMinutes()+':'+date.getSeconds()+' '+date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate();
} else {
text = '';
}
row += '<td '+((data[i][0]=="cartodb_id" || data[i][0]=="created_at" || data[i][0]=="updated_at")?'class="special"':'')+' r="'+row_id+'" c="'+ data[i][0] +'"><div '+((data[i][0]=='cartodb_id')?'':' style="width:'+cell_size+'px"') + '>'+text+'</div></td>';
}
row += '<td '+((data[i][0]=="cartodb_id" || data[i][0]=="created_at" || data[i][0]=="updated_at")?'class="special"':'')+' r="'+row_id+'" c="'+ data[i][0] +'"><div '+((data[i][0]=='cartodb_id')?'':' style="width:'+cell_size+'px"') + '>'+text+'</div></td>';
}
var start = row.lastIndexOf('"width:');
var end = row.lastIndexOf('px"');
row = row.substring(0,start) + '"width:' + last_cell_size + row.substring(end);
var start = row.lastIndexOf('"width:');
var end = row.lastIndexOf('px"');
row = row.substring(0,start) + '"width:' + last_cell_size + row.substring(end);
if (type==0) {
row += '</tr></tbody>';
$(table).append(row);
} else {
row += '</tr>';
$(table).children('tbody').append(row);
}
if (type==0) {
row += '</tr></tbody>';
$(table).append(row);
} else {
row += '</tr>';
$(table).children('tbody').append(row);
}
$('div.empty_table').remove();
methods.resizeTable();
},
error: function(e) {
requests_queue.responseRequest(requestId,'error',$.parseJSON(e.responseText).errors[0]);
}
});
}
});
if (type==1) {
$('div.table_position').addClass('end');
$(window).scrollTo('100%',500);
}
$('div.empty_table').remove();
methods.resizeTable();
},
error: function(e) {
requests_queue.responseRequest(requestId,'error',$.parseJSON(e.responseText).errors[0]);
}
});
}
});
}
//Activamos la tabla
enabled = true;
@ -679,24 +691,23 @@
//For paginating data
console.log(actualPage);
var end = total <= ((actualPage+1)*defaults.resultsPerPage);
if (!loading && enabled && !end) {
if (!loading && enabled) {
var difference = $(document).height() - $(window).height();
if ($(window).scrollTop()==difference) {
if ($(window).scrollTop()==difference && !end) {
loading = true;
methods.showLoader('next');
setTimeout(function(){methods.getData(defaults,'next')},500);
} else if ($(window).scrollTop()==0 && minPage!=0) {
loading = true;
$('div.table_position').removeClass('end');
methods.showLoader('previous');
setTimeout(function(){methods.getData(defaults,'previous')},500);
}
}
});
$('div.table_position').scroll(function(ev){
//For moving first table column
$(table).children('tbody').children('tr').children('td.first').css('left',$('div.table_position').scrollLeft()+'px');

@ -2,7 +2,9 @@
div.table_position {position:relative; float:left; width:100%; min-width:880px; min-height:55px; margin:103px 0 0 0; padding:0; overflow-y:hidden; background:url('/images/admin/table/table_bkg.png') repeat-x 0 bottom #F0F1F5;
-webkit-user-select:none; -moz-user-select:none; z-index:15;}
div.table_position table {position:relative!important; width:auto; margin:0;}
div.table_position.end {padding:0 0 350px;}
div.table_position table {position:relative!important; width:auto; margin:0; padding:0;}
div.table_position table thead {position:fixed; top:161px; left:0; padding:5px 0 0 0; margin:0; z-index:50; background-color:#FFFFFF; background:url('/images/admin/table/head_bkg.png') repeat-x 0 bottom white;}
div.table_position table thead tr {position:relative; float:left; padding:0 0 0 41px; border-bottom:1px solid #D2D3D5;}
div.table_position table thead tr th {background:url('/images/admin/table/head_bkg.png') repeat-x 0 bottom #ffffff; border:1px solid #E2E3E7; border-bottom:none; border-top:none; text-shadow:0 1px white;}

Loading…
Cancel
Save