Mercurial > p > roundup > code
annotate roundup/cgi/KeywordsExpr.py @ 4800:3961b2b91568
2nd case where querying form returns a TypeError
| author | Ralf Schlatterbeck <rsc@runtux.com> |
|---|---|
| date | Mon, 08 Jul 2013 10:38:54 +0200 |
| parents | e46b15b0bc25 |
| children | 0142b4fb5a2d |
| rev | line source |
|---|---|
|
4467
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
1 # This module is free software, you may redistribute it |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
2 # and/or modify under the same terms as Python. |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
3 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
4 WINDOW_CONTENT = '''\ |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
5 <h3>Keyword Expression Editor:</h3> |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
6 <hr/> |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
7 <div id="content"></div> |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
8 <script type="text/javascript"> |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
9 <!-- |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
10 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
11 var NOT_OP = "-2"; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
12 var AND_OP = "-3"; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
13 var OR_OP = "-4"; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
14 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
15 var original = "%(original)s"; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
16 var current = original; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
17 var undo = []; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
18 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
19 var KEYWORDS = [ |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
20 %(keywords)s |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
21 ]; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
22 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
23 function find_keyword(x) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
24 for (var i = 0; i < KEYWORDS.length; ++i) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
25 if (KEYWORDS[i][0] == x) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
26 return KEYWORDS[i][1]; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
27 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
28 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
29 return "unknown"; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
30 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
31 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
32 function Equals(x) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
33 this.x = x; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
34 this.brackets = false; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
35 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
36 this.infix = function() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
37 return find_keyword(this.x); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
38 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
39 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
40 this.postfix = function() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
41 return this.x; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
42 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
43 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
44 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
45 function Not(x) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
46 this.x = x; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
47 this.brackets = false; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
48 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
49 this.infix = function() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
50 return this.x.brackets |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
51 ? "NOT(" + this.x.infix() + ")" |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
52 : "NOT " + this.x.infix(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
53 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
54 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
55 this.postfix = function() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
56 return this.x.postfix() + "," + NOT_OP; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
57 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
58 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
59 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
60 function And(x, y) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
61 this.x = x; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
62 this.y = y; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
63 this.brackets = true; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
64 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
65 this.infix = function() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
66 var a = this.x.brackets ? "(" + this.x.infix() + ")" : this.x.infix(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
67 var b = this.y.brackets ? "(" + this.y.infix() + ")" : this.y.infix(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
68 return a + " AND " + b; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
69 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
70 this.postfix = function() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
71 return this.x.postfix() + "," + this.y.postfix() + "," + AND_OP; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
72 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
73 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
74 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
75 function Or(x, y) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
76 this.x = x; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
77 this.y = y; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
78 this.brackets = true; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
79 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
80 this.infix = function() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
81 var a = this.x.brackets ? "(" + this.x.infix() + ")" : this.x.infix(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
82 var b = this.y.brackets ? "(" + this.y.infix() + ")" : this.y.infix(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
83 return a + " OR " + b; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
84 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
85 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
86 this.postfix = function() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
87 return this.x.postfix() + "," + this.y.postfix() + "," + OR_OP; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
88 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
89 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
90 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
91 function trim(s) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
92 return s.replace (/^\s+/, '').replace(/\s+$/, ''); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
93 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
94 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
95 function parse(s) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
96 var operators = s.split(","); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
97 var stack = []; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
98 for (var i = 0; i < operators.length; ++i) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
99 var operator = trim(operators[i]); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
100 if (operator == "") continue; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
101 if (operator == NOT_OP) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
102 stack.push(new Not(stack.pop())); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
103 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
104 else if (operator == AND_OP) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
105 var a = stack.pop(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
106 var b = stack.pop(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
107 stack.push(new And(b, a)); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
108 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
109 else if (operator == OR_OP) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
110 var a = stack.pop(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
111 var b = stack.pop(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
112 stack.push(new Or(b, a)); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
113 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
114 else { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
115 stack.push(new Equals(operator)); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
116 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
117 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
118 return stack.length > 0 ? stack.pop() : null; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
119 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
120 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
121 function render_select(handler) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
122 var out = '<select name="keyword" id="keyword"'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
123 if (handler != null) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
124 out += ' onchange="' + handler + '"'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
125 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
126 out += '>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
127 out += '<option value="-1"><\/option>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
128 for (var i = 0; i < KEYWORDS.length; ++i) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
129 out += '<option value="' + KEYWORDS[i][0] + |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
130 '">' + KEYWORDS[i][1] + "<\/option>"; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
131 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
132 out += '<\/select>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
133 return out; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
134 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
135 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
136 function first_select() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
137 var value = document.getElementById("keyword").value; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
138 current = value; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
139 set_content(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
140 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
141 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
142 function not_clicked() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
143 var expr = parse(current); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
144 if (expr == null) return; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
145 undo.push(current); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
146 current = expr instanceof Not |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
147 ? expr.x.postfix() |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
148 : new Not(expr).postfix(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
149 set_content(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
150 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
151 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
152 function not_b_wrap(expr) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
153 var value = document.getElementById("not_b").checked; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
154 return value ? new Not(expr) : expr; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
155 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
156 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
157 function and_clicked() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
158 var expr = parse(current); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
159 if (expr == null) return; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
160 var value = document.getElementById("keyword").value; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
161 if (value == "-1") return; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
162 undo.push(current); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
163 current = new And(expr, not_b_wrap(new Equals(value))).postfix(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
164 set_content(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
165 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
166 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
167 function or_clicked() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
168 var expr = parse(current); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
169 if (expr == null) return; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
170 var value = document.getElementById("keyword").value; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
171 if (value == "-1") return; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
172 undo.push(current); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
173 current = new Or(expr, not_b_wrap(new Equals(value))).postfix(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
174 set_content(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
175 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
176 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
177 function undo_clicked() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
178 current = undo.length > 0 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
179 ? undo.pop() |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
180 : original; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
181 set_content(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
182 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
183 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
184 function enable_and_or() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
185 var value = document.getElementById("keyword").value; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
186 value = value == "-1"; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
187 document.getElementById("and").disabled = value; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
188 document.getElementById("or").disabled = value; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
189 document.getElementById("not_b").disabled = value; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
190 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
191 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
192 function create() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
193 var expr = parse(current); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
194 var out = ""; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
195 if (expr == null) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
196 out += "Keyword: "; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
197 out += render_select("first_select();"); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
198 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
199 else { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
200 out += '<table><tr>' |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
201 out += '<td><input type="button" name="not" onclick="not_clicked();" value="NOT"\/><\/td>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
202 out += "<td><tt><strong>" + expr.infix() + "<\/strong><\/tt><\/td>"; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
203 out += '<td><table>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
204 out += '<tr><td><input type="button" id="and" name="and" onclick="and_clicked();"' |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
205 + ' value="AND" disabled="disabled"\/><\/td><\/tr>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
206 out += '<tr><td><input type="button" id="or" name="or" onclick="or_clicked();"' |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
207 + ' value="OR" disabled="disabled"\/><\/td><\/tr>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
208 out += '<\/table><\/td>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
209 out += '<td><label for="not_b">NOT<\/label><br/>' |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
210 + '<input type="checkbox" name="not_b" id="not_b" disabled="disabled"\/><\/td>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
211 out += '<td>' + render_select("enable_and_or();") + '<\/td>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
212 out += '<\/tr><\/table>' |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
213 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
214 out += '<hr\/>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
215 if (undo.length > 0 || (undo.length == 0 && current != original)) { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
216 out += '<input type="button" onclick="undo_clicked();" value="Undo"\/>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
217 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
218 out += '<input type="button" onclick="modify_main();" value="Apply"\/>' |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
219 + '<input type="button" onclick="window.close();" value="Close Window"\/>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
220 return out; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
221 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
222 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
223 function main_content() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
224 var out = ''; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
225 out += '<input type="hidden" name="%(prop)s" value="' + current + '"\/>'; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
226 out += parse(current).infix(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
227 return out; |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
228 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
229 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
230 function modify_main() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
231 main = window.opener.document.getElementById("keywords_%(prop)s"); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
232 main.innerHTML = main_content(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
233 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
234 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
235 function set_content() { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
236 document.getElementById("content").innerHTML = create(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
237 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
238 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
239 set_content(); |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
240 //--> |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
241 </script> |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
242 ''' |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
243 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
244 def list_nodes(request): |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
245 prop = request.form.getfirst("property") |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
246 cls = request.client.db.getclass(prop) |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
247 items = [] |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
248 for nodeid in cls.getnodeids(): |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
249 l = cls.getnode(nodeid).items() |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
250 l = dict([x for x in l if len(x) == 2]) |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
251 try: |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
252 items.append((l['id'], l['name'])) |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
253 except KeyError: |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
254 pass |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
255 items.sort(key=lambda x: int(x[0])) |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
256 return items |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
257 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
258 def items_to_keywords(items): |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
259 return ',\n '.join(['["%s", "%s"]' % x for x in items]) |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
260 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
261 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
262 def render_keywords_expression_editor(request): |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
263 prop = request.form.getfirst("property") |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
264 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
265 window_content = WINDOW_CONTENT % { |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
266 'prop' : prop, |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
267 'keywords': items_to_keywords(list_nodes(request)), |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
268 'original': '' |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
269 } |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
270 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
271 return window_content |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
272 |
|
e46b15b0bc25
Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff
changeset
|
273 # vim: set et sts=4 sw=4 : |
