/[sql-web-session]/sql-editor.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /sql-editor.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 28 - (show annotations)
Sun Apr 19 00:02:11 2009 UTC (15 years ago) by dpavlin
File MIME type: application/javascript
File size: 3684 byte(s)
transfer table name into lookup

1
2 // fake firebug's console.*
3 if (!window.console) {
4 var names = [ "log", "debug", "info", "warn", "error" ];
5 window.console = {};
6 for (i in names) {
7 window.console[names[i]] = function() {};
8 }
9 }
10
11 $(document).ready( function() {
12
13 function click_on_cell(e) {
14
15 var tag = e.originalTarget.tagName;
16
17 var col_nr = e.originalTarget.cellIndex;
18
19 var column = $('table#results th:nth-child(' + ( col_nr + 1 ) + ')').text();
20 var where_operator = '=';
21 var where_value = window.getSelection().getRangeAt(0).cloneContents().textContent;
22 if ( where_value.length == 0 )
23 where_value = e.originalTarget.textContent;
24 else
25 where_value = '%' + where_value + '%';
26
27 var type = column_type[col_nr];
28
29 console.debug('click on ', this, e,
30 e.originalTarget,
31 column, type, where_operator, where_value
32 );
33
34 $('form#sql .changed').removeClass('changed');
35
36 if ( tag == 'TH' ) {
37 console.info('header', column);
38 $('form#sql input[name=order_by]')
39 .addClass('changed')
40 .attr('value', where_value + ' desc')
41 ;
42 } else if ( tag = 'TD' ) {
43 console.info('column', column, where_operator, where_value);
44 $('form#sql input[name=where_value]')
45 .addClass('changed')
46 .attr('value', where_value)
47 ;
48 $('form#sql select[name=where_column]')
49 .addClass('changed')
50 .attr('options').selectedIndex = col_nr
51 ;
52 $('form#sql input[name=lookup_col]')
53 .addClass('changed')
54 .attr('value', column)
55 .css('display','block')
56 .attr('disabled',0)
57 ;
58 $('select[name=where_operator]')
59 .addClass('changed')
60 .attr('selectedIndex', type < 0 ? 0 : 2)
61 ;
62 } else {
63 console.error('unknown click on ', tag, e);
64 }
65
66 $('form#sql').addClass('visible').addClass('fixed');
67 };
68
69 $('table#results').bind('mouseup', click_on_cell);
70
71 $('#status').bind('click', function() {
72 $('form#sql').toggleClass('visible').addClass('fixed');
73 });
74
75 $('input[name=lookup_col]').bind('click', function(e) {
76 var l = $('div#lookup');
77 var column = $('form#sql input[name=lookup_col]').attr('value');
78 var col_nr = $('form#sql select[name=where_column]').attr('options').selectedIndex;
79 var operator = $('select[name=where_operator]').attr('options').selectedIndex;
80
81 l.html('...loading lookup for '+column+'...').css('display','block').scrollTop(0);
82
83 console.debug( this, e, column, col_nr, l );
84
85 $('input[name=lookup_col]')
86 .removeClass('changed')
87 .attr('disabled', 1);
88
89 var where_parts = [];
90 $('input[name=where_parts]').each(function(){ if (this.checked) where_parts.push(this.value) });
91 var args = {
92 table: $('input[name=from]').val(),
93 lookup_col: column,
94 where_parts: where_parts,
95 };
96 console.debug( 'get', args );
97 $.get('', args, function(data,textStatus) {
98 console.debug( data, textStatus );
99 l.addClass('changed');
100 l.html( data );
101
102 $('div#lookup a')
103 .bind('click', function(e) {
104 console.debug( 'lookup click', e );
105 $('form#sql input[name=where_value]')
106 .attr('value', e.target.text )
107 ;
108 $('form#sql select[name=where_column]')
109 .attr('options').selectedIndex = col_nr
110 ;
111 $('select[name=where_operator]')
112 .attr('options').selectedIndex = operator + 1 // remove not
113 ;
114 return false;
115 });
116 });
117
118
119 $('input[name=close_group_by]')
120 .addClass('changed')
121 .attr('disabled', 0)
122 .bind('click', function() {
123 l.css('display','none')
124 .addClass('changed')
125 .attr('disabled', 0)
126 ;
127 $('input[name=close_group_by]')
128 .removeClass('changed')
129 .attr('disabled', 1)
130 ;
131 console.debug('closed group by lookup', column);
132 });
133 });
134
135 console.info('ready');
136 });
137

  ViewVC Help
Powered by ViewVC 1.1.26