annotate roundup/cgi/KeywordsExpr.py @ 8125:b358da7c89e5 permission-performance

Optimize filtering of search results Now the Permission class constructor takes an optional argument 'filter'. Now if we do not find a permission on the whole class *and* all permission objects on the current class with a check method also have a filter method we can improve search performance by filtering in the database (instead of in python).
author Ralf Schlatterbeck <rsc@runtux.com>
date Mon, 21 Oct 2024 16:11:13 +0200
parents 07ce4e4110f5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
6416
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
4 WINDOW_CONTENT = r'''
4467
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>
5217
17b213eab274 Add nonce to embedded script references.
John Rouillard <rouilj@ieee.org>
parents: 5132
diff changeset
8 <script nonce="%(nonce)s" type="text/javascript">
4467
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() {
7228
07ce4e4110f5 flake8 fixes: whitespace, remove unused imports
John Rouillard <rouilj@ieee.org>
parents: 6416
diff changeset
50 return this.x.brackets
4467
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) {
7228
07ce4e4110f5 flake8 fixes: whitespace, remove unused imports
John Rouillard <rouilj@ieee.org>
parents: 6416
diff changeset
129 out += '<option value="' + KEYWORDS[i][0] +
4467
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() {
7228
07ce4e4110f5 flake8 fixes: whitespace, remove unused imports
John Rouillard <rouilj@ieee.org>
parents: 6416
diff changeset
178 current = undo.length > 0
4467
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
6416
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
223 function main_display() {
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
224 var out = '';
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
225 out += '<span id="display_%(prop)s">' + parse(current).infix() + '<\/span>';
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
226 return out;
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
227 }
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
228
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
229 function main_input() {
4467
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
230 var out = '';
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
231 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
232 return out;
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 modify_main() {
6416
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
236 /* if display form of expression exists, overwrite */
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
237 display = window.opener.document.getElementById('display_%(prop)s');
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
238 if ( display ) {
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
239 display.outerHTML = main_display();
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
240 }
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
241
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
242 /* overwrite select if present, otherwise overwrite the hidden input */
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
243 input = window.opener.document.querySelector('select[name="%(prop)s"]');
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
244 if (! input) {
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
245 input = window.opener.document.querySelector('input[name="%(prop)s"]');
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
246 }
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
247
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
248 /* if display exists, only update hidden input. If display doesn't
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
249 exist, inject both hidden input and display. */
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
250 if ( display ) {
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
251 content = main_input();
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
252 } else {
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
253 content = main_input() + main_display();
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
254 }
99d344aa825d - issue2550648 - keyword boolean search multiple issues
John Rouillard <rouilj@ieee.org>
parents: 6046
diff changeset
255 input.outerHTML = content;
4467
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
256 }
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 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
259 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
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 set_content();
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
263 //-->
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
264 </script>
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
265 '''
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
266
6046
3b0f423ec980 flake8 whitepace fixes.
John Rouillard <rouilj@ieee.org>
parents: 5811
diff changeset
267
4467
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
268 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
269 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
270 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
271 items = []
5132
0142b4fb5a2d issue2550648 - partial fix for problem in this issue. Ezio Melotti
John Rouillard <rouilj@ieee.org>
parents: 4467
diff changeset
272 for nodeid in cls.getnodeids(retired=0):
4467
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
273 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
274 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
275 try:
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
276 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
277 except KeyError:
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
278 pass
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
279 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
280 return items
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
281
6046
3b0f423ec980 flake8 whitepace fixes.
John Rouillard <rouilj@ieee.org>
parents: 5811
diff changeset
282
4467
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
283 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
284 return ',\n '.join(['["%s", "%s"]' % x for x in items])
6046
3b0f423ec980 flake8 whitepace fixes.
John Rouillard <rouilj@ieee.org>
parents: 5811
diff changeset
285
4467
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
286
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
287 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
288 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
289
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
290 window_content = WINDOW_CONTENT % {
6046
3b0f423ec980 flake8 whitepace fixes.
John Rouillard <rouilj@ieee.org>
parents: 5811
diff changeset
291 'prop': prop,
4467
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
292 'keywords': items_to_keywords(list_nodes(request)),
5217
17b213eab274 Add nonce to embedded script references.
John Rouillard <rouilj@ieee.org>
parents: 5132
diff changeset
293 'original': '',
17b213eab274 Add nonce to embedded script references.
John Rouillard <rouilj@ieee.org>
parents: 5132
diff changeset
294 'nonce': request.client.client_nonce
4467
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
295 }
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
296
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
297 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
298
e46b15b0bc25 Adding missing files from last commit (of 2010-11-08T11:21:02)...
Bernhard Reiter <Bernhard.Reiter@intevation.de>
parents:
diff changeset
299 # vim: set et sts=4 sw=4 :

Roundup Issue Tracker: http://roundup-tracker.org/