sub edit {
my $self = shift;
- my $content = $self->param('content');
+ my $new_content = $self->param('new_content');
my $i = $self->param('_row_id');
die "invalid _row_id ",dump($i) unless $i =~ m/^\d+$/;
my $data = $self->_loaded('data');
if ( defined $loaded->{$path}->{data}->{items}->[$i] ) {
- $content =~ s/^\s+//s;
- $content =~ s/\s+$//s;
+ $new_content =~ s/^\s+//s;
+ $new_content =~ s/\s+$//s;
my $v;
- if ( $content =~ /\xB6/ ) { # para
- $v = [ split(/\s*\xB6\s*/, $content) ];
+ if ( $new_content =~ /\xB6/ ) { # para
+ $v = [ split(/\s*\xB6\s*/, $new_content) ];
} else {
- $v = [ $content ];
+ $v = [ $new_content ];
}
my $old = dump $loaded->{$path}->{data}->{items}->[$i]->{$name};
my $new = dump $v;
if ( $old ne $new
- && ! ( $old eq 'undef' && length($content) == 0 ) # new value empty, previous undef
+ && ! ( $old eq 'undef' && length($new_content) == 0 ) # new value empty, previous undef
) {
warn "# update $path $i $old -> $new\n";
$loaded->{$path}->{data}->{items}->[$i]->{$name} = $v;
$status = 201; # created
$self->session('save_path' => $path);
+
+ $new_content = join("\xB6",@$v);
} else {
warn "# unchanged $path $i $old\n";
$status = 304;
}
} else {
- $content = "$path $i $name doesn't exist\n";
+ $new_content = "$path $i $name doesn't exist\n";
$status = 404;
}
- warn "# edit $status $content";
+ warn "# edit $status ", dump $new_content;
$self->render(
status => $status,
- content => $content,
+ new_content => scalar $new_content,
);
}
var x = $(this).parent().attr('cellIndex');
var y = $(this).parent().parent().attr('rowIndex');
- var content = $(this).val();
-// $(this).replaceWith( content );
+ var new_content = $(this).val();
+// $(this).replaceWith( new_content );
var name = $('table tr th:nth('+x+') > a').text();
- console.info( x, y, _row_id, name, content );
+ console.info( x, y, _row_id, name, new_content );
var update = $(this);
$.post( '/data/edit', {
path: document.title, _row_id: _row_id,
- name: name, content: content
+ name: name, new_content: new_content
} , function(data, textStatus) {
console.debug( 'data:', data, 'status:', textStatus );
if ( ! data ) {
- data = content; // fallback to submited data for 304
+ data = new_content; // fallback to submited data for 304
} else {
if ( $('a.save_changes').length == 0 )
$('a.changes').before('<a class=save_changes href="/data/save">save</a>')
, event
, $(this).text()
);
- var content = $(this).text() // we don't want para markup
+ var new_content = $(this).text() // we don't want para markup
.replace(/^[ \n\r]+/,'')
.replace(/[ \n\r]+$/,'')
;
-console.debug( 'content', content );
- var rows = content.split('¶').length * 2 + 1;
+console.debug( 'new_content', new_content );
+ var rows = new_content.split('¶').length * 2 + 1;
var textarea = $('<textarea rows='+rows+'/>');
- textarea.val( content );
+ textarea.val( new_content );
$(this).html( textarea );
textarea.focus();
textarea.blur( cell_blur )