report path in error message
[MojoFacets.git] / public / edit_table.js
1 $(document).ready( function() {
2
3 var cell_blur = function() {
4         console.debug( 'cell_blur'
5 //              , this
6 //              , $(this).val()
7         );
8
9         // FIXME primary key is fixed to 1st column
10         var pk = $('table tr th:nth(0) > a').text();
11         var id = $(this).parent().siblings(':nth(0)').text()
12
13         var x = $(this).parent().attr('cellIndex');
14         var y = $(this).parent().parent().attr('rowIndex');
15
16         var content = $(this).val();
17 //      $(this).replaceWith( content );
18
19         var name = $('table tr th:nth('+x+') > a').text();
20         console.info( x, y, pk, id, name, content );
21
22         var update = $(this);
23
24         $.post( '/data/edit', {
25                 path: document.title, pk: pk, id: id,
26                 name: name, content: content
27         } , function(data) {
28                 console.debug( data );
29                 var vals = content.split('¶');
30                 data = vals.join('<span class=d>¶</span>');
31                 update.replaceWith( data );
32         });
33 }
34
35 var cell_click = function(event) {
36         console.debug( 'cell_click'
37                 , this
38                 , event
39                 , $(this).text()
40         );
41         var content = $(this).text(); // we don't want para markup
42         var rows = content.split('¶').length * 2 + 1;
43         var textarea = $('<textarea rows='+rows+'/>');
44         textarea.val( content );
45         $(this).html( textarea );
46         textarea.focus();
47         textarea.blur( cell_blur )
48 };
49
50
51 console.info('double-click on cell to edit it');
52 $('table td').live( 'dblclick', cell_click );
53
54 }); // document.ready
55
56