X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=public%2Fedit_table.js;h=67ab62b2fbd95e76c894d27842fc8e8d9ef62d5d;hb=cd86c59568aeae722d7999bc1bfa76bb3a594ca3;hp=11c3f2fb7dc8853cd883f6e157b4ca621f888e74;hpb=40e5a2a6012e16ead1c3d9a52bc0735b90d4e203;p=MojoFacets.git
diff --git a/public/edit_table.js b/public/edit_table.js
index 11c3f2f..67ab62b 100644
--- a/public/edit_table.js
+++ b/public/edit_table.js
@@ -2,24 +2,43 @@ $(document).ready( function() {
var cell_blur = function() {
console.debug( 'cell_blur'
- , this
- , $(this).val()
+// , this
+// , $(this).val()
);
+/*
+ // FIXME primary key is fixed to 1st column
+ var pk = $('table tr th:nth(0) > a').text();
+ var id = $(this).parent().siblings(':nth(0)').text()
+*/
+ var _row_id = $(this).parent().parent().attr('title');
+
var x = $(this).parent().attr('cellIndex');
var y = $(this).parent().parent().attr('rowIndex');
var content = $(this).val();
- if ( 0 ) { // leave delimiters in edited cells visible
- var vals = content.split('¶');
- content = vals.join('¶');
- }
-
-// var cell = $('
'+content+' | ');
- $(this).replaceWith( content );
+// $(this).replaceWith( content );
var name = $('table tr th:nth('+x+') > a').text();
- console.info( x, y, name, content );
+ console.info( x, y, _row_id, name, content );
+
+ var update = $(this);
+
+ $.post( '/data/edit', {
+ path: document.title, _row_id: _row_id,
+ name: name, content: content
+ } , function(data, textStatus) {
+ console.debug( 'data:', data, 'status:', textStatus );
+ if ( ! data ) {
+ data = content; // fallback to submited data for 304
+ } else {
+ if ( $('a.save_changes').length == 0 )
+ $('a.changes').before('save')
+ }
+ var vals = data.split('¶');
+ data = vals.join('¶');
+ update.replaceWith( data );
+ });
}
var cell_click = function(event) {
@@ -28,7 +47,11 @@ var cell_click = function(event) {
, event
, $(this).text()
);
- var content = $(this).text(); // we don't want para markup
+ var 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;
var textarea = $('');
textarea.val( content );